Skip to content

fix(ci): the sweep threw away a full report to die at exit 143 - #99

Merged
LMPrado-DZ23 merged 1 commit into
release/v3.8.55from
fix/sweep-pack-artifact-unmeasurable
Sep 20, 2026
Merged

LMPrado-DZ23 merged 1 commit into
release/v3.8.55from
fix/sweep-pack-artifact-unmeasurable

Conversation

@LMPrado-DZ23

Copy link
Copy Markdown
Owner

Both sweeps on 2026-09-20 ran every static and drift gate green, merged seven green suites, reached Package artifact (npm pack policy), went silent for six minutes, and were killed:

10:25:13  ▶ Package artifact (npm pack policy) [serial]…
10:30:53  ##[error]Process completed with exit code 143

Not a timeout — the job budget is 55 minutes and the runner ceiling is ~60.

The repository already knew

check:pack-artifact falls back to a full next build, and the hosted runner cannot fit this tree. build.yml has been manual-only since diegosouzapw#11946 because 19 of its last 30 runs died with "the runner has received a shutdown signal" (VM out of memory) ~8 min into that build. Its own header says the bundle is validated "where a build actually fits" — the self-hosted pool.

So the gate was never going to pass there. Its failure mode was to discard thirteen green gates and seven green suites on the way out.

What it does now

On a hosted runner the gate is not attempted. It is recorded as unmeasured, with the reason and the remedy:

❌ pack-artifact (not measured here): a full next build does not fit the hosted
   runner (build.yml is manual-only since #11946); set USE_VPS_RUNNER=true for
   a release-window verdict

HARD, deliberately. A sweep missing a required gate is not release-green — and the point of every other guard in this release has been that a check which did not run must never read like one that passed. With USE_VPS_RUNNER selecting a runner the build fits, the gate runs exactly as before; a test asserts that branch, so the hosted path cannot quietly become the only path.

--unmeasured=<id>:<reason> is the general form. A malformed value throws rather than recording nothing — recording nothing is precisely the silent omission it exists to prevent. Reasons may contain colons, because the remedy is the useful half of the message.

Check Result
tests/unit/validate-release-green.test.ts 53/53
smoke: a stated unmeasured gate ❌ NOT release-green, naming it
smoke: --unmeasured=pack-artifact (no reason) refuses to start
YAML parses, prettier --check clean

What this does not do

It does not make the artifact gate pass on a hosted runner — nothing can. A fully green sweep for this line needs USE_VPS_RUNNER=true with that runner online, and that is the owner's call. What changes is that everything else the sweep measured now survives to be read.

🤖 Generated with Claude Code

Both sweeps on 2026-09-20 ran every static and drift gate green, merged
seven green suites, reached `Package artifact (npm pack policy)`, went
silent for six minutes and were killed:

  10:25:13  ▶ Package artifact (npm pack policy) [serial]…
  10:30:53  ##[error]Process completed with exit code 143

Not a timeout — the job budget is 55 minutes and the runner ceiling is
~60. check:pack-artifact falls back to a full `next build`, and the
hosted runner cannot fit this tree. The repository already knows:
build.yml has been manual-only since diegosouzapw#11946 because 19 of its last 30
runs died with "the runner has received a shutdown signal" (VM out of
memory) ~8 min into that build, and its header says the bundle is
validated "where a build actually fits" — the self-hosted pool.

So the gate was never going to pass there, and its failure mode was to
discard thirteen green gates and seven green suites on the way out.

On a hosted runner it is no longer attempted. It is RECORDED as
unmeasured, with the reason and the remedy:

  ❌ pack-artifact (not measured here): a full next build does not fit
     the hosted runner (build.yml is manual-only since diegosouzapw#11946); set
     USE_VPS_RUNNER=true for a release-window verdict

HARD, deliberately. A sweep missing a required gate is not
release-green, and the point of this release's other guards has been
that a check which did not run must never read like one that passed.
With USE_VPS_RUNNER selecting a runner the build fits, the gate runs
exactly as before — that branch is asserted by a test, so the hosted
path cannot quietly become the only path.

`--unmeasured=<id>:<reason>` is the general form. A malformed value
THROWS rather than recording nothing, because recording nothing is
precisely the silent omission it exists to prevent. Reasons may contain
colons: the remedy is the useful half of the message.

  53/53 tests/unit/validate-release-green.test.ts
  smoke: a stated unmeasured gate → "❌ NOT release-green" naming it
  smoke: `--unmeasured=pack-artifact` (no reason) → refuses to start
  YAML parses; prettier clean

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

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 50880035-4403-4942-a53b-645194dfd66a


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@LMPrado-DZ23
LMPrado-DZ23 merged commit 18378c9 into release/v3.8.55 Sep 20, 2026
15 checks passed
@LMPrado-DZ23
LMPrado-DZ23 deleted the fix/sweep-pack-artifact-unmeasurable branch September 20, 2026 10:47
LMPrado-DZ23 added a commit that referenced this pull request Sep 20, 2026
…l reds (#100)

A-H1 said the release-green sweep could not produce a verdict, and I
wrote that the two ways out were "neither reachable by editing a
workflow". One of them was. #87 split the sweep — resolve → seven
slow-suite jobs → an aggregator that merges their reports — and this
line now has the full-CI verdict it never had.

What that verdict found is the point of having had it:

  · api-routes-critical.test.ts was making a LIVE HTTPS request to
    aihorde.net on every run
  · api-keys.test.ts was a false positive of the network guard I wrote
    in #56 — cloud.example is RFC-reserved and resolves nowhere

Both fixed in #96; the second sweep passed all seven shards.

Also recorded, because it is the honest remainder: the aggregator passes
every static and drift gate and then dies at check:pack-artifact, six
minutes of silence and exit 143, in both sweeps. That gate falls back to
a full `next build` and the hosted runner cannot fit this tree —
build.yml has been manual-only since diegosouzapw#11946 for exactly that reason.
#99 stops it discarding thirteen green gates and seven green suites on
the way out, by recording the gate as unmeasured instead.

A fully green verdict needs USE_VPS_RUNNER with that runner online.
That is an external dependency and the owner's call, not pending work,
and the document now says so rather than leaving a HIGH that reads like
something I still owe.

  [doc-links] PASS — 172 docs, 1044 internal links

Co-authored-by: zodyp <zodyprado@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.

2 participants