maniator / maniator/verticopolis
[P2] Return the Help privacy copy to present tense when a desktop artifact ships
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Recorded by the party ruling on the Help privacy copy (PR #802). This is a scheduled revert, not a defect.
What is conditional today, and why
helpPrivacyBody() in src/ui/templates/helpContent.ts ships in the WEB build and is read by players who can only play in a browser. An earlier draft described the desktop edition in the present tense, which was false twice over: no desktop artifact existed that a reader could obtain, and the shell cancels the ingest request anyway (onBeforeRequest allows only app://game, and the injected CSP is connect-src 'self'), so the counts it claimed were crossing the internet were not being sent at all.
The paragraph now states the rule rather than the product:
Today Verticopolis runs in your browser, and that is the only edition you can play. In a browser there is no consent banner, because nothing that identifies you is kept. A packaged edition would be different: it runs from your own machine rather than from a page we serve, so its counts would have to travel across the internet to our site. Any edition we package that way asks on the first launch, before it counts anything, and the switch then lives in Settings, under Privacy.
That is true today and true the day an installer ships, and it announces nothing.
What has to change, and when
Trigger: the first desktop artifact distributed to anyone outside the repository, playtest builds included. Merging a stage does not make the sentence true; handing somebody a binary does. This is deliberately the same trigger as #806 (the public /privacy page).
The change: once a packaged edition genuinely exists and its shell permits the send, the conditional wording ("Today Verticopolis runs in your browser, and that is the only edition you can play", "A packaged edition would be different", "would have to travel") becomes understatement, and should return to present tense describing what the desktop app actually does.
Do not simplify either conditional before then
The same paragraph carries TWO edition-conditionals pointing in opposite directions, and a future editor who notices only one will tidy the other away as inconsistent:
- The packaged edition sends counts a browser does not (the gameplay counts crossing the internet, quoted above).
- A browser sends page metrics a packaged edition does not: "In a browser, the page we serve also sends anonymous page-visit counts and page performance metrics; a packaged edition sends neither." This exists because
injectVercelTelemetryrefuses every wrapped build, so a consented desktop session emits no page-visit counts and no Web Vitals at all. An automated reviewer caught the unscoped version claiming otherwise.
Both are pinned by tests in src/helpPage.test.ts, including negative pins on the retired wording, so a revert has to be deliberate rather than accidental.
Also revisit at the same moment
The CHANGELOG line announcing the desktop consent flow was dropped from PR #802 for the same reason (the web deploy surfaces release notes, so it would have announced an experience nobody could run). It should be reintroduced in the release that actually ships the desktop artifact.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Wait for the first desktop artifact to be distributed and for its shell to permit sending, then read src/ui/templates/helpContent.ts and the pinned cases in src/helpPage.test.ts. Revisit the conditional privacy wording and restore the related CHANGELOG entry in that release; done means both edition-specific statements and their tests describe the shipped behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100