diff --git a/deploy/komodo/lingxiloop-app-a/compose.yml b/deploy/komodo/lingxiloop-app-a/compose.yml
index 0e24a0911..77d559f3c 100644
--- a/deploy/komodo/lingxiloop-app-a/compose.yml
+++ b/deploy/komodo/lingxiloop-app-a/compose.yml
@@ -7,7 +7,7 @@ x-logging: &logging
max-file: "3"
x-runtime: &runtime
- image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:c132e9f20b3df1873792618ed3f3bfe8be2be00e
+ image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:b76c4cc00f545ddbca27bced6628e1ed191e6777
pull_policy: always
restart: unless-stopped
environment: &runtime-environment
@@ -106,7 +106,7 @@ services:
worker:
<<: *runtime
- image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:e1fe01c5d82d1553a9cc0f9d81d9e7d92898708d
+ image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:b76c4cc00f545ddbca27bced6628e1ed191e6777
environment:
<<: *runtime-environment
NODE_OPTIONS: --max-old-space-size=640
diff --git a/deploy/komodo/lingxiloop-app-b/compose.yml b/deploy/komodo/lingxiloop-app-b/compose.yml
index f0082fad3..ea75a852f 100644
--- a/deploy/komodo/lingxiloop-app-b/compose.yml
+++ b/deploy/komodo/lingxiloop-app-b/compose.yml
@@ -7,7 +7,7 @@ x-logging: &logging
max-file: "3"
x-runtime: &runtime
- image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:c132e9f20b3df1873792618ed3f3bfe8be2be00e
+ image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:b76c4cc00f545ddbca27bced6628e1ed191e6777
pull_policy: always
restart: unless-stopped
environment: &runtime-environment
@@ -106,7 +106,7 @@ services:
worker:
<<: *runtime
- image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:e1fe01c5d82d1553a9cc0f9d81d9e7d92898708d
+ image: accel.way2api.fun/ghcr.io/lingxi-org/lingxiloop-server:b76c4cc00f545ddbca27bced6628e1ed191e6777
environment:
<<: *runtime-environment
NODE_OPTIONS: --max-old-space-size=640
diff --git a/docs/evidence/release-20261019/COMMANDS.md b/docs/evidence/release-20261019/COMMANDS.md
new file mode 100644
index 000000000..be7b97f49
--- /dev/null
+++ b/docs/evidence/release-20261019/COMMANDS.md
@@ -0,0 +1,42 @@
+# 复验命令索引(本次整理未执行)
+
+命令来自已完成的验收记录。先检出各记录中的精确源提交并使用精确官方 3.5.3 包。集成 runner 会清理测试数据,必须使用专用空测试数据库和独立 Redis;合成环境值、缓存绝对路径与凭据不包含在公开包中。设置 DOTENV_CONFIG_PATH 禁用真实环境文件载入,停用非目标 live provider;网页与浏览器也使用隔离 fixture。以下不含安装、部署或发布命令。
+
+问卷:
+
+```bash
+node server/run-integration-tests.mjs --file questionnaire-wait.test.ts --file im-conversation-style.test.ts --file native-message-flow.test.ts --file native-message-approvals.test.ts --file im-send-reconciliation.test.ts --file interactive-ui-disabled.test.ts --file migration.test.ts
+node scripts/run-tests.mjs server
+CI_TEST_FILES='["src/api/questionnaires.test.ts","src/features/chat/runtime/error-recovery.test.ts","src/features/chat/runtime/history-loading.test.ts","src/features/chat/runtime/run-updates.test.ts","src/features/chat/runtime/transport.test.ts"]' node scripts/run-tests.mjs web
+npm run server:typecheck
+npm run server:lint
+npm run typecheck
+npm run test:e2e:typecheck
+NODE_ENV=production node node_modules/vite/bin/vite.js build --config e2e/vite.questionnaire.config.ts --mode questionnaire-test
+```
+
+启动该新构建的隔离 preview 后,将 E2E_BASE_URL 绑定到它,设置 E2E_PROJECT=web、E2E_TELEMETRY_DISABLED=1、E2E_BUILD_INDEX=.e2e/questionnaire-site/e2e/questionnaire.html,并使用已缓存的官方浏览器执行:
+
+```bash
+node e2e/web/run.mjs e2e/web/questionnaire.e2e.ts --output .e2e/pr190-official-3.5.3
+```
+
+案例与论坛:
+
+```bash
+node docs/evidence/issue-187/live-case-agent/run.mjs owning organization-cases.test.ts knowledge-vertical-slice.test.ts attachment-answers.test.ts migration.test.ts
+node docs/evidence/issue-187/live-case-agent/run.mjs live
+node e2e/server/cases.mjs --browser-only
+node e2e/server/forum.mjs --browser-only --issue184
+node e2e/server/forum.mjs --browser --issue187
+```
+
+Provider(首轮、独立单项分别记录;真实模型命令需已有授权凭据绑定,不能在无授权时自动执行):
+
+```bash
+node scripts/runtime-acceptance/provider-fault-matrix.mjs
+node scripts/runtime-acceptance/provider-fault-matrix.mjs runtime-deadline-recovery.test.ts
+node --use-env-proxy e2e/server/model-switch.mjs --live
+```
+
+本包不携带真实凭据或 live 消息。四次模型调用和 usage 成本仅引用验收摘要。
diff --git a/docs/evidence/release-20261019/README.md b/docs/evidence/release-20261019/README.md
new file mode 100644
index 000000000..ba9768388
--- /dev/null
+++ b/docs/evidence/release-20261019/README.md
@@ -0,0 +1,30 @@
+# 2026-10-19 预发布验收证据
+
+`@lyyzka/lingxios@3.5.3` 已正式发布,registry gitHead 为 `59be37b141f41798ec03b2fffabb824d3ef50e36`。[runtime CI](https://github.com/LingXi-Org/LingxiOS/actions/runs/39240936281) · [发布流程](https://github.com/LingXi-Org/LingxiOS/actions/runs/39241356024)。精确包 integrity:
+
+```text
+sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==
+```
+
+产品 PR #185、#188、#192、#191、#190、#189 已合并,最终 main 为 `b76c4cc00f545ddbca27bced6628e1ed191e6777`。本预发布证据快照创建时,[最终 main CI 39243667498](https://github.com/LingXi-Org/LingxiLoop/actions/runs/39243667498) 仍在运行,本包不宣称它已通过。生产部署尚未发生;后续发布结果以发布 PR 的最终回执为准。
+
+| 验收 | 实际结果 | 证据 |
+| --- | --- | --- |
+| 问卷与相关消息、迁移 | 66/66(36 + 30);server 107/107;web 92/92;browser 8/8,均零跳过 | [validation](questionnaire/validation.json)、[browser report](questionnaire/browser/report.json)、[JUnit](questionnaire/browser/junit.xml) |
+| 案例相关集成与合成 live fixture | 52/52、1/1,零跳过 | [summary](cases/summary.json)、[实际 runtime](cases/actual-runtime.json)、[依赖一致性](cases/physical-dependencies.json) |
+| 案例浏览器 | 2/2,零跳过 | [report](cases/results/cases/browser/report.json)、[JUnit](cases/results/cases/browser/junit.xml) |
+| 论坛 #184 / #187 | browser 3/3 + 1/1;论坛集成 10/10,零跳过 | [#184 report](cases/results/forum184/browser/report.json)、[#187 report](cases/results/forum187/browser/report.json)、[summary](cases/summary.json) |
+| Provider 矩阵首轮 | 13/14;1 失败,0 跳过 | [首轮摘要](provider-acceptance/20261019T110518Z/matrix-summary.json) |
+| Deadline 单项独立复验 | 1/1;未改变阈值,未重跑全矩阵,付费调用 0 | [单项摘要](provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json) |
+| 真实模型验收 | 1/1;4 次成功调用(Agent 3、host helper 1) | [live summary](provider-acceptance/20261019T110518Z/live-summary.json)、[完整公开说明](provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md) |
+| PR 级 CI 集成结果 | PR190:269 pass / 21 门控 skip;PR189:281 pass / 21 门控 skip | [release state](release-state.json),由发布主会话报告;不等同最终 main CI |
+
+上述专项不是在最终 main 上新增重跑:问卷源提交为 `05b6fd2ed9ee53ed5c1fb07e29ba7dc730899878`,案例与 provider 源提交为 `ef594b8b8f0091d49ac4d618d2c221bdc54f617a`。各文件保留精确提交与包完整性,不能把分支验收改称最终 main 验收。
+
+Provider 首轮的 100ms deadline 用例观察到请求数 0,而预期为 1。单项复验后来通过;首轮仍记为 13/14,不能合并写成 14/14。真实模型总 usage × 测试 tariff 为 **USD 0.00405601**,不是供应商扣费收据。Agent root 的预算不覆盖 host helper;总额限制是运行后的账本断言。[最终 provider 汇总](provider-acceptance/FINAL-SUMMARY.json)保留这一边界。
+
+执行历史单独保留:[问卷](questionnaire/execution-attempts.json)首轮因输出目录参数被拒绝,exit 2、执行 0 个测试;修正后 8/8。[案例](cases/execution-attempts.json)首轮浏览器缓存不匹配,执行 0 个测试;下一轮虽有 2 个功能用例通过,但字体访问失败,不算最终视觉验收;随后使用内容相同的物理依赖副本完成最终浏览器验收。浏览器报告中的原始 VCS dirty 标志保留;最终工作树恢复状态另见 summary,不改写当时观测。
+
+四个历史 issue #153、#155、#157、#161 仍待最终耐久性及完整 Worker–SPA 边界验收。旧 **3.5.1** soak 的 **797** 个样本、**47829.58 秒**仍是未完成记录,不能改称通过,也不能迁移归属到 3.5.3。案例 embeddings 使用合成常量 1024 维向量,未验证真实语义排序;真实模型那一轮也不替代这些待验边界。
+
+[命令与环境边界](COMMANDS.md) · [核心截图索引](SCREENSHOTS.md) · [来源与变换记录](SOURCE-MANIFEST.json) · [本包 SHA-256](SHA256SUMS.json)。浏览器 report.json 是明确标注的精简公开投影,保留选择用例与结果;原始输入文件哈希可用于溯源。JUnit 与 7 张核心截图按字节保留。未纳入原始 live 对话、账单内容、网络/控制台记录、私有操作日志及历史归档目录。
diff --git a/docs/evidence/release-20261019/SCREENSHOTS.md b/docs/evidence/release-20261019/SCREENSHOTS.md
new file mode 100644
index 000000000..0ffb7bd92
--- /dev/null
+++ b/docs/evidence/release-20261019/SCREENSHOTS.md
@@ -0,0 +1,17 @@
+# 核心截图
+
+全部为隔离合成 fixture,已目视检查。仅保留 7 张代表截图;源报告中的截图总数描述完整原始验收,并非本包数量。
+
+- [问卷:显式重试后原答案保持只读](questionnaire/questionnaire-resume-retry.png)
+
+- [cases: 001-student-editorial-grid-light.png](cases/results/cases/screenshots/001-student-editorial-grid-light.png)
+
+- [cases: 004-mobile-dark-single-column-keyboard.png](cases/results/cases/screenshots/004-mobile-dark-single-column-keyboard.png)
+
+- [forum184: 003-issue184-light-1440-editor-materials-open.png](cases/results/forum184/screenshots/003-issue184-light-1440-editor-materials-open.png)
+
+- [forum184: 022-issue184-dark-390-focus-long-body.png](cases/results/forum184/screenshots/022-issue184-dark-390-focus-long-body.png)
+
+- [forum187: 002-forum-scope-navigation-390.png](cases/results/forum187/screenshots/002-forum-scope-navigation-390.png)
+
+- [forum187: 003-forum-scope-composer-mobile.png](cases/results/forum187/screenshots/003-forum-scope-composer-mobile.png)
diff --git a/docs/evidence/release-20261019/SHA256SUMS.json b/docs/evidence/release-20261019/SHA256SUMS.json
new file mode 100644
index 000000000..3e8ae208b
--- /dev/null
+++ b/docs/evidence/release-20261019/SHA256SUMS.json
@@ -0,0 +1,44 @@
+{
+ "COMMANDS.md": "ba98a3336346b412a8d3d5ca6e70bc4cf949b1e2276eb95bc372538c9d9664c2",
+ "README.md": "b3b3e39cb20e23df4741962256cd244a1977edc4b41045b3b59cbb0876866553",
+ "SCREENSHOTS.md": "1436b4c6174d6661b0c455676205fbb039571aeb0478e5161a0279dfc0dd5d6d",
+ "SOURCE-MANIFEST.json": "866d3fe098596843d05185d3c8966cb404f336c7286b9ec4474daaedd67dfd02",
+ "cases/actual-runtime.json": "ca840215bf24cf06878846c230d65fbb4669f09169a51113386d9fd6b47887de",
+ "cases/cases.json": "2fdb3623d774017e92abdc2a8593597a99af20f71584f53e3f22d956bd0a50af",
+ "cases/execution-attempts.json": "2eb74eac1e93a6dcb6ed8512b807559d8daa9b48e3c68f07df9b4d06c43b6ce4",
+ "cases/forum184.json": "94c02630e957dc8fb6c6b0ffa965d97714cb1d526ed704e09dfa6d3d56626aed",
+ "cases/forum187.json": "bde990c470d5aa128f67ae0915068aacebaa13c1e3a9a56a1ad42e09bea087b6",
+ "cases/live.json": "0cef4bc3442f67f7ed3e8800719f6468a7c47be6a7ad7ad676def3a79c634d65",
+ "cases/owning.json": "338b7d5efc8ce599aa6a8fac3393b9d885548ec13c46616cf2a96ca28416affc",
+ "cases/physical-dependencies.json": "26e5dfbb80919b536b78cfbbb3aa045234b1a104caad2776c9527eebecc8b7a6",
+ "cases/results/cases/browser/junit.xml": "dddda04aecade810861934a2eaf56a1b538cabfa24f26b3536005bf2dd20cabe",
+ "cases/results/cases/browser/report.json": "3a0eb90e1c75e998f406a2d7ccd464f86b24a931165e290db74b4a028e6e71b5",
+ "cases/results/cases/browser-results.json": "c8c4141a9ae01e9e4f3715db7e85965efc553e67588f88be3e5b96248680671d",
+ "cases/results/cases/screenshots/001-student-editorial-grid-light.png": "9ddad2f8e2734ebfb58abf9937c851edc750669e3e0428c5b092cbdad8d55f74",
+ "cases/results/cases/screenshots/004-mobile-dark-single-column-keyboard.png": "76ce10b919e64e0f8d318fa1b6ea10a44a8fdf1a1601f240124fcb0517dd77e5",
+ "cases/results/forum184/browser/junit.xml": "1dfb534d214cf48af49bd3639a71cf004e5ab6581949ab59f53ab6086c802a48",
+ "cases/results/forum184/browser/report.json": "6a1fa56d017db4f805e562798924ea18bee5ab35ab8f0231d5f911f8b6c5f79a",
+ "cases/results/forum184/browser-results.json": "79aa1c5c7de9842ace64b0ce571868d49c8415cdf2e9f4cfd75b2ddd8971864a",
+ "cases/results/forum184/screenshots/003-issue184-light-1440-editor-materials-open.png": "423725704d57b65a92107c8798eefeb100914e0d8e2fc043428c382dec3c4791",
+ "cases/results/forum184/screenshots/022-issue184-dark-390-focus-long-body.png": "6874e3a0a23123480a6d8562c54e0e412c040575567d940deda5f6d873084623",
+ "cases/results/forum187/browser/junit.xml": "1736a652e1c4a73e67c2dadd4c4c9077adff22583ebfc254918cece1d98f2ed6",
+ "cases/results/forum187/browser/report.json": "ffad231ceb10ef22459c0ab22ff51da14ecdbd4c3ead03eaaf6516c844fd884d",
+ "cases/results/forum187/results.json": "74edd673edf3aec092c8ac332696196b1128be8e042bb5b3799855bfc95e979b",
+ "cases/results/forum187/screenshots/002-forum-scope-navigation-390.png": "487bb483a2bad616e677e5e62c49c2c5f3c24d3e57b5437d36aa5e5f1364f6a6",
+ "cases/results/forum187/screenshots/003-forum-scope-composer-mobile.png": "bb0f2c0485987d0cb3608c73cdab7dd4a9e8daac91a33fb7b09b8eacdc56eaf8",
+ "cases/summary.json": "7ed5b8c41f37d6c2d51eb65553b229b035aa17ac4f9cbba33e8172387dd772ba",
+ "provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md": "8132d394ef53aca950c401a1e8474c586db3b96bce2d2aa6b452fca2891ed1d8",
+ "provider-acceptance/20261019T110518Z/live-summary.json": "80e92ad6758cf5d1e6840efda2ecae2c88886c9c4a7abc7030608558c2851425",
+ "provider-acceptance/20261019T110518Z/matrix-summary.json": "2b3f26e5b1007997f45828704eda2b1a554015ade632081c57a94f3e3cccf912",
+ "provider-acceptance/20261019T110518Z/provenance.json": "0f1aed2c1fffee18b18eb4636e62967596131189cd4105ae319dd517c9274879",
+ "provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json": "12e0bd8dc033661b1c3a24cbaa12f791e288293bf00ff5f890e2de73b2984373",
+ "provider-acceptance/20261019T111735Z-deadline-targeted/provenance.json": "0f1aed2c1fffee18b18eb4636e62967596131189cd4105ae319dd517c9274879",
+ "provider-acceptance/FINAL-SUMMARY.json": "96ba333ccba6f28e6b7dec02f7004308f3685ca9d4d89db53ee7cf1bca10abad",
+ "questionnaire/PUBLIC-SUMMARY.md": "95f37af2cbb70eefd1610a6acf40b5aa49f6bf7018ac2e093c239c8ba4a21b06",
+ "questionnaire/browser/junit.xml": "fb0fc271e0ed5035335db90d8d052a65c3fa19fcb0d2572884a66c3bc33e6465",
+ "questionnaire/browser/report.json": "6e95a500de0c2b56524c76954e6f3a1c7bcd3053143045ec39dd917e4efd8f12",
+ "questionnaire/execution-attempts.json": "025e63ca78c40638161b0b0ce5f653819d8bdfbe30cc3ca36ae885c9ec48ac45",
+ "questionnaire/questionnaire-resume-retry.png": "78c53b317fd18e2c3e4ecffd846d1ed31b1f16386dee1cfaa86a892d8278efc7",
+ "questionnaire/validation.json": "37cf7c524c784c32d23b8fec99f98a1bf9d5f4c2d9e130eaa113ca661e079824",
+ "release-state.json": "f5fa9555418657c34d8885d1906729e3fc77bc150e7a0315b3b3d5f3de90f6e9"
+}
diff --git a/docs/evidence/release-20261019/SOURCE-MANIFEST.json b/docs/evidence/release-20261019/SOURCE-MANIFEST.json
new file mode 100644
index 000000000..58d4253f2
--- /dev/null
+++ b/docs/evidence/release-20261019/SOURCE-MANIFEST.json
@@ -0,0 +1,237 @@
+{
+ "sourceRootDescription": "private formal-3.5.3 qualification archive; paths below are relative labels, not deployment locations",
+ "entries": [
+ {
+ "file": "questionnaire/validation.json",
+ "source": "formal-3.5.3/questionnaire/validation.json",
+ "sourceSha256": "07775158e444eb2dafc4be160d7c9b666cdccc915c8a56894479116101716a4a",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "questionnaire/PUBLIC-SUMMARY.md",
+ "source": "formal-3.5.3/questionnaire/PUBLIC-SUMMARY.md",
+ "sourceSha256": "95f37af2cbb70eefd1610a6acf40b5aa49f6bf7018ac2e093c239c8ba4a21b06",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "questionnaire/execution-attempts.json",
+ "source": "formal-3.5.3/questionnaire/validation.json",
+ "sourceSha256": "07775158e444eb2dafc4be160d7c9b666cdccc915c8a56894479116101716a4a",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "questionnaire/questionnaire-resume-retry.png",
+ "source": "formal-3.5.3/questionnaire/questionnaire-resume-retry.png",
+ "sourceSha256": "78c53b317fd18e2c3e4ecffd846d1ed31b1f16386dee1cfaa86a892d8278efc7",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/summary.json",
+ "source": "formal-3.5.3/cases/summary.json",
+ "sourceSha256": "827d6017c0d61ba6df386ad9fa91610e59f24e9e2a50859e0dfa5ceba089f060",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/actual-runtime.json",
+ "source": "formal-3.5.3/cases/actual-runtime.json",
+ "sourceSha256": "e9bb902e1e887a95f2c95f158450ca8ee775467f2177bd27fc780ca7ded19a4f",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/physical-dependencies.json",
+ "source": "formal-3.5.3/cases/physical-dependencies.json",
+ "sourceSha256": "dbcda18991acbea9a2b99d7f3d2e61619db4c8590f15fc1925d598f353c7dd94",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/owning.json",
+ "source": "formal-3.5.3/cases/owning.json",
+ "sourceSha256": "67db8c88ddbf185c06b4d0318bcec391009749bd627cfcbe8fbc563440d661ff",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/live.json",
+ "source": "formal-3.5.3/cases/live.json",
+ "sourceSha256": "5a32f4b9515c83c586b0ee467387fa16309f3b3d3024dd051b6a3a7ed2ba32cd",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/cases.json",
+ "source": "formal-3.5.3/cases/cases.json",
+ "sourceSha256": "095fb68d44e47b9237ae674a88c8ac0e5f5a5c243cc97f2858acd580780f4d19",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/forum184.json",
+ "source": "formal-3.5.3/cases/forum184.json",
+ "sourceSha256": "34702dbbc0d07fe95ce9316a0739e70d7caf314b112d250757f07f0ec5f1e39c",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/forum187.json",
+ "source": "formal-3.5.3/cases/forum187.json",
+ "sourceSha256": "9a01cf2a04837a79ffaae4b636a714555757fa6aa5f579aa12f39b678bd08d48",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/execution-attempts.json",
+ "source": "formal-3.5.3/cases/summary.json",
+ "sourceSha256": "827d6017c0d61ba6df386ad9fa91610e59f24e9e2a50859e0dfa5ceba089f060",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/results/cases/browser-results.json",
+ "source": "formal-3.5.3/cases/results/cases/browser-results.json",
+ "sourceSha256": "881c4161519d7b21153f3424870ec127312e01744b22c7aa57436cee84901330",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/results/forum184/browser-results.json",
+ "source": "formal-3.5.3/cases/results/forum184/browser-results.json",
+ "sourceSha256": "d52e8d5ddf4d58c169249c66c99b821cdd95744f667d18406ce451f781869d5a",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "cases/results/forum187/results.json",
+ "source": "formal-3.5.3/cases/results/forum187/results.json",
+ "sourceSha256": "b6755a804bc5caeb90cb973b37fd49e7a2b0f30d2a5afe60525eac42324d0f60",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "questionnaire/browser/report.json",
+ "source": "formal-3.5.3/questionnaire/browser/report.json",
+ "sourceSha256": "ca1ee657cbd41303aa8a4202a4f50b8caae7a15a5f12049aebd0ad88c4647718",
+ "transformation": "compact public report projection; retains run identity, VCS dirty flag, counts and selected test outcomes"
+ },
+ {
+ "file": "questionnaire/browser/junit.xml",
+ "source": "formal-3.5.3/questionnaire/browser/junit.xml",
+ "sourceSha256": "fb0fc271e0ed5035335db90d8d052a65c3fa19fcb0d2572884a66c3bc33e6465",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/cases/browser/report.json",
+ "source": "formal-3.5.3/cases/results/cases/browser/report.json",
+ "sourceSha256": "6e60aaba62982707a66a7074b4fa5e45006356ff2dcbfe4856d1ce24bdf1ae05",
+ "transformation": "compact public report projection; retains run identity, VCS dirty flag, counts and selected test outcomes"
+ },
+ {
+ "file": "cases/results/cases/browser/junit.xml",
+ "source": "formal-3.5.3/cases/results/cases/browser/junit.xml",
+ "sourceSha256": "dddda04aecade810861934a2eaf56a1b538cabfa24f26b3536005bf2dd20cabe",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/forum184/browser/report.json",
+ "source": "formal-3.5.3/cases/results/forum184/browser/report.json",
+ "sourceSha256": "6479bcd21731405b535162345fcca35de7c722fb91ca857258b1d834bc5cc04d",
+ "transformation": "compact public report projection; retains run identity, VCS dirty flag, counts and selected test outcomes"
+ },
+ {
+ "file": "cases/results/forum184/browser/junit.xml",
+ "source": "formal-3.5.3/cases/results/forum184/browser/junit.xml",
+ "sourceSha256": "1dfb534d214cf48af49bd3639a71cf004e5ab6581949ab59f53ab6086c802a48",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/forum187/browser/report.json",
+ "source": "formal-3.5.3/cases/results/forum187/browser/report.json",
+ "sourceSha256": "bbc3bb77249e73e7e5844a6d09de78a77b59127dee2485db7c9b566df62c79d9",
+ "transformation": "compact public report projection; retains run identity, VCS dirty flag, counts and selected test outcomes"
+ },
+ {
+ "file": "cases/results/forum187/browser/junit.xml",
+ "source": "formal-3.5.3/cases/results/forum187/browser/junit.xml",
+ "sourceSha256": "1736a652e1c4a73e67c2dadd4c4c9077adff22583ebfc254918cece1d98f2ed6",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/cases/screenshots/001-student-editorial-grid-light.png",
+ "source": "formal-3.5.3/cases/results/cases/browser/artifacts/cases/e2e_cases_browser.e2e.ts__organization_20case_20publication_2C_20cross-course_20access_2C_20isolation_20and_20r-fbc7ebba/default/attempt-0/screenshots/001-student-editorial-grid-light.png",
+ "sourceSha256": "9ddad2f8e2734ebfb58abf9937c851edc750669e3e0428c5b092cbdad8d55f74",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/cases/screenshots/004-mobile-dark-single-column-keyboard.png",
+ "source": "formal-3.5.3/cases/results/cases/browser/artifacts/cases/e2e_cases_browser.e2e.ts__organization_20case_20publication_2C_20cross-course_20access_2C_20isolation_20and_20r-fbc7ebba/default/attempt-0/screenshots/004-mobile-dark-single-column-keyboard.png",
+ "sourceSha256": "76ce10b919e64e0f8d318fa1b6ea10a44a8fdf1a1601f240124fcb0517dd77e5",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/forum184/screenshots/003-issue184-light-1440-editor-materials-open.png",
+ "source": "formal-3.5.3/cases/results/forum184/browser/artifacts/forum/e2e_forum_issue184.e2e.ts__issue184_20responsive_20focus_20canvas_3A_20compact_2C_20editor_2C_20closed_2Fopen_2-eda50c7e/default/attempt-0/screenshots/003-issue184-light-1440-editor-materials-open.png",
+ "sourceSha256": "423725704d57b65a92107c8798eefeb100914e0d8e2fc043428c382dec3c4791",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/forum184/screenshots/022-issue184-dark-390-focus-long-body.png",
+ "source": "formal-3.5.3/cases/results/forum184/browser/artifacts/forum/e2e_forum_issue184.e2e.ts__issue184_20responsive_20focus_20canvas_3A_20compact_2C_20editor_2C_20closed_2Fopen_2-eda50c7e/default/attempt-0/screenshots/022-issue184-dark-390-focus-long-body.png",
+ "sourceSha256": "6874e3a0a23123480a6d8562c54e0e412c040575567d940deda5f6d873084623",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/forum187/screenshots/002-forum-scope-navigation-390.png",
+ "source": "formal-3.5.3/cases/results/forum187/browser/artifacts/forum/e2e_forum_resources.e2e.ts__forum_20offers_20only_20assignments_20and_20discussions_20on_20desktop_20and_20mobi-82bb95a9/default/attempt-0/screenshots/002-forum-scope-navigation-390.png",
+ "sourceSha256": "487bb483a2bad616e677e5e62c49c2c5f3c24d3e57b5437d36aa5e5f1364f6a6",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "cases/results/forum187/screenshots/003-forum-scope-composer-mobile.png",
+ "source": "formal-3.5.3/cases/results/forum187/browser/artifacts/forum/e2e_forum_resources.e2e.ts__forum_20offers_20only_20assignments_20and_20discussions_20on_20desktop_20and_20mobi-82bb95a9/default/attempt-0/screenshots/003-forum-scope-composer-mobile.png",
+ "sourceSha256": "bb0f2c0485987d0cb3608c73cdab7dd4a9e8daac91a33fb7b09b8eacdc56eaf8",
+ "transformation": "byte-for-byte copy after review"
+ },
+ {
+ "file": "provider-acceptance/FINAL-SUMMARY.json",
+ "source": "formal-3.5.3/provider-acceptance/FINAL-SUMMARY.json",
+ "sourceSha256": "a57ca90bc954ad70f4627b0f260b0c2978746546c05afe0700a442cb3724163e",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "provider-acceptance/20261019T110518Z/provenance.json",
+ "source": "formal-3.5.3/provider-acceptance/20261019T110518Z/provenance.json",
+ "sourceSha256": "97d47c140a59476165f2a10083be02fab25b40a0a9157650c5f3f81d123b2e1b",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "provider-acceptance/20261019T110518Z/matrix-summary.json",
+ "source": "formal-3.5.3/provider-acceptance/20261019T110518Z/matrix-summary.json",
+ "sourceSha256": "afc3b2cd9b236e0844669124c669b5882089a3edef9c73b4a7726c5d1239ff67",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "provider-acceptance/20261019T110518Z/live-summary.json",
+ "source": "formal-3.5.3/provider-acceptance/20261019T110518Z/live-summary.json",
+ "sourceSha256": "80e92ad6758cf5d1e6840efda2ecae2c88886c9c4a7abc7030608558c2851425",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json",
+ "source": "formal-3.5.3/provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json",
+ "sourceSha256": "bead183e201e7b10fb3f159175166eb67c204c468b8fb9b71409e64d40b7c3ea",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "provider-acceptance/20261019T111735Z-deadline-targeted/provenance.json",
+ "source": "formal-3.5.3/provider-acceptance/20261019T111735Z-deadline-targeted/provenance.json",
+ "sourceSha256": "5a2702c53ae54857d1b8aacee6810d10756cb77eb6a29656ce04b2e51a2e5622",
+ "transformation": "public projection: local paths/resources and raw run details omitted"
+ },
+ {
+ "file": "provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md",
+ "source": "formal-3.5.3/provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md",
+ "sourceSha256": "8132d394ef53aca950c401a1e8474c586db3b96bce2d2aa6b452fca2891ed1d8",
+ "transformation": "byte-for-byte copy after review"
+ }
+ ],
+ "generatedFiles": [
+ "README.md",
+ "COMMANDS.md",
+ "SCREENSHOTS.md",
+ "release-state.json",
+ "SOURCE-MANIFEST.json",
+ "SHA256SUMS.json"
+ ],
+ "packagingOnly": true,
+ "testsRunDuringPackaging": 0
+}
diff --git a/docs/evidence/release-20261019/cases/actual-runtime.json b/docs/evidence/release-20261019/cases/actual-runtime.json
new file mode 100644
index 000000000..01f983a6b
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/actual-runtime.json
@@ -0,0 +1,26 @@
+{
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "node": "v24.19.0",
+ "resolved": "node_modules/@lyyzka/lingxios/dist/src/index.js",
+ "metadata": {
+ "name": "@lyyzka/lingxios",
+ "version": "3.5.3"
+ },
+ "registry": {
+ "observedAt": "2026-10-19T11:02:58.106Z",
+ "version": "3.5.3",
+ "expectedCommit": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "registryGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "installedPath": "node_modules/@lyyzka/lingxios",
+ "exactRootAndServerLocks": true,
+ "candidateSymlinkRemoved": true
+ },
+ "hashes": {
+ "package-lock.json": "f3d91f01d323d4309a75dc9093bf9d0af0fd9049e5dc15a1dbcc3a4e8eca2a2e",
+ "server/package-lock.json": "9831c9e0fdaee746934a370c7ecd7e0f511e7cae8cf2494c175bdeb14f1967ca",
+ "server/src/db/migrations/0044_questionnaire_wait.sql": "2d2630b60f3d13f97d90522d86ce7d7b0b2e42cc58558c14ed488922feebac19",
+ "server/src/db/migrations/0045_organization_cases.sql": "697d68b27732329d6161a25337aa48d503a9a56435a79bec02dc51940c7a7247"
+ },
+ "note": "Historical live fixture prints a fixed 3.5.2 label. This observed official 3.5.3 identity governs this fresh qualification; source metadata is unchanged."
+}
diff --git a/docs/evidence/release-20261019/cases/cases.json b/docs/evidence/release-20261019/cases/cases.json
new file mode 100644
index 000000000..153f48ef0
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/cases.json
@@ -0,0 +1,13 @@
+{
+ "phase": "cases",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "e2e/server/cases.mjs",
+ "--browser-only"
+ ],
+ "startedAt": "2026-10-19T11:12:39.186Z",
+ "finishedAt": "2026-10-19T11:13:49.673Z",
+ "exitCode": 0,
+ "signal": null,
+ "historicalOutputRestored": true
+}
diff --git a/docs/evidence/release-20261019/cases/execution-attempts.json b/docs/evidence/release-20261019/cases/execution-attempts.json
new file mode 100644
index 000000000..af1a34d98
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/execution-attempts.json
@@ -0,0 +1,34 @@
+{
+ "initialCacheAttempt": {
+ "phase": "cases",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "e2e/server/cases.mjs",
+ "--browser-only"
+ ],
+ "startedAt": "2026-10-19T11:08:45.426Z",
+ "finishedAt": "2026-10-19T11:09:04.313Z",
+ "exitCode": 1,
+ "signal": null,
+ "historicalOutputRestored": true,
+ "testsExecuted": 0,
+ "qualification": "execution setup failed; not a test pass"
+ },
+ "fontServingAttempt": {
+ "phase": "cases",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "e2e/server/cases.mjs",
+ "--browser-only"
+ ],
+ "startedAt": "2026-10-19T11:10:01.127Z",
+ "finishedAt": "2026-10-19T11:11:07.993Z",
+ "exitCode": 0,
+ "signal": null,
+ "historicalOutputRestored": true,
+ "functionalTestsPassed": 2,
+ "fontServing": "denied",
+ "qualification": "functional-only round; not final visual acceptance"
+ },
+ "finalRound": "See cases.json and results/cases/browser/report.json; unchanged dependency contents copied physically before final browser qualification."
+}
diff --git a/docs/evidence/release-20261019/cases/forum184.json b/docs/evidence/release-20261019/cases/forum184.json
new file mode 100644
index 000000000..d087505da
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/forum184.json
@@ -0,0 +1,14 @@
+{
+ "phase": "forum184",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "e2e/server/forum.mjs",
+ "--browser-only",
+ "--issue184"
+ ],
+ "startedAt": "2026-10-19T11:13:54.632Z",
+ "finishedAt": "2026-10-19T11:15:14.536Z",
+ "exitCode": 0,
+ "signal": null,
+ "historicalOutputRestored": true
+}
diff --git a/docs/evidence/release-20261019/cases/forum187.json b/docs/evidence/release-20261019/cases/forum187.json
new file mode 100644
index 000000000..373f798ca
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/forum187.json
@@ -0,0 +1,14 @@
+{
+ "phase": "forum187",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "e2e/server/forum.mjs",
+ "--browser",
+ "--issue187"
+ ],
+ "startedAt": "2026-10-19T11:15:22.762Z",
+ "finishedAt": "2026-10-19T11:15:54.641Z",
+ "exitCode": 0,
+ "signal": null,
+ "historicalOutputRestored": true
+}
diff --git a/docs/evidence/release-20261019/cases/live.json b/docs/evidence/release-20261019/cases/live.json
new file mode 100644
index 000000000..a26d6c1c7
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/live.json
@@ -0,0 +1,13 @@
+{
+ "phase": "live",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "docs/evidence/issue-187/live-case-agent/run.mjs",
+ "live"
+ ],
+ "startedAt": "2026-10-19T11:08:22.872Z",
+ "finishedAt": "2026-10-19T11:08:39.903Z",
+ "exitCode": 0,
+ "signal": null,
+ "historicalOutputRestored": true
+}
diff --git a/docs/evidence/release-20261019/cases/owning.json b/docs/evidence/release-20261019/cases/owning.json
new file mode 100644
index 000000000..f7d44df16
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/owning.json
@@ -0,0 +1,17 @@
+{
+ "phase": "owning",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "args": [
+ "docs/evidence/issue-187/live-case-agent/run.mjs",
+ "owning",
+ "organization-cases.test.ts",
+ "knowledge-vertical-slice.test.ts",
+ "attachment-answers.test.ts",
+ "migration.test.ts"
+ ],
+ "startedAt": "2026-10-19T11:05:15.482Z",
+ "finishedAt": "2026-10-19T11:08:19.316Z",
+ "exitCode": 0,
+ "signal": null,
+ "historicalOutputRestored": true
+}
diff --git a/docs/evidence/release-20261019/cases/physical-dependencies.json b/docs/evidence/release-20261019/cases/physical-dependencies.json
new file mode 100644
index 000000000..175098b5f
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/physical-dependencies.json
@@ -0,0 +1,16 @@
+{
+ "source": "official dependency directory",
+ "physicalPath": "isolated browser dependency copy",
+ "copyCommand": "cp -a --reflink=auto",
+ "runtimeBefore": {
+ "sha256": "d401de36d2bf9479d531e9d45402ba3d2f7e6413db7b74404efd943236cada11",
+ "files": 438
+ },
+ "runtimeAfter": {
+ "sha256": "d401de36d2bf9479d531e9d45402ba3d2f7e6413db7b74404efd943236cada11",
+ "files": 438
+ },
+ "version": "3.5.3",
+ "noInstall": true,
+ "noSourceOrLockChanges": true
+}
diff --git a/docs/evidence/release-20261019/cases/results/cases/browser-results.json b/docs/evidence/release-20261019/cases/results/cases/browser-results.json
new file mode 100644
index 000000000..12f8c9416
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/cases/browser-results.json
@@ -0,0 +1,43 @@
+{
+ "passed": true,
+ "reproduce": "node e2e/server/cases.mjs --browser-only",
+ "results": [
+ {
+ "command": [
+ "node",
+ "--import",
+ "tsx",
+ "server/src/migrate-bin.ts"
+ ],
+ "startedAt": "2026-10-19T11:12:39.300Z",
+ "finishedAt": "2026-10-19T11:12:40.563Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "--import",
+ "tsx",
+ "server/src/migrate-bin.ts"
+ ],
+ "startedAt": "2026-10-19T11:12:40.563Z",
+ "finishedAt": "2026-10-19T11:12:41.116Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "node_modules/e2e/dist/cli/bin.js",
+ "run",
+ "--config",
+ "e2e.cases.config.ts"
+ ],
+ "startedAt": "2026-10-19T11:12:48.609Z",
+ "finishedAt": "2026-10-19T11:13:49.573Z",
+ "exitCode": 0
+ }
+ ],
+ "limitations": [
+ "Synthetic identities and in-memory object storage; real HTTP API and isolated PostgreSQL. No live Open Notebook ingestion or vector retrieval is exercised."
+ ]
+}
diff --git a/docs/evidence/release-20261019/cases/results/cases/browser/junit.xml b/docs/evidence/release-20261019/cases/results/cases/browser/junit.xml
new file mode 100644
index 000000000..b2a073f9e
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/cases/browser/junit.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/docs/evidence/release-20261019/cases/results/cases/browser/report.json b/docs/evidence/release-20261019/cases/results/cases/browser/report.json
new file mode 100644
index 000000000..fb6187015
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/cases/browser/report.json
@@ -0,0 +1,75 @@
+{
+ "schemaVersion": "public-report-projection-1",
+ "note": "Selected result summary extracted from the official browser report. Steps, HTTP/console observations, target origins and unselected tests are omitted. Source hash is in SOURCE-MANIFEST.json.",
+ "run": {
+ "id": "01a153dd-385f-77bf-928c-4e75d4a38caf",
+ "runner": {
+ "name": "e2e",
+ "version": "0.17.0"
+ },
+ "status": "passed",
+ "exitCode": 0,
+ "startedAt": "2026-10-19T11:12:50.077Z",
+ "finishedAt": "2026-10-19T11:13:49.526Z",
+ "project": {
+ "id": "lingxiloop-cases",
+ "configDigest": "1a8f93d722e524270b6160f700eaa6be0500363734ed900ac6dea696fe664c61"
+ },
+ "vcs": {
+ "commit": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "branch": "codex/fix-case-agent-evidence",
+ "dirty": true
+ },
+ "summary": {
+ "discovered": 2,
+ "selected": 2,
+ "executed": 2,
+ "passed": 2,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ }
+ },
+ "engines": [
+ {
+ "targetId": "cases",
+ "platform": "web",
+ "engine": {
+ "name": "web",
+ "version": "0.12.0",
+ "spiVersion": 1
+ }
+ }
+ ],
+ "selectedResults": [
+ {
+ "testId": "e2e/cases/browser.e2e.ts::organization%20case%20publication%2C%20cross-course%20access%2C%20isolation%20and%20responsive%20navigation",
+ "titlePath": [
+ "organization case publication, cross-course access, isolation and responsive navigation"
+ ],
+ "file": "e2e/cases/browser.e2e.ts",
+ "source": {
+ "file": "e2e/cases/browser.e2e.ts",
+ "line": 7,
+ "column": 1
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/cases/browser.e2e.ts::teacher%20authors%20and%20publishes%20cover%20and%20body%20images%20through%20the%20UI",
+ "titlePath": [
+ "teacher authors and publishes cover and body images through the UI"
+ ],
+ "file": "e2e/cases/browser.e2e.ts",
+ "source": {
+ "file": "e2e/cases/browser.e2e.ts",
+ "line": 145,
+ "column": 1
+ },
+ "status": "passed",
+ "selected": true
+ }
+ ]
+}
diff --git a/docs/evidence/release-20261019/cases/results/cases/screenshots/001-student-editorial-grid-light.png b/docs/evidence/release-20261019/cases/results/cases/screenshots/001-student-editorial-grid-light.png
new file mode 100644
index 000000000..c9a9dadfd
Binary files /dev/null and b/docs/evidence/release-20261019/cases/results/cases/screenshots/001-student-editorial-grid-light.png differ
diff --git a/docs/evidence/release-20261019/cases/results/cases/screenshots/004-mobile-dark-single-column-keyboard.png b/docs/evidence/release-20261019/cases/results/cases/screenshots/004-mobile-dark-single-column-keyboard.png
new file mode 100644
index 000000000..2b24d816a
Binary files /dev/null and b/docs/evidence/release-20261019/cases/results/cases/screenshots/004-mobile-dark-single-column-keyboard.png differ
diff --git a/docs/evidence/release-20261019/cases/results/forum184/browser-results.json b/docs/evidence/release-20261019/cases/results/forum184/browser-results.json
new file mode 100644
index 000000000..7869e6b3d
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/forum184/browser-results.json
@@ -0,0 +1,43 @@
+{
+ "passed": true,
+ "reproduce": "node e2e/server/forum.mjs --browser-only --issue184",
+ "results": [
+ {
+ "command": [
+ "node",
+ "--import",
+ "tsx",
+ "server/src/migrate-bin.ts"
+ ],
+ "startedAt": "2026-10-19T11:13:54.807Z",
+ "finishedAt": "2026-10-19T11:13:57.039Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "--import",
+ "tsx",
+ "server/src/migrate-bin.ts"
+ ],
+ "startedAt": "2026-10-19T11:13:57.039Z",
+ "finishedAt": "2026-10-19T11:13:57.597Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "node_modules/e2e/dist/cli/bin.js",
+ "run",
+ "--config",
+ "e2e.forum.config.ts"
+ ],
+ "startedAt": "2026-10-19T11:14:02.764Z",
+ "finishedAt": "2026-10-19T11:15:14.393Z",
+ "exitCode": 0
+ }
+ ],
+ "limitations": [
+ "Synthetic identities, recorded WuKong messages and in-memory object storage; browser validation is reported separately."
+ ]
+}
diff --git a/docs/evidence/release-20261019/cases/results/forum184/browser/junit.xml b/docs/evidence/release-20261019/cases/results/forum184/browser/junit.xml
new file mode 100644
index 000000000..030393dc0
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/forum184/browser/junit.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/docs/evidence/release-20261019/cases/results/forum184/browser/report.json b/docs/evidence/release-20261019/cases/results/forum184/browser/report.json
new file mode 100644
index 000000000..8169693c9
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/forum184/browser/report.json
@@ -0,0 +1,89 @@
+{
+ "schemaVersion": "public-report-projection-1",
+ "note": "Selected result summary extracted from the official browser report. Steps, HTTP/console observations, target origins and unselected tests are omitted. Source hash is in SOURCE-MANIFEST.json.",
+ "run": {
+ "id": "01a153de-59a6-77b6-b9f1-26787ffb4912",
+ "runner": {
+ "name": "e2e",
+ "version": "0.17.0"
+ },
+ "status": "passed",
+ "exitCode": 0,
+ "startedAt": "2026-10-19T11:14:03.994Z",
+ "finishedAt": "2026-10-19T11:15:14.270Z",
+ "project": {
+ "id": "lingxiloop-forum",
+ "configDigest": "78b935ee5c7453b15b0557056d63a925cc3def58e538f66a0c07128e83d2108e"
+ },
+ "vcs": {
+ "commit": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "branch": "codex/fix-case-agent-evidence",
+ "dirty": false
+ },
+ "summary": {
+ "discovered": 3,
+ "selected": 3,
+ "executed": 3,
+ "passed": 3,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ }
+ },
+ "engines": [
+ {
+ "targetId": "forum",
+ "platform": "web",
+ "engine": {
+ "name": "web",
+ "version": "0.12.0",
+ "spiVersion": 1
+ }
+ }
+ ],
+ "selectedResults": [
+ {
+ "testId": "e2e/forum/issue184.e2e.ts::issue184%20materials%2C%20body%20links%2C%20upload%20states%2C%20drafts%20and%20publish%20retry%20use%20real%20forum%20routes",
+ "titlePath": [
+ "issue184 materials, body links, upload states, drafts and publish retry use real forum routes"
+ ],
+ "file": "e2e/forum/issue184.e2e.ts",
+ "source": {
+ "file": "e2e/forum/issue184.e2e.ts",
+ "line": 45,
+ "column": 1
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/forum/issue184.e2e.ts::issue184%20responsive%20focus%20canvas%3A%20compact%2C%20editor%2C%20closed%2Fopen%20materials%2C%20focus%20mode%20and%20both%20themes",
+ "titlePath": [
+ "issue184 responsive focus canvas: compact, editor, closed/open materials, focus mode and both themes"
+ ],
+ "file": "e2e/forum/issue184.e2e.ts",
+ "source": {
+ "file": "e2e/forum/issue184.e2e.ts",
+ "line": 171,
+ "column": 1
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/forum/issue184.e2e.ts::issue184%20formal%20assignment%20fields%20survive%20mode%20switches%20and%20student%20permission%20stays%20enforced",
+ "titlePath": [
+ "issue184 formal assignment fields survive mode switches and student permission stays enforced"
+ ],
+ "file": "e2e/forum/issue184.e2e.ts",
+ "source": {
+ "file": "e2e/forum/issue184.e2e.ts",
+ "line": 305,
+ "column": 1
+ },
+ "status": "passed",
+ "selected": true
+ }
+ ]
+}
diff --git a/docs/evidence/release-20261019/cases/results/forum184/screenshots/003-issue184-light-1440-editor-materials-open.png b/docs/evidence/release-20261019/cases/results/forum184/screenshots/003-issue184-light-1440-editor-materials-open.png
new file mode 100644
index 000000000..73d063c45
Binary files /dev/null and b/docs/evidence/release-20261019/cases/results/forum184/screenshots/003-issue184-light-1440-editor-materials-open.png differ
diff --git a/docs/evidence/release-20261019/cases/results/forum184/screenshots/022-issue184-dark-390-focus-long-body.png b/docs/evidence/release-20261019/cases/results/forum184/screenshots/022-issue184-dark-390-focus-long-body.png
new file mode 100644
index 000000000..62da1a327
Binary files /dev/null and b/docs/evidence/release-20261019/cases/results/forum184/screenshots/022-issue184-dark-390-focus-long-body.png differ
diff --git a/docs/evidence/release-20261019/cases/results/forum187/browser/junit.xml b/docs/evidence/release-20261019/cases/results/forum187/browser/junit.xml
new file mode 100644
index 000000000..6eb7af2b9
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/forum187/browser/junit.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/docs/evidence/release-20261019/cases/results/forum187/browser/report.json b/docs/evidence/release-20261019/cases/results/forum187/browser/report.json
new file mode 100644
index 000000000..4f14bbf50
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/forum187/browser/report.json
@@ -0,0 +1,61 @@
+{
+ "schemaVersion": "public-report-projection-1",
+ "note": "Selected result summary extracted from the official browser report. Steps, HTTP/console observations, target origins and unselected tests are omitted. Source hash is in SOURCE-MANIFEST.json.",
+ "run": {
+ "id": "01a153df-d7b6-7ab4-8c9a-4cd2a17e8b36",
+ "runner": {
+ "name": "e2e",
+ "version": "0.17.0"
+ },
+ "status": "passed",
+ "exitCode": 0,
+ "startedAt": "2026-10-19T11:15:41.743Z",
+ "finishedAt": "2026-10-19T11:15:54.482Z",
+ "project": {
+ "id": "lingxiloop-forum",
+ "configDigest": "ae266b4cc8e1afeae13b80facc02f7d21e666802665e605e4023d36105041e70"
+ },
+ "vcs": {
+ "commit": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "branch": "codex/fix-case-agent-evidence",
+ "dirty": true
+ },
+ "summary": {
+ "discovered": 1,
+ "selected": 1,
+ "executed": 1,
+ "passed": 1,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ }
+ },
+ "engines": [
+ {
+ "targetId": "forum",
+ "platform": "web",
+ "engine": {
+ "name": "web",
+ "version": "0.12.0",
+ "spiVersion": 1
+ }
+ }
+ ],
+ "selectedResults": [
+ {
+ "testId": "e2e/forum/resources.e2e.ts::forum%20offers%20only%20assignments%20and%20discussions%20on%20desktop%20and%20mobile",
+ "titlePath": [
+ "forum offers only assignments and discussions on desktop and mobile"
+ ],
+ "file": "e2e/forum/resources.e2e.ts",
+ "source": {
+ "file": "e2e/forum/resources.e2e.ts",
+ "line": 6,
+ "column": 1
+ },
+ "status": "passed",
+ "selected": true
+ }
+ ]
+}
diff --git a/docs/evidence/release-20261019/cases/results/forum187/results.json b/docs/evidence/release-20261019/cases/results/forum187/results.json
new file mode 100644
index 000000000..cadd1d37a
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/results/forum187/results.json
@@ -0,0 +1,54 @@
+{
+ "passed": true,
+ "reproduce": "node e2e/server/forum.mjs --browser --issue187",
+ "results": [
+ {
+ "command": [
+ "node",
+ "--import",
+ "tsx",
+ "server/src/migrate-bin.ts"
+ ],
+ "startedAt": "2026-10-19T11:15:22.841Z",
+ "finishedAt": "2026-10-19T11:15:23.401Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "--import",
+ "tsx",
+ "server/src/migrate-bin.ts"
+ ],
+ "startedAt": "2026-10-19T11:15:23.401Z",
+ "finishedAt": "2026-10-19T11:15:23.935Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "server/run-integration-tests.mjs",
+ "--file",
+ "course-forum.test.ts"
+ ],
+ "startedAt": "2026-10-19T11:15:23.935Z",
+ "finishedAt": "2026-10-19T11:15:35.934Z",
+ "exitCode": 0
+ },
+ {
+ "command": [
+ "node",
+ "node_modules/e2e/dist/cli/bin.js",
+ "run",
+ "--config",
+ "e2e.forum.config.ts"
+ ],
+ "startedAt": "2026-10-19T11:15:40.640Z",
+ "finishedAt": "2026-10-19T11:15:54.511Z",
+ "exitCode": 0
+ }
+ ],
+ "limitations": [
+ "Synthetic identities, recorded WuKong messages and in-memory object storage; browser validation is reported separately."
+ ]
+}
diff --git a/docs/evidence/release-20261019/cases/results/forum187/screenshots/002-forum-scope-navigation-390.png b/docs/evidence/release-20261019/cases/results/forum187/screenshots/002-forum-scope-navigation-390.png
new file mode 100644
index 000000000..51c0c48e1
Binary files /dev/null and b/docs/evidence/release-20261019/cases/results/forum187/screenshots/002-forum-scope-navigation-390.png differ
diff --git a/docs/evidence/release-20261019/cases/results/forum187/screenshots/003-forum-scope-composer-mobile.png b/docs/evidence/release-20261019/cases/results/forum187/screenshots/003-forum-scope-composer-mobile.png
new file mode 100644
index 000000000..401d903c4
Binary files /dev/null and b/docs/evidence/release-20261019/cases/results/forum187/screenshots/003-forum-scope-composer-mobile.png differ
diff --git a/docs/evidence/release-20261019/cases/summary.json b/docs/evidence/release-20261019/cases/summary.json
new file mode 100644
index 000000000..466c6e60b
--- /dev/null
+++ b/docs/evidence/release-20261019/cases/summary.json
@@ -0,0 +1,90 @@
+{
+ "status": "passed",
+ "head": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "runtime": "official registry 3.5.3",
+ "runtimeIdentity": "actual-runtime.json",
+ "physicalDependencyIdentity": "physical-dependencies.json",
+ "counts": {
+ "owning": {
+ "tests": 52,
+ "pass": 52,
+ "fail": 0,
+ "skipped": 0
+ },
+ "live": {
+ "tests": 1,
+ "pass": 1,
+ "fail": 0,
+ "skipped": 0
+ },
+ "cases": {
+ "discovered": 2,
+ "selected": 2,
+ "executed": 2,
+ "passed": 2,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ },
+ "forum184": {
+ "discovered": 3,
+ "selected": 3,
+ "executed": 3,
+ "passed": 3,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ },
+ "forum187": {
+ "discovered": 1,
+ "selected": 1,
+ "executed": 1,
+ "passed": 1,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ },
+ "forumIntegration": {
+ "tests": 10,
+ "pass": 10,
+ "fail": 0,
+ "skipped": 0
+ }
+ },
+ "screenshots": {
+ "cases": 8,
+ "forum184": 32,
+ "forum187": 3
+ },
+ "visualReview": {
+ "cases": [
+ "student desktop light grid",
+ "mobile dark single column keyboard focus"
+ ],
+ "forum184": [
+ "desktop light material tray",
+ "mobile dark focus mode long body"
+ ],
+ "forum187": [
+ "mobile three-section navigation",
+ "mobile discussion/assignment composer"
+ ]
+ },
+ "history": {
+ "sourceAndTrackedArtifactsClean": true,
+ "originalRunnerOutputsRestored": true,
+ "firstBrowserAttempt": "Browser-cache mismatch: exit 1, zero tests executed; matching cached browser reused for subsequent runs.",
+ "secondBrowserAttempt": "Font-serving round: exit 0, 2 functional tests passed, but font access failed. It is not final visual acceptance; subsequent physical-dependency run passed.",
+ "publicAttemptSummary": "execution-attempts.json"
+ },
+ "migrations": "fresh dedicated case database ran 0001 through real 0044 and 0045; browser runners also passed migration/no-op pairs",
+ "limitations": [
+ "Notebook embeddings remain synthetic constant 1024 vectors; no semantic ranking or paid provider qualification",
+ "Browser fixtures use synthetic identities and in-memory storage/recorded IM",
+ "Live fixture historical runtime string says 3.5.2; actual-runtime.json verifies this execution used official 3.5.3 and source metadata was not changed",
+ "No npm install, source/lock change, commit, push, merge or deployment performed in this qualification"
+ ]
+}
diff --git a/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md
new file mode 100644
index 000000000..dc63c4d97
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/PUBLIC-SUMMARY.md
@@ -0,0 +1,31 @@
+# Formal 3.5.3 provider acceptance
+
+Validation used published `@lyyzka/lingxios@3.5.3`, package gitHead `59be37b141f41798ec03b2fffabb824d3ef50e36`, on product HEAD `ef594b8b8f0091d49ac4d618d2c221bdc54f617a`. Root/server exact locks matched the formal package integrity:
+
+`sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==`
+
+| Check | Result |
+| --- | --- |
+| Existing deterministic provider matrix | 13 passed, 1 failed, 0 skipped, 0 cancelled |
+| Real GLM-5.3-Flash canonical validation | 1 passed, 0 failed, 0 skipped |
+| Original 3.5.2 evidence restoration | SHA-256 manifests identical |
+
+The matrix's five HTTP fault cases (429, 503, socket reset, stream interruption, and empty output) passed their bounded-attempt, settled-ledger, durable-result and next-human-turn checks. Group mentions, native admission, first-byte timeout and reliability/cancellation coverage also passed. The unchanged 100ms total-deadline case failed because the local provider observed zero requests rather than one. Its failed-run and delivered classified-feedback assertions passed; the remaining assertions in that case were not reached. A separately recorded isolated rerun subsequently passed 1/1; the initial matrix result remains 13/14.
+
+The one real-provider invocation used exact `zai-org/GLM-5.3-Flash`: four successful calls, comprising three Agent/runtime calls and one host JSON helper, with no failed attempts or whole-run retry. It passed the actual files.list tool turn, streamed answer, JSON helper, and durable replay checks. There were 35 preview frames, a final text length of 684, and no text retractions.
+
+Provider-reported usage was 25,466 input tokens and 2,864 output tokens, with no cached input. Tariff-derived total ledger cost was $0.00405601: $0.00400915 for Agent/runtime and $0.00004686 for the helper. This is usage multiplied by the tested tariff, not a supplier deduction receipt. The tariff assertions used CNY 0.8 input, 0.23 cached input and 2.8 output per million tokens, converted at USD/CNY 7.
+
+The configured 8 calls / 100k tokens / $0.25 budget applies to the Agent root. The host JSON helper is outside that root; the whole-run <= $0.25 check is a final ledger assertion, not a preflight hard cap. No extra load was generated to approach a cap.
+
+All test data was synthetic and isolated locally. Matrix and live validation ran serially, with no production changes or paid fault injection. Original 3.5.2 evidence was archived and restored exactly; formal 3.5.3 outputs are stored separately. This summary does not claim the broader historical acceptance issues are closed.
+
+Reproduction uses the existing scripts: `node scripts/runtime-acceptance/provider-fault-matrix.mjs`, followed once by `node --use-env-proxy e2e/server/model-switch.mjs --live` under an existing authorized credential binding. Detailed logs and runtime replay remain private evidence.
+
+## Isolated deadline rerun: PASSED (1/1)
+
+After concurrent browser/test load ended, one authorized rerun used the unchanged launcher with only `runtime-deadline-recovery.test.ts`. It passed 1/1 with zero skips/failures, using the same product HEAD, official 3.5.3 package and integrity. The dependency directory had been copied without content changes into the product worktree; its new physical path is recorded in the rerun provenance. No threshold was changed and no full-matrix rerun occurred.
+
+The actual synthetic provider received one initial request and observed one disconnect. The run failed with model_unavailable feedback, one ledger call settled, one terminal notice was retained, and the next human request succeeded. Measured run elapsed time was 400.35ms (the existing test limit is <3000ms; provider total timeout remains 100ms). The original matrix result remains 13/14; this separate rerun is 1/1. Passing under lower load is consistent with timing sensitivity, but does not establish the cause of the initial failure.
+
+Rerun command: `node scripts/runtime-acceptance/provider-fault-matrix.mjs runtime-deadline-recovery.test.ts`. Paid calls: 0. Old evidence and known auxiliary artifacts were restored byte-for-byte again, and the product worktree remained clean.
diff --git a/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/live-summary.json b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/live-summary.json
new file mode 100644
index 000000000..542fed424
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/live-summary.json
@@ -0,0 +1,26 @@
+{
+ "passed": true,
+ "model": "zai-org/GLM-5.3-Flash",
+ "actualCalls": 4,
+ "agentCalls": 3,
+ "hostCalls": 1,
+ "succeeded": 4,
+ "failed": 0,
+ "inputTokens": 25466,
+ "outputTokens": 2864,
+ "cachedInputTokens": 0,
+ "totalCostUSD": 0.00405601,
+ "costMeaning": "provider-reported usage multiplied by tariff; not supplier invoice",
+ "previewFrames": 35,
+ "finalLength": 684,
+ "retractions": 0,
+ "finalRetractions": 0,
+ "agentRootBudget": {
+ "calls": 8,
+ "tokens": 100000,
+ "costUSD": 0.25
+ },
+ "helperOutsideRootBudget": true,
+ "wholeRunRetries": 0,
+ "combinedCostLimit": "post-run ledger assertion <= $0.25"
+}
diff --git a/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/matrix-summary.json b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/matrix-summary.json
new file mode 100644
index 000000000..79dffbd75
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/matrix-summary.json
@@ -0,0 +1,13 @@
+{
+ "directory": "20261019T110518Z",
+ "exitCode": 1,
+ "counts": {
+ "tests": 14,
+ "pass": 13,
+ "fail": 1,
+ "cancelled": 0,
+ "skipped": 0
+ },
+ "passed": false,
+ "oldEvidenceRestored": true
+}
diff --git a/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/provenance.json b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/provenance.json
new file mode 100644
index 000000000..ec174d863
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/20261019T110518Z/provenance.json
@@ -0,0 +1,55 @@
+{
+ "productGitHead": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "packageVersion": "3.5.3",
+ "packageGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "installedPath": "node_modules/@lyyzka/lingxios",
+ "locks": {
+ "root": {
+ "version": "3.5.3",
+ "resolved": "https://npm.pkg.github.com/download/@lyyzka/lingxios/3.5.3/b6a5ea08d1488eba798e5dff4d679f8bbbe33ef2",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mammoth": "1.12.2",
+ "pdfjs-dist": "6.3.289"
+ },
+ "bin": {
+ "lingxios-doctor": "dist/src/cli/doctor.js",
+ "lingxios-eval": "dist/src/cli/eval.js",
+ "lingxios-worker": "dist/src/worker/main.js"
+ },
+ "engines": {
+ "node": ">=22.13.0"
+ }
+ },
+ "server/": {
+ "version": "3.5.3",
+ "resolved": "https://npm.pkg.github.com/download/@lyyzka/lingxios/3.5.3/b6a5ea08d1488eba798e5dff4d679f8bbbe33ef2",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mammoth": "1.12.2",
+ "pdfjs-dist": "6.3.289"
+ },
+ "bin": {
+ "lingxios-doctor": "dist/src/cli/doctor.js",
+ "lingxios-eval": "dist/src/cli/eval.js",
+ "lingxios-worker": "dist/src/worker/main.js"
+ },
+ "engines": {
+ "node": ">=22.13.0"
+ }
+ }
+ },
+ "installationReceipt": {
+ "observedAt": "2026-10-19T11:02:58.106Z",
+ "version": "3.5.3",
+ "expectedCommit": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "registryGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "installedPath": "node_modules/@lyyzka/lingxios",
+ "exactRootAndServerLocks": true,
+ "candidateSymlinkRemoved": true
+ }
+}
diff --git a/docs/evidence/release-20261019/provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json b/docs/evidence/release-20261019/provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json
new file mode 100644
index 000000000..e86be44ab
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/20261019T111735Z-deadline-targeted/matrix-summary.json
@@ -0,0 +1,13 @@
+{
+ "directory": "20261019T111735Z-deadline-targeted",
+ "exitCode": 0,
+ "counts": {
+ "tests": 1,
+ "pass": 1,
+ "fail": 0,
+ "cancelled": 0,
+ "skipped": 0
+ },
+ "passed": true,
+ "oldEvidenceRestored": true
+}
diff --git a/docs/evidence/release-20261019/provider-acceptance/20261019T111735Z-deadline-targeted/provenance.json b/docs/evidence/release-20261019/provider-acceptance/20261019T111735Z-deadline-targeted/provenance.json
new file mode 100644
index 000000000..ec174d863
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/20261019T111735Z-deadline-targeted/provenance.json
@@ -0,0 +1,55 @@
+{
+ "productGitHead": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "packageVersion": "3.5.3",
+ "packageGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "installedPath": "node_modules/@lyyzka/lingxios",
+ "locks": {
+ "root": {
+ "version": "3.5.3",
+ "resolved": "https://npm.pkg.github.com/download/@lyyzka/lingxios/3.5.3/b6a5ea08d1488eba798e5dff4d679f8bbbe33ef2",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mammoth": "1.12.2",
+ "pdfjs-dist": "6.3.289"
+ },
+ "bin": {
+ "lingxios-doctor": "dist/src/cli/doctor.js",
+ "lingxios-eval": "dist/src/cli/eval.js",
+ "lingxios-worker": "dist/src/worker/main.js"
+ },
+ "engines": {
+ "node": ">=22.13.0"
+ }
+ },
+ "server/": {
+ "version": "3.5.3",
+ "resolved": "https://npm.pkg.github.com/download/@lyyzka/lingxios/3.5.3/b6a5ea08d1488eba798e5dff4d679f8bbbe33ef2",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mammoth": "1.12.2",
+ "pdfjs-dist": "6.3.289"
+ },
+ "bin": {
+ "lingxios-doctor": "dist/src/cli/doctor.js",
+ "lingxios-eval": "dist/src/cli/eval.js",
+ "lingxios-worker": "dist/src/worker/main.js"
+ },
+ "engines": {
+ "node": ">=22.13.0"
+ }
+ }
+ },
+ "installationReceipt": {
+ "observedAt": "2026-10-19T11:02:58.106Z",
+ "version": "3.5.3",
+ "expectedCommit": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "registryGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "installedPath": "node_modules/@lyyzka/lingxios",
+ "exactRootAndServerLocks": true,
+ "candidateSymlinkRemoved": true
+ }
+}
diff --git a/docs/evidence/release-20261019/provider-acceptance/FINAL-SUMMARY.json b/docs/evidence/release-20261019/provider-acceptance/FINAL-SUMMARY.json
new file mode 100644
index 000000000..0172d229e
--- /dev/null
+++ b/docs/evidence/release-20261019/provider-acceptance/FINAL-SUMMARY.json
@@ -0,0 +1,51 @@
+{
+ "productHead": "ef594b8b8f0091d49ac4d618d2c221bdc54f617a",
+ "package": "@lyyzka/lingxios@3.5.3",
+ "packageGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "initialMatrix": {
+ "path": "20261019T110518Z",
+ "tests": 14,
+ "pass": 13,
+ "fail": 1,
+ "skipped": 0,
+ "failure": "100ms total deadline provider request count 0 instead of 1"
+ },
+ "live": {
+ "passed": true,
+ "model": "zai-org/GLM-5.3-Flash",
+ "actualCalls": 4,
+ "agentCalls": 3,
+ "hostCalls": 1,
+ "succeeded": 4,
+ "failed": 0,
+ "inputTokens": 25466,
+ "outputTokens": 2864,
+ "cachedInputTokens": 0,
+ "totalCostUSD": 0.00405601,
+ "costMeaning": "provider-reported usage multiplied by tariff; not supplier invoice",
+ "previewFrames": 35,
+ "finalLength": 684,
+ "retractions": 0,
+ "finalRetractions": 0,
+ "agentRootBudget": {
+ "calls": 8,
+ "tokens": 100000,
+ "costUSD": 0.25
+ },
+ "helperOutsideRootBudget": true,
+ "wholeRunRetries": 0,
+ "combinedCostLimit": "post-run ledger assertion <= $0.25"
+ },
+ "isolatedDeadlineRerun": {
+ "path": "20261019T111735Z-deadline-targeted",
+ "tests": 1,
+ "pass": 1,
+ "fail": 0,
+ "skipped": 0,
+ "paidCalls": 0,
+ "unchangedThreshold": true
+ },
+ "oldEvidenceRestored": true,
+ "sourceChanges": false,
+ "worktreeClean": true
+}
diff --git a/docs/evidence/release-20261019/questionnaire/PUBLIC-SUMMARY.md b/docs/evidence/release-20261019/questionnaire/PUBLIC-SUMMARY.md
new file mode 100644
index 000000000..5a2f72d98
--- /dev/null
+++ b/docs/evidence/release-20261019/questionnaire/PUBLIC-SUMMARY.md
@@ -0,0 +1,5 @@
+PR190 在冻结提交 `05b6fd2ed9ee53ed5c1fb07e29ba7dc730899878` 上通过正式发布的 `@lyyzka/lingxios@3.5.3` 验收;包的 registry gitHead 为 `59be37b141f41798ec03b2fffabb824d3ef50e36`,root/server 均精确锁定版本及完整性。
+
+相关集成 **66/66**(问卷与消息36、迁移30)、服务端 **107/107**、网页定向 **92/92**、官方浏览器 **8/8**,均零失败、零跳过。服务端/网页/E2E 类型检查、服务端 lint 和全新生产模式测试页面构建均通过。验证包含持久等待、显式恢复重试、重复提交、取消/权限/版本拦截,以及迁移数据保全和事务回滚。
+
+浏览器首次启动因报告目录位于项目外被工具拒绝,执行0个测试;修正输出路径后8个用例全部通过,首轮记录单独保留。所有测试使用隔离本地服务和合成数据,没有生产或真实模型调用。源码及锁文件未变更。
diff --git a/docs/evidence/release-20261019/questionnaire/browser/junit.xml b/docs/evidence/release-20261019/questionnaire/browser/junit.xml
new file mode 100644
index 000000000..f9f4012bb
--- /dev/null
+++ b/docs/evidence/release-20261019/questionnaire/browser/junit.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/evidence/release-20261019/questionnaire/browser/report.json b/docs/evidence/release-20261019/questionnaire/browser/report.json
new file mode 100644
index 000000000..e0c8ef283
--- /dev/null
+++ b/docs/evidence/release-20261019/questionnaire/browser/report.json
@@ -0,0 +1,167 @@
+{
+ "schemaVersion": "public-report-projection-1",
+ "note": "Selected result summary extracted from the official browser report. Steps, HTTP/console observations, target origins and unselected tests are omitted. Source hash is in SOURCE-MANIFEST.json.",
+ "run": {
+ "id": "01a153d8-abb6-7a88-9bbc-68da8217a452",
+ "runner": {
+ "name": "e2e",
+ "version": "0.17.0"
+ },
+ "status": "passed",
+ "exitCode": 0,
+ "startedAt": "2026-10-19T11:07:52.041Z",
+ "finishedAt": "2026-10-19T11:08:19.112Z",
+ "project": {
+ "id": "lingxiloop-web",
+ "configDigest": "902db8f4cde4d759622f97d393ca196019d582122cb8e3fc38126f5b61dc0bd4"
+ },
+ "vcs": {
+ "commit": "05b6fd2ed9ee53ed5c1fb07e29ba7dc730899878",
+ "branch": "codex/pr190-resume-repair-20261019",
+ "dirty": false
+ },
+ "summary": {
+ "discovered": 139,
+ "selected": 8,
+ "executed": 8,
+ "passed": 8,
+ "failed": 0,
+ "interrupted": 0,
+ "flaky": 0,
+ "skipped": 0
+ }
+ },
+ "engines": [
+ {
+ "targetId": "web",
+ "platform": "web",
+ "engine": {
+ "name": "web",
+ "version": "0.12.0",
+ "spiVersion": 1
+ }
+ }
+ ],
+ "selectedResults": [
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::trusted%20questionnaire%20binding%20replaces%20generic%20continuation%20forms",
+ "titlePath": [
+ "durable questionnaire",
+ "trusted questionnaire binding replaces generic continuation forms"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 5,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::unread%20status%20blocks%20submission%3B%20waiting%20stays%20idle%20until%20explicit%20submit",
+ "titlePath": [
+ "durable questionnaire",
+ "unread status blocks submission; waiting stays idle until explicit submit"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 14,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::durable%20answers%20render%20read-only%20without%20answer%20history%20and%20refresh%20never%20posts",
+ "titlePath": [
+ "durable questionnaire",
+ "durable answers render read-only without answer history and refresh never posts"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 21,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::double%20clicks%20submit%20once%3B%20failure%20retries%20and%20refresh%20preserves%20accepted%20answers",
+ "titlePath": [
+ "durable questionnaire",
+ "double clicks submit once; failure retries and refresh preserves accepted answers"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 31,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::a%20lost%20accepted%20response%20reconciles%20canonical%20answers%20before%20another%20POST",
+ "titlePath": [
+ "durable questionnaire",
+ "a lost accepted response reconciles canonical answers before another POST"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 46,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::pending%20submission%20freezes%20saved%20answers%20and%20retries%20only%20those%20values",
+ "titlePath": [
+ "durable questionnaire",
+ "pending submission freezes saved answers and retries only those values"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 58,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::an%20exhausted%20resume%20keeps%20canonical%20answers%20and%20requires%20one%20explicit%20recovery",
+ "titlePath": [
+ "durable questionnaire",
+ "an exhausted resume keeps canonical answers and requires one explicit recovery"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 69,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ },
+ {
+ "testId": "e2e/web/questionnaire.e2e.ts::durable%20questionnaire::unavailable%20and%20foreign%20owner%20cards%20stay%20disabled%3B%20loading%20failure%20can%20reload",
+ "titlePath": [
+ "durable questionnaire",
+ "unavailable and foreign owner cards stay disabled; loading failure can reload"
+ ],
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "source": {
+ "file": "e2e/web/questionnaire.e2e.ts",
+ "line": 87,
+ "column": 3
+ },
+ "status": "passed",
+ "selected": true
+ }
+ ]
+}
diff --git a/docs/evidence/release-20261019/questionnaire/execution-attempts.json b/docs/evidence/release-20261019/questionnaire/execution-attempts.json
new file mode 100644
index 000000000..cce29c18d
--- /dev/null
+++ b/docs/evidence/release-20261019/questionnaire/execution-attempts.json
@@ -0,0 +1,10 @@
+{
+ "firstBrowserAttempt": {
+ "exitCode": 2,
+ "testsExecuted": 0,
+ "reason": "official e2e output directory must be inside project root"
+ },
+ "correction": "use .e2e/pr190-official-3.5.3 and copy completed reports to this evidence directory",
+ "notCountedAsTestPass": true,
+ "summaryFile": "execution-attempts.json"
+}
diff --git a/docs/evidence/release-20261019/questionnaire/questionnaire-resume-retry.png b/docs/evidence/release-20261019/questionnaire/questionnaire-resume-retry.png
new file mode 100644
index 000000000..858fe0369
Binary files /dev/null and b/docs/evidence/release-20261019/questionnaire/questionnaire-resume-retry.png differ
diff --git a/docs/evidence/release-20261019/questionnaire/validation.json b/docs/evidence/release-20261019/questionnaire/validation.json
new file mode 100644
index 000000000..3b30ce4b9
--- /dev/null
+++ b/docs/evidence/release-20261019/questionnaire/validation.json
@@ -0,0 +1,89 @@
+{
+ "verifiedAt": "2026-10-19T11:10:01.695658+00:00",
+ "productCommit": "05b6fd2ed9ee53ed5c1fb07e29ba7dc730899878",
+ "runtime": {
+ "version": "3.5.3",
+ "registryGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "qualification": "exact official published package; root and server manifests/locks verified"
+ },
+ "counts": {
+ "integration": {
+ "tests": 66,
+ "pass": 66,
+ "fail": 0,
+ "cancelled": 0,
+ "skipped": 0
+ },
+ "server": {
+ "tests": 107,
+ "pass": 107,
+ "fail": 0,
+ "cancelled": 0,
+ "skipped": 0
+ },
+ "web": {
+ "tests": 92,
+ "pass": 92,
+ "fail": 0,
+ "cancelled": 0,
+ "skipped": 0
+ }
+ },
+ "integrationBreakdown": {
+ "owningQuestionnaireAndMessaging": 36,
+ "migration": 30
+ },
+ "browser": {
+ "tests": 8,
+ "pass": 8,
+ "fail": 0,
+ "errors": 0,
+ "skipped": 0,
+ "engine": "official @e2e-dev/web via tester-army/e2e",
+ "freshProductionBuild": {
+ "file": ".e2e/questionnaire-site/e2e/questionnaire.html",
+ "modifiedAt": "2026-10-19T11:06:45.476Z",
+ "sha256": "a193a1f980ed3f2e5c49f5c74b01c623743931d356e66c246a7f2e691435c294"
+ },
+ "report": "browser/report.json",
+ "junit": "browser/junit.xml",
+ "screenshot": "questionnaire-resume-retry.png",
+ "screenshotReviewed": true
+ },
+ "checks": {
+ "serverTypecheck": "passed",
+ "webTypecheck": "passed",
+ "e2eTypecheck": "passed",
+ "serverLint": "passed",
+ "fixtureProductionBuild": "passed"
+ },
+ "executionCorrection": {
+ "firstBrowserAttempt": {
+ "exitCode": 2,
+ "testsExecuted": 0,
+ "reason": "official e2e output directory must be inside project root"
+ },
+ "correction": "use .e2e/pr190-official-3.5.3 and copy completed reports to this evidence directory",
+ "notCountedAsTestPass": true,
+ "summaryFile": "execution-attempts.json"
+ },
+ "isolation": {
+ "productionAccess": false,
+ "liveProviders": false,
+ "sourceOrLockChanges": false,
+ "installs": false,
+ "commitsOrPushes": false,
+ "oldCandidateEvidencePreserved": true,
+ "freshPreviewStopped": true
+ },
+ "lockSha256": {
+ "package.json": "bcfffb6bc293e9751aba0c3cfc27cf6f7627e1fca5960c46c39eee072d3f191f",
+ "package-lock.json": "f3d91f01d323d4309a75dc9093bf9d0af0fd9049e5dc15a1dbcc3a4e8eca2a2e",
+ "server/package.json": "0e67ec29bea0237f140b031479efc98f7747141688d0f923b10fb261f643770c",
+ "server/package-lock.json": "9831c9e0fdaee746934a370c7ecd7e0f511e7cae8cf2494c175bdeb14f1967ca"
+ },
+ "commands": {
+ "reference": "../COMMANDS.md"
+ }
+}
diff --git a/docs/evidence/release-20261019/release-state.json b/docs/evidence/release-20261019/release-state.json
new file mode 100644
index 000000000..1c4d491a7
--- /dev/null
+++ b/docs/evidence/release-20261019/release-state.json
@@ -0,0 +1,59 @@
+{
+ "preparedAt": "2026-10-19T11:22:36.654279+00:00",
+ "finalMainCommit": "b76c4cc00f545ddbca27bced6628e1ed191e6777",
+ "runtime": {
+ "version": "3.5.3",
+ "registryGitHead": "59be37b141f41798ec03b2fffabb824d3ef50e36",
+ "integrity": "sha512-e/KhQgtBJlKQl1aM+amJGail2ax8rqGL4Bqw68ehIM+2mlUbaq0WT1FD8WQaGU1/t7TyhYk8gt2IuHlX6OKhfQ==",
+ "qualification": "exact official published package; root and server manifests/locks verified"
+ },
+ "runtimeReleaseCi": {
+ "runId": "39240936281",
+ "url": "https://github.com/LingXi-Org/LingxiOS/actions/runs/39240936281"
+ },
+ "runtimePublish": {
+ "runId": "39241356024",
+ "url": "https://github.com/LingXi-Org/LingxiOS/actions/runs/39241356024",
+ "status": "published"
+ },
+ "mergedProductPRs": [
+ 185,
+ 188,
+ 192,
+ 191,
+ 190,
+ 189
+ ],
+ "productCiReportedByReleaseOwner": {
+ "PR190": {
+ "runId": "39241771904",
+ "integrationPass": 269,
+ "gatedSkip": 21
+ },
+ "PR189": {
+ "integrationPass": 281,
+ "gatedSkip": 21
+ },
+ "finalMain": {
+ "runId": "39243667498",
+ "status": "running-at-task-handoff",
+ "passedNotClaimed": true,
+ "url": "https://github.com/LingXi-Org/LingxiLoop/actions/runs/39243667498"
+ }
+ },
+ "pendingHistoricalIssues": [
+ 153,
+ 155,
+ 157,
+ 161
+ ],
+ "historicalSoak": {
+ "runtime": "3.5.1",
+ "samples": 797,
+ "elapsedSeconds": 47829.58,
+ "status": "incomplete",
+ "notTransferredTo353": true
+ },
+ "productionDeployment": "not performed",
+ "snapshotPhase": "prerelease; deployment outcome recorded separately"
+}