feat: make Mission Control attention surfaces actionable#49
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5611a9c457
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const mapped = events.map((event) => | ||
| mapTimelineRow(event, refs.get(event.workspaceId)!, event.workspace), | ||
| ); |
There was a problem hiding this comment.
Restrict global activity to owned chat events
When a workspace has multiple users with their own chat threads, this maps every ActivityEvent in the member workspaces through mapTimelineRow; its CHAT_MESSAGE_POSTED case renders the payload body. Unlike the workspace activity paths that scope chat via ownedChatActivityWhere, this global query does not filter chat-thread subjects by ctx.session.user.id, so /activity, Mission Control, and the notification drawer can show another member's private chat message text. Filter chat events to the caller's ChatThread ids (or exclude chat kinds) before mapping.
Useful? React with 👍 / 👎.
Summary
Why
Mission Control exposed important cross-workspace state, but several controls were inert or misleading, repeated status events obscured useful activity, agent pages could clip their content, and operators could not inspect enough context before opening an issue.
Impact
Operators can now navigate, inspect, and act on attention state without losing context. The changes preserve the existing warm, compact visual language while improving keyboard and assistive-technology semantics.
Validation
pnpm lint(existing repository warnings only)pnpm typecheckpnpm test— 1,323 passed, 1 intentional live-connector skipImplements AXI-110 and AXI-111.