Skip to content

The privacy policy and the deletion page both stores ask for - #177

Merged
fardavide merged 1 commit into
mainfrom
store-launch-pages
Sep 26, 2026
Merged

fardavide merged 1 commit into
mainfrom
store-launch-pages

Conversation

@fardavide

Copy link
Copy Markdown
Owner

Both stores require a public privacy policy URL, and Play also requires a web page for account deletion, separate from the in-app flow App Review wants. This adds both to oltre.space as static pages, privacy.html and delete-account.html, and links them from the landing page footer with the public contact address, oltre@fardavide.dev.

Every sentence is a claim about what the system does, and each one was checked against the source, not written from memory. What is stored comes from schema.sql. Where it lives, Neon aws-eu-central-1 with six hours of restore history, was read off the live project. Log retention, 30 days in the _Default bucket, was read off Cloud Logging. The claims of no analytics, no crash reporting and no push service come from the client's dependencies; notifications are scheduled on the device. The App Privacy label and Play's Data Safety form are filed from this page, so a policy that describes a different app is a false label on both stores.

The pages say nothing about Apple token revocation, because nothing calls /auth/revoke yet: that is #132.

Locked out of the app? Oltre stores no email addresses, so the deletion page asks for a commander name and alliance instead of promising a lookup that cannot exist.

Static files in site/static/, copied verbatim by build_site.py, so no script changes. The build fails if a footer link points at a file it did not write; a local build wrote both and resolved every link.

Also: .ai/docs/store-launch.md and store-launch-notes.md, the working checklist for the App Store and Play submissions and the notes towards a reusable publishing flow.

No version bump and no changelog: nothing in the app changes. Merging still cuts a TestFlight build, as every main commit does.

🤖 Generated with Claude Code

Two static pages on oltre.space, privacy.html and delete-account.html, linked from the landing page footer with the public contact address. Every claim is checked against schema.sql, the live Neon project, the Cloud Logging buckets and the client. The pages say nothing about Apple token revocation, which is still #132.

Also the store-launch checklist and its notes log under .ai/docs, the working record for the App Store and Play submissions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Test coverage

Test kind Line Branch Tests
Unit 96.0% ±0 89.1% ±0 2673 ±0
Integration 41.7% ±0 29.2% ±0 211 ±0
Screenshot 96.1% ±0 66.0% ±0 227 ±0
Behaviour 94.4% ±0 74.6% ±0 494 ±0
All tests 98.6% ±0 87.1% ±0 3605 ±0

✅ Coverage gate passed — all 10 values in the table hold at or above the last main run.

268 uncovered lines across the project — 3 more than the baseline.

Line coverage by package, per test kind
Package Unit Integration Screenshot Behaviour All tests
dev.fardavide.oltre.client 68% 0% 84% 95% 96.4% ±0
dev.fardavide.oltre.client.alliance.data 90% 95% — 90% 100.0% ±0
dev.fardavide.oltre.client.alliance.domain 100% 19% — 79% 100.0% ±0
dev.fardavide.oltre.client.alliance.presentation 99% — — 99% 99.1% ±0
dev.fardavide.oltre.client.alliance.ui — — 99% 98% 99.5% ±0
dev.fardavide.oltre.client.auth.data 70% 82% — — 88.4% ±0
dev.fardavide.oltre.client.auth.presentation 100% — — 99% 100.0% ±0
dev.fardavide.oltre.client.auth.ui — — 100% 96% 100.0% ±0
dev.fardavide.oltre.client.changelog.domain 100% 14% — 82% 100.0% ±0
dev.fardavide.oltre.client.changelog.presentation 100% — — 100% 100.0% ±0
dev.fardavide.oltre.client.changelog.ui — — 95% 97% 100.0% ±0
dev.fardavide.oltre.client.colony.presentation 97% — — 96% 97.4% ±0
dev.fardavide.oltre.client.colony.ui — — 98% 99% 99.0% ±0
dev.fardavide.oltre.client.debug.data 100% 0% — 0% 100.0% ±0
dev.fardavide.oltre.client.debug.domain 100% 0% — 77% 100.0% ±0
dev.fardavide.oltre.client.debug.ui — — — 100% 100.0% ±0
dev.fardavide.oltre.client.design.component — 0% 99% 99% 99.5% ±0
dev.fardavide.oltre.client.design.core 71% 0% 100% 100% 100.0% ±0
dev.fardavide.oltre.client.design.format 100% 0% 79% 93% 100.0% ±0
dev.fardavide.oltre.client.design.icon — 0% 100% 100% 100.0% ±0
dev.fardavide.oltre.client.design.text 100% 0% — — 99.7% ±0
dev.fardavide.oltre.client.dispatch.domain 100% 0% — 100% 100.0% ±0
dev.fardavide.oltre.client.dispatch.presentation 99% — — 99% 99.5% ±0
dev.fardavide.oltre.client.dispatch.ui — — 99% 100% 99.6% ±0
dev.fardavide.oltre.client.fleets.presentation 99% — — 97% 99.3% ±0
dev.fardavide.oltre.client.fleets.ui — — 99% 100% 99.7% ±0
dev.fardavide.oltre.client.galaxy.presentation 99% — — 99% 99.5% ±0
dev.fardavide.oltre.client.galaxy.ui — — 93% 99% 99.6% ±0
dev.fardavide.oltre.client.net.data 98% 80% — 45% 98.2% ±0
dev.fardavide.oltre.client.net.domain 100% 0% — 100% 100.0% ±0
dev.fardavide.oltre.client.notifications.data 100% 0% — 86% 100.0% ±0
dev.fardavide.oltre.client.player.presentation 94% — — 93% 95.7% ±0
dev.fardavide.oltre.client.player.ui — — 100% 100% 100.0% ±0
dev.fardavide.oltre.client.research.presentation 97% — — 93% 97.3% ±0
dev.fardavide.oltre.client.research.ui — — 92% 98% 98.7% ±0
dev.fardavide.oltre.client.save.data 56% 75% — 53% 75.3% ±0
dev.fardavide.oltre.client.settings.presentation 100% — — 96% 100.0% ±0
dev.fardavide.oltre.client.settings.ui — — 100% 100% 100.0% ±0
dev.fardavide.oltre.client.shipyard.presentation 100% — — 99% 100.0% ±0
dev.fardavide.oltre.client.shipyard.ui — — 97% 99% 99.4% ±0
dev.fardavide.oltre.client.tilt.data 4% 0% — 4% 3.7% ±0
dev.fardavide.oltre.client.tilt.domain 100% 0% — 7% 100.0% ±0
dev.fardavide.oltre.client.world.ui — — 100% 80% 100.0% ±0
dev.fardavide.oltre.core 99% 54% — 92% 98.7% ±0
dev.fardavide.oltre.protocol 100% 89% — 72% 100.0% ±0
dev.fardavide.oltre.server 93% 83% — — 97.8% ▼ -0.1

Δ against main @ ba409c8.

No line or branch number in the table at the top may fall below the last main run — every row, not just the total. The per-package breakdown is a diagnostic and is not gated. Categories are class-name suffixes; see the test-coverage skill.

@fardavide
fardavide merged commit 9e3ab9c into main Sep 26, 2026
5 checks passed
@fardavide
fardavide deleted the store-launch-pages branch September 26, 2026 18:36
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.

1 participant