Repository navigation
Start a new project with three tabs and a card in each - #107
Merged
Merged
Conversation
A new project opened on one empty tab called "Title" - a blank canvas and a tool menu to guess at. It now starts as Campaign / Bestiary / Players, each holding one card: an opening-scene freeform card, the SRD goblin, and a player sheet. That's also one card per type, so every type is one click from being copied rather than built from scratch. BLANK_PROJECT is what Firestore gets on "new project" as well as what the offline blank project loads, so both paths pick this up. Same authoring rule as the intro fixture: loadBlankProject doesn't merge DEFAULT_CARD over these, so every field the app reads is written out, and the cards carry distinct timestamps or the Library's Newest/Oldest sort has nothing to order them by. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Visit the preview URL for this PR (updated for commit c5c5eb1): https://dmkit-e7e99--pr107-fixture-new-project-432a1bzu.web.app (expires Wed, 14 Oct 2026 01:46:22 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 310a7f1d940a0f8f9346804f5fc60f8ba2a4f18d |
rayzhou-bit
added a commit
that referenced
this pull request
Oct 27, 2026
blankTs called Date.now() fresh for every card and added a small offset, so if the clock ticked while the module evaluated, card A's `now + 2` and card B's `now + 1` landed on the same millisecond and two starter cards shared a timestamp. One clock reading for all three makes them distinct by construction. Mine, from #107. It passed locally because the three cards happened to evaluate inside one millisecond; CI's clock ticked and the test I wrote for exactly this caught it there. Ran the affected file 20x after the fix. Co-Authored-By: Claude Opus 5 <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.
A new project opened on a single empty tab called "Title" — a blank canvas and a tool menu to guess at. It now starts as Campaign / Bestiary / Players, each holding one card:
That happens to be one card per type, so every type is one click from being copied rather than built from scratch, and a new user sees the shape the app expects instead of an empty grid.
BLANK_PROJECTis what gets written to Firestore on "new project" as well as what the offline blank project loads, so both paths pick this up without further change.Authored under the same rule as the intro fixture:
loadBlankProjectdoesn't mergeDEFAULT_CARDover these, so every field the app reads is written out explicitly, and the three cards carry distinct timestamps — otherwise the Library's Newest/Oldest sort has nothing to order them by.Verification
847 tests pass (3 new on the starter's shape: tab titles and order, each card placed on the tab that lists it, distinct titles and timestamps). Build clean. The blank project isn't reachable in offline mode, so I temporarily pointed the loader at it to see what a new user actually gets — all three tabs render with their card and no console errors.
🤖 Generated with Claude Code