chore: release signage 0.1.2 #9

Merged
Zayin_Admin merged 1 commits from chore/release-0.1.2 into main 2026-10-06 03:51:14 +00:00
Member

chore: release signage 0.1.2

Proposal. After this merges, tag v0.1.2 on the merge commit, then bump the instance with scripts/pin.sh module signage v0.1.2. You create every tag; I create none.

What 0.1.2 fixes, from the first production deployment

PR Fix Production symptom
#4 Display and server share one message schema (src/shared/display-protocol.ts); nullable fields accept null Every heartbeat from an image slide was refused with a 400. The roster said Offline 90 s after a screen opened, and never recorded offline ready
#5 Every display request (registration, state refresh, realtime) retries with backoff and never gives up After a restart, a screen whose first request failed showed "Offline — continuing from the last update" until reloaded
#6 One object URL per cached slide, released when done The media cache leaked a blob per slide per refresh until the browser refused the display's own requests, so it showed offline on a working network. This is the likely cause of the two-tab flapping
#7, #8 CI: every change runs inside a pinned Ekklesia, end to end in a real browser, and cleans up even when the runner kills a job Signage had no CI

Compatibility

  • compatibility.platform stays ^0.1.0. Every fix is module-side, and CI ran it against platform v0.1.1 (plus test-only scripts, at 874deab). It runs on the deployed v0.1.1 and on a future v0.1.2.
  • No migration and no new dependency. The manifest changes only in its version.

Changes in this PR

  • Version 0.1.1 → 0.1.2 in the manifest, package.json, both UI artifacts, the server runtime (twice), and the test expectations. No other 0.1.1 remains.
  • README: no longer calls Signage unreleased or undeployed.

Verification

  • In the CI layout: test 233, typecheck, lint, build, and modules:validate (reports [email protected]), all pass.
  • main (e6c6553, with #6 and #8 combined) is green in CI, including integration with two-pages, session-blip, stream-failure and stream-recycle.

On the kiosk, after the bump

  • The roster should show the screen Online, with offline ready and a cached-image count. Before, it went Offline after 90 s.
  • A restart while the network is still coming up should recover by itself.
  • The kiosk guide (systemd unit, no session restore) is still to come as platform work. Meanwhile, the duplicate-tab case is harmless to the display, because the leak is gone.

🤖 Generated with Claude Code

## chore: release signage 0.1.2 **Proposal.** After this merges, tag `v0.1.2` on the merge commit, then bump the instance with `scripts/pin.sh module signage v0.1.2`. You create every tag; I create none. ### What 0.1.2 fixes, from the first production deployment | PR | Fix | Production symptom | |---|---|---| | #4 | Display and server share one message schema (`src/shared/display-protocol.ts`); nullable fields accept `null` | Every heartbeat from an image slide was refused with a `400`. The roster said **Offline** 90 s after a screen opened, and never recorded **offline ready** | | #5 | Every display request (registration, state refresh, realtime) retries with backoff and never gives up | After a restart, a screen whose first request failed showed "Offline — continuing from the last update" until reloaded | | #6 | One object URL per cached slide, released when done | The media cache leaked a blob per slide per refresh until the browser refused the display's own requests, so it showed offline on a working network. This is the likely cause of the two-tab flapping | | #7, #8 | CI: every change runs inside a pinned Ekklesia, end to end in a real browser, and cleans up even when the runner kills a job | Signage had no CI | ### Compatibility - `compatibility.platform` stays **`^0.1.0`**. Every fix is module-side, and CI ran it against platform v0.1.1 (plus test-only scripts, at `874deab`). It runs on the deployed v0.1.1 and on a future v0.1.2. - No migration and no new dependency. The manifest changes only in its version. ### Changes in this PR - Version `0.1.1` → `0.1.2` in the manifest, `package.json`, both UI artifacts, the server runtime (twice), and the test expectations. No other `0.1.1` remains. - README: no longer calls Signage unreleased or undeployed. ### Verification - In the CI layout: `test` 233, `typecheck`, `lint`, build, and `modules:validate` (reports `[email protected]`), all pass. - `main` (`e6c6553`, with #6 and #8 combined) is green in CI, including `integration` with `two-pages`, `session-blip`, `stream-failure` and `stream-recycle`. ### On the kiosk, after the bump - The roster should show the screen **Online**, with **offline ready** and a cached-image count. Before, it went Offline after 90 s. - A restart while the network is still coming up should recover by itself. - The kiosk guide (systemd unit, no session restore) is still to come as platform work. Meanwhile, the duplicate-tab case is harmless to the display, because the leak is gone. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ekklesia-bot added 1 commit 2026-10-06 03:08:49 +00:00
chore: release signage 0.1.2
CI / lint (pull_request) Successful in 14s
CI / typecheck (pull_request) Successful in 15s
CI / test (pull_request) Successful in 21s
CI / build (pull_request) Successful in 19s
CI / integration (pull_request) Successful in 6m0s
855b5f9f54
0.1.2 fixes what the first production Signage deployment found:
- #4: the display and server share one message schema; every heartbeat
  from an image slide used to be refused with a 400;
- #5: every display request retries with backoff and never gives up, so
  a display that failed one request no longer stays offline until
  reloaded;
- #6: one object URL per cached slide, released when done; the leak
  exhausted the browser within minutes;
- CI (#7, #8): every change runs inside a pinned Ekklesia, end to end
  in a real browser, and cleans up even when killed.

compatibility.platform stays ^0.1.0: every fix is module-side, and CI
tested it against platform v0.1.1 plus test-only scripts. The README no
longer says Signage is unreleased or undeployed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Zayin_Admin merged commit 86ae907f59 into main 2026-10-06 03:51:14 +00:00
Zayin_Admin deleted branch chore/release-0.1.2 2026-10-06 03:51:14 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayin/Signage#9