Repository navigation
docs(quest): complete mbx target retention - #7820
Conversation
Quest-Claim: bc2cc09961829a45
Host configuration is implemented in kixelated/dotfiles at 26d375495bfad24cdac99f035cc67e35d7e9a045. Retain existing checkouts and disable pressure-driven cache eviction. Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 26 minutes. View limit details
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. |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Completed quest removed —
quest/m0/ci/mbx-gc.mdis deleted, consistent with how prior completed quests have been retired in this repo. - Epic index updated — its single entry is removed from
quest/m0/ci/README.md.
No references to mbx-gc or to the deleted file's Related link remain in the repo, and the README edit is a clean single-line removal. The policy change itself lives in kixelated/dotfiles#36, so this checkout has no runtime, API, or wire surface to review.
deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed head 4b5c0bd. I found no additional actionable issue in retiring the quest. As the PR notes, the source change in kixelated/dotfiles#36 must land first; it is still open at this review.
Verification: GitHub-only static review of the quest, linked configuration and upstream retention behavior. I did not run the reported tests or verify the desktop deployment.
(Written by review (OpenAI))

Problem
The incident showed mbx collecting one “live” target and draining shared objects below
gc.max_sizewhen free space fell below its default floor. “Live” means that the checkout still exists, not that a command holds its target's lease. This PR completesquest/m0/ci/mbx-gc.mdand removes its CI epic link.Approach
Source configuration: kixelated/dotfiles#36, commit 26d375495bfad24cdac99f035cc67e35d7e9a045. Land that source PR before this bookkeeping PR. The policy is already active through the existing dotfiles config symlink on
desktop.target.keep = ["/"]retains targets for every existing checkout, including direct binary execution and gaps between launches. Abandoned targets remain collectible.gc.min_free_size = "none"disables pressure-driven eviction; normal cache budgets remain enabled. A build can fail with the ordinaryNo space left on deviceI/O error instead of deleting targets or draining the shared cache to accommodate unrelated disk use.75d60f6b495505329bf8babc77356fb70b6e9dbb. Its publication branch contains only this configuration and documentation.Why the protection was absent
mbx 1.25.0 protects a running wrapped command with a shared view lease, and native Cargo with Cargo's build lock. Directly launched binaries and intervals between launches hold neither. The current managed-target documentation and upstream process-protection change confirm that even mbx 1.29.2 deliberately ignores directly launched programs under low-space collection. The incident's aggregate log does not name the victim checkout, so its exact command/lease cannot be reconstructed; it is not evidence that a held lease failed. The isolated reproduction establishes the unprotected path and the configuration protects it without needing that missing attribution. This is supported policy, not an unresolved upstream defect; no upstream post is needed.
Disk attribution, desktop, 2026-11-03
Read-only snapshot while other work continued; rounded allocated-byte readings can change during the scan and shared blocks are not additive:
.tmp/trees held 15, 14 and 13 GiB; these are scratch, separate from centrally managed target views. No ownership was inferred from size..local, and 248 GiB under~/work.ducounted 173 GiB allocated but could not read an active Nix chroot, so this is a lower bound. Its database lists 99,703 registered paths and 486.9 GiB NAR size; NAR size is serialized logical size, not disk allocation.quest worktree statushas no registered checkouts on this host. Automatic quest cleanup therefore cannot be assumed to reclaim these T3 worktrees. No other worktree, shared cache or Nix path was deleted.Impact
Alternatives and choices
Lowering the threshold merely postpones the same deletion. The latest upstream process scan still excludes low-space collection and has platform/snapshot limits. Holding Cargo open would miss directly launched programs and intervals between launches. Retaining existing checkouts and disabling pressure eviction requires two supported settings, without a new launcher, threshold or dependency.
Validation
XDG_CONFIG_HOME,MBX_CACHE_DIRandMBX_TARGET_ROOTthroughout. A copied executable communicates over a pipe to prove it is running; fixture records use an old timestamp instead of waiting. Explicit GC never touched host state.gc.min_free_size = "100TiB"; shared-lease target preserved; tracked-config target preserved under forced pressure and separately a1Btarget budget; abandoned target collected in all cases./dev/fullfails with exit 101 and explicitNo space left on device, retaining the earlier executable. GC with the tracked policy preserves the populated action store and live target.quest gate nix develop --command bash -c 'export PATH=<pinned Nix Rust>/bin:$PATH; exec just ci origin/main'passed in 94 seconds: all selected lint/tooling lanes, repository tooling tests and 600-document quest validation.git diff --check origin/main...HEADpassed. No MoQ runtime package changed, so no interop run is needed.Review
Skipped for
4b5c0bdbe9cd6d568217948e4a68a516d8557530: this committed MoQ diff deletes the completed quest and its single epic link. The two supported dotfiles settings and their guide have the separately recorded manual source audit and released-binary behavior checks. No sub-agents were started.Follow-ups
(Written by GPT-6.1 Sol)