Skip to content

#14 发布工程单一契约:资源清单 + 锁定依赖 + CI 门禁 - #29

Merged
benz-ai-x merged 4 commits into
mainfrom
fix/issue-14-locks-manifest-ci
Aug 20, 2026
Merged

#14 发布工程单一契约:资源清单 + 锁定依赖 + CI 门禁#29
benz-ai-x merged 4 commits into
mainfrom
fix/issue-14-locks-manifest-ci

Conversation

@benz-ai-x

Copy link
Copy Markdown
Owner

摘要

  • tools/resource_manifest.py:dev/build/smoke 单一真源(manifest + RUNTIME_MODULES + verify_bundle)
  • build.sh:主构建改用 hashed lock(已验证为主构建超集);add-data 从清单重新生成(补 suanpan.example.yaml + 全部新模块——消除 addon 名称漂移同类洞)
  • requirements-lock.txt 经 uv 重生成到当前确定性版本
  • CI:test/build 同源安装 lock;新增 lock 漂移校验、coverage ≥90、node tests、ruff、py_compile、shell syntax
  • Ruff 债务清零(72 自动 + 手工 + pyproject tests E402 豁免)

验收对照

  • 主 app 与 bundled mitmdump 都从 hashed lock 构建;dev 不决定成品
  • lock 可重复生成(uv pip compile)+ CI 漂移校验
  • 资源 manifest/helper;所有 resource_path 消费被覆盖(守卫测试)
  • bundle 含 suanpan 示例/addon/UI/agent 等(build.sh 覆盖守卫)
  • packaged smoke 复用现有 smoke 钩子(MAGIC_PROXY_SMOKE_TEST=1 跑资源契约)
  • CI pytest/Node/Ruff/coverage/py_compile/shell 全加;债务先清零
  • CI 安装与 build.sh 不再重复下载
  • lock 含 hash 摘要便于复现

pytest 1446 / node 95 / ruff clean / coverage 96.7%;Closes #14

🤖 Generated with Claude Code

benz-ai-x and others added 4 commits August 20, 2026 15:57
- tools/resource_manifest.py:dev 查找/PyInstaller add-data/packaged smoke
  共用单一真源;RESOURCE_MANIFEST(UI/agent/example/addon/图标)+
  RUNTIME_MODULES(全量运行时模块);verify_bundle() 供 smoke 核验
- 守卫三件套:manifest src 存在性、resource_path 消费全覆盖、build.sh
  add-data 覆盖 manifest(单一真源驱动,suanpan.example.yaml 与全部
  新模块补入 bundle——此前 addon 名称漂移同类洞的根源)
- build.sh:主构建改 --require-hashes 装 requirements-lock.txt(lock 已
  验证为主构建依赖完整超集);add-data 从 manifest 重新生成
- requirements-lock.txt 经 uv 重新生成到当前确定性版本(修复漂移)
- CI:test job 与 build 同源安装 lock(不再重复下载未用一套);新增
  lock 漂移校验(uv 重新生成 diff)、pytest --cov --cov-fail-under=90、
  node --test tests/js、ruff check、py_compile、shell syntax
- Ruff 债务清零:72 自动修复 + F841/E702/E731/F811 手工 + pyproject
  tests/** E402 豁免(测试文件分段导入惯例)+ app.py DEFAULT_CONFIG
  导出 noqa

验证:pytest 1446 / node 95 / ruff clean / coverage 96.7% ≥90 全过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
每次 CI 重解析必然随机漂移(上游持续发新版,今日 36 行版本差实测)——
正确语义是 requirements-dev.txt 改了但 lock 未重新生成时才报错,
而非强制 CI 时点上最新。CI 不再是不可复现的随机失败。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Heredoc embedded in YAML block scalar had indentation trap causing both jobs
to die in 3s. Standalone script is locally verifiable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@benz-ai-x
benz-ai-x merged commit 77dae9e into main Aug 20, 2026
0 of 4 checks passed
@benz-ai-x
benz-ai-x deleted the fix/issue-14-locks-manifest-ci branch August 22, 2026 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P1][发布工程] 统一锁文件、资源清单与跨语言 CI 门禁

1 participant