Skip to content

Shared Sessions v0 (slice 9): pan share and pan join CLI #4480

Description

@eltmon

PRD: .pan/drafts/pan-658.md (rev 3), section Clients & join paths → CLI

Part of PAN-658 Shared Sessions v0, slice 9. PAN-658 itself delivers slice 1: the Cloudflare share service (services/share/, a Worker plus one Durable Object per room) and the signaling protocol types in @overdeck/contracts. This slice builds on it.

What

  • pan share <conversationId> prints the link and the join code.
  • pan join <link-or-code> signs in through the PAN-4330 device flow if needed, starts the local dashboard if it is not running, posts the join intent, and opens the shared route.
  • Zero-install join (operator requirement, 2026-10-02): npx @overdeck/core join <link-or-code> works on a machine that has never installed Overdeck (Node 22+, empty OVERDECK_HOME). npx already runs the published CLI without a global install (verified: npx -y @overdeck/core --version prints 0.64.0), so the work is making join succeed cold from the npx cache: first-run setup without projects, the dashboard started from the npx package directory, and no Herdr or tmux needed for a viewer.
  • The share Worker invite page (services/share/src/pages.ts invitePage) shows npx @overdeck/core join <CODE> as the no-install command, next to pan join <CODE> for installed users.
  • Wrapper skills pan-share and pan-join land in the same commit as the verbs (scripts/lint-skills.sh).

Depends on

PAN-4475 (viewer surface) and PAN-4330.

Acceptance (sketch)

  • The device-code poll respects slow_down (fake timers).
  • pan join starts the dashboard when it is down.
  • The user lands in the lobby.
  • Given a machine with Node 22 and no Overdeck (no global pan, empty OVERDECK_HOME), when the user runs npx @overdeck/core join <code>, then the local dashboard starts and the user lands in the lobby.
  • GET /s/:code for an active room shows both pan join <CODE> and npx @overdeck/core join <CODE>.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions