feat(app): add Resume Session to continue previous conversations#703
Open
seibe wants to merge 1 commit intoslopus:mainfrom
Open
feat(app): add Resume Session to continue previous conversations#703seibe wants to merge 1 commit intoslopus:mainfrom
seibe wants to merge 1 commit intoslopus:mainfrom
Conversation
Wire up the daemon's ignored sessionId parameter to pass --resume <claudeSessionId> to the spawned CLI process (both regular and tmux paths). Add machineResumeSession() RPC in the app, Resume button in session info Quick Actions, and Resume swipe action on inactive sessions in the session list. Security: validate sessionId as UUID format before shell interpolation (tmux path). Safety: disable directory auto-creation for resume (approvedNewDirectoryCreation: false).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the ability to resume a previous Claude conversation by spawning a new Happy session with
--resume <claudeSessionId>. This lets users continue where they left off without losing context.Related issues
Addresses: #685 — support resuming Claude Code sessions when spawning from mobile.
Also relevant: #478, #621, #611, #353, #437 — various requests for session resume/continue functionality from mobile.
Comparison with similar PRs
--continue,--resume) from leaking through on retry in the local CLI launcher. This is a complementary fix for the local mode retry path; this PR implements the remote-mode resume feature via the daemon's spawn RPC, which is a separate code path. Both can coexist.sync.ts— no actual overlap with this feature.How it works
spawn-happy-session/spawn-in-directoryRPC — the daemon interprets the presence of asessionIdfield as a resume request and appends--resume <id>to the CLI spawn commandclaudeSessionId+machineId)Changes by package
happy-app
session/[id]/info.tsx: Add "Resume Session" action in Quick Actions group with online/offline machine statusSessionsList.tsx: Add swipe-to-resume gesture (green "Resume" button alongside existing red "Delete")sync/ops.ts: NewmachineResumeSession()function that sendsspawn-happy-sessionRPC withsessionIdresumeSession,resumeSessionSubtitle,resumeSessionMachineOffline,failedToResumeSessionkeyshappy-cli
daemon/run.ts: HandlesessionIdin spawn payload — validate UUID format, append--resume <id>to tmux command or spawn argsTest plan