Repository navigation
Open
Description
RFC for the owner's "share a chat" ask. UX wave: #57 · Restaurant RFC: #66
Problem
I want to (a) hand a session off to a new session, and (b) share a session with friends so we work in it together, like oh-my-pi's /handoff, /collab and /share. It has to work from the Android app. Today on Android neither the thread's 3-dot menu nor /handoff in the composer offers anything.
What already exists (upstream main 550c5fa34b; live install 0.1.7-nightly.20261103.4119)
| Need | Upstream today | Android today |
|---|---|---|
| Hand off to a new thread | thread.fork (latest stable / run / checkpoint) with native or portable context transfer (docs/user/portable-handoffs.md); side chats; merge back |
"Fork from this response" on a reply only. No /handoff; the composer offers /model, /plan, /default plus provider commands (apps/mobile/src/features/threads/use-composer-command-menu.ts) |
| Share with a friend, live | Guest links (beta, Settings → Labs, needs T3 Connect): one guest, 24 h, watches live, proposes messages the owner sends or dismisses. Web: sidebar/thread menu + command palette | Can send/dismiss/stop an existing share (ThreadGuestShareBar.tsx) but cannot create one. The overflow (ThreadHeader.tsx androidHeaderActions) has files, terminal, git, merge back only |
| Read-only link | none | none |
| Collab roles, several people, presence | none | none |
| Static snapshot share / export | none | none |
oh-my-pi for reference: /collab (control link) and /collab view (read-only) over a content-blind relay with the key in the URL fragment, many participants, joinable from a terminal or browser; /share uploads a redacted, encrypted snapshot; /handoff [focus] writes a work-focused brief (now compacts in place; earlier versions started a fresh session).
Plan (smallest first)
- Android parity +
/handoff(prototype in progress, fork PR to follow)- Thread overflow (Android) and header options (iOS): Share with guest → existing
createGuestShare→ native share sheet / copy; clear messages fordisabledandconnect_unavailable. /handoff [focus]built-in on mobile and web composers, plus Hand off to new thread in the mobile overflow:thread.forkatlatest_stableinto a new top-level thread, open it, send the focus text as its first message. No new contract.
- Thread overflow (Android) and header options (iOS): Share with guest → existing
- View-only guest link: a link that streams the thread but has no composer. Smallest step toward collab roles.
- Collab roles (viewer / collaborator / owner, several people, presence, driver handoff): upstream Ideas
27708. - Static share/export of a finished thread (Markdown/JSON, secrets redacted): upstream Ideas
11820. - Hand off to another machine (fork into a thread on a different environment).
Experiments
- E1: scoped unit tests for slash-item building, menu builders and error mapping (RED on
550c5fa34b, GREEN on the branch). - E2: Android, real device: preview-variant APK built on fleet-runner from the PR head, against a sandbox server with guest links enabled. Steps:
/handoff fix the testsfrom a thread with replies → new thread opens with the inherited history and runs the focus message; 3-dot → Share with guest → share sheet shows a URL; open it in a browser, send a guest message, approve it on the phone; Stop sharing ends the guest stream. Screenshots +statev2.sqliterows (thread.fork events, guest share state) as evidence. - E3: fork context transfer cost: tokens carried by
/handoffinto a same-provider native fork vs a cross-provider portable handoff on one real long thread (read-only snapshot of real data).
Upstream venues
- New Ideas post for Android parity +
/handoff+ view-only link (link to follow). - Collab roles:
27708(open, 5 votes). Related closed duplicate:17196. - Export/static share:
11820.
Acceptance
- Android: 3-dot → Share with guest creates a link and opens the share sheet; errors are readable
- Android + web:
/handoffappears in the slash popup and creates and opens the handoff thread - Android: 3-dot → Hand off to new thread
- Docs updated (
docs/user/guest-links.md, handoff section) - E1–E2 evidence attached; E3 numbers recorded
- Upstream Ideas post linked here
Metadata
Metadata
Assignees
Labels
No labels
Activity
kvnloo commentedon Nov 3, 2026
Upstream Ideas post: pingdotgg#30355 · implementation child running on branch
feat/share-handoff-android(baseupstream-main-550c5fa34b).kvnloo commentedon Nov 3, 2026
Implementation: draft PR #73 (head f7ea30a). Unit tests, typecheck and lint pass on a clean fleet-runner checkout (run 41719040164). Real-device Android testing (E2/E3) has started; it isn't verified yet.