feat(macos): redesign chat window as native shell with sessions sidebar, toolbar pickers, slash commands, and context usage#101103
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8816ee1f8b
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 53caf9c855
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65182953ef
ℹ️ 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".
|
Codex review: needs real behavior proof before merge. Reviewed July 6, 2026, 9:03 PM ET / 01:03 UTC. Summary PR surface: Docs +8, Other +2013. Total +2021 across 18 files. Reproducibility: yes. for the review finding by source inspection: with active Review metrics: none identified. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: Resolve active-session metadata through one alias-preferred helper shared by the sidebar, title/model label, and context usage, then attach inspectable exact-head native macOS proof before maintainer scope approval. Do we have a high-confidence way to reproduce the issue? Yes for the review finding by source inspection: with active Is this the best way to solve the issue? No for the current patch state: the native-shell direction matches the linked issue, but the landing shape still needs one alias-aware active-session metadata fix and visible exact-head native proof. A shared active-session-entry resolver would be safer than repeating exact lookup plus fallback logic. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 775ef966c3cd. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Docs +8, Other +2013. Total +2021 across 18 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (8 earlier review cycles)
|
4e331b7 to
9a159ab
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9a159abff2
ℹ️ 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".
65cde39 to
933f435
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 933f435e1d
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 575b37f3a5
ℹ️ 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".
994e00e to
e7440bd
Compare
This comment has been minimized.
This comment has been minimized.
…context usage, and slash commands
… shell shortcuts outside menus
…tic composer text into the focused NSTextView
41b4dd0 to
fe62a2e
Compare
|
Merged via squash.
|
Closes #101086
What Problem This Solves
The native macOS chat window lagged far behind the web Control UI. It was a single fixed column in a bare
NSWindowwith a dated gradient background: sessions were only reachable through a cramped dropdown of raw routing keys (agent:main:main), session/thinking/model pickers were squeezed into a strip above the composer, and the surface had no slash-command autocomplete, no context-window/token/cost visibility, no message copy actions, no transcript export, and no compact/clear-history affordances. "New session" silently fell back tosessions.resetbecause the Mac transport never implementedsessions.create, so starting a fresh session actually wiped the current one.Why This Change Was Made
Rebuilds the chat window as a native macOS shell (
OpenClawChatWindowShellinOpenClawChatUI, macOS-only): aNavigationSplitViewwith a searchable sessions sidebar (pinned/recent sections, unread dots, relative timestamps, pin/copy-key/delete context menus, connection footer) and a unified toolbar carrying the context-usage ring (tokens/cost with a compact action), thinking picker, model picker (pinned/recent/all sections), and a session actions menu (new ⌘N, refresh ⌘R, copy session key, export transcript ⇧⌘E, compact, clear history with confirmation). The transcript uses clean chrome: assistant messages render as plain flowing text with an avatar, user messages in accent bubbles that follow the system accent (host override preserved for the seam color). The shared slash-command panel is enabled on macOS with full keyboard navigation (↑/↓/Tab/Return/Esc) routed through the composer NSTextView, and the Mac gateway transport now implementscommands.list,sessions.create,sessions.patch, andsessions.delete. The compact menu-bar panel keeps the existing single-column presentation. Full web parity (split panes, checkpoints, workspace rail, thread search, in-window talk mode) is intentionally out of scope and tracked in #101086.User Impact
macOS users get a first-class chat window: browse/search/switch/pin/delete sessions in a sidebar, create real new sessions, see context pressure and session cost at a glance, autocomplete slash commands with the keyboard, copy messages via right-click, export transcripts, and compact or clear a session from the toolbar — all in native window chrome with frame persistence. iOS behavior is unchanged aside from the slash panel no longer appearing for transports without a command catalog.
Evidence
swift test --parallelinapps/shared/OpenClawKit: 531 tests green (15 new: context-usage calculator, sidebar section/filter/display-name model, composer key routing). One pre-existing wall-clock-timeout test (definitive live-send rejection restores draft without queueing) flakes under heavy parallel host load and passes in isolation and on rerun.swift test --parallelinapps/macos: 653 tests green (includes window/panel controller smoke tests running the new shell).swift build --product OpenClawrelease-style build green;OpenClawChatUIalso built forgeneric/platform=iOS Simulatorto prove the shared-package changes compile for iOS.swiftlint(repo config) clean on touched files;swiftformat --lintclean forapps/macos/Sourcesand the new shared sources.commands.listcatalog, keyboard completion (/→ ↓ → Tab inserts/commands), context ring showing 9%/3% per session, connection footer, message context menu. Screenshots were captured during live verification; the Crabbox artifact broker is not configured on this host, so they are held locally rather than attached (available on request).