Full conversation context, workspace state, ticket + persona provenance, and curated attachments transfer between teammates — with revoke, decline, comment threads, and an audit trail.
Paths auto-resolve by git remote URL. No manual configuration.
Attach --ticket and --persona at create time. On claim, the recipient's CLI writes the active-ticket payload to ~/.sessionfs/active_ticket.json so the next captured session is automatically tagged with that context.
Hand off to a team with --to-team-id; any team member can claim with atomic race protection. UPDATE WHERE status='pending' runs first — race losers never write blobs.
Attach KB entries, wiki pages, or ticket refs with --attach kind:ref_id. Validated against the sender's project at create time and re-validated against the recipient's accessible projects on claim; inaccessible refs are silently dropped with structured reasons.
Sender can revoke with a required reason; recipient can decline. Both parties can post comments; every state change emits an audit event. Email notifications fire for claim, revoke, decline, and comment (all html.escape()'d).
Non-parties get 404 (not 403) on all handoff routes — recipients can't distinguish pending vs claimed vs revoked via response codes. Eligibility is checked before any lazy-expire write or status-specific response.
Recipients get an email with session details and the pull command. Lifecycle events (claim, revoke, decline, comment) fire to the other party. Supports Resend, SMTP, or no email for air-gapped enterprise deployments.
Everything the recipient needs to continue exactly where you left off — not just the messages, but the full context.
Read the handoff docs