fix: fork session now uses modal with title field#933
Conversation
The fork session button was directly calling onFork with the current input value, which could be empty. This resulted in forked sessions having empty titles. Changed fork to use ForkSpawnModal (like spawn does) to: - Ensure users always provide a prompt when forking - Maintain consistency with spawn workflow - Validate prompt is non-empty before creating fork Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Users can now specify a separate title when forking a session, distinct from the prompt. This aligns with the "Create New Session" modal UX where title and prompt are separate fields. Changes: - Added title input field to ForkSpawnModal (for fork action) - Thread title through fork chain: UI → hook → backend - Backend fork method uses explicit title if provided - Updated description text: "forked session" (was "sibling session") - Title field is required to ensure non-empty session names Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Apply Biome formatter rules to fix CI lint errors: - Split long function signatures across multiple lines - Reformat ternary expressions for readability Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Oh interesting. Currently I'll type the prompt in the current sesh and quick-hit fork session, but i like the idea of having the title there. In its current form, does the modal carry what's in the prompt box into the modal? Also, please test that current session configuration get respected/carried-forward. Note that we could add a collapse that would show a subset of the agentic tool configuration, locked on the current tool. Side note: I've been meaning to create a cross-tool forking option, like going from Claude to Codex, say "claude is having some trouble getting this right, Codex, can you give it a shot?". This would require some mechanism to "dump" the full session into the new tool to prime it. Some more thoughts about getting this right, and what the template might look like:
Main reason why I haven't done it already is "spawning subsession" work just fine for that, where the parent session can fetch [only] the useful context from its session and prepare a prompt for the other tool. Works pretty nicely already, and if effectively a selective compaction if done right. |
Summary
Fixes the issue where forked sessions were created with empty titles. The fork functionality now uses a modal dialog (like spawn does) to collect both a title and prompt from users before creating the fork.
Changes
1. Fork now uses modal dialog (555b5ef)
ForkSpawnModalinstead of directly using input value2. Added dedicated title field (b813acb)
Screenshots
Before: Fork button directly used input value (could be empty)

Forked sessions created without title, and empty content.
After: Modal with dedicated title and prompt fields

Benefits
Files Changed
apps/agor-ui/src/components/ForkSpawnModal/ForkSpawnModal.tsx- Added title fieldapps/agor-ui/src/components/SessionPanel/SessionPanel.tsx- Use modal for forkapps/agor-ui/src/hooks/useSessionActions.ts- Pass title to backendapps/agor-ui/src/contexts/AppActionsContext.tsx- Add title parameterapps/agor-ui/src/App.tsx- Thread title through handlerapps/agor-daemon/src/index.ts- Accept title in fork endpointapps/agor-daemon/src/services/sessions.ts- Use title if providedTest Plan
🤖 Generated with Claude Code