Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR refactors the plan UI for ExitPlanMode: the inline PlanCardView becomes a compact status chip, and the full markdown + decision buttons move into a new PlanSheetView opened either from the chip or from a new pending-plan section in the queue banner. It also persists plan decisions through a new SwiftData PlanDecisionRecord so they survive CLI-backed session reloads, and includes related UX fixes (input draft/attachment restoration on stop, suppressing the streaming indicator while paused on a plan, and dropping injected continuation prompts from reloaded chat history).
Changes:
- New
PlanSheetView+ chip-stylePlanCardView, presented viaWindowState.presentedPlanToolCallIdand surfaced through the existing queue banner. - Persist plan decisions in
PlanDecisionRecordand expose them viaChatBridge.planDecisionSummaries/pendingPlans; preserve user decision summaries against CLI-side tool_result overwrites. - Restore in-flight user text and attachments after stop/queue-flush; hide streaming indicator and disable composer while a plan decision is pending; tag send/stop buttons with accessibility ids and add tests.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Packages/Sources/RxCodeChatKit/PlanSheetView.swift | New sheet with markdown, 5 decision buttons, feedback composer, and test inspection hook. |
| Packages/Sources/RxCodeChatKit/PlanCardView.swift | Replaces full card with a tappable status chip; reads decision from sidecar dict. |
| Packages/Sources/RxCodeChatKit/ChatBridge.swift | Adds planDecisionSummaries and pendingPlans derivation. |
| Packages/Sources/RxCodeChatKit/MessageBubble.swift | Reorders text before tools when message has ExitPlanMode; pauses sibling tool streaming spinners. |
| Packages/Sources/RxCodeChatKit/MessageListView.swift | Hides streaming indicator while paused on a plan decision. |
| Packages/Sources/RxCodeChatKit/InputBarView.swift | Adds test-injectable initializer and restores draft text/attachments after queue auto-flush. |
| Packages/Sources/RxCodeCore/Models/PlanDecisionRecord.swift | New SwiftData model for persisted plan decisions. |
| Packages/Sources/RxCodeCore/Models/PermissionRequest.swift | Adds PendingPlan and shared decision/continuation prefix helpers on PlanDecisionAction. |
| Packages/Sources/RxCodeCore/WindowState.swift | New presentedPlanToolCallId for sheet presentation. |
| Packages/Sources/RxCodeCore/CLISession/CLILineToBlocksMapper.swift | Drops injected continuation prompts on reload; preserves decided ExitPlanMode results. |
| Packages/Sources/RxCodeCore/Theme/ClaudeTheme.swift | Adds accessibility labels/ids to send and stop buttons. |
| RxCode/App/AppState.swift | Tracks in-flight attachments, persists/loads plan decisions, suppresses redundant continuation prompts, restores composer drafts on queue flush. |
| RxCode/Services/ThreadStore.swift | Wires PlanDecisionRecord into schema, load/set/rename/delete paths. |
| RxCode/Views/MainView.swift | Mounts the plan sheet via ChatDetailModifiers. |
| RxCode/Views/Permission/PermissionQueueBanner.swift | Surfaces undecided pending plans alongside permissions/questions. |
| Packages/Tests/RxCodeChatKitTests/InputBarStopRestoreTests.swift | New tests for stop-button draft+attachment restore behavior. |
| Packages/Tests/RxCodeChatKitTests/InputBarQueueTests.swift | New test for draft preservation during queued auto-flush. |
| RxCodeTests/PlanCardViewTests.swift | Rewritten for chip + sheet split. |
| RxCode.xcodeproj/project.pbxproj | Adds DEVELOPMENT_TEAM to RxCodeTests build configs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
🎉 This PR is included in version 1.3.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
No description provided.