Repository navigation
Scoreboards show "Pat S.", and a switch in Settings takes you off them (#213) - #214
Merged
Merged
Conversation
#213) publicName() now shows a first name and the initial of the last ("Pat Smith" is "Pat S."), never an email. It lives in src/publicName.ts so scripts/shorten-names.ts can shorten the names already up, run once by the owner with gcloud. The ☁️ menu gets a "Show me on the scoreboards" switch, on by default. Off takes the player's scores/{uid} and shame/{uid} down in one batch with the choice, kept on saves/{uid} as `hidden`, so every device follows it; nothing new goes up until it's back on. Saves are written merged so the choice stays. firestore.rules lets a signed-in player delete their own scores/ and shame/ docs, and allows `hidden` (a bool) on their save; rules tests cover both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…elf off them (#213) The scoreboard and wall of shame rows say a first name and initial, and that turning off "Show me on the scoreboards" deletes the entry at once. The short version, the save row, the sign-in intro and "delete it" under Your rights match. Last changed 28 October 2026. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChefControl
force-pushed
the
claude/scoreboard-privacy-213
branch
from
October 28, 2026 00:27
6231524 to
c1b1ae2
Compare
…w, the full notice in a dialog (#213) The owner didn't like the notice taking players out of the game. Privacy is now a category row like Credits & Copyrights: it opens into the notice's short version (word for word; a test keeps the two the same) and "Read the full notice ›", which shows public/privacy.html in a kit dialog over the paused game (✕, Esc, a tap beside it). The notice is fetched the first time it's asked for. Inside the game, privacy.html drops its "Play Floe Market" link, fills the dialog, and opens its outside links in a tab of their own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… site The test made sure the rain song comes with no YouTube player by finding no <iframe> in the page; the privacy notice's dialog has one, of our own page, left empty until asked for. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The owner wants privacy controls under Privacy: "Show me on the scoreboards" moves from the ☁️ menu to the top of the Privacy panel, above the short version, for a signed-in player only. The notice says where to find it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChefControl
added a commit
that referenced
this pull request
Oct 28, 2026
…d the scoreboards switch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ChefControl
added a commit
that referenced
this pull request
Oct 28, 2026
…icence checks side by side (#215) * Legal checks as repo skills: legals-update runs privacy, Steam and licence checks side by side Four skills under .claude/skills/. legals-privacy compares a feature with the privacy notice (public/privacy.html), its short version in Settings and the report dialog's "What's sent" list. legals-steam compares it with the content survey answers and store texts agreed on #151 and the prep page. legals-licenses checks every new package and asset's licence and its credit under Credits & Copyrights, and flags recordings for a listen. legals-update pins one target and runs the three at once in subagents, then puts their reports together. Each reports and proposes; none edits unless the owner asks. CLAUDE.md points to it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * legals-privacy: #214 is on main, so point straight at #privacyCard and the scoreboards switch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * legals-licenses: #209 is on main, so read scripts/licences.ts there Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.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.
Closes #213. Found while writing the privacy notice (#150, PR #211).
What changes for players
scores/{uid}andshame/{uid}down at once and puts nothing new up. The choice is kept on the account, so every device follows it. Turning it on puts them back.How
src/publicName.ts: the new rule, kept apart fromcloud.tsso the one-off script can use it in Node.cloud.ts:cloud.hidden(null until the account's been read, so nothing goes up before it's known),showOnBoards(), and the switch under Privacy. A sync's read from before a switch can't undo it.firebase.ts:hide()writes the choice and deletes both entries in one batch, so it's both or neither. Saves are now written withmerge: true, so the choice survives later saves..switchclass. Captions: "As Pat S." / "Hidden from other players".firestore.rules (published to the live project by the owner on 2026-10-28)
scores/{uid}andshame/{uid}, and no one else's.saves/{uid}may carryhidden(a bool).test/rules/scores.test.ts;shame.test.tsnow expects owners can delete.npm run test:rulespasses locally: 18 tests.hidden, so it's unaffected.One-off: shorten the names already up
After this is live, run once, signed in to
gcloudas a project owner:It uses Firestore's REST API with gcloud's token and changes only
name. Running it again does nothing. Not tried against live data: gcloud isn't installed on this Mac.Privacy notice (
public/privacy.html, from #211): the scoreboard and wall of shame rows now say "Pat S." and that turning off Show me on the scoreboards deletes the entry at once. The short version, the save row, the sign-in intro and the "delete it" bullet under Your rights match. Last changed is now 28 October 2026.Privacy in Settings stays in the game (owner's ask): the About group's 🛡️ Privacy is now a category row like Credits & Copyrights. It opens into the scoreboards switch (signed in), then the notice's short version (word for word, kept the same by a test) and Read the full notice ›, which shows
privacy.htmlin a kit dialog over the paused game (✕, Esc or a tap beside it closes it; Esc leaves Settings open). Inside the game the notice drops its "Play Floe Market" link and opens its outside links in a tab of their own.Design system: updated the Settings card (the shared switch and its second use, and the Privacy row and dialog) and the Scoreboard card ("Pat S." names, opted-out players).
Rebased on main after #210 and #211. The only conflict was #210's "Floe Emoji" font in the switch CSS, which is kept.
CI fix:
test/rain.test.tschecked for no<iframe>anywhere (to rule out a YouTube player); it now leaves out the notice's own frame and checks that frame stays empty until asked for.Tested:
test/cloud.test.ts,test/firebase.test.ts,test/wallOfShame.test.tspass locally (44); full suite left to CI. Also looked at the switch on and off in a dev server that wasn't signed in.🤖 Generated with Claude Code