把人工门禁的「本机必然红」与「真缺陷」分开并写入索引
Project CI / AI game creator shell Rust crates (push) Successful in 1m13s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m47s
Project CI / Backend tests (push) Successful in 3m44s
Project CI / Frontend tests (push) Successful in 1m57s
Project CI / Native shell tests (push) Successful in 5m48s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m51s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m12s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m19s

- 逐条探红:check:nginx-pingora-canary(无 nginx 时明示降级为静态检查)、check:pingora-canary-live-guard、check:pingora-direct-live-guard、check:production-health-patrol-env 全绿
- check:pingora-release-readiness-plan 红:门禁的 assertAbsoluteScriptArg 要求 POSIX 绝对路径(/opt/genarrative/current/scripts/...),Windows 必然失败,属 Linux/CI 专属门禁
- check:api-server-env 红:本机 .env.local 只有 LLM_API_KEY / DASHSCOPE_*,缺 TIANTOKEN_BASE_URL/API_KEY 与阿里云抠图 AccessKey,属本机环境缺口(与 ExternalV1 计划里已记的结论一致),不是代码问题
- 两条结论写入开放事项索引第五节,避免后续重复追查
This commit is contained in:
kdletters
2026-09-29 07:54:39 +08:00
parent 4f47343108
commit c2a3cafe77
@@ -60,6 +60,9 @@
- **2026-09-29 重新盘点(现行口径)**:`docs/project-memory/plans/` 共 **81 份**文件,行首 `- [ ]` 未勾选共 **15 条**,分布在 **8 份**计划里——第二节 11 条(macOS 节点 3:`AGC macOS渠道更新落地`;桌面会话 6:更新插件 1 + 渠道安装身份隔离 1 + DirectProject 2 + 多选素材 1 + 画布 1;真实 Provider 2:对话计时 1 + 画布 1)+ 第三节游戏分发 4 条;第一节的占用锁计划用编号式验收标准,不计入复选框口径。其余计划的复选框都已清零,但多数状态仍写着 `implemented-awaiting-runtime-acceptance`,等待的是签收或真机/生产证据(逐份见第二节的「已无未勾选条目」表)。下面的 2026-09-24 数字都是当时快照,保留供对照。
- **2026-09-29 广度回归与门禁接线审计**:`npm test`(全量 JS/TS,CI 与 pre-push 都不跑这一条)→ **423 文件 / 4482 passed / 26 skipped**(对比 2026-09-24 的 417 / 4396,增量为期间新增用例)。`check:*` 门禁共 **80 个**,其中 **53 个自动可达**(`npm run lint` / `check:repository-ci` / CI 工作流 / pre-push / husky / Jenkins 之一能调到),**27 个**属生产、凭据或环境依赖型的人工门禁(Pingora 切换族、微信支付族、数据库备份、外部生成 smoke、AGC 夹具、游戏分发 E2E、`check:pre-push-master` 自身等)。审计方法:从上述入口出发递归展开 package.json 里的 `npm run X` 与 `node|bash scripts/…` 引用。
- **2026-09-29 人工门禁逐条探红结果(把「本机必然红」和「真缺陷」分开)**:Pingora 家族里 `check:nginx-pingora-canary`(本机无 nginx 时降级做静态检查并明示,exit 0)、`check:pingora-canary-live-guard`、`check:pingora-direct-live-guard`、`check:production-health-patrol-env` 都**绿**;两条红的是环境条件而非缺陷——
- `check:pingora-release-readiness-plan`:门禁里的 `assertAbsoluteScriptArg()` 要求参数以 `/` 开头并包含 `/opt/genarrative/current/scripts/...`,即**断言 POSIX 绝对路径**,Windows 上必然失败(本机夹具用的是符号链接,符号链接本身可用)。请把它当 Linux/CI 专属门禁(与 `check:pingora-release-readiness` 同类)。
- `check:api-server-env`:本机 `.env.local` 只配了 `LLM_API_KEY` / `DASHSCOPE_*`,没有 `TIANTOKEN_BASE_URL` / `TIANTOKEN_API_KEY`(以及阿里云抠图 AccessKey),所以「编辑器真实生成配置检查」判红——**这是本机环境缺口,不是代码问题**,同一结论已记在 `【实施计划】ExternalV1游戏场景生成路由-2026-09-24.md` 的「仍未取得」里(该计划的本地受理 smoke 因此在本机不具执行条件)。
- **已关闭(2026-09-29)两处路由漂移**,按 `docs/project-memory/README.md`「todos 只留真实开放事项」的规则,两份待办文件已删除,结论与证据保留在这里和权威文档里:
1. **主站 SPA allowlist 与前端路由源不一致**:nginx 侧 5 条 `/games*` 随 `87e52860a` 补齐;本轮补上漏掉的 Pingora 侧——`MAIN_SPA_PATHS` 5→12 条、矩阵新增 `games_spa_fallback`(`/games/detail`)用例、Pingora 试点文档表同步。`check:nginx-spa-routes` OK(12 路由 / 3 模板)、`check:pingora-route-parity` OK(23 路由)、`cargo test -p pingora-gateway matches_nginx_route_parity_matrix` 1 passed(变异验证:拿掉 `/games/detail` 或改错矩阵期望立刻变红)、网关全量 39 passed;dev 与生产上 `/games`、`/games/detail`、`/games/play`、`/games/mine`、`/games/publish` 实测 200 + SPA 外壳。
2. **Pingora 缺发行网关路由**:三份 nginx 模板早就把 `/games/game_<32 位十六进制 id>/…` 代理到发行网关(清 Cookie),Pingora 没有对应分支,切流后「立即玩」会 404。本轮实现 `RouteDecision::ReleaseGateway`(重写上游路径到 `/api/game-distribution/releases/<gameId><asset>`、清空 Cookie、不进 SPA fallback、不套接流保护、不受维护闸拦截),矩阵补 `games_release_gateway`(含 `upstreamPath` 期望)用例;`check:pingora-gateway-smoke` 新增三条断言(重写+清 Cookie、`/games/detail` 仍走 SPA、`/games/game/index.html` 仍真实 404)并通过。口径与三处真相源已写入 `docs/technical/【开发运维】Pingora独立网关试点-2026-06-11.md` 与 `pitfalls.md`。