M13: live sharing and presence #13

Open
opened 2026-10-02 00:16:06 +00:00 by jhgaylor · 0 comments
Owner

Depends on: #12, #11
Blocks: #31, #14

From PLAN.md, section "Multiplayer track → M13".


What it feels like to be in a session with someone.

  • Share dialog (right-click on the session or tab bar):
    • pick a person, set the role;
    • choose with history or from now. "From now" means the viewer's
      first snapshot is the screen only, and logs before the share offset are
      never sent (S12).
    • Shows who has access and lets you revoke.
  • Presence.
    • Avatars (from Tailscale-Profile-Pic) on the session, on each tab, and
      on each pane someone is focused on.
    • Each person's focused pane gets an outline in their colour.
    • The hello/layout messages gain a presence list.
  • Driving.
    • Each pane shows its driver.
    • "Take control" is instant for owners and editors, and leaves the previous
      driver a notice. "Request control" asks the driver.
    • Only the driver's input reaches the PTY; anyone else's keystrokes are
      held with a "you're not driving" hint.
    • "Pair" mode on a pane lets every editor type at once.
    • The driver owns the size.
  • Follow. Clicking an avatar follows that person's focus (tab and pane)
    until you act.
  • Attribution.
    • Every input record in the index carries its principal (S12).
    • history and command marks show who ran each command.
    • illogical log %p --who lists the drivers over time.
  • Done when:
    • two people on two machines plus a phone are in one session, and each sees
      the others' avatars and focus;
    • control passes back and forth with no interleaved keystrokes;
    • history attributes each command to the right person;
    • a "from now" viewer cannot reach earlier output by tail, capture or
      scrolling.
**Depends on:** #12, #11 **Blocks:** #31, #14 _From PLAN.md, section "Multiplayer track → M13"._ --- What it feels like to be in a session with someone. - **Share dialog** (right-click on the session or tab bar): - pick a person, set the role; - choose **with history** or **from now**. "From now" means the viewer's first snapshot is the screen only, and logs before the share offset are never sent (S12). - Shows who has access and lets you revoke. - **Presence.** - Avatars (from `Tailscale-Profile-Pic`) on the session, on each tab, and on each pane someone is focused on. - Each person's focused pane gets an outline in their colour. - The `hello`/`layout` messages gain a `presence` list. - **Driving.** - Each pane shows its driver. - "Take control" is instant for owners and editors, and leaves the previous driver a notice. "Request control" asks the driver. - Only the driver's input reaches the PTY; anyone else's keystrokes are held with a "you're not driving" hint. - "Pair" mode on a pane lets every editor type at once. - The driver owns the size. - **Follow.** Clicking an avatar follows that person's focus (tab and pane) until you act. - **Attribution.** - Every input record in the index carries its principal (S12). - `history` and command marks show who ran each command. - `illogical log %p --who` lists the drivers over time. - **Done when:** - two people on two machines plus a phone are in one session, and each sees the others' avatars and focus; - control passes back and forth with no interleaved keystrokes; - `history` attributes each command to the right person; - a "from now" viewer cannot reach earlier output by `tail`, `capture` or scrolling.
Sign in to join this conversation.
No description provided.