Repository navigation
Conversation
…leak fixes
The global-state guard now puts the guarded process listeners back at each
file boundary after reporting the change, so a finished file's leftover
handler is no longer run or consumed by a later test's process.emit and
charged to that test (HACK-1416). Only the difference is edited, so a kept
once listener stays a once listener.
The Loki follow also gets a test that removes its SIGINT listener through a
real process.emit("SIGINT") inside a fixture that owns every SIGINT listener.
The routing refused-teardown case restores only the spies its fixture
installed instead of the global mock.restore(), and runs through the file's
fixture gate (HACK-1388). The gate and the unknown-lifetime teardown are now
shared by the gated runner and that case, which pins the runner's HACK_HOME
release. File generation's PATH restore under an unknown lifetime and the
protected-files settlement veto's process.kill restore get deterministic
assertions.
Refs HACK-1416, HACK-1388
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… label review runtime-core's own Compose label review rejected only the caddy, traefik, hack and com.docker.compose prefixes, so a service label in io.hack-local.*, io.hack.native-config.*, io.hack.native-file.* or io.hack.storage-witness.* passed the candidate review if the TypeScript classifier was bypassed. Add a Rust mirror of HACK_OWNERSHIP_LABEL_NAMESPACES and reject those namespaces (and their bare roots) in the review, never exempted by a routing or dependency cache declaration. A TypeScript parity test keeps the mirror identical to the TypeScript source of truth. Refs HACK-1409 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eadline and pin the guard exclusion Follow-ups to #421 (HACK-1361): - Record every publication stop of a recorded storage command through one stopPublication/refusePublication pair, so the bounded await, the child publication catch, the guard and settlement all refuse with the first cause and issued boundary. - Keep an owner check's issued boundary when the command record replaces it with its fixed refusal (publication and owner creation). - Tag untagged policy and state mismatches in the Docker storage carrier: a re-inspected carrier whose creation time or policy changed reports helper-policy-stability; a saved material binding that changed during a carrier step reports private-state. Both keep that reason after the carrier deadline instead of reading as storage-budget. - Extract the pre-spawn guard storage proof into nativeComposeGuardStorageProof and pin that only the carrier proof extends the start deadline. Diagnostics only: no check, deadline, retention or recovery rule changes. Refs HACK-1413 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t its carrier proof The pre-spawn guard storage proof excludes only its carrier proofs from the start deadline. The existing CLI wiring test proves carrier time is excluded, but re-widening the exclusion at the executePreparedGeneration call site (to cover the whole storage.verify) passed every test. A new CLI test slows the guard storage proof's freshness check, which runs outside every carrier span, past the start budget and asserts that the owned child's admission check then refuses before the workload spawns. Refs HACK-1413 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…low host The freshness wiring test used the 3 s start budget of the carrier test, so on a slow host the rest of the start phase alone could spend it and a re-widened exclusion would still be refused. It now gives the start phase 12 s, delays every compiler run inside the guard storage proof by 5 s (below the compiler's 10 s timeout) and checks that those delays alone outlast the budget. A larger per-carrier storage budget keeps enrollment from exhausting its carrier first. Refs HACK-1413 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… next) Temporary hosted-CI mutation probe for HACK-1413 item (2): the guard closure is wrapped in start.excludeStorage at the executePreparedGeneration call site and the helper's inner exclusion is identity, so the whole storage.verify is excluded again. The freshness wiring test is expected to fail on this commit. The next commit reverts it exactly. Refs HACK-1413 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Restores executePreparedGeneration's guard closure exactly as it was before the hosted-CI mutation probe: only each carrier proof runs in the start deadline's storage exclusion. Refs HACK-1413 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integration gate for merge batch b57: origin/next + #465 (HACK-1409) + #464 (HACK-1416, HACK-1388) + #469 (HACK-1413). Tree 24f504a9. Closed after the batch squashes.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.