🤖 fix: quiet monitor wake events in chat - #3779
Conversation
Render background monitor wakes as lightweight inline transcript events instead of user message bubbles, while keeping the raw prompt expandable and keyboard accessible. --- _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `high` • Cost: `$8.02`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=high costs=8.02 -->
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8909f38a95
ℹ️ 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".
Wrap expanded monitor wake prompts in the transcript quote boundary so selected matched output keeps the normal quote/copy context menu behavior. --- _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `high` • Cost: `$8.02`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=high costs=8.02 -->
|
Addressed the quote-selection regression: expanded monitor wake details are now wrapped in @codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
#3779 routes monitor wakes to a dedicated transcript component and excludes them from prev/next prompt navigation, but each site re-derived the check as an inline bashMonitorWake null test in a different file. Extract isBashMonitorWakeMessage into messageUtils so both consumers agree by construction.
#3779 routes monitor wakes to a dedicated transcript component and excludes them from prev/next prompt navigation, but each site re-derived the check as an inline bashMonitorWake null test in a different file. Extract isBashMonitorWakeMessage into messageUtils so both consumers agree by construction.
#3779 routes monitor wakes to a dedicated transcript component and excludes them from prev/next prompt navigation, but each site re-derived the check as an inline bashMonitorWake null test in a different file. Extract isBashMonitorWakeMessage into messageUtils so both consumers agree by construction.
#3779 routes monitor wakes to a dedicated transcript component and excludes them from prev/next prompt navigation, but each site re-derived the check as an inline bashMonitorWake null test in a different file. Extract isBashMonitorWakeMessage into messageUtils so both consumers agree by construction.
Summary
Render background monitor wakes as quiet inline transcript events instead of full user-message bubbles. The raw model-facing wake prompt remains available through an expandable disclosure.
Background
Monitor wakes are machine-authored status events, but their user-bubble framing, duplicate badge, metadata row, and message actions made them visually compete with human prompts. Frequent monitor activity therefore made the chat transcript feel noisy.
Implementation
Validation
bun test src/browser/features/Messages/MessageRenderer.test.tsx src/browser/utils/messages/displayedMessageBuilder.bashMonitorWake.test.tsmake typecheckmake static-checkRisks
Low and display-focused. Wake delivery and persisted metadata are unchanged; malformed or legacy metadata continues to fall back to the ordinary user-message rendering path.
Generated with
mux• Model:openai:gpt-5.6-sol• Thinking:high• Cost:$8.02