chore(release): prepare 0.2.6 #111

Open
ekklesia-bot wants to merge 1 commits from chore/release-0.2.6 into main
Member

This prepares the coordinated Ekklesia v0.2.6 patch release, following Stage 1 PRs #103, #104, #106, #107, #108, #109 and #110.

Changes

It follows the 0.2.5 release (#95) exactly: the same 16 files in the same shape, and the lockfile is unchanged.

  • The root package.json, every platform workspace package, and the nine public @ekklesia/* packages go from 0.2.5 to 0.2.6. The module template keeps its own version, 0.1.0.
  • tests/fixtures/standalone-module/package.json moves to 0.2.6 with its existing range forms preserved: ^0.2.6 ranges, and the exact @ekklesia/module-pack pin.
  • The deploy/README.md image build example moves to VERSION=0.2.6 and ekklesia:0.2.6.
  • This is a patch release, so per docs/development/releases.md no compatibility range changes anywhere.

There are no code changes, no manifest-compatibility changes, and no navigation changes. No package is published and no Git tag is created by this PR.

The 0.2.6 public package train (9 packages): @ekklesia/contracts, @ekklesia/design-tokens, @ekklesia/module-database, @ekklesia/module-pack, @ekklesia/module-sdk, @ekklesia/module-ui-build, @ekklesia/module-ui-sdk, @ekklesia/typescript-config, @ekklesia/ui.

Compatibility evidence

  • Released Signage 0.1.5, real artifacts.

    • Its released package passes the split deploy smoke on this commit, including display, pairing, kiosk and offline scenarios. (Results below.)
    • Its v0.1.5 source, exported with git archive and depending on the local 0.2.6 train tarballs (including transitive contracts), passes typecheck, 289 tests, build, and its 20 module-validation checks with no source change.
  • Manifests.

    • v8 is still accepted: the byte-exact released Signage manifest fixture, plus discovery tests.
    • v9 is valid: contracts, discovery, API and template tests, and the v9 template in the split smoke.
  • Old-style host context. A ModuleUiHostContext with no navigation member still compiles: the module-ui-sdk compatibility test, plus the pre-existing hosts' tests, which are byte-identical to before #110.

  • Exported names. Comparing each published 0.2.5 tarball's declarations with 0.2.6, nothing exported from any public entry point was removed; 61 names were added.

  • Per-symbol type check. 505 symbols were checked for 0.2.5 → 0.2.6 assignability (old values accepted by new types; new values usable where old ones were). Seven flagged. All seven come from two intentional, already-merged widenings of output types, not from this PR:

    • Design-token categories gained motion (#107, ADR 0060, which records it as a consequence). DesignTokenCategory, the DESIGN_TOKEN_CATEGORIES tuple, and registry return types now include it. This only affects code that switches exhaustively over categories or pins the tuple's length.
    • Manifest output types are now the v8 | v9 union (#110, ADR 0063). parseModuleManifest, safeParseModuleManifest and moduleManifestSchema return the union, and MODULE_MANIFEST_VERSION is now 9 ("the newest version"). This only affects code that treats a parsed manifest's manifestVersion as always 8, or compares against MODULE_MANIFEST_VERSION to accept a manifest. @ekklesia/contracts is documented as an implementation dependency, not a supported direct dependency of modules.
    • Neither appears in Signage 0.1.5. Nothing exported was removed or had its inputs narrowed.

    ⚠️ For your judgment: I treated these as compatible output widenings consistent with a patch, as the earlier PRs intended. If you'd rather treat output-type widening as breaking, these belong in 0.3.0 instead, and I've changed nothing to hide them.

Validation (on this commit)

  • pnpm install --frozen-lockfile: passed. The lockfile is unchanged.
  • TURBO_FORCE=true pnpm ci:verify (format, lint, boundaries, typecheck, tests, module and migration validation, identity schema check, build, infrastructure:config, deploy:config): passed. contracts 286, design-tokens 144, ui 61, module-ui-sdk 38, module-sdk 5, module-database 26, module-ui-build 40, module-ui-host 47, module-pack 111 (3 skipped), template 22, shell 470, api 573, core 1194.
  • pnpm test:package-release: passed. The 9-package 0.2.6 train was rebuilt byte-identically with checksums, then consumed offline by a standalone module, packed, and verified by Core.
  • pnpm test:package-publication: passed, against a disposable Gitea.
  • pnpm test:migrations:integration: passed, 428 tests. (The first run had one failure because I rebuilt the package train in parallel, and package-release deletes each package's dist before rebuilding it. Re-run alone it passes completely.)
  • scripts/smoke-deploy.sh same-origin: passed, 49 checks.
  • EKKLESIA_SMOKE_TOPOLOGY=split, with the v9 template: passed, 397 checks, including module navigation in real Chromium across all five browser passes.
  • split, with the released Signage 0.1.5 package (EKKLESIA_SMOKE_MODULE_RELEASE_DIR, checksum verified): passed, 340 checks.

🤖 Generated with Claude Code

This prepares the coordinated **Ekklesia v0.2.6 patch release**, following Stage 1 PRs #103, #104, #106, #107, #108, #109 and #110. ## Changes It follows the 0.2.5 release (#95) exactly: the same 16 files in the same shape, and the lockfile is unchanged. - The root `package.json`, every platform workspace package, and the nine public `@ekklesia/*` packages go from `0.2.5` to `0.2.6`. The module template keeps its own version, 0.1.0. - `tests/fixtures/standalone-module/package.json` moves to 0.2.6 with its existing range forms preserved: `^0.2.6` ranges, and the exact `@ekklesia/module-pack` pin. - The `deploy/README.md` image build example moves to `VERSION=0.2.6` and `ekklesia:0.2.6`. - This is a **patch** release, so per `docs/development/releases.md` no compatibility range changes anywhere. There are no code changes, no manifest-compatibility changes, and no navigation changes. No package is published and no Git tag is created by this PR. **The 0.2.6 public package train (9 packages):** `@ekklesia/contracts`, `@ekklesia/design-tokens`, `@ekklesia/module-database`, `@ekklesia/module-pack`, `@ekklesia/module-sdk`, `@ekklesia/module-ui-build`, `@ekklesia/module-ui-sdk`, `@ekklesia/typescript-config`, `@ekklesia/ui`. ## Compatibility evidence - **Released Signage 0.1.5, real artifacts.** - Its released package passes the split deploy smoke on this commit, including display, pairing, kiosk and offline scenarios. *(Results below.)* - Its **v0.1.5 source**, exported with `git archive` and depending on the local 0.2.6 train tarballs (including transitive `contracts`), passes **typecheck, 289 tests, build, and its 20 module-validation checks** with no source change. - **Manifests.** - v8 is still accepted: the byte-exact released Signage manifest fixture, plus discovery tests. - v9 is valid: contracts, discovery, API and template tests, and the v9 template in the split smoke. - **Old-style host context.** A `ModuleUiHostContext` with no `navigation` member still compiles: the `module-ui-sdk` compatibility test, plus the pre-existing hosts' tests, which are byte-identical to before #110. - **Exported names.** Comparing each published 0.2.5 tarball's declarations with 0.2.6, nothing exported from any public entry point was removed; 61 names were added. - **Per-symbol type check.** 505 symbols were checked for 0.2.5 → 0.2.6 assignability (old values accepted by new types; new values usable where old ones were). Seven flagged. All seven come from two intentional, already-merged **widenings of output types**, not from this PR: - **Design-token categories gained `motion`** (#107, ADR 0060, which records it as a consequence). `DesignTokenCategory`, the `DESIGN_TOKEN_CATEGORIES` tuple, and registry return types now include it. This only affects code that switches exhaustively over categories or pins the tuple's length. - **Manifest output types are now the v8 | v9 union** (#110, ADR 0063). `parseModuleManifest`, `safeParseModuleManifest` and `moduleManifestSchema` return the union, and `MODULE_MANIFEST_VERSION` is now 9 ("the newest version"). This only affects code that treats a parsed manifest's `manifestVersion` as always `8`, or compares against `MODULE_MANIFEST_VERSION` to accept a manifest. `@ekklesia/contracts` is documented as an implementation dependency, not a supported direct dependency of modules. - Neither appears in Signage 0.1.5. Nothing exported was removed or had its inputs narrowed. ⚠️ **For your judgment:** I treated these as compatible output widenings consistent with a patch, as the earlier PRs intended. If you'd rather treat output-type widening as breaking, these belong in 0.3.0 instead, and I've changed nothing to hide them. ## Validation (on this commit) - `pnpm install --frozen-lockfile`: **passed**. The lockfile is unchanged. - `TURBO_FORCE=true pnpm ci:verify` (format, lint, boundaries, typecheck, tests, module and migration validation, identity schema check, build, `infrastructure:config`, `deploy:config`): **passed**. contracts 286, design-tokens 144, ui 61, module-ui-sdk 38, module-sdk 5, module-database 26, module-ui-build 40, module-ui-host 47, module-pack 111 (3 skipped), template 22, shell 470, api 573, core 1194. - `pnpm test:package-release`: **passed**. The 9-package 0.2.6 train was rebuilt byte-identically with checksums, then consumed offline by a standalone module, packed, and verified by Core. - `pnpm test:package-publication`: **passed**, against a disposable Gitea. - `pnpm test:migrations:integration`: **passed**, 428 tests. *(The first run had one failure because I rebuilt the package train in parallel, and `package-release` deletes each package's `dist` before rebuilding it. Re-run alone it passes completely.)* - `scripts/smoke-deploy.sh` same-origin: **passed**, 49 checks. - `EKKLESIA_SMOKE_TOPOLOGY=split`, with the v9 template: **passed**, 397 checks, including module navigation in real Chromium across all five browser passes. - `split`, with the **released Signage 0.1.5 package** (`EKKLESIA_SMOKE_MODULE_RELEASE_DIR`, checksum verified): **passed**, 340 checks. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ekklesia-bot added 1 commit 2026-10-15 14:55:35 +00:00
chore(release): prepare 0.2.6
CI / verify (pull_request) Successful in 1m12s
CI / infrastructure-smoke (pull_request) Successful in 34s
CI / package-release (pull_request) Successful in 51s
CI / migration-smoke (pull_request) Successful in 2m24s
CI / image-build (pull_request) Successful in 1m16s
CI / deploy-smoke (same-origin) (pull_request) Successful in 47s
CI / package-publication (pull_request) Successful in 57s
CI / deploy-smoke (split) (pull_request) Successful in 3m35s
ce56de663d
Co-Authored-By: Claude Opus 5.5 <[email protected]>
All checks were successful
CI / verify (pull_request) Successful in 1m12s
Required
Details
CI / infrastructure-smoke (pull_request) Successful in 34s
Required
Details
CI / package-release (pull_request) Successful in 51s
Required
Details
CI / migration-smoke (pull_request) Successful in 2m24s
Required
Details
CI / image-build (pull_request) Successful in 1m16s
Required
Details
CI / deploy-smoke (same-origin) (pull_request) Successful in 47s
Required
Details
CI / package-publication (pull_request) Successful in 57s
Required
Details
CI / deploy-smoke (split) (pull_request) Successful in 3m35s
Required
Details
This pull request doesn't have enough required approvals yet. 0 of 1 official approvals granted.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin chore/release-0.2.6:chore/release-0.2.6
git checkout chore/release-0.2.6
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayin/Ekklesia#111