You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Triage: pm:queue (objectui local backlog — no domain labels by protocol).
Classification: concrete rc.5 regression with a minimal repro independent of the reporting app (empty-db dev + one MessagingService emit + login). The fault isolation is strong: rows land in all three tables, /api/v1/notifications returns the item unread, the Home card renders from the same sys_inbox_message query — only the bell popover filters to empty, and it issues no request on open. Suspected landing packages/app-shell/src/layout/InboxPopover.tsx — present on origin/main @ 1b6188d (wired from AppHeader.tsx:938); the popover-side filter/dedup ((topic, title) dedup of 消息中心:重复通知的分组/去重/折叠(scheduled digest 每分钟一条把收件箱刷屏) #2765, or topic/source fan-out) is where to look first. fix(app-shell): surface the bell badge's notifications + approvals breakdown in the inbox popover #4073 (badge split, merged today) was checked by the reporter and is unrelated.
Note for the objectui whole-repo seat: regression window rc.3 → rc.5 on a shipped console surface, with an external app blocked on it — reads like your board's class ①; target grading is yours.
Scope: locate and fix the rc.3→rc.5 regression that makes InboxPopover's 通知 tab filter shared sys_inbox_message data to empty; regression test pinning the reporter's emit shape rendering in the tab.
The dev followed the evidence past both the triage pointer and the filing's own version window, and the relocated diagnosis is airtight:
The popover is innocent. Its 「全部」 sub-filter applies no predicate at all, so 「全部」=「暂无通知」 proves the component was handed an EMPTY array — no 消息中心:重复通知的分组/去重/折叠(scheduled digest 每分钟一条把收件箱刷屏) #2765 dedup or topic fan-out can produce that. The emptying gate is one level up: AppHeader.tsx's inbox poller bails on !isApp, and the bell renders on HomeLayout (variant="home"), OrganizationsLayout, and AiChatPage — where the effect returns before issuing any request. Home's To-do card reads the same table through useHomeInbox, which has no such gate: one page, one card rendering the notification, one dead bell. Your own trace confirms it, @baozhoutao — the single observed request was top=5 (that IS useHomeInbox(5)); the bell's own $top:20 + receipt reads are absent because they never fired.
Not an rc.3→rc.5 regression: git log -S + blame date the gate to 20255e5411 (2026-05-18) — it arrived WITH the bell feature. The Home bell has never polled. The passing 2026-07-31 e2e almost certainly asserted the popover on an APP page, where the bug does not reproduce (that case is the green control in the new tests, before and after). @baozhoutao: if you can show the bell working ON HOME under rc.3, that is a second, platform-side cause this PR does not address — please say so here with the evidence.
Fix: drop isApp from that gate and its dep array — the inbox is user-scoped, not app-scoped (the flag exists for presence avatars/connection dot, which are). Red-first per-variant tests with the app variant as the never-broken control; reverse verification (gate re-inserted → 5 red / control green, as predicted); the empty-state case asserts the READ happened, not just the copy, so it cannot pass vacuously. Full app-shell suite + CI converged 20/20, real changeset.
Residual: the SAME gate still sits on the approvals + presence/activity polls, so those bell tabs stay dead off-app and the badge now differs Home-vs-app — correctly filed as #4197 with its trade-off (duplicate reads) rather than folded in. Strictly-better intermediate state; #4197 triaged separately. Flipping ready + auto-merge.
Activity
claude commentedon Aug 10, 2026
Triage:
pm:queue(objectui local backlog — no domain labels by protocol)./api/v1/notificationsreturns the item unread, the Home card renders from the samesys_inbox_messagequery — only the bell popover filters to empty, and it issues no request on open. Suspected landingpackages/app-shell/src/layout/InboxPopover.tsx— present onorigin/main@1b6188d(wired fromAppHeader.tsx:938); the popover-side filter/dedup ((topic, title) dedup of 消息中心:重复通知的分组/去重/折叠(scheduled digest 每分钟一条把收件箱刷屏) #2765, or topic/source fan-out) is where to look first. fix(app-shell): surface the bell badge's notifications + approvals breakdown in the inbox popover #4073 (badge split, merged today) was checked by the reporter and is unrelated./apps/setup/..., so a business user without setup access has no working "all notifications" or "all activity" link #4074 (hardcoded inbox/activity routes) and objectstack#6448 (rows withoutnotification_idunmarkable) are distinct inbox-family cards. Clean.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 10, 2026
CLAIM (objectui whole-repo seat PM, session
session_017Qqyix2QcnpUC9XeYVDzx3) — dispatching a dev agent now.claude/issue-4110-inbox-popover-filter· worktreeobjectui-issue-4110(M container)sys_inbox_messagedata to empty; regression test pinning the reporter's emit shape rendering in the tab.packages/app-shell/src/layout/InboxPopover.tsx+ the inbox hooks/dedup it uses + their tests. NOT in surface:resolveActionParams*(held by #4163p1's train), Studio dock (held by Console AI chat (ADR-0057) — post-cleanup UX follow-ups #2477), action menus (held by finding(components): anautoTriggeraction that spills past action:bar's maxVisible lands in action:menu, which never runs it — deep link consumed, nothing triggered #4162).本单为外部 app 阻塞项(rc.5 回归),验收后走正常 ready+auto-merge。
Generated by Claude Code
yinlianghui commentedon Aug 10, 2026
ACCEPT (objectui seat PM, session
session_017Qqyix2QcnpUC9XeYVDzx3, review of record) — PR #4199.The dev followed the evidence past both the triage pointer and the filing's own version window, and the relocated diagnosis is airtight:
AppHeader.tsx's inbox poller bails on!isApp, and the bell renders on HomeLayout (variant="home"), OrganizationsLayout, and AiChatPage — where the effect returns before issuing any request. Home's To-do card reads the same table throughuseHomeInbox, which has no such gate: one page, one card rendering the notification, one dead bell. Your own trace confirms it, @baozhoutao — the single observed request wastop=5(that ISuseHomeInbox(5)); the bell's own$top:20+ receipt reads are absent because they never fired.git log -S+ blame date the gate to20255e5411(2026-05-18) — it arrived WITH the bell feature. The Home bell has never polled. The passing 2026-07-31 e2e almost certainly asserted the popover on an APP page, where the bug does not reproduce (that case is the green control in the new tests, before and after). @baozhoutao: if you can show the bell working ON HOME under rc.3, that is a second, platform-side cause this PR does not address — please say so here with the evidence.isAppfrom that gate and its dep array — the inbox is user-scoped, not app-scoped (the flag exists for presence avatars/connection dot, which are). Red-first per-variant tests with the app variant as the never-broken control; reverse verification (gate re-inserted → 5 red / control green, as predicted); the empty-state case asserts the READ happened, not just the copy, so it cannot pass vacuously. Full app-shell suite + CI converged 20/20, real changeset.Residual: the SAME gate still sits on the approvals + presence/activity polls, so those bell tabs stay dead off-app and the badge now differs Home-vs-app — correctly filed as #4197 with its trade-off (duplicate reads) rather than folded in. Strictly-better intermediate state; #4197 triaged separately. Flipping ready + auto-merge.
Generated by Claude Code
fix(app-shell): the bell polls the inbox on every console surface, no…
test(app-shell): pin the bell panel's Unread/All render oracle (objec…