~ knotless Search/
↑↓ move↵ open⇧↵ all results

grain.social/grain

photography-focused photo sharing platform

grain.social
1 collaborator
0
2

Serve minimum app versions at /app-version.json

Merged
Merged chadtmiller.com asked to merge into feature/rust from grain.social/grain:rust/app-version

What changes

grain-serve's pages serve web/static/app-version.json at /app-version.json, the same document main serves from static/:

{
  "ios": { "minimumBuild": 0, "storeUrl": "https://apps.apple.com/app/id6747730230" },
  "android": { "minimumVersionCode": 0, "storeUrl": "https://play.google.com/store/apps/details?id=social.grain" }
}

AGENTS.md gets the same "Minimum app versions" section as main, with this branch's path and how the request reaches the pages.

Why

iOS 10 and Android 0.7.0 carry the update gate. At cutover, the builds before the grain-serve API stop working, and the gate is how they are told to update. On this branch the path returns a 404, so the gate would never fire. Both minimums start at 0 and are raised at cutover, once the first builds that speak grain-serve's API are live in their stores.

How it was checked

next.grain.social serves web/static/robots.txt and manifest.json through grain-serve's hand-off to the pages, so a file beside them is served the same way. Not checked on next.grain.social until this deploys; checks on the pull run the rest.

Shortcomings

The file is static, so raising a minimum is a commit and a deploy.

🤖 Generated with Claude Code

chadtmiller.com added 1 commit
Approved

This adds web/static/app-version.json with both minimums at 0, so it blocks nothing yet. It also adds a "Minimum app versions" section to AGENTS.md. The JSON is valid and matches the document in the body. web/static already holds robots.txt and manifest.json, and crates/grain-serve/src/pages.rs sends unmatched paths to the pages, so the new file should be served the same way as those two. I did not trace the pages' static handling or check the deployed site, as the body says. I found nothing that needs changing. When you raise a minimum at cutover, make sure the named build is live in its store first, as the AGENTS.md text says.

Approved

Carried forward: the change this pull makes at adaa85dc8ad23f862d6cfa516cdad26d27069118 is the one reviewed at 8e739007b9898214a90a22ceb67fc5e9b6114e7e, so that review stands. What is new comes from its base.

Approved

Carried forward: the change this pull makes at e2347d89faca49297553ce667e222ba294aec765 is the one reviewed at adaa85dc8ad23f862d6cfa516cdad26d27069118, so that review stands. What is new comes from its base.

Merged as 2505b65
Part of a stack of 2
  1. Serve minimum app versions at /app-version.json Landed as 2505b65
  2. main