Skip to content

History / Hosting a Jam

Revisions

  • Linux: what the CI leg proves, what it does not, and that discovery is a decision Follows claude-jam 0.23.3 (commits 58ce3fb..c4a7b9c), which added an ubuntu-latest CI leg. Home: the "Not built yet" bullet said Linux was "thinly proven: the sound path has never been run, and discovery needs Apple's dns-sd, with no avahi fallback yet". Two of those are no longer true as written. The sound DECISION is tested now (which player, which file, per kind) — what is untested is whether the three are audibly distinguishable, and that needs a person at a Linux desktop. The avahi "yet" was a decision, not a gap, so it says so. And hosting on Linux is named as the real remaining hole: no tmux, claude or pty path has ever run there. Security-Model: the state-dir gate section described the fix well and said nothing about where it had been RUN — which matters more here than usual, because the attack cannot happen on macOS and every review of it until now was a macOS review. That is exactly why it survived five of them. Now states what is measured (all four filesystem branches, including the false positive against a real 1777 parent) and what is not: nobody has run the original attack as two real logins on a real shared Linux box, and no WSL2 install has been tried with its state directory on a mounted Windows drive. Joining: "claude-jam find says so and names the fix" understated it — find REFUSES and exits non-zero rather than reporting an empty network, which is the whole point, and on Linux that is the normal state rather than an edge case. Hosting: the Linux sound line now names the two players' file sets and says plainly that nobody has heard one.

    @roypadina roypadina committed Aug 30, 2026
  • Hosting: what the adopted re-brief can and cannot notice The re-brief is edge detection over the pane, because a running claude cannot be given a hook. A /compact and a /clear each leave their own marker and each fires; the same event twice with nothing observable between them reads as one. Says so, and names the roster re-brief as the backstop. Pairs with claude-jam 894ed2b (campaign F7).

    @roypadina roypadina committed Aug 29, 2026
  • the release gate's doc check: five shipped features the entry page called unbuilt Home.md's "Not built yet" list was never revisited after the first commit, so the entry page — the one an agent reads first — was telling people that LAN discovery, join/knock sounds, /nudge, `--uploads auto` and guest-side scrollback do not exist. All five have shipped and all five have a page here. What remains genuinely unbuilt is Windows, and Linux is honest about being thinly proven rather than silently fine. Hosting-a-Jam: the flag table was missing `--history` and `--peer-tasks`, and then claimed `--help` prints the same list. It does not, in either direction — the table also carries four flags `--help` deliberately leaves out. Say what is actually true. Architecture: 283 tests -> 389, two lints -> four, thirteen smokes -> eighteen, and it quoted a SPEC.md heading ("Running the thirteen end-to-end smokes") that has never existed under that name. Joining-a-Jam: /peer and /peers were missing from the only command list a guest gets, on the release that ships them. Verified every form against parseClientLine. Security-Model: the mDNS example record still advertised v0.18.0.

    @roypadina roypadina committed Aug 29, 2026
  • Hosting: adopt the session you are already in (v0.33) `--resume` restarts a conversation in a pane of claude-jam's own; `claude-jam adopt` shares the one already running, where it stands. The new section says how it is run (from inside the session, or `--pane` from another terminal), that it shows what it resolved and asks before sharing anything, and what happens when there is no tmux at all. Most of it is about what claude-jam does NOT do, because adoption is the first time it points tmux at a server it does not own: reads and typing into the one pane, no session or option or key binding written, and `claude-jam end` taking the daemon and leaving the pane, its session and claude exactly as they were. The two inherent ceilings — no Stop/Notification hooks on a running claude, and no resizing of somebody's own window — are named rather than left to be discovered. The `--resume` row in the flag table now points at it, since "share this session" is what people are usually looking for when they find that flag, and the Ending section says an adopted jam ends differently.

    @roypadina roypadina committed Aug 29, 2026
  • wiki: sounds, nudges, and the upload policy that only removes the prompt - Files-and-Export: the three upload policies in a table, the list of protections that do NOT move with them (and the note that smoke-nudge proves each one still refuses while the policy is auto), the 40-file/200 MB session quota and why the fallback line exists, and export's own separate toggle. - Hosting-a-Jam: the four new flags in the flag table; a 'Hearing what needs you' section with the two arrival sounds, why they differ, the once-only knock repeat, and the three toggles. - Joining-a-Jam: /ping and /sound in the command table, and a full section on nudges — what the addressee sees, what the room sees, why it is never queued, the rate limit, the once-only escalation, what idle actually reports, and the opt-in phone config with the topic warning. - Security-Model: a new section, 'The ntfy topic stays on your machine' — the topic is a bearer credential, it lives only in the recipient's config, their own client posts it, and it is never in a frame, an invite link, the protocol or a log. Plus three new entries under 'What to assume': the upload policy is a prompt setting and not a protection, export is separate and stays ask, and a nudge is deliberately not on the approval ladder.

    Claude committed Aug 29, 2026
  • wiki: finding a jam on your network, and what announcing tells the room Joining-a-Jam leads with finding one, because on the same wifi that is now the easiest way in — the find/join commands, a real listing, and a table of what each `access` value still requires of you. It also answers the three ordinary reasons a jam is not in the list (the host used --no-announce, you are not on that network, this machine has no mDNS tool), none of which is a fault. Security-Model gets the privacy note as a section of its own: the six fields that go on the wire and why each is safe, the list of what is never in it and the fact that this is enforced by an allow-list rather than a redaction pass, and the two consequences worth thinking about — that a jam name is a project name and the default is the directory's, and that on an untrusted network you should turn it off. Plus the point that discovery does not bypass any gate on that page, and the one it would be easy to get wrong: --no-announce hides the name, not the port. That is a bind and a firewall question. Hosting-a-Jam gets the two flags, told apart from --tmux (which is the identifier, not the label), and a short section pointing at the full note.

    @roypadina roypadina committed Aug 29, 2026
  • wiki: the ten pages — install, agent-install, hosting, joining, remote, files, security, architecture, troubleshooting Written against what actually shipped (README/MANUAL/SPEC 'what shipped' notes and the real flags in the source). Everything specced but not built — LAN discovery, sounds, nudges, upload auto-allow, guest scrollback, peer tasks, Windows — is listed on Home under 'Not built yet' and described nowhere else. Agent-Install is the page another person's agent is pointed at: the never-do list first, then numbered non-interactive commands with a verification after each, the steps that need a human called out, and a self-test whose expected output was recorded from a real run on 2026-08-29.

    @roypadina roypadina committed Aug 29, 2026