Skip to content

Land all 60 open pull requests - #500

Merged
NewWorldVenture merged 155 commits into
mainfrom
claude/roadmap-implementation-ld8bon
Sep 10, 2026
Merged

NewWorldVenture merged 155 commits into
mainfrom
claude/roadmap-implementation-ld8bon

Conversation

@NewWorldVenture

Copy link
Copy Markdown
Owner

Every open pull request in the repository, integrated and validated as one tree.

What was actually open

Not 60 independent PRs — a deep stack. 31 sat on main or on this integration branch; the rest were stacked on each other, chains up to nine deep:

main <- #450 <- #467 <- #480 <- #484 <- #488 <- #489 <- #490 <- #494 <- #496

A stacked branch already contains its ancestors' commits, so the 60 PRs reduce to 38 chain tips. Merging the tips lands everything, and because these are real merge commits rather than squashes, every one of the 60 head commits becomes reachable from main — so GitHub closes them all as merged rather than leaving 60 orphans.

How the conflicts fell out

merged clean 21 tips
i18n catalogue union 7 tips
hand-resolved 7 tips
reconciled after the full suite 3 collisions

The i18n catalogues were the bulk of it. Twelve "Localize X in seven languages" PRs all append keys to the same seven flat JSON objects, so git saw overlapping text edits where the authors only ever added distinct keys. Those were resolved by a 3-way key merge — order-preserving, since the files are append-ordered rather than sorted — which reports rather than guesses when two sides change the same key to different values. Nothing was reported: every one was a clean union. All seven catalogues finish at 13,444 keys.

Seven needed real judgement, each decided by reading what the code requires:

Three collisions only the full suite could find

The first full run came back 2 files failing — both caused by my own resolutions, which is exactly what a full run is for.

  1. Contradictory rules. The helper ended up with an early return accepting a nested or(...) and, below it, the deliberate throw rejecting it. The return shadowed the throw, so in-memory-supabase-logic stopped seeing the malformed grammar it pins. Its supported list carries not.and(...) and no or(...), so the accepting branch was the stray.

  2. Persistent login vs. plan selection. Localize adult authentication prompts and signup divider #482's chain includes Keep saved sessions through refresh and storage failures #470 — an independent persistent-login implementation that overlaps the fix shipped in Stay signed in until you sign out #499. In lib/supabase/auth.ts the two chains reached the same conclusion independently; I kept the form that raises through the shared helper and stays inside the session-missing guard, so an ordinary signed-out visitor can never throw.

    The test file was the sharper half: it mocks a signed-in user for every test, which is right for its success paths but made "the next sign-in attempt" accidentally signed-in — colliding with the rule that a signed-in visitor is never shown a login page. Decisively, its author had already written the signed-out variant (missing-user), and that was the one case still passing. All three variants now queue one signed-out answer for the failing call, the later successful sign-in still gets the fixture default, and the signed-in case is asserted on its own.

  3. The OAuth forward now requires a PKCE verifier cookie — without one no exchange can succeed, and forwarding a stranger's ?code= answered a signed-in visitor with a login page. That test supplies one.

Validation

Run against the committed tree, not against pieces:

  • typecheck clean · lint clean · i18n gate clean on all eight surfaces · migration audit clean
  • 1,117 test files / 12,365 tests passed — up from 1,010 / 9,604 on main
  • The persistent-login guarantees from Stay signed in until you sign out #499 re-verified intact after the merge (50 tests across five auth suites)

Note on the five drafts

#440, #483, #496, #497 and #498 were drafts. They are included because the goal was to land every open PR; two are documentation and three are briefing/calendar work whose tests pass here. Flagging it plainly so the choice is visible rather than buried.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KP9rt5rVQ9jDMpZp2xBy3K


Generated by Claude Code

@NewWorldVenture
NewWorldVenture merged commit f478dce into main Sep 10, 2026
8 checks passed
This was referenced Sep 10, 2026

This branch was successfully deployed

1 active deployment
Preview — 404d5d51 Deployed Sep 10, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants