merge origin/staging and renumber eight-method record to BUG-325
Independent Staging Quality Gate / validate (push) Failing after 9m25s
Independent Staging Quality Gate / publish (push) Has been skipped

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-20 16:02:18 +08:00
2 changed files with 21 additions and 2 deletions
+17 -1
View File
@@ -4875,7 +4875,23 @@
- 复发自:BUG-313(有 follow-up 时仍可因 compare 投影为 adopt 而 offer);BUG-297compare/offer 不共享提出门) - 复发自:BUG-313(有 follow-up 时仍可因 compare 投影为 adopt 而 offer);BUG-297compare/offer 不共享提出门)
- 修复版本:7dc97a49 - 修复版本:7dc97a49
## BUG-324 | 经典八方法访谈被财务/健康轮询替换,KP 宫头被政策跳过冒充已观察 ## BUG-324 | 侧栏合同仍断言固定 chat-panel classstaging 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 - 状态:resolved
- 首次发现:2026-08-20 - 首次发现:2026-08-20
+4 -1
View File
@@ -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, /const modalOpen = activeAccountDialog !== null \|\| onboardingPaywallOpen/);
assert.match(page, /<SidebarProvider escapeBlocked=\{accountMenuOpen \|\| modalOpen\}>/); assert.match(page, /<SidebarProvider escapeBlocked=\{accountMenuOpen \|\| modalOpen\}>/);
assert.match(page, /<main className="chat-app">[\s\S]*<AppSidebar\b/); assert.match(page, /<main className="chat-app">[\s\S]*<AppSidebar\b/);
assert.match(page, /<SidebarInset className="chat-panel" inert=\{modalOpen\}>/); assert.match(
page,
/<SidebarInset className=\{`chat-panel\$\{rectificationSurfaceOpen \? " is-rectification" : ""\}`\} inert=\{modalOpen\}>/,
);
assert.match(page, /<SidebarTrigger placement="inset" \/>/); assert.match(page, /<SidebarTrigger placement="inset" \/>/);
}); });