Publish a new release to prod #146

Closed
opened 2026-08-21 16:12:07 +00:00 by Grandiras · 2 comments
Owner
No description provided.
Collaborator

🤖 On it — follow along in the action run; the reply will link the full session transcript.

📜 Live transcript — updating every ~5 minutes while the task runs.

🤖 On it — follow along in [the action run](https://git.grandiras.net/Grandiras/claude-bot/actions/runs/373); the reply will link the full session transcript. <!-- claude-run:comment --> 📜 [Live transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/Ponente/issue-146/run-373.md) — updating every ~5 minutes while the task runs.
Collaborator

v2.5.0 is live on ponente.app.

What shipped

20 commits since v2.4.0, seven member-visible bullets — features, so a minor bump: /profile (your Atmosphere name and picture), moving a card to another board, "Report a problem", asking for access from the sign-in page, the phone nav moving to the bottom of the screen, the Ponente wordmark returning you to the board you were on, and a round of tidy-ups. No migrations in this range.

What I did

  1. Confirmed dev was on the merged code — without SSH I can't run check-stack-image.sh, so I used a public equivalent: dev.ponente.app/client-metadata.json served scope: atproto repo:app.bsky.actor.profile blob:image/*, which only the new ProfileScope code produces. Prod at that moment still served bare atproto. Both healthy.
  2. Read the config diff. New keys: FEEDBACK_REPOSITORY/FEEDBACK_TOKEN, ATPROTO_PROFILE_SCOPE, and the whole BACKUP_* set. Checked the new image starts on prod's existing compose file — both new settings are optional, and unset ATPROTO_PROFILE_SCOPE means granular in code, so /profile works on the tag alone.
  3. Tests: dotnet build -c Release clean, dotnet test 389/389 passing. The e2e suite I could not run — this container has no podman or docker, so there is no compose stack to point Playwright at. CI (build) was green on every merge in the range and on the changelog PR.
  4. Promoted the changelog to 2.5.0 (2026-08-21) via the skill's script, as PR #147, CI green, squash-merged to main (a753bcc). Branch deleted; nothing left for the workflow to open.
  5. Tagged v2.5.0 on the merge commit. build-and-push (run 1064) succeeded and :latest moved with it — v2.5.0 and latest are both sha256:c1148bb9….
  6. Watched the host deploy it. Brief 502s while ponente-app recreated, then /healthz ok and ponente.app/client-metadata.json now serves the granular scope — the same marker that proved dev, so this is the new image and not a cached page. /, /login, /request all 200 with the right titles; /calendar correctly bounces to sign-in; the PDS health endpoint is 200.

What is left, and it needs a human

Production is missing this release's compose and env changes. The auto-update timer recreates only the app container, from the compose file the server already holds — only ./deploy/deploy.sh re-syncs it, and there is no route from this job container to the server. Two consequences:

  • "Report a problem" is not there, and it is one of the bullets members will read in the release notes. It needs FEEDBACK_REPOSITORY and FEEDBACK_TOKEN in deploy/.env plus the passthrough this batch added to docker-compose.prod.yml. Nothing breaks meanwhile — the menu row hides itself rather than swallowing what somebody typed.
  • Nothing is being backed up. deploy/backup/ and the ponente-backup@ units are new in 2.5.0 and are installed by deploy.sh, not by the timer.

Production is not pinnedIMAGE_TAG untouched, so the next release deploys itself as usual. I filed the deploy.sh follow-up as its own issue rather than leaving it here.


⏱ 16m 41s · 42 turns · tokens: 64.3k in / 16.5k out (+2424.2k cache-read)
📜 Full session transcript
→ Filed follow-up issue #148: Run deploy.sh: production is missing the 2.5.0 compose and env changes (Report a problem, backups)

**v2.5.0 is live on ponente.app.** ## What shipped 20 commits since `v2.4.0`, seven member-visible bullets — features, so a minor bump: `/profile` (your Atmosphere name and picture), moving a card to another board, "Report a problem", asking for access from the sign-in page, the phone nav moving to the bottom of the screen, the Ponente wordmark returning you to the board you were on, and a round of tidy-ups. No migrations in this range. ## What I did 1. **Confirmed dev was on the merged code** — without SSH I can't run `check-stack-image.sh`, so I used a public equivalent: `dev.ponente.app/client-metadata.json` served `scope: atproto repo:app.bsky.actor.profile blob:image/*`, which only the new `ProfileScope` code produces. Prod at that moment still served bare `atproto`. Both healthy. 2. **Read the config diff.** New keys: `FEEDBACK_REPOSITORY`/`FEEDBACK_TOKEN`, `ATPROTO_PROFILE_SCOPE`, and the whole `BACKUP_*` set. Checked the new image starts on prod's *existing* compose file — both new settings are optional, and unset `ATPROTO_PROFILE_SCOPE` means `granular` in code, so `/profile` works on the tag alone. 3. **Tests**: `dotnet build -c Release` clean, `dotnet test` **389/389 passing**. The e2e suite I could not run — this container has no podman or docker, so there is no compose stack to point Playwright at. CI (`build`) was green on every merge in the range and on the changelog PR. 4. **Promoted the changelog** to 2.5.0 (2026-08-21) via the skill's script, as PR **[#147](https://git.grandiras.net/Grandiras/Ponente/pulls/147)**, CI green, squash-merged to `main` (`a753bcc`). Branch deleted; nothing left for the workflow to open. 5. **Tagged `v2.5.0`** on the merge commit. `build-and-push` (run 1064) succeeded and `:latest` moved with it — `v2.5.0` and `latest` are both `sha256:c1148bb9…`. 6. **Watched the host deploy it.** Brief 502s while `ponente-app` recreated, then `/healthz` ok and `ponente.app/client-metadata.json` now serves the granular scope — the same marker that proved dev, so this is the new image and not a cached page. `/`, `/login`, `/request` all 200 with the right titles; `/calendar` correctly bounces to sign-in; the PDS health endpoint is 200. ## What is left, and it needs a human **Production is missing this release's compose and env changes.** The auto-update timer recreates only the app container, from the compose file the server already holds — only `./deploy/deploy.sh` re-syncs it, and there is no route from this job container to the server. Two consequences: - **"Report a problem" is not there**, and it *is* one of the bullets members will read in the release notes. It needs `FEEDBACK_REPOSITORY` and `FEEDBACK_TOKEN` in `deploy/.env` plus the passthrough this batch added to `docker-compose.prod.yml`. Nothing breaks meanwhile — the menu row hides itself rather than swallowing what somebody typed. - **Nothing is being backed up.** `deploy/backup/` and the `ponente-backup@` units are new in 2.5.0 and are installed by `deploy.sh`, not by the timer. Production is **not pinned** — `IMAGE_TAG` untouched, so the next release deploys itself as usual. I filed the `deploy.sh` follow-up as its own issue rather than leaving it here. --- ⏱ 16m 41s · 42 turns · tokens: 64.3k in / 16.5k out (+2424.2k cache-read) 📜 [Full session transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/Ponente/issue-146/run-373.md) → Filed follow-up issue [#148](https://git.grandiras.net/Grandiras/Ponente/issues/148): Run deploy.sh: production is missing the 2.5.0 compose and env changes (Report a problem, backups)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Grandiras/Ponente#146
No description provided.