Skip to content

train b23 integration gate (do not merge) - #367

Closed
roodboi wants to merge 16 commits into
nextfrom
train/b23
Closed

roodboi wants to merge 16 commits into
nextfrom
train/b23

Conversation

@roodboi

@roodboi roodboi commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Integration gate for merge batch b23: origin/next ec223cd + #356 (HACK-1281). Tree 11492e44. Closed after the batch squashes.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

roodboi and others added 16 commits October 19, 2026 13:18
native-config-networks fails intermittently with only "Fixture command must
exit 0; captures retained", and its private captures are not uploaded, so the
failing command and product refusal cannot be identified from hosted logs.

Each failing fixture command now logs a fixed diagnostic: command class
(hack verb or docker verb/action), checkout role, sequence, expected and
actual exit, and the product's closed error code and effect-refusal
stage/reason when present. A failed phase also logs a census of exact owned
containers (service, storage carrier, fixture) by closed engine state.
No argv values, output text or paths are printed.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hosted sampling for HACK-1281 only; reverted before review.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The failing-command diagnostic now carries its duration, and a cleanup
failure after an original failure logs its fixed assertion sentence (or
withholds it) plus a second owned-object census.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hosted sampling for HACK-1281 only; reverted before review.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hosted sampling for HACK-1281 only; reverted before review.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…k census

A non-canonical project container (for example a Compose recreate
temporary) blocks every native command, including down --recover, with an
ownership refusal. The failure census now reports such containers apart
from canonical services by closed kind only.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A native command that failed with a plain error (for example a storage
carrier refusal during a witness-bearing exec) mapped to the fixed
E_COMPOSE_FAILED text without the closed stage/reason its owner had issued,
and a command without --json never printed that boundary at all. Hosted
native-config-networks failures therefore could not say which owner refused.

The generic E_COMPOSE_FAILED translation now carries
detail.native_compose_effect_refusal when the registry holds an issued
diagnostic; the code and text are unchanged. Without --json, a coded error
prints one more fixed line, "Refusal boundary: <stage> (<reason>); values
omitted.", only for a known stage and reason pair read as own data.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… evidence

The failing-command diagnostic read a human error code only from stderr as
"ERROR E_X:", which no logger backend prints (clack writes "■  E_X: " to
stdout), so every failing hack exec reported code null. It now reads the
leading closed code and the closed refusal boundary line from either stream,
ANSI stripped, for the clack, gum and console formats.

In-container probe scripts now exit with closed codes for every failure
(rejected or timed-out fetch, unreadable or unwritable marker), so a
hack exec that exits 1 is the product, not an uncaught probe error. The
failure census also logs each started checkout's saved stopped/pending
operation and storage/hook pending flags. No values, text or paths.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hosted sampling for HACK-1281 only; reverted before review. A third
iteration crossed the 150-minute job budget, so a new iteration starts only
within 55 minutes. Shards 1 and 2 add two CPU spinners and an fsync loop.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A storage carrier command refusal collapsed into one plain error, so its
issued boundary reason was always "unclassified": a timed-out or cancelled
child, an exhausted publication budget or a settlement that outlasted its
three-second post-exit budget looked identical to a real identity mismatch.

The command runner now keeps a closed cause with the same fixed refusal
(probe-timeout, probe-cancel or probe-budget), and every carrier boundary
reports it before the generic reason. No check, deadline, retention or
recovery rule changes: an over-budget settlement still leaves the original
command unsettled, as the new focused test replays with a slow parent sync.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Removes the hosted HACK-1281 sampling from tests/e2e/run.ts (every shard
running only native-config-networks, repeated iterations and background
CPU/fsync load on shards 1 and 2). Shard selection and a single
runScenarios pass are restored exactly as on the merge base.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…re evidence

A failing `down --recover` that stays incomplete issues no refusal boundary,
so its diagnostic printed E_COMPOSE_FAILED with a null stage and reason. A
command the runner killed at its budget printed no diagnostic at all.

The command diagnostic now adds a closed `message` label for an exact fixed
product sentence (stop-incomplete, operation-failed, native-state, -busy,
-uncertain, -stale); any other or changed text yields null. A command the
runner could not return logs its class, role, sequence, duration and a
closed runner outcome (timeout, output-bound, group-unconfirmed, capture,
other). No output, argv or path is printed.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hosted sampling for HACK-1281 only; reverted before review. Every shard runs
only native-config-networks under a host-stall monitor (event-loop lag and a
product-shaped `ps` identity read every two seconds; numbers only). Shards 1
and 2 stop the CLI process 1.2 s of every 2 s during the first 20 saved exec
commands after the created-recovery phase, replaying a host stall.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A recorded storage carrier command read process identity with a fixed
one-second bound and settled within three seconds after exit. A host stall
of the CLI longer than that resumes with the timer already due, so a healthy
command refused after its daemon effect (probe-timeout or probe-budget). The
refusal leaves the carrier intent uncertain: the next startup, exec or
restart refuses, and `down --recover` stays incomplete by design. This is the
native-config-networks failure signature in HACK-1281 (a product command
exits 1, then cleanup also fails, with a created carrier and storage witness
work pending).

Identity reads now share the enclosing handshake or settlement budget, and
the post-exit settlement budget is a finite 15 seconds. No check, record,
retention, recovery rule or authority changes. An exhausted budget still
refuses as probe-budget; the race also observes the abandoned work so its
rejection cannot escape as an unhandled process error.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reverts fbf5cf6. Hosted results are recorded in the PR: on the pre-fix
carrier (run 39643040488) both stalled shards failed with the HACK-1281
signature; on fc4095b (run 39644645624) both stalled shards passed all 20
stalled exec commands and all four shards passed. tests/e2e/run.ts and the
scenario's stall hooks are back to their reviewed state.

Refs HACK-1281

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@roodboi roodboi closed this Oct 21, 2026
@roodboi
roodboi deleted the train/b23 branch October 21, 2026 20:29
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