Repository navigation
Conversation
The stream relay contract probed a free loopback port by binding 127.0.0.1:0 and dropping the listener before the publisher bound it. Under parallel tests another socket could take the port first; the publisher then failed bind() and exited 73 (EX_CANTCREAT) before writing its readiness line, which the helper reported as "readiness EOF" (CI run 39284084093). `stream-relay --publish 0` now binds a kernel-chosen loopback port and reports it as "ready <port>\n". Explicit ports and Unix frontends keep the bare "ready\n" line, and port 0 stays refused (64) in every other form, so existing callers are unchanged. Every test that used the released probe now publishes on port 0 or holds the port it needs, and the control-startup test drops its exit-73 retry. Refs HACK-1284 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ion contract The port-0 refusal cases waited on the child with output(), so a publisher that wrongly admitted "--publish 00" kept serving and hung the test run instead of failing it (found by mutating the exact-"0" check). Poll the child against a 3s deadline, then kill and reap it and fail with the admitted command. Refs HACK-1284 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nobserved The negative control for a symlinked .hack/.env built both refusal attempts in an array literal, so upsertDotEnvValue and removeDotEnvKey ran concurrently. When removeDotEnvKey's refusal settled first, its promise had no handler yet while the loop awaited the first attempt. Bun reports that as an unhandled rejection, fails the test and runs afterEach, which removes the temp root while the test body is still running; the body's later readFile of outside.env then fails with ENOENT as "Unhandled error between tests" (HACK-1292). caught() now takes a thunk, so every operation in this file starts inside the await that observes it, and the loop passes thunks. No product change: the refusal paths in private-file.ts await all their work before rejecting. Refs HACK-1292 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ller deadline The compound v14 routing-generation tests gave every harness operation a fixed 15 s caller deadline, while `hack up`/`down` give a retained operation the 90 s Compose startup budget. In CI run 39289575897 the fourth lifecycle operation outlived the 15 s deadline under suite load, and the product's fail-closed deadline guard in mutateRetainedContainers refused as E_LEGACY_ADOPTION_CHANGED, the same code as a real binding change. No binding had changed, and the 32.9 s "store-close" phase in that log was the four lifecycle operations: the test had no phase marker between them. Each retained routing operation also costs more than the one before it: every route-claim scan rereads every prior attempt and revalidates every held directory, so the fourth lifecycle operation of a fresh fixture is the slowest. - operation() takes a closed caller deadline (the 15 s default or the product's DEFAULT_COMPOSE_STARTUP_TIMEOUT_MS) and records value-free timing of the last operation: elapsed ms, outcome, refusal code, whether the caller deadline had expired and whether any synthetic binding fact had moved. - The compound lifecycle and rollback tests pass the product's caller deadline to every operation, mark a phase after each operation, attribute a failure with the last operation's timing, and get a budget that covers the bounds of the operations they run in sequence. - Three regression tests use a synthetic clock advance after the first probe: an unchanged operation slower than 15 s completes under the product's deadline; the same operation under the 15 s default refuses as CHANGED with an expired deadline and an unchanged binding; a real volume birth drift still refuses as CHANGED before the deadline. Refs HACK-1283 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hecks locally Root test, check and typecheck, and the CLI package's test, check and typecheck, now run `bun run check:bun-version` first. It fails when the running Bun differs from the package.json packageManager pin that CI installs, unless HACK_ALLOW_BUN_VERSION_MISMATCH=1 is set deliberately. Turbo passes that variable through so package tasks honor it. `bun run check:native-plan-cli` runs the compiled-bundle CLI checks that previously ran only in CI's Config compiler job. A wiring test fails when a scripts/check-native-*-plan-cli.ts is missing from it or from CI. Refs HACK-1290 Refs HACK-1294 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The P01 killed-installer step polls owned install containers while a concurrent `hack up` recreates the linked `install` service. Compose removed the listed container between `docker ps -aq` and `docker inspect`, so the helper failed with "No such object". ownedContainers now inspects with `--type container` and accepts only a listed ID that Docker reports missing and `docker ps` confirms absent; any other inspection failure still fails the scenario. Refs HACK-1296 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The check and typecheck package scripts now run check:bun-version first, so the reviewed task catalog's pins for them were stale (stale_recipe). Pins are the canonical-JSON digests the catalog computes; test:models is unchanged. Refs HACK-1290, HACK-1157 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 b29: origin/next 331ec18 + #381 (HACK-1290/1294) + #383 (HACK-1283) + #384 (HACK-1292) + #386 (HACK-1296) + #382 (HACK-1284). Tree f7debef0. Closed after the batch squashes.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.