diff --git a/docs/BUG_HISTORY.md b/docs/BUG_HISTORY.md index 434ede6d..e6cb1dec 100644 --- a/docs/BUG_HISTORY.md +++ b/docs/BUG_HISTORY.md @@ -4875,7 +4875,23 @@ - 复发自:BUG-313(有 follow-up 时仍可因 compare 投影为 adopt 而 offer);BUG-297(compare/offer 不共享提出门) - 修复版本:7dc97a49 -## BUG-324 | 经典八方法访谈被财务/健康轮询替换,KP 宫头被政策跳过冒充已观察 +## BUG-324 | 侧栏合同仍断言固定 chat-panel class,staging frontend 测试失败 + +- 状态:resolved +- 首次发现:2026-08-20 +- 最近更新:2026-08-20 +- 影响面:Gitea `Jyotish Skill CI` / `backend-quality-gate` 的 `npm test --prefix frontend`、`frontend/tests/sidebar-contract.test.ts` +- 用户现象:staging 推送后质量门禁失败。日志末尾 `truth source identity` 两条都是 `ok`,摘要为 `# tests 1833 / pass 1832 / fail 1`。 +- 触发条件:向 `staging` 推送含 BUG-322 生时纠正分栏布局的提交后跑 frontend 全量测试。 +- 根因:BUG-322 把 `SidebarInset` 的 class 改成 `chat-panel` 加上 `rectificationSurfaceOpen` 时的 `is-rectification`。侧栏源码合同仍匹配固定的 `className="chat-panel"`,所以 `not ok 1676 - composes the chat page with the app sidebar shell`。 +- 修复:侧栏合同改为锁定当前模板 class,并继续要求 `inert={modalOpen}`。 +- 验证:`npx tsx --test tests/sidebar-contract.test.ts`。 +- 防复发:改 `SidebarInset` class 时必须同步 `sidebar-contract`;生时纠正分栏 class 另由 `rectification-agentic-entry` 锁定。 +- 相关记录:BUG-322 +- 复发自:无 +- 修复版本:3970410e + +## BUG-325 | 经典八方法访谈被财务/健康轮询替换,KP 宫头被政策跳过冒充已观察 - 状态:resolved - 首次发现:2026-08-20 diff --git a/frontend/tests/sidebar-contract.test.ts b/frontend/tests/sidebar-contract.test.ts index 50e0fb91..e7f0c169 100644 --- a/frontend/tests/sidebar-contract.test.ts +++ b/frontend/tests/sidebar-contract.test.ts @@ -172,7 +172,10 @@ test("composes the chat page with the app sidebar shell", () => { assert.match(page, /const modalOpen = activeAccountDialog !== null \|\| onboardingPaywallOpen/); assert.match(page, //); assert.match(page, /
[\s\S]*/); + assert.match( + page, + //, + ); assert.match(page, //); });