diff --git a/docs/project-memory/todos/【待办】计划收口剩余项索引-2026-09-24.md b/docs/project-memory/todos/【待办】计划收口剩余项索引-2026-09-24.md index b7c52e6b1..c78b1a9f6 100644 --- a/docs/project-memory/todos/【待办】计划收口剩余项索引-2026-09-24.md +++ b/docs/project-memory/todos/【待办】计划收口剩余项索引-2026-09-24.md @@ -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/`、清空 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`。