Repository navigation
Conversation
The WS sync_community handler and the Jetstream consumer can sync the same buddy list concurrently. The second DELETE can't see rows the first just inserted, so its INSERT hit buddy_members_pkey (PROTOIMSG-SERVER-E). Queue syncs per owner in-process so a burst (many tabs, reconnects) holds one pool connection at a time, and take a transaction-scoped advisory lock so syncs on different machines can't interleave. Fixes PROTOIMSG-SERVER-E Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Staging runs with NODE_ENV=production, so its Sentry events were tagged production. Add an optional SENTRY_ENVIRONMENT override (falls back to NODE_ENV) and set it to staging in fly.staging.toml. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Proximity voice used to give every conversation its own LiveKit room, so each split, merge or walk-away-and-back rebuilt the connection — and a third person or a returning one often ended up silent until they left town. Now everyone who joins audio in a scene shares one LiveKit room for the visit; the server only decides who is in your conversation, and each client grants and subscribes to its conversation's tracks alone. Nothing reconnects as you move. - server: per-scene voice room + roster (town_voice_room / town_proximity), 10s parked identity so a WS drop resumes, reconcile watchdog that evicts strangers and re-issues tokens (capped), fresh identity whenever someone who knew yours loses sight of you (block, friends-of-friends, lapsed pass) - proximity: 4/6-tile radii, 3s link grace, "stay together" (both must opt in), whole-house conversation inside homes - web: shared unlocked AudioContext, real connection status, Join/Leave audio, Reconnect, louder tap-to-hear, Stay together, Sentry reporting; mic only sent while someone can hear it, and released otherwise - fix the "reading 'gc'" crash leaving town (textures freed before Pixi app) - credits for the tiles, art and rpg.actor sprites; tip linking to rpg.actor when you have no sprite yet - strings in all locales Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat(town): scene-wide voice rooms, Gather-style
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
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.
Releases staging to production: proto town's voice rework (#96) and two server fixes.
Proto town voice, Gather-style (#96)
Voice in town now uses one LiveKit room per scene. The server decides who's in your conversation, and each client grants and subscribes to audio and video only within it. Walking up to people, away, and back never reconnects anything.
Fixes what we hit in testing:
Cannot read properties of null (reading 'gc')(PROTOIMSG-WEB-1E).New in town:
Safety:
Resilience:
Server fixes
productionin Sentry. A new optionalSENTRY_ENVIRONMENTnow overridesNODE_ENV, and it's set tostaginginfly.staging.toml. (2ccf942)After release
area: town-voice. Watch these to decide whether LiveKit needs a TURN fallback; it has none configured today.Testing
🤖 Generated with Claude Code