Repository navigation
fix(runtime): recover retained native pools and graph owners - #122
Merged
Merged
Conversation
added 30 commits
September 29, 2026 21:41
Stand-in invocations ran concurrently (a foreground `up` while the driver polls `ps`) and each did an unlocked read-modify-write of state.json. A `ps` that loaded the state before the second `up` saved its foreground token then saved its stale copy over it, so `up` saw its token gone and exited 0 before readiness; lost call records failed the acceptance test as well. That failed 26 of 40 local runs, and Runtime state models on CI. Each invocation now holds an exclusive flock across its read-modify-write and releases it only before its long waits (the foreground loop and the ps-hang fault). 40 of 40 local runs pass.
added 8 commits
October 2, 2026 16:59
roodboi
marked this pull request as ready for review
October 3, 2026 01:13
roodboi
added a commit
that referenced
this pull request
Oct 3, 2026
Stable release automation accepts every `v*` tag, while native candidate bundles require manual selection. Add an explicit `5.0.0-next.N` channel that prepares a complete versioned macOS ARM64 bundle by default and publishes only after exact protected-`next` CI and human environment approval. Prereleases remain outside GitHub latest and the stable Homebrew formula. Add an opt-in `hack-next` installer with verified provenance, checksums and signatures, immutable per-version bundles/homes, quiescence-gated upgrades, retained rollback, and explicit return to stable. Switching software does not migrate v4 Docker or v5 VM data. Product guides cover dispatch, pinned installation, provider setup and recovery. Validation: 16 focused Bun tests pass, including 23 Python installer controls on macOS Python 3.9; full CLI suite 1,719 passed, 67 skipped, zero failures; typecheck, lint, shell syntax and staged privacy checks pass. The DB package gates used the existing shared cache. On the M3, two real signed bundles from 8821f93 passed 12 install/upgrade/rollback/stable-switch checks using macOS Python 3.9 and the real native executor. Both versions retained separate homes; failed upgrade and active-launcher controls preserved selection; the installed stable executable remained unchanged. The macOS metadata archive regression reproduces 16 entries without suppression and verifies exactly eight regular payload files after the fix using an independent tar reader. All eight required hosted CI checks pass on exact head 8821f93 (optional Codesmith skipped). Published-asset download verification remains a post-publication gate. Release signal: optional candidate distribution capability. No release tag or publication has occurred. Before first publication, merge the candidate fixes and this channel into `next`, configure reviewer-protected `v5-prerelease`, and finish candidate application acceptance tracked in #122. --------- Co-authored-by: hack-cli-tests <tests@hack>
This was referenced Oct 4, 2026
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.
Retained native projects can become unable to restart when cleanup acknowledgement, foreground ownership or recovery history outlives its active generation. This change provides selected recovery while preserving persistent data and refusing changed or ambiguous ownership. A failed first container start that leaves
created/ exit 128 can now be shut down with its running siblings through ordinary retainingdown, then restarted normally.Head
a774b8fe19fb52a06eb08918050e8cfa50ce241ftargets protectednext. All eight required exact-head CI checks pass. A fresh signed bundle passed actual retaining cleanup and ordinary restart of a retained 14-service QA project on Apple Silicon macOS, followed by status, logs, exec, one-off run, Redis retention, normal-origin Google sign-in, data-backed search and deep-scroll images on two result pages. This PR is ready for review; it does not publish a release.Behavior
Validation
downcompleted all 382 journal steps, acknowledged cleanup, retired publication and released the dependency reservation. Independent readback confirmed compute absence, all four original volumes (including the cache) present with unchanged names, and unchanged sibling receipt, VM disk identities, CA and boot.ready-observedwith a verified live foreground owner; 12 long-running services run and both completed jobs remain exited. Normal status/logs, populated dependency-volume exec/run and synthetic Redis data readback pass. System-trusted port 443 returned all 16 sign-in assets as HTTP 200 over HTTP/2. Fresh Chrome Google sign-in, QA-backed Boston search, direct page-2 navigation with different results and all 27 observed images on each page pass after deep scrolling.Limits and remaining work
Pending guest-script cleanup advances only on verified complete absence and can remain fenced after partial deletion. Completed interrupted-start journals remain evidence: a later resource generation cannot reuse them and returns
graph_interrupted_start_cleanup_stale; verified restore-boundary archival is a separate follow-up. No manual journal removal is required or authorized here.The earlier pinned containerd descriptor-initialization panic did not recur in this ordinary restart. Its cause remains unproven; matching engine digests and ten non-reproducing initialization probes do not prove a crash fix. The earlier dependency-socket fixture flake likewise remains unproven. Bun 1.4.2 is compatibility-qualified, not a proven crash fix.
The human-activated loopback relay qualifies this normal app origin, not installed-global routing. Combined merged-
nextintegration/CI, protected prerelease approval, actual published-artifact installation, full-v5 performance/scale and separate domain/CA qualification remain independent gates. PR #123 supplies the separate prerelease preparation/install/rollback channel.Release signal:
fix. No automatic migration, application tracked-source/config change, stable replacement, tag or publication.