[AI-assisted] feat(android): add chat command controls#98796
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 3, 2026, 7:16 PM ET / 23:16 UTC. Summary PR surface: Other +1120. Total +1120 across 13 files. Reproducibility: not applicable. as a feature PR. The review path is PR-head source inspection, Gateway protocol checks, proof media, and focused Android validation rather than a current-main bug reproduction. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the Gateway-backed slash picker and Android New Chat control only after the Android/session owner accepts the explicit sessions.create behavior for the header action. Do we have a high-confidence way to reproduce the issue? Not applicable as a feature PR. The review path is PR-head source inspection, Gateway protocol checks, proof media, and focused Android validation rather than a current-main bug reproduction. Is this the best way to solve the issue? Conditionally yes: Gateway-backed commands.list plus normal chat.send slash routing is the right ownership shape, but the header New Chat sessions.create action is only the best final shape if maintainers accept Android as an explicit session-control surface. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against c45124ab8554. Label changesLabel justifications:
Evidence reviewedPR surface: Other +1120. Total +1120 across 13 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
|
|
@openclaw-mantis visual task: verify the Android chat screen shows the new-chat button and slash-command picker, and selecting /new starts a fresh chat |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
Maintainer proof refreshUpdated PR #98796 to P2 follow-up fixed:
Focused proof on the rebased commit:
Live PR state after push: Screenshot proof retained from the emulator run: |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |

What Problem This Solves
Android chat users need a visible New Chat control and a slash-command picker without Android becoming a second command-policy source.
The PR also addresses the review-blocking command-routing, generated-inventory, and command-picker cleanup follow-ups:
/new <model/text>command tails instead of locally consuming argument-bearing/newinputs.main.Why This Change Was Made
This keeps the Android UI controls while preserving Gateway-owned command and session semantics:
commands.listremains the source for slash-command suggestions./newroute usesessions.createwith the selected parent session andemitCommandHooks=true./new ...input stays on the normal Gateway chat command path.command.categoryas a smaller secondary label under each row.This PR does not change provider/model routing, command execution semantics, permissions grants, dependencies, or lockfiles.
User Impact
Android users get first-class chat controls:
/,/n,/mo, and alias prefixes such as/defilter by command name or alias./newcan start a new chat locally, while/new <model/text>remains available to the Gateway command path./newargument preservation remain unchanged.Evidence
Focused Android behavior and visual proof already attached to this PR:
ChatControllerCommandControlsTestcovers Gateway command metadata parsing, unique New Chat labels, parent-linkedsessions.create, andemitCommandHooks=true.ChatCommandControlsTestcovers slash prefix filtering and preserves/new gpt-5.5 continueby not routing argument-bearing/newlocally./new,/resetslash-command interaction, and slash-command filtering:Header
+creates a unique new chat session:+.new.session.mp4
/newstarts a new session:commands.mp4
/resetslash-command interaction:slash.new.mp4
Slash command filtering:
status.mp4
Latest local proof for the command category-label cleanup and native i18n inventory refresh:
Relevant source assertions for the latest cleanup:
Relevant source assertions for the P1 command-tail repair:
What was not re-run in this final command category-label cleanup phase: