From ba252e56950d2ea2d94622736e6c936fd89f4d86 Mon Sep 17 00:00:00 2001 From: coso Date: Wed, 30 Sep 2026 23:51:28 +0800 Subject: [PATCH] test: align pagination identity and roadmap guards --- internal/exec-plans/release-v1.147.0-plan.md | 6 ++++++ .../app-server/tests/thread_v2_jsonrpc.rs | 17 ++++++++++------- src/lib/governance/legacySurfaceCatalog.test.ts | 5 ++++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/internal/exec-plans/release-v1.147.0-plan.md b/internal/exec-plans/release-v1.147.0-plan.md index 19707bafd..0dd6539cf 100644 --- a/internal/exec-plans/release-v1.147.0-plan.md +++ b/internal/exec-plans/release-v1.147.0-plan.md @@ -58,6 +58,12 @@ Rust 构建使用仓库 rusty-v8 artifact resolver 的已校验缓存,未修 本轮补 `src/lib/governance/appServerRuntimeBoundary.testSupport.ts` 的精确允许路径,保留全目录扫描与生产 Runtime 默认断言;失败守卫定向 `2/2` 和 `npm run typecheck` 通过。作为 main 的独立测试修复提交,保持发布 tag 原提交,不宣称旧 tag 的 Quality run 已通过。推送后并发会话开始的下一项 request-user-input 改造属于发布后工作,保留其工作树,不覆盖、不并入本次标签。 +第一项测试守卫修复提交 `faa8be408f3d78a23bcb35b91f30afb8e737c26e` 已推送 main,Quality run `36737461083`。该 run 的 Frontend Full 又在 batch `49/119` 发现既有 Coding roadmap 文案守卫漂移:README 已将下一刀改为 current-SHA Windows large-output evidence,旧断言仍要求先前的 unelevated runner 原文。本轮让 README 和 implementation 的断言分别守住当前证据缺口与既有 unelevated runner,不改路线图事实。 + +Rust Full 失败是既有 `paginated_history_jsonrpc_preserves_canonical_thread_turn_item_identity` 仍给出非规范 item ID `answer-item` 并要求原样返回;实际返回 `item_answer-item`,正文与 turn identity 均正确。迁移 fixture 输入和断言到规范 `item_answer`,保持公共 JSON-RPC 的 identity/text 检查,并补实际响应诊断;整个 `thread_v2_jsonrpc` target `19/19` 通过,没有 production/runtime 修改。 + +扩大治理目录验证:`47` files 通过、`440` tests 通过;唯一失败是本机外部 Codex checkout 的可选 `codexModelResponsesPolicyOrigin` 源码形状已经变化,不属于本次 Lime/tag 改动,保留失败记录、不修改外部仓库或跳过断言。两个 CI 失败守卫已通过。最后 `npm run typecheck`、owned Rust fmt 与 diff check 通过。 + ## 架构与分类 主链保持 `Desktop Host / CLI-TUI Host -> App Server JSON-RPC -> RuntimeCore -> canonical Thread/Turn/Item -> GUI/terminal projection`。MCP OAuth 扩展仍归既有 protocol/App Server/MCP credential owner;新增 TUI helper 是 presentation 内部分工,没有平行 runtime/history store 或新的 public boundary。本次无重大架构变更。 diff --git a/lime-rs/crates/app-server/tests/thread_v2_jsonrpc.rs b/lime-rs/crates/app-server/tests/thread_v2_jsonrpc.rs index 4b4ccc42d..7625af633 100644 --- a/lime-rs/crates/app-server/tests/thread_v2_jsonrpc.rs +++ b/lime-rs/crates/app-server/tests/thread_v2_jsonrpc.rs @@ -1406,11 +1406,11 @@ async fn paginated_history_jsonrpc_preserves_canonical_thread_turn_item_identity vec![ RuntimeEvent::new( "message.delta", - json!({"itemId": "answer-item", "text": "persisted answer"}), + json!({"itemId": "item_answer", "text": "persisted answer"}), ), RuntimeEvent::new( "message.completed", - json!({"itemId": "answer-item", "status": "completed"}), + json!({"itemId": "item_answer", "status": "completed"}), ), RuntimeEvent::new("turn.completed", json!({})), ], @@ -1444,9 +1444,12 @@ async fn paginated_history_jsonrpc_preserves_canonical_thread_turn_item_identity ) .await; assert_eq!(turns["result"]["data"][0]["id"], json!(turn_id)); - assert!(turns["result"]["data"][0]["items"] - .as_array() - .is_some_and(|items| items.iter().any(|item| item["id"] == "answer-item"))); + assert!( + turns["result"]["data"][0]["items"] + .as_array() + .is_some_and(|items| items.iter().any(|item| item["id"] == "item_answer")), + "canonical answer item missing from paginated turns: {turns:#?}" + ); let items = request( &server, @@ -1463,11 +1466,11 @@ async fn paginated_history_jsonrpc_preserves_canonical_thread_turn_item_identity .as_array() .and_then(|data| { data.iter() - .find(|entry| entry["item"]["id"] == "answer-item") + .find(|entry| entry["item"]["id"] == "item_answer") }) .expect("answer item in paginated item list"); assert_eq!(answer["turnId"], json!(turn_id)); - assert_eq!(answer["item"]["id"], json!("answer-item")); + assert_eq!(answer["item"]["id"], json!("item_answer")); assert_eq!(answer["item"]["text"], json!("persisted answer")); } diff --git a/src/lib/governance/legacySurfaceCatalog.test.ts b/src/lib/governance/legacySurfaceCatalog.test.ts index 04bf763cb..13561d5db 100644 --- a/src/lib/governance/legacySurfaceCatalog.test.ts +++ b/src/lib/governance/legacySurfaceCatalog.test.ts @@ -4766,7 +4766,10 @@ describe("legacySurfaceCatalog", () => { "P8 骨架阶段已经收口,不再重复做旧字符串 inventory", ); expect(readmeSource).toContain( - "unelevated current-user restricted-token runner", + "Windows current-SHA restricted-token large-output evidence", + ); + expect(implementationSource).toContain( + "unelevated current-user runner", ); expect(implementationSource).toContain( "P8 residual 盘点结论:生产 `src / packages / electron` 主路径未发现 `agent_runtime_*` 直接命令调用",