Two small follow-ups to v2026.05.10.1 surfaced while debugging "the download button doesn't appear":
What's in here
e16bdd9 — snake_case fix in MobileAppDownload.svelte
Server returns apk_url / size_bytes; component was reading apkUrl / sizeBytes. Guard always evaluated true → component bailed out → no button. Same flavor as the earlier sync wire-format bug. Fixed by mapping wire (snake_case) → component (camelCase) explicitly.
4c4399c — server version exposed via /healthz + displayed in Settings
internal/server/version.go: new var ServerVersion = "dev", overridden via ldflag.
/healthz response gains a version key. Backward-compat: existing clients ignore unknown fields.
Dockerfile: ARG MINSTREL_VERSION=dev threaded into go build -ldflags.
release.yml: passes the git tag as --build-arg MINSTREL_VERSION=....
web/src/lib/components/ServerVersion.svelte: small understated text mounted at the bottom of Settings, fetches /healthz on load. Came up because there was no UI way to verify which image a container was running.
c3ecd1b — gofmt cleanup on the doc-comment code block.
Operator action after merge
Cut release v2026.05.10.2
After CI + redeploy: refresh Settings → confirm download button + "Server v2026.05.10.2" footer both appear
Two small follow-ups to v2026.05.10.1 surfaced while debugging "the download button doesn't appear":
## What's in here
- **`e16bdd9` — snake_case fix in `MobileAppDownload.svelte`**
Server returns `apk_url` / `size_bytes`; component was reading `apkUrl` / `sizeBytes`. Guard always evaluated true → component bailed out → no button. Same flavor as the earlier sync wire-format bug. Fixed by mapping wire (snake_case) → component (camelCase) explicitly.
- **`4c4399c` — server version exposed via `/healthz` + displayed in Settings**
- `internal/server/version.go`: new `var ServerVersion = "dev"`, overridden via ldflag.
- `/healthz` response gains a `version` key. Backward-compat: existing clients ignore unknown fields.
- `Dockerfile`: `ARG MINSTREL_VERSION=dev` threaded into `go build -ldflags`.
- `release.yml`: passes the git tag as `--build-arg MINSTREL_VERSION=...`.
- `web/src/lib/components/ServerVersion.svelte`: small understated text mounted at the bottom of Settings, fetches `/healthz` on load. Came up because there was no UI way to verify which image a container was running.
- **`c3ecd1b`** — gofmt cleanup on the doc-comment code block.
## Operator action after merge
1. Cut release `v2026.05.10.2`
2. After CI + redeploy: refresh Settings → confirm download button + "Server v2026.05.10.2" footer both appear
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Two small follow-ups to v2026.05.10.1 surfaced while debugging "the download button doesn't appear":
What's in here
e16bdd9— snake_case fix inMobileAppDownload.svelteServer returns
apk_url/size_bytes; component was readingapkUrl/sizeBytes. Guard always evaluated true → component bailed out → no button. Same flavor as the earlier sync wire-format bug. Fixed by mapping wire (snake_case) → component (camelCase) explicitly.4c4399c— server version exposed via/healthz+ displayed in Settingsinternal/server/version.go: newvar ServerVersion = "dev", overridden via ldflag./healthzresponse gains aversionkey. Backward-compat: existing clients ignore unknown fields.Dockerfile:ARG MINSTREL_VERSION=devthreaded intogo build -ldflags.release.yml: passes the git tag as--build-arg MINSTREL_VERSION=....web/src/lib/components/ServerVersion.svelte: small understated text mounted at the bottom of Settings, fetches/healthzon load. Came up because there was no UI way to verify which image a container was running.c3ecd1b— gofmt cleanup on the doc-comment code block.Operator action after merge
v2026.05.10.2🤖 Generated with Claude Code