From 70e3fda184cfa5a2f52e6d68dcde6c8a9dfa8da2 Mon Sep 17 00:00:00 2001 From: jesse-ux Date: Wed, 11 Nov 2026 17:47:31 +0800 Subject: [PATCH] docs(task): record #183 rework verification --- .../PROGRESS-d9-reference-guard-20261111.md | 50 ++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/docs/tasks/PROGRESS-d9-reference-guard-20261111.md b/docs/tasks/PROGRESS-d9-reference-guard-20261111.md index 26835b8b..cc10a8da 100644 --- a/docs/tasks/PROGRESS-d9-reference-guard-20261111.md +++ b/docs/tasks/PROGRESS-d9-reference-guard-20261111.md @@ -160,5 +160,51 @@ `node node_modules/tsx/dist/cli.mjs --test --test-concurrency=2 tests/consult-varga-house-reference-1826.test.ts tests/consult-answer-fact-guard-1789.test.ts tests/consult-fact-guard-stream-1789.test.ts tests/consult-yoga-status-wording-1825.test.ts` 共 43 项,0 失败、0 取消。包括原误写仍恰好产生一条不符的断言,既有断言未改。 -本机全量、类型检查、lint 与生产构建待补。1844 份回答的原回放材料位于独立验收环境, -同一套回放由验收侧复跑。 +- Gitea [门禁 7152](https://git.copse.top/root/Jyotisha/actions/runs/7152) 对返工代码 + `e5e087daf` 通过。前端全量 3644 通过、0 失败、0 取消,Python 验证任务通过。 +- 本机 `npm test -- --test-concurrency=4` 退出码 1,3614 通过、30 失败、0 取消。当前 + staging 与初次执行时的前端 Git tree 完全相同。对照同机 staging TAP 名录,3611 个 + 既有顶层测试名全部保留,本分支新增 13 个,其中本次返工新增 4 个。30 个失败里 29 个 + 与基线重合。数据库身份隔离用例在共享夹具目录报 `EPERM`,改用独立临时目录单独重跑 + 通过。Windows 全量启动后补了一个冒号歧义断言,最终代码已由四个定向套件和 Gitea + 全量覆盖。 +- TypeScript `--noEmit` 和生产构建通过,首页 `/` 保持 Static。首页直接引用的 36 份 JS + 合计 515086 字节 gzip,与 staging 基线相同。ESLint 0 error、62 warnings,隐私检查 + 62 项通过。 +- 1844 份回答的原回放材料位于独立验收环境,同一套回放由验收侧复跑。 + +
+本机首次全量的 30 个失败名 + +- `operation-level admin email reauthentication is removed from routes and UI` +- `a lookup does not reset the answer clock: the same 70 s signal bounds the whole answer phase` +- `the answer clock cutting the answer step mid-sentence is truncated, recorded and not charged` +- `service and restricted admin database identities stay separated` +- `staging backups are encrypted, atomic, private, and retain the newest three` +- `rejects destructive backup directory aliases and symlink components before mutation` +- `rejects unsafe writable backup parents before creating the target` +- `rejects a direct canonical sticky shared backup directory before chmod` +- `creates every absent backup path component privately despite a permissive caller umask` +- `same-second backups publish once without overwriting the completed archive` +- `find enumeration failures preserve existing backups and do not report completion` +- `refuses full disks and removes a failed-pipeline partial file` +- `database env validator accepts punctuated literal required secrets` +- `database env validator enforces an explicit staging owner uid without printing values` +- `database env validator accepts a private valid file without printing values` +- `personal report job migration is atomic, lease-bound, recoverable, and owner read-only` +- `personal report sections enforce owner-read RLS and service-owned durable transitions` +- `staging model provider env preparation removes legacy settings and keeps one stable key` +- `staging env validator rejects selector drift, duplicates, and unsafe permissions` +- `production env validators accept only self-hosted production selectors and role URLs` +- `immutable Skill migration enforces RPC-only identity, legacy adoption, and cascade-safe receipts` +- `importing the registry creates no runtime directory` +- `a used runtime root is removed when the process exits` +- `changed staging workflows are syntactically valid YAML` +- `live staging sync preserves env, state, incoming files, and encrypted backups` +- `live staging sync repairs nested deploy-tree drift without preserving foreign ownership` +- `first immutable deployment rolls back to validated local image IDs` +- `deployment scripts pass shell syntax validation` +- `is-docs-only-range.sh decides from local history and refuses non-ancestor ranges` +- `bounded npm install distinguishes forced timeout, OOM, and unknown failure and cleans its container` + +