claude_dev
|
23bbb11a55
|
security(ci): nas-verify 登录口令去明文化——改走 Gitea secret NAS_API_PASSWORD [nas]
CI/CD / test (push) Successful in 47s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 7s
- 架构审计 P0-1 用户拍板轮换链第一步: workflow 明文口令(每次 CI 日志暴露面)
改 ${{ secrets.NAS_API_PASSWORD }}(secret 已建=HTTP 201)
- 同窗轮换: config/backtest.yaml(gitignore 种子,不入本 commit)已换新 bcrypt
hash+jwt_secret, 随本次 push 的 nas-deploy rsync 传播 NAS——nas-verify 用
新 secret 登录新 hash, 顺序=secret 先建后 push, 零断窗
- three-env §12 补 CI 凭据纪律(secret 引用+轮换流程+种子传播路径)
- VPS 侧: config 种子随下次推vps 传播; run_api.ps1 PROMOTION_PASSPHRASE 同串
轮换随后续步骤执行; git 历史旧明文按用户拍板不洗(私有内网仓)
Co-Authored-By: Claude Code <notify@anthropic.com>
|
2026-10-01 09:55:08 +08:00 |
|
claude_dev
|
0ba59fa776
|
ci(gate): pytest 门禁扩至 8 目录——补 tests/trader+backtest+data+orchestrator [nas]
CI/CD / test (push) Successful in 47s
CI/CD / nas-deploy (push) Successful in 5s
CI/CD / nas-verify (push) Successful in 7s
- 架构审计 P0-5 用户拍板「加」: 撮合/涨跌停/软限/持仓账本/shadow 引擎等
钱相关测试(原 4 目录外)进强制门禁——此前改坏撮合逻辑可带绿灯直推 NAS
- 前置实测: 四目录本地 venv310 339 passed 1 skipped 共 7.6s 零环境失败
(09-30 验收报告担心的 bullet_trade/polars 缺依赖属 tests/portfolio 语境,
与这四目录无交集)
- CLAUDE.md 限制行+three-env §12 门禁范围注同步(基建线档随码走);
workflow 改动已过本地 yaml.safe_load(§12.1-④纪律)
Co-Authored-By: Claude Code <notify@anthropic.com>
|
2026-10-01 09:48:12 +08:00 |
|
claude_dev
|
9eb58834b2
|
chore: zcode review 三修——①本地tag强制对齐远程c97f449+runbook增部署班次台账节(治注记滞后两轮循环) ②审计报告14件归档docs/archive/reports/audit_20260927入库(根目录4md+reports全目录,顺带堵手动promote带未跟踪件路径) ③CI pytest加tests/api第四目录(治盲区,189测17s) [nas] [no-doc]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 8s
|
2026-09-27 12:40:57 +08:00 |
|
claude_dev
|
fae3a94462
|
fix(ci): 闸门步骤名裸冒号修 YAML 解析失败——0141f4e 的 name: 里「三线唯一活文档: 域内」未加引号,workflow 整体解析挂,Gitea 静默不建任何 run(三笔 push 零 run 取证定位,CI 全瘫非单步红);name 加双引号;§12.1 加固记录补④=改 workflow 必先本地 yaml.safe_load 验过再推 [nas]
CI/CD / test (push) Successful in 35s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 8s
|
2026-09-14 20:01:39 +08:00 |
|
claude_dev
|
a18156ebf0
|
ci(docs): 设计档同步闸门加固三处——①[no-doc]锚定标题行尾(原子串匹配被闸门自身commit描述性提及误豁免,本地复算实锤)②闸门自我fetch BEFORE/AFTER(原依赖enforce-label的fetch副作用,步骤重排即静默no-op)③基建域补scripts/qmt_relogin/+bridge_switch_ops.py(runbook§4桥工具箱资产,当日桥工具修复曾零义务过闸);§12.1同步映射表与加固记录,runbook相关文档节补提交纪律指针 [nas]
|
2026-09-14 19:59:08 +08:00 |
|
claude_dev
|
0141f4e90e
|
ci(docs): enforce design-doc sync 闸门——三线唯一活文档档随码走(域内改动须同push更档,纯实现[no-doc]声明豁免);映射=因子sanguo_factor+factor前端+factor_topn/数据sanguo_data/基建nas_sync+workflows+docker;因子域反增md(只维护factor-system-design);fail-open闸门自伤一律放行;§12.1记录设计哲学(指令层管会做,机械层管不忘);本地仿真四历史push案例全符预期 [nas]
|
2026-09-14 19:45:37 +08:00 |
|
claude_dev
|
b2d12a4cf9
|
docs(ops): 唯二主文档定稿——发布=three-env-code-promote(收编impact-map触及面/标签判定为§12+前端构建发布§13)/运维=vps-production-runbook(收编unified-deploy三机角色/api env/web回测坑为§7);vps-unified-deploy+vps-impact-map收编后归档为墓碑;CLAUDE.md部署流程顶部立牌(任何部署运维发布知识只更新这两份,读也读这两份);ci-cd报错提示与pending文档引用改指§12(注:ci-cd.yml一行属nas) [vps]
CI/CD / test (push) Successful in 34s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 6s
|
2026-09-14 09:13:15 +08:00 |
|
claude_dev
|
cdaa88fea1
|
feat(web): 批量评估页——股票池/因子集/时间窗三步提交进任务中心;CI门禁加tests/factor [nas]
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 34s
CI/CD / nas-verify (push) Successful in 11s
|
2026-08-25 00:42:57 +08:00 |
|
claude_dev
|
136d087b34
|
test(ci): CI扩跑tests/portfolio+钉死测试归一——issue#35方案B,440组合引擎题进门禁 [nas]
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 27s
CI/CD / nas-verify (push) Successful in 2s
前置已消失:2197fea时点的13个Mac环境性失败,已被08-14 bullet_trade 0.9.2升齐+08-15补22个lock包
两次依赖治理顺带清零(本次实测440绿/1.74s,此前无人回头验收过);CI runner=本机Mac同venv310,本地绿即CI绿。
改动三件(不只加一行,用户点破冗余):
- 钉死测试迁至独立文件tests/portfolio/test_provider_method_surface.py:单一真相+保留
fail-not-skip牙齿。原位置挂模块级requires_bullet_trade mark,conftest会在bullet_trade
缺失时自动skip=钉死虚标(#35重演形态),必须移出mark覆盖面
- 删tests/data_platform/test_provider_method_parity.py(4aad65a方案A的复制版,
「两处同步改」人工契约随之消亡)
- ci-cd.yml pytest行扩为 tests/data_platform tests/portfolio
验证:组合跑(CI同款命令)=617 passed/2 skipped/6.07s(177+440,副本删除-1,迁移+1);
conftest合并无冲突;钉死测试在新位置实跑通过。
|
2026-08-22 22:51:57 +08:00 |
|
claude_dev
|
a58d9fd385
|
fix(ci): vps-deploy/workflow四雷根治(pipefail×3+ssh裸连+收尾非幂等+关issue不查gap)——issue#33基建工作包#1-#4 [nas]
CI/CD / test (push) Successful in 7s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 3s
pipefail+SIGPIPE 三处(本机复现rc=141确定性,run724根因):
- L82端口释放检测被反转(最危险): netstat大输出|grep -q命中即提前退出→上游tr吃SIGPIPE(141)→pipefail判整管道失败→走||分支谎报「已释放」→下一步/run撞10048竞态
- L91 API等待循环同雷=run724死因: 检测恒假→120轮耗尽exit1→收尾三步全跳过
- L98 /docs探活同族(输出仅3字节几乎不触发,顺手修)
修法: grep -q 'x' → grep 'x' >/dev/null(读完整流不提前退出,无SIGPIPE)
workflow内裸ssh全量补 -o ConnectTimeout=20(对齐vps_restart_resident.sh写法):
单次ssh挂死原会让整步无限冻结; vps-deploy.yml 9处+ci-cd.yml 2处(NAS)
收尾三步抽幂等脚本 scripts/ci/vps_finalize.sh(工作包#2):
- run681/715/724三实录: 部署本体成功但收尾被前序步骤失败整段跳过,只能人工拼三段补
- 现在workflow尾步自动调; 被跳过时Mac本机手跑即补: GTOKEN=<token> bash scripts/ci/vps_finalize.sh <部署的sha>
- 常驻重启失败不阻断tag/issue记账(代码已就位,末尾非零退出提醒); tag -f+push -f天然幂等; issue按真实gap开/关
关issue按真实gap(工作包#3,2026-08-21事故):
- 旧代码硬编码VPS_LOG=""无脑关issue——用户dispatch填旧sha(f28f9cf≠be315a0)漏推P0后,gap非空也关→用户误以为推完
- 修=finalize算vps-deployed..origin/master真实gap,非空则issue保持open并列剩余清单
- gap改按subject算(--format='%h %s'|grep,与enforce-label同定义): --grep匹配整个message,commit body里引用的命令文本会误命中(曾误开issue#7); ci-cd.yml check-vps-needed同步改
- vps_pending_check.py: GITHUB_SHA缺失时回退VPS_DEPLOY_SHA(支持Mac手跑); 有上轮部署sha时body加「仍未上VPS」警示
|
2026-08-22 22:33:24 +08:00 |
|
claude_dev
|
5211d5a6ed
|
fix(reconcile+ci): 双轨配对按instance_id精确配对+部署API等待帽10→20分钟——①配对v2:v1按策略名dict收敛,同策略多live(live#10/#11都是channel_test)后者覆盖前者→live#10漏配live#11双配,15:10日终对账配错对(VPS 8对舰队实测:live#11↔shadow#44/45两行,live#10无);修为instance_id+周期精确优先→同实例退而求其次→无instance回退策略名唯一/周期一致,宁缺毋错;+2回归测试(复刻VPS实况/同实例不同周期)②vps-deploy API监听等待60→120次(run681实录:19常驻进程负载下API启动>10分钟,workflow 10分钟帽误杀放弃,API最终正常起服——但跳过了常驻重启/tag/关issue三步);938绿 [vps]
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 8s
|
2026-08-16 22:45:42 +08:00 |
|
claude_dev
|
0d95de2fc2
|
fix(ci): 僵尸端口守卫ZPID提取行加||true兜底——run674实录:/end干净杀掉后端口已空,grep无匹配+set -e -o pipefail把整步炸在提取行,死在schtasks /run前→API停在半路(已手动/run救回);守卫逻辑不变,仅容忍空结果 [nas]
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 11s
|
2026-08-16 19:21:42 +08:00 |
|
claude_dev
|
d8d646fcd5
|
fix(#89+#90防线): 组合回测选实例不再预填标的池+vps-deploy僵尸API端口守卫——#89:prefillFromInstance删symbol_or_pool→form.pool预填(#86a定稿实例不选标的,老实例存的all不该悄悄改用户池选择;策略/max_pool/benchmark参数预填保留);#90防复发:API重启步在/end后netstat查8000持有PID强杀+端口未释放硬fail(2026-08-16实录uvicorn reload孤儿子进程17836跨两轮部署占端口,新实例静默抢不到,旧代码继续serve→500旧bug重现,人工taskkill+重拉后同请求200+task_id实证);build绿+yaml解析过 [nas]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 31s
CI/CD / nas-verify (push) Successful in 15s
|
2026-08-16 19:08:26 +08:00 |
|
claude_dev
|
bb934228db
|
feat(ci): vps-deploy末步自动重启常驻进程(supervisor/影子柜台)——根因:部署只推码+重启API,常驻python进程16h跑旧代码(2026-08-15实录);vps_restart_resident.sh:盘中保护(北京工作日09:15-15:30跳过防杀撮合现场)+动态查PID(账户号会变,name=python.exe+sanguo_live supervisor/sanguo_trader.shadow两模式,免wmic自匹配)+taskkill /F /T杀树带走runner_live/shadow子进程+schtasks重拉+120s验证≥2进程;用户2026-08-16要求部署自动化 [nas]
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 31s
CI/CD / nas-verify (push) Successful in 11s
|
2026-08-16 18:07:02 +08:00 |
|
claude_dev
|
c16c78aaf8
|
ci(vps-gate): vps-deploy加口令闸门(用户拍板): dispatch必填confirm=推vps,不符第一步fail; 前置=nas-verify绿+用户NAS验收+报待推清单+用户原话说「推vps」,不得代填/推断/沿用旧授权(2026-08-14两次违规教训固化); CLAUDE.md部署规则同步 [nas]
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 11s
|
2026-08-14 19:52:03 +08:00 |
|
claude_dev
|
8f184c9f2e
|
ci(vps-deploy): 纳入前端dist同步+API重启(治公网前端无管线手动步骤): Mac构建+tar+scp→VPS换dist(脚本入仓scripts/nas_sync,vps_update_dist.py); 重启加端口释放等待(防end→run竞态10048静默崩,今日实踩)+起服探活(上限10min) [nas]
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 29s
CI/CD / nas-verify (push) Successful in 12s
|
2026-08-14 10:06:54 +08:00 |
|
claude_dev
|
bf30283ac5
|
fix(ci): nas-verify 加 checkout(check-vps-needed 需 git log+脚本,原 job 只 curl/ssh 无代码) [nas]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 21s
CI/CD / nas-verify (push) Successful in 10s
|
2026-08-02 23:27:51 +08:00 |
|
claude_dev
|
67d1c1ef2f
|
ci(vps-gate): commit必打[vps]/[nas]标签+vps-deployed tag+待推issue [nas]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Failing after 4s
- ci-cd: enforce-label(本次push无标签→fail,merge豁免) + check-vps-needed(nas-verify绿后对比vps-deployed tag,有[vps]未部署→开issue)
- vps-deploy: 成功打vps-deployed tag + 关issue(gap清空)
- scripts/ci/vps_pending_check.py: issue开/关/更新(CI复用)
- docs: vps-impact-map触及面表 + vps-deploy-pending判定记录
- CLAUDE.md: 部署流程段补标签约定
|
2026-08-02 23:25:40 +08:00 |
|
claude_dev
|
ca0ec016f9
|
ci(nas-verify): 加 /health gate 防存活探针回归
CI/CD / test (push) Successful in 8s
CI/CD / nas-deploy (push) Successful in 21s
CI/CD / nas-verify (push) Successful in 3s
/health 是 Docker HEALTHCHECK 依赖端点,后端漏实现致容器恒unhealthy
(a17f291 已补端点)。nas-verify 加 gate:/health 非200→CI 红灯,防漏部署/被改坏。
public 端点无需 token,$BASE 已是 http://192.168.2.154:8000。
反馈: 前后端 session
|
2026-08-01 21:07:34 +08:00 |
|
claude_dev
|
83e5c73a8f
|
fix(ci): nas-verify login 字段名 token(非 access_token,实测响应 {token:...})
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 20s
CI/CD / nas-verify (push) Successful in 3s
|
2026-07-31 15:18:53 +08:00 |
|
claude_dev
|
6731fc35bf
|
fix(ci): nas-deploy rsync 前cd..回根(build合并在cd frontend step里,rsync frontend/dist/需在workspace根)
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Failing after 1s
|
2026-07-31 15:16:32 +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
|
6e7179eb24
|
feat(ci): CI加前端build+部署NAS闭环(nas-frontend job)
CI/CD / test (push) Successful in 9s
CI/CD / nas-smoke (push) Successful in 1s
CI/CD / nas-frontend (push) Failing after 3s
CI/CD / vps (push) Has been skipped
新增 nas-frontend job(checkout→npm ci→npm run build→rsync dist 到 NAS homes/admin/frontend/dist),与 nas-smoke 并行;vps job 改 needs[nas-smoke,nas-frontend]。打通.vue 改动→push→CI 自动 build→NAS web 自动生效闭环(此前前端 dist 被 gitignore+promote.sh 无 frontend+workflow 无 build,CI 对前端完全断)。复用 Mac runner node v26/npm,HOME=/Users/chufeng 复用 ~/.npm cache。VPS 无 web 不部署前端。容器 bind mount homes/admin->/app,放挂载源即生效,无需改 Dockerfile。
|
2026-07-31 13:35:19 +08:00 |
|
claude_dev
|
22841e63d6
|
fix(ci): nas-smoke改查replica dbbardata避docker挂载覆盖/app entrypoint
CI/CD / test (push) Successful in 9s
CI/CD / nas-smoke (push) Successful in 2s
CI/CD / vps (push) Successful in 23s
|
2026-07-30 22:05:01 +08:00 |
|
claude_dev
|
fe28299171
|
fix(ci): pytest用venv310绝对python+限定data_platform冒烟(fastapi缺绕开api)
CI/CD / test (push) Successful in 10s
CI/CD / nas-smoke (push) Failing after 21s
CI/CD / vps (push) Has been skipped
|
2026-07-30 21:45:47 +08:00 |
|
claude_dev
|
51f14caf46
|
fix(ci): 绕过github action(git fetch Gitea本仓库)+HOME恢复Mac环境+local禁proxy
CI/CD / test (push) Failing after 8s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped
|
2026-07-30 21:40:49 +08:00 |
|
claude_dev
|
d31dd5e159
|
fix(ci): 清除git代理(LAN Gitea不走ClashX 7890)修checkout失败
CI/CD / test (push) Failing after 45s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped
|
2026-07-30 21:16:38 +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 |
|