Skip to content

fix(ci): restore the BDD and aarch64 CI witnesses on main - #5499

Closed
auser wants to merge 2 commits into
mainfrom
fix/5369-main-ci-witnesses
Closed

auser wants to merge 2 commits into
mainfrom
fix/5369-main-ci-witnesses

Conversation

@auser

@auser auser commented Nov 14, 2026

Copy link
Copy Markdown
Collaborator

What

The last two CI (main) runs (43523161932, 43535542677 on 50b1a23) fail three jobs: BDD conformance (2 scenarios), Test workspace (aarch64), and the "Require every lane to pass" meta-lane. This fixes all three causes.

  1. TS doc example — operations-cookbook.mdx assigned MODE: "dev" as a bare string; feat(sdk): retire bare-string env values in the SDKs and decorator parser (#4839) #5463 made EnvValue explicit, so the documented example fails the typecheck scenario (TS2322). Now MODE: literal("dev") with literal imported.
  2. Docs coverage ledger — mvmctl policy validate ./policy/api-group.toml (documented in the policies guide) sat outside the coverage ledger, and the ratchet failed on it before reaching stale debt behind it. Adds a scenario staging the guide's own group file in a scratch directory and validating it offline (--verbose so the success line is observable), then regenerates the ledger: the three policy validate examples move uncovered → covered, and entries whose doc lines recent PRs removed leave the ledger.
  3. aarch64 pty EIO — a_console_spawned_shell_holds_no_capabilities read the pty master with read_to_end, which propagates EIO. EIO is how a Linux pty master reports that every holder of the slave side has closed it, so a fast-exiting sh -c grep failed the read on the aarch64 runner (x86_64 timing masks the race). The read loop now treats EIO as end of stream, matching pump_output's documented contract.

Validation

  • s29 doc-examples suite: 25 scenarios / 52 steps, all passed (was 2 failed)
  • just check::gated (linux-gated + bdd targets): clean
  • scoped clippy (mvm-agentd --tests, mvm-conformance --features bdd --tests): -D warnings clean
  • The aarch64 capability test itself needs a privileged Linux host; the failure mode and fix are verified by inspection against pump_output's EIO handling, and the job will re-witness on this PR's aarch64 runner.

Lifecycle

Test-only/doc-only change; no runtime state transitions touched. The new scenario owns a tempdir scratch dir + isolated home, dropped on process exit as the existing steps do.

Refs #5369

CI (main) has failed twice in a row on 50b1a23 with three jobs:
BDD conformance (2 scenarios), Test workspace (aarch64), and the
meta-lane that requires every lane to pass.

- The operations cookbook's TypeScript example still assigned a bare
  string env value; #5463 made EnvValue explicit, so the documented
  example no longer typechecks. Write MODE: literal("dev") and import
  literal.
- mvmctl policy validate ./policy/api-group.toml is newly documented
  and sat outside the coverage ledger. Add a scenario that stages the
  guide's own group file in a scratch directory and validates it
  offline, then regenerate the ledger: the policy-validate examples
  move from uncovered debt to covered, and entries whose doc lines
  recent PRs removed leave the ledger.
- a_console_spawned_shell_holds_no_capabilities read the pty master
  with read_to_end, which propagates EIO; EIO is how a pty master
  reports that every slave holder has closed it, so a fast-exiting
  shell failed the read on the aarch64 runner. Treat EIO as end of
  stream, matching pump_output's contract.

Refs #5369
@auser auser closed this Nov 14, 2026
@auser auser reopened this Nov 14, 2026
@auser

auser commented Nov 14, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #5511: this PR never received a pull_request event from GitHub (zero workflow runs across two pushes, a close/reopen, and no path filters in ci.yml), so its checks could never run. Same commits on a fresh branch in #5511.

@auser auser closed this Nov 14, 2026
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