3 Commits
Author SHA1 Message Date
chakcy ac8b563c7d fix: --encrypt/--license 构建链修复(网关收集项、[license] 注入点、契约测试)
- config.toml:--encrypt 会先 PyArmor 混淆 main.py / server.py,PyInstaller 静态
  分析跟不到里面的 `from chongming.app import app`,网关包整个漏收(打包"成功"、
  产物启动即报 No module named 'chongming')—— 收集清单显式列出 chongming /
  chongming.app 等入口包,注释也从"静态分析可跟到"改准;
- public/config.toml:补 [license] 段(public_key 留空),--license 的注入点,
  缺了会在 prepare 阶段报"未找到 [license] 段的 public_key";
- README:补 --license 的公钥前置条件(keygen → license_public.key 或环境变量);
- test_build_flags.py:4 条契约守卫 —— 真实模板/骨架可注入 [license]、收集清单含
  网关入口包、加密包密钥写进包内且按运行端口径(get_key())可导入。此前用例都
  自造 config.toml,这两类模板漂移测不出来。

实测(device-hub):修复前 --encrypt --license 产物启动报错;修复后网关启动、
授权校验通过、插件从加密 mbank 正常加载、HTTP 正常返回。
2026-10-14 15:29:29 +08:00
chakcy 774f44f830 test: 构建开关测试适配授权烘焙(--license 可选、缺公钥不再出砖头包)
prepare 现在把"是否为授权版"烘焙进 chongming/_build_flags.py:
- 默认(不加 --license):断言烘焙 enforce=False,产物不校验、插件照常加载
- --license 缺公钥:仍断言构建失败;ALLOW_NO_KEY=1 放行时断言降级为非授权版
- --license + 公钥:改用合法的 base64 Ed25519 公钥(构建期会校验格式),
  断言注入 config.toml 之外还烘焙了 enforce=True + 公钥 + 指纹,且生成物是
  合法 Python;新增非法公钥应终止构建的用例
- 测试结束恢复构建 venv 内的烘焙标记(不留副作用)
2026-10-14 10:57:14 +08:00
chakcy 4cdb9c7049 add: 补充回归测试(build 开关/资源档位、日志 fork、插件迁移与依赖清单、父进程死亡、worker 疑似失联) 2026-10-13 17:29:38 +08:00