Skip to content

release: 0.1.0-preview.4 — the console train - #85

Merged
omercelikdev merged 1 commit into
mainfrom
release/0.1.0-preview.4
Jul 27, 2026
Merged

release: 0.1.0-preview.4 — the console train#85
omercelikdev merged 1 commit into
mainfrom
release/0.1.0-preview.4

Conversation

@omercelikdev

Copy link
Copy Markdown
Owner

The console ships.

What the train carries

  • Goldpath.Consoleapp.MapGoldpathConsole() serves the built single page from embedded assets, behind the same ops floor as the admin surfaces. Adopters never run Node; the cross-service registry is configuration (AddService).
  • The console itself: a TODAY triage screen across every configured service, then panels for all five modules — runs, bulk intake (four-eyes gate), campaign governor (live throttle), notification evidence (masked), archival (chain/hold/erasure). Capability-lit, and honest about refusals in the server's own words.
  • The tenancy fix the console's gate uncovered: composing a broker registered an ITenantContext, which the admin seam read as "multi-tenant" — so a single-tenant app that merely added messaging had its admin surfaces refusing (400/403) since preview.3. Invisible until now because the reference app composes multitenancy.

Release gates

  • Local: build, full unit loop (21 suites), dotnet format --verify-no-changes, license gate (316 packages, all free/OSS).
  • Console gate: scripts/console-smoke.sh 22/22 — three real apps plus the app-SERVED console.
  • Version bump, PublicAPI roll (16 entries), CHANGELOG, docs/upgrades/0.1.0-preview.4.md.
  • Admin contract: unchanged this train (the tenancy fix restores intended R1 behaviour rather than changing the contract; noted in the R1 section).
  • GM matrix — re-dispatched after the two fixes below.

Two release-path fixes the nightly caught

  1. The console package's "refuse to pack without a built console" gate fired on every pack — including the local source-feed pack every GM shape does, which suddenly needed Node for an unrelated proof. It is now armed by the publishing path (release.yml passes -p:GoldpathConsoleRequired=true), the only place an empty console could reach an adopter. Verified both ways: armed + empty → the error; unarmed → packs clean.
  2. The console smoke's postgres wait was 60s, which a nightly runner doing nine other jobs exceeded on a cold image pull. Now 120s (and rabbit 180s), with the log dump that was already there.

🤖 Generated with Claude Code

The console ships: `Goldpath.Console` maps the built single page from the adopter's own
management head, behind the same ops floor as the admin surfaces, with the cross-service
registry coming from configuration. And the tenancy misread that the console's own gate
uncovered goes with it — a single-tenant app that merely composed messaging had its admin
surfaces refusing since preview.3.

Version bump, PublicAPI roll (16 entries), CHANGELOG, and an upgrade guide that says what
it is: no breaking changes, plus how to take the console.

Two release-path fixes the nightly caught while this was being prepared:
- the console package's "refuse to pack without a built console" gate fired on EVERY pack,
  including the local source-feed pack every GM shape does — an unrelated proof suddenly
  needed Node. It is now armed by the publishing path (`release.yml` passes the property),
  which is the only place an empty console could actually reach an adopter. Both halves
  verified: armed and empty → the error; unarmed → packs clean.
- the console smoke's postgres wait was 60s, which a nightly runner doing nine other jobs
  exceeded on a cold pull. 120s, and rabbit 180s.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@omercelikdev

Copy link
Copy Markdown
Owner Author

Review agent v1 — R1–R6 scanned, no findings.

@omercelikdev
omercelikdev merged commit fb62b27 into main Jul 27, 2026
26 checks passed
@omercelikdev
omercelikdev deleted the release/0.1.0-preview.4 branch July 27, 2026 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant