Repository navigation
Conversation
CoachMarks listened for keydown on the document directly, which turned tools/architecture.test.ts red on main. The capture-phase listener now lives in apps/web/src/seams/keys.ts (takeKey), imported from its own file so it stays in the lazy CoachMarks chunk. Behaviour is unchanged: Esc closes the guide wherever focus is and the screen never sees it; Enter still steps on from the bubble. A component test pins both down. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The results' "race again" always called quickMatch, so friends from a
private room were thrown into public quick match. Now a private room's
rematch opens a new private room and broadcasts its code on the old
room's channel ('rematch' event, allowed by the existing realtime
policy); whoever is still on the results sees "<name> calls everyone to
another race" and the button becomes «Приєднатися», which joins by code.
If that room cannot be joined, a new one is opened instead. Quick-match
results behave as before.
The decision and its execution are pure (features/race/rematch.ts) and
unit-tested, along with a Results component test.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After delete-account the server has no session left, so signOut's /auth/v1/logout answered 403 and the browser logged it. For a deleted account the stored session is dropped first; signOut then finds no token, makes no request, and still clears this browser and emits SIGNED_OUT. Ordinary sign-out still ends the session on the server. Tested with a real supabase-js client against an in-test fake fetch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Draft only — main is frozen for judging. Do not merge.
What
CoachMarks.tsxcalleddocument.addEventListener('keydown', …)directly, sotools/architecture.test.ts› "keeps a DOM input event listener behind its seam" failed. The capture-phase listener moved into a new seam,apps/web/src/seams/keys.ts(takeKey). CoachMarks imports it from that file, so it ships in the lazy CoachMarks chunk and the initial bundle stays the same. The architecture test was not changed. Behaviour is the same: Esc closes the guide wherever focus is and the screen never sees it; Enter steps on from the bubble without starting the Home lesson.rematchevent; the existingrace_channel_send/receivepolicy already allows it, so no migration is needed). Anyone still on the results sees «Оля кличе всіх на ще один заїзд.», and the button changes to «Приєднатися» (Enter), which joins by code. If that room can't be joined, a new one is opened instead. Quick-match results behave as before. The decision and its execution live infeatures/race/rematch.tsand are unit-tested.delete-accountthe server has no session left, so/auth/v1/logout?scope=localanswered 403. For a deleted account the stored session is now dropped beforesignOut. supabase-js then finds no token, makes no request, and still clears the browser and emitsSIGNED_OUT. Ordinary sign-out still calls the server.Checks (local; Actions is down)
pnpm check: typecheck + Biome + 64 files, 831 passed, 3 skipped (the organisers'-snapshot suite, as on main). This includestools/architecture.test.ts.pnpm build: initial JS 149.2 KB gzip, unchanged from main.seams/keys.test.ts,app/guide/CoachMarks.test.tsx,features/race/rematch.test.ts,features/race/Results.test.tsx,features/account/auth.test.ts(a real supabase-js client against an in-test fakefetch; no live Supabase).vite previewwith every Supabase HTTP and WebSocket request answered in the page (none reached the project): private results → «Ще заїзд» openednew-roomand sent onerematchframe; an incoming invite turned the button into «Приєднатися» and Enter landed in the friend's room with code K7M2PQ; quick results went to quick match. Coach marks: Enter 1/4→2/4 stayed on/, and Esc with focus outside the bubble closed it. No console errors.race.spec.tsnon-backend tests (chromium): 2 passed. The@backendspecs were not run.🤖 Generated with Claude Code