~ 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 main from grain.social/grain:app-version

Adds static/app-version.json, which the iOS and Android update gate (in progress in grain-ios and grain-android) reads on launch and on returning to the foreground:

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

A build below its platform's minimum shows a full-screen "Update Grain" that cannot be dismissed. The numbers are build numbers (CFBundleVersion, versionCode), not marketing versions. Both start at 0, so this blocks nothing.

This is phase 0 of moving grain off hatk: when the new server replaces hatk's API, the minimums are raised to the first builds that speak it, and older builds are told to update instead of failing.

AGENTS.md gets a section on the file, including the rule to raise a minimum only once that build is live in its store.

🤖 Generated with Claude Code

Approved

This adds static/app-version.json with both minimums at 0, so it blocks nothing, and an AGENTS.md section describing it. The file is valid JSON. static/ is SvelteKit's asset directory, which the repo already uses for manifest.json, so I expect it to be served at /app-version.json. I haven't confirmed that against a deployment. The doc matches the PR description, including the rule to raise a minimum only once that build is live in its store. No changes needed.

Approved

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

Merged as 5ffaad5