Capture the post-v1.9 idea backlog - #15
Merged
Merged
Conversation
Fifteen ideas from the owner, written down before they evaporate. Captured, not designed - deliberately a backlog rather than a plan, because on this project jumping straight to a plan is how ideas pick up accidental requirements. Each entry records the idea, what it touches, and anything already known that constrains it. Three findings came out of checking rather than assuming: - "The leaderboard should show 0s after a singularity" is a BUG with a located cause: leaderboardService.js filters every board with `.value > 0`, so a player reset to 0 legacyCores vanishes instead of showing 0. The filter is not gratuitous (it keeps never-played accounts off every board), so the fix has to tell "reset" apart from "never started" - lifetimeFlopsAllTime survives prestige and can do exactly that. - Multi-provider account linking needs no migration. `identities` is keyed on (provider, provider_id) with a user_id FK and an index on it; two rows pointing at one users.id is already the intended shape, which is why v1.7 split identities out of users. It is a flow problem, not a schema one. - Timed hazards and Grid downtime already have a precedent in scheduleAnomaly: choose the moment ahead, store it, let lazy evaluation notice it passed. Rolling an event when a request happens to arrive cannot reconcile against offline progress, and offline progress is a headline feature. Two ideas are flagged as needing a different shape than proposed, both for safety rather than taste: event-authored custom CSS would hand event_coordinator - deliberately the lowest role - a data-exfiltration primitive via attribute selectors and url(), so a named effect registry gets the same snow and falling money without shipping a stylesheet; and joining accounts on matching email is the account-takeover vector already documented in authentication-methods.md, so linking should be an authenticated act proven by a live session, never by a string match. 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.
Fifteen ideas from 2026-08-08, captured so they are not lost. Docs only — no code changes.
Deliberately a backlog rather than a plan: the process that works here is brainstorming → spec → plan → implementation → whole-branch review, and jumping to a plan is how ideas acquire accidental requirements.
Three things came out of checking rather than assuming:
server/leaderboardService.jsfilters every board with.filter((r) => r.value > 0), so a player whoselegacyCoresreset to 0 in a Singularity vanishes from the board instead of showing 0. The filter isn't gratuitous — it keeps never-played accounts off every board — so the fix has to distinguish "reset" from "never started".lifetimeFlopsAllTimesurvives every prestige and can do that.identitiesis keyed on(provider, provider_id)with auser_idFK and an index on it — two rows pointing at oneusers.idis already the intended shape, which is why v1.7 split identities out ofusers. It's a flow problem, not a schema one.scheduleAnomalypicks the moment ahead and stores it, letting lazy evaluation notice it passed. Anything rolled live can't reconcile against offline progress — and offline progress is a headline feature.Two ideas are flagged as needing a different shape, both for safety rather than taste:
event_coordinator— deliberately the lowest role — a data-exfiltration primitive (attribute selectors +url()) against every player including the owner. A named effect registry gives the same snow and falling money without shipping a stylesheet.docs/authentication-methods.md. Linking should be an authenticated act proven by a live session, never a string match.Nothing here is approved or scheduled. Edit freely — it's a capture doc.
🤖 Generated with Claude Code