ADE-110: Polish CTO desktop and mobile experience#794
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
@copilot review but do not make fixes |
📝 WalkthroughWalkthroughWalkthroughChangesThis change updates CTO model and fast-mode controls across desktop and iOS, preserves CTO permissions during provider changes, adds live ADE action guidance, introduces an iOS compact composer, and removes duplicate identity/model controls. CTO controls and session experience
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
apps/desktop/src/renderer/components/cto/ctoUi.test.tsx (1)
140-165: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd coverage for fast-mode-off and non-supporting models.
The model-switch test uses
objectContaining, so it doesn't assertfastModeis forwarded; dropping that field fromhandleModelChangewould still pass. The fast-mode test only coversfastMode: true. Consider adding: (1) a toggle-off case assertingfastMode: false, and (2) a model switch to a non-supporting model (supportsFastMode: false) assertingfastMode: falseis sent, which exercises theselection.supportsFastMode && currentFastModeguard.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/desktop/src/renderer/components/cto/ctoUi.test.tsx` around lines 140 - 165, The CTO UI tests need coverage for forwarding fastMode in both false-value scenarios. Strengthen the model-switch assertion around the existing settings model-switch test to require fastMode: false when the selected model has supportsFastMode: false, and add a Fast mode toggle-off test that asserts updateSession receives fastMode: false for the locked CTO session. Use the existing CtoPage, model-picker, model-fast-toggle, and updateSession test helpers.apps/desktop/src/renderer/components/chat/AgentChatComposer.tsx (1)
3998-4029: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueParallel-mode model/reasoning/fast-mode controls are not gated by
hideModelControls.Only the single-model row respects the new flag; the parallel-slot-configuring block still renders its own
ModelPicker/ReasoningEffortPicker/ComposerFastModeButtonregardless ofhideModelControls. Likely harmless today (parallel mode isn't expected to be enabled on host-owned surfaces like the CTO page), but worth confirming that surfaces usinghideModelControlsalso disableshowParallelChatToggle/parallelChatMode.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/desktop/src/renderer/components/chat/AgentChatComposer.tsx` around lines 3998 - 4029, Gate the parallel-slot controls in the `parallelChatMode && parallelConfiguringIndex != null && parallelModelSlots[...]` block with `hideModelControls`, so `ModelPicker`, `ReasoningEffortPicker`, and `ComposerFastModeButton` do not render when model controls are hidden. Preserve the existing parallel configuration behavior when `hideModelControls` is false, and ensure surfaces using the flag cannot expose parallel model controls.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/desktop/src/main/services/chat/agentChatService.test.ts`:
- Around line 5906-5931: Update the test around the service setup and assertions
in “keeps CTO full access when a model switch crosses providers” so db.close()
executes in a finally block, including when any assertion or awaited operation
fails. Keep the existing assertions and database cleanup behavior unchanged.
---
Nitpick comments:
In `@apps/desktop/src/renderer/components/chat/AgentChatComposer.tsx`:
- Around line 3998-4029: Gate the parallel-slot controls in the
`parallelChatMode && parallelConfiguringIndex != null &&
parallelModelSlots[...]` block with `hideModelControls`, so `ModelPicker`,
`ReasoningEffortPicker`, and `ComposerFastModeButton` do not render when model
controls are hidden. Preserve the existing parallel configuration behavior when
`hideModelControls` is false, and ensure surfaces using the flag cannot expose
parallel model controls.
In `@apps/desktop/src/renderer/components/cto/ctoUi.test.tsx`:
- Around line 140-165: The CTO UI tests need coverage for forwarding fastMode in
both false-value scenarios. Strengthen the model-switch assertion around the
existing settings model-switch test to require fastMode: false when the selected
model has supportsFastMode: false, and add a Fast mode toggle-off test that
asserts updateSession receives fastMode: false for the locked CTO session. Use
the existing CtoPage, model-picker, model-fast-toggle, and updateSession test
helpers.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 2629f83e-b8a2-43b7-8287-fa1ffd6fc2a8
⛔ Files ignored due to path filters (3)
docs/features/agents/identity-and-personas.mdis excluded by!docs/**docs/features/cto/README.mdis excluded by!docs/**docs/features/sync-and-multi-device/ios-companion.mdis excluded by!docs/**
📒 Files selected for processing (17)
apps/desktop/src/main/services/chat/agentChatService.test.tsapps/desktop/src/main/services/cto/ctoState.test.tsapps/desktop/src/main/services/cto/ctoStateService.tsapps/desktop/src/renderer/components/chat/AgentChatComposer.test.tsxapps/desktop/src/renderer/components/chat/AgentChatComposer.tsxapps/desktop/src/renderer/components/chat/AgentChatPane.tsxapps/desktop/src/renderer/components/cto/CtoPage.tsxapps/desktop/src/renderer/components/cto/CtoSettingsPanel.tsxapps/desktop/src/renderer/components/cto/ctoUi.test.tsxapps/desktop/src/renderer/components/cto/useCtoModelOptions.tsapps/ios/ADE/Views/Cto/CtoIdentityEditor.swiftapps/ios/ADE/Views/Cto/CtoRootScreen.swiftapps/ios/ADE/Views/Cto/CtoSessionDestinationView.swiftapps/ios/ADE/Views/Cto/CtoSettingsScreen.swiftapps/ios/ADE/Views/Work/WorkChatSessionView.swiftapps/ios/ADE/Views/Work/WorkComposerTypedTriggers.swiftapps/ios/ADE/Views/Work/WorkSessionDestinationView.swift
💤 Files with no reviewable changes (2)
- apps/ios/ADE/Views/Cto/CtoRootScreen.swift
- apps/ios/ADE/Views/Cto/CtoIdentityEditor.swift
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0c56631385
ℹ️ 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 |
|
Codex Review: Didn't find any major issues. Keep it up! 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". |
Fixes ADE-110
Linked Linear issues
Summary by CodeRabbit
New Features
Improvements
Bug Fixes
Greptile Summary
This PR polishes the CTO experience across desktop and iOS. The main changes are:
Confidence Score: 5/5
This looks safe to merge.
No blocking issues found in the changed code.
What T-Rex did
Important Files Changed
Comments Outside Diff (1)
apps/ios/ADE/Views/Work/WorkChatSessionView.swift, line 841-850 (link)When the CTO tab enables
compactComposer, this branch renders the text field without the normal suggestion strip, attachment tray, oronPasteImagescallback used by the non-compact composer. A CTO user can type trigger text or paste an image into the chat and the compact path no longer surfaces suggestions or stages pasted attachments, even though the same chat session still uses the Work chat pipeline.Artifacts
Repro: executable source-structure harness for compact versus non-compact composer features
Repro: harness output showing compact composer omissions and non-compact composer feature presence
Prompt To Fix With AI
Reviews (3): Last reviewed commit: "Refs ADE-110: ship: iteration 2 — preser..." | Re-trigger Greptile