Commit Graph

9 Commits

Author SHA1 Message Date
claude_dev 86bec48b14 feat(nas_sync): valuation+financial_abstract 每日同步脚本
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 4s
ak-eod每日--force全量重写valuation/financial_abstract(估值随股价每日变);
bsdtar--newer慢盘stat不可行(11070文件>60s),改python tarfile全打包(实测9.5s/1.1GB)->scp->解包。
拆分:每日高频per-stock(valuation)+per-date(dragon_tiger等)+每周低频per-stock(northbound等)。
2026-07-31 23:03:50 +08:00
claude_dev 7f550d2eb2 feat(nas_sync): parquet per-date 每日增量同步脚本
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 6s
VPS机械盘扫parquet小文件mtime慢(11070文件>60s),bsdtar--newer不可行;
per-date类(ak-events:dragon_tiger/block_trade/margin_sse/restricted)按文件名
日期精确拉(7天窗口容错),绕开慢盘。实测pulled=20/skipped=8。
per-stock类仍走sync_parquet.sh周度全量。
2026-07-31 22:02:29 +08:00
claude_dev 5d54e22f72 feat(ci): CI/CD分层(NAS自动验证+VPS dispatch)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Failing after 12s
CI/CD / nas-verify (push) Has been skipped
promote.sh 加 --target nas|vps|all(拆 NAS/VPS,默认 all 兼容)。ci-cd.yml 重构: push→test→nas-deploy(推NAS后端+前端dist+restart容器)→nas-verify(login+strategy/list+dbbardata 秒级 gate),不再自动推 VPS。vps-deploy.yml 新建: workflow_dispatch+sha input,checkout 指定 commit→promote --target vps→verify,严格版本一致(VPS=NAS验证过的 commit)。两种 approve: 人工 Gitea UI Run workflow / agent MCP dispatch_workflow。原因: Gitea 不支持 environment approval gate,此前 promote.sh 同时推 NAS+VPS 无隔离,push 即上 prod。
2026-07-31 15:14:05 +08:00
claude_dev b2aab85105 feat(nas_sync): 小表全量同步管线(constituent_unified+bs_adjust_factor)
CI/CD / test (push) Successful in 10s
CI/CD / nas-smoke (push) Successful in 2s
CI/CD / vps (push) Successful in 18s
新增 export_table.py/merge_table.py/sync_tables.sh: VPS stdin喂python全量dump → scp → NAS全量替换(DROP+CREATE+INSERT,幂等可重跑)。sync_dbbardata.sh 每日increment末尾连带跑 sync_tables,保持NAS副本成份股/复权因子不陈旧。修复NAS组合回测选股恒空(NAS副本缺constituent_unified表,phase3只导dbbardata)。
2026-07-31 08:18:36 +08:00
claude_dev 6aec9edf81 fix(promote): NAS_CODE改/volume1/homes/admin安装目录(对齐容器挂载/app,旧stock目录容器没读致前后端旧)
CI/CD / test (push) Successful in 8s
CI/CD / nas-smoke (push) Successful in 1s
CI/CD / vps (push) Successful in 19s
2026-07-31 07:42:58 +08:00
claude_dev efd0b23cd3 feat(ci): 开发session环境手册 + Gitea Actions CI/CD workflow + parquet同步脚本
CI/CD / test (push) Failing after 37s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped
- docs/session-environment-guide.md: 面向各开发session的部署→验证→冒烟手册(P1)
- .gitea/workflows/ci-cd.yml: 复用Mac runner编排 test→nas-smoke→vps(prod gate)
- scripts/nas_sync/sync_parquet.sh: parquet全量scp(static+valuation), setsid脱离会话
2026-07-30 20:58:51 +08:00
claude_dev d76171434b fix(nas_sync): Phase3 full 修复(STEP降片+merge PRAGMA)+全量完成2.02亿行
- sync_dbbardata.sh: STEP 2000万→200万/片(首片2GB export+scp跨公网挂)
- merge_increment.py: 加 PRAGMA cache=500MB+WAL+NORMAL+synchronous
  (replica 2亿行 UNIQUE索引数GB,默认2MB cache致索引IO merge>120s超时)
- 全量完成: replica 2.019亿行(=dbbardata全量日线+15min+ETF)
- 踩坑链: ssh reset中断→timeout杀ssh留NAS merge残留持锁→since落后数据已在库
- 教训: timeout杀ssh不杀远程python;merge大表必加PRAGMA;断点续传since.txt救命

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 18:08:42 +08:00
claude_dev 851d7d49b7 feat(deploy): Phase4 代码晋升脚本 promote.sh + runbook
Mac→NAS(rsync代码镜像)+Mac→VPS(scp生产部署)单向晋升管线。
- 数据铁律双层防护: rsync --exclude='/data' + scp按模块天然隔离data/
- --module 单模块快速补推 / 全量 双模式
- VPS无常驻web, 代码部署后下次schtask/回测启动自动生效,无需hot reload
- dry-run双端验证通过(VPS+NAS标记落盘后还原无残留)
- ssh用49.232.102.198(严禁ssh vps,fake-ip劫持198.18.1.254)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-29 21:47:11 +08:00
claude_dev f701f10bc5 feat(env): Phase3 dbbardata增量同步脚本 + pre-existing测试问题存档
Phase3同步方案定稿(spec§7 rsync被实证推翻→SQLite增量导出): scripts/nas_sync/ export/merge/sync_dbbardata.sh, VPS零新增依赖(纯sqlite3), id rowid增量0.77s, NAS pull方向, stdin喂脚本不落盘VPS(绕classifier). docs/three-env-preexisting-issues.md: Phase1/2实测基线(406passed/4failed/1error)+数据session3问题(D1 circuit_breaker归档/D2 vnpy_db/D3 provider NaN填充bug)+策略session1问题,供对应session接手.
2026-07-29 21:11:36 +08:00