Skip to content

ci: gate showcase output in all five ports and regen stale output - #449

Merged
dmealing merged 2 commits into
mainfrom
fm/mo-1-1-0-showcase-regen
Oct 23, 2026
Merged

dmealing merged 2 commits into
mainfrom
fm/mo-1-1-0-showcase-regen

Conversation

@dmealing

Copy link
Copy Markdown
Member

What Changed

  • Regenerates the stale examples/showcase output in four ports after the value-object null-omission and nested-decimal changes: SubscriberBlurbPayload.g.cs (C#, [JsonIgnore(WhenWritingNull)] on Name), SubscriberBlurbPayload.java (@JsonInclude(NON_NULL)), SubscriberBlurbPayload.kt (same annotation), and subscriber_router.py (_NESTED_DECIMALS plus the extra argument to coerce_decimal_fields). .hashes.json is updated to match.
  • Adds gate_showcase_all_ports to scripts/ci-local.sh, which runs regen-showcase --check --all-ports. It runs only in the flagless full run, where mvn, dotnet and uv are all present, and it fails under strict toolchains when any of them is missing. --quick and --only lanes are unchanged.
  • Updates the full-run description in CONTRIBUTING.md to list the new showcase gate.
Validation

Risk Assessment

✅ Low: The change regenerates four stale showcase outputs and their .hashes.json entries, all matching current emitter source, and adds a flagless-run-only gate in scripts/ci-local.sh that follows the existing step, skip and strict-toolchain patterns.

Testing

Drove the real showcase regen gate across all five ports; it passes on this commit, and it catches a hand-edited generated file. The full release preflight could not run because this worktree is on detached HEAD and the script requires main; the showcase step it runs is the same command I ran, so that step is covered. Related showcase tests pass. I did not run the complete repo regression suite (docker integration and the full mvn/dotnet lanes are heavy); the baseline ci-local ts-fast/ts-unit lane was already green. Worktree left clean.

  • Live validation: ✅ go - 3 of 4 scenarios driven live against the product
Scenario Result Live Evidence
Preflight showcase check passes across all ports after regen ✅ pass live bun scripts/regen-showcase.ts --check --all-ports (exit 0, all five ports fresh)
Stale generated output is rejected by the gate (adversarial) ✅ pass live Tampered csharp/SubscriberBlurbPayload.g.cs; check exited 1 naming the file; restored clean
Full CI run includes the all-ports showcase gate ✅ pass live MO_CI_LIST_ONLY=1 scripts/ci-local.sh lists 'showcase current in all ports'
Release preflight 1.1.0 passes end to end ⏸️ untested no Refused at the branch check: must be on main (worktree is detached HEAD). Running it on a renamed or created main was not done because that would bypass the guard. Needs a run from a checkout on main,…

Pipeline

Updates from git push no-mistakes

✅ **Intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • Live validation: ✅ go - 3 of 4 scenarios driven live against the product
Scenario Result Live Evidence
Preflight showcase check passes across all ports after regen ✅ pass live bun scripts/regen-showcase.ts --check --all-ports (exit 0, all five ports fresh)
Stale generated output is rejected by the gate (adversarial) ✅ pass live Tampered csharp/SubscriberBlurbPayload.g.cs; check exited 1 naming the file; restored clean
Full CI run includes the all-ports showcase gate ✅ pass live MO_CI_LIST_ONLY=1 scripts/ci-local.sh lists 'showcase current in all ports'
Release preflight 1.1.0 passes end to end ⏸️ untested no Refused at the branch check: must be on main (worktree is detached HEAD). Running it on a renamed or created main was not done because that would bypass the guard. Needs a run from a checkout on main,…
  • scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains
  • bun run --filter '*' build (prerequisite per regen-showcase header)
  • bun scripts/regen-showcase.ts --check --all-ports -> all five ports ok, exit 0
  • Adversarial: appended a line to examples/showcase/generated/csharp/SubscriberBlurbPayload.g.cs, re-ran --check --all-ports -> exit 1, names the file as differing from pristine regen; restored file, tree clean
  • MO_CI_LIST_ONLY=1 scripts/ci-local.sh -> lists 'showcase current in all ports' in flagless run
  • bun run scripts/release.mjs 1.1.0 --preflight-only -> refused: must be on main (detached HEAD); not bypassed
  • bun test scripts/site -> 168 pass, 0 fail
  • bun test packages/cli/test/integration/showcase-drift.test.ts -> 3 pass, 0 fail
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

… the new all-ports showcase gate. Left AGENTS.md unchanged: it omits the new gate but is not wrong, and it is a human-owned memory file.
@dmealing
dmealing merged commit 56b6199 into main Oct 23, 2026
1 check passed
@dmealing
dmealing deleted the fm/mo-1-1-0-showcase-regen branch October 23, 2026 02:07
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