A party's room is a page: nixamp.com/live/<slug>, open to read, with the chat - #218
Merged
Merged
Conversation
…the chat "Open room" and the invite-code form sent people to nixamp.com/live/<slug>, and nixamp.com drew the ordinary player there: the web app had no route for the path, so the room every other surface could open was a dead end on the one surface that shares its address. And reading a party needed a session, so a share link on a television or in a terminal had nothing to show a person who was not signed in yet. Now /live/<slug> is a page, the way /directory is: the party's title, where the film is as a clock that keeps counting while it plays, Join party to the site that has the film (bittorrented.com, in a new tab), Copy room link, and the room's chat -- the same live_event_chat the party's own page reads and writes through the OAuth bridge, so a line said on a TV is the line everybody sees. The host sees End party. Signing in re-draws who may say something. GET /api/v1/watch-parties/<ref> answers without a session for a party that is not private, by slug, room id or code (across origins, since a person typing a code into nixamp.com is not asked which site it came from). The list, and every write, still need a session or a token with the parties scope. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
bittorrented.com's watch parties are bridged into nixamp as rooms (PR #127), and the web app, the CLI, MCP and the desktop app all hand people the room link
nixamp.com/live/<slug>. nixamp.com had no route for that path: it drew the ordinary player, so "Open room" and the invite-code form were dead ends on the one surface that shares the room's address. Reading a party also needed a session, so a share link on a TV or in a terminal showed nothing to someone not signed in yet.What
/live/<slug>is a page (like/directory): title, where the film is as a clock that keeps counting while it plays, Join party to the site with the film (new tab), Copy room link, End party for the host, and the room's chat.live_event_chat, polled every 4 s and posted with the nixamp session. It is the same chat bittorrented.com's party page reads and writes through the OAuth bridge (profullstack/media-streamer PR, opened alongside this one), so one conversation reaches every surface.GET /api/v1/watch-parties/<ref>is open for a non-private party, by slug, room id or code (any origin: a person typing a code into nixamp.com is not asked which site it came from). The list and every write still need a session or a token with thepartiesscope.Tests
test/oauth-server.test.ts: a party is readable signed out by slug and room id,hostis false, the list and writes still 401, a missing one 404s.web/test/web.test.ts: the room's markup, the route, the chat wiring, no innerHTML, the clock only counts while playing, the account event re-draws.bun run typecheckclean.webbuilds.After merge
nixamp.com auto-deploys main. Then
curl -s https://nixamp.com/api/v1/watch-parties/<slug>should answer 200 signed out for an unlisted party. No CLI release is needed: nothing here touches the servers.🤖 Generated with Claude Code