Repository navigation
fix(doctor): name last-resort reclaim for overbound project stores - #4799
ScriptedAlchemy merged 10 commits into
Conversation
|
Reject empty project selectors and budget the entire finding, including both commands, deletion warning and measured overage. Omit actions that cannot fit intact. Add filesystem-backed malformed/long-selector regressions and sparse 15 GiB reporting coverage with a canonical identity and long Unicode root. Preserve concurrent formatting commit d7c2d3a. Native Bazel validation remains required; no Cargo commands or CI changes. Refs #4616
|
Published review follow-up f0c834d. Refs #4616 (partial Doctor acceptance only). Two concrete gaps were found: the selector predicate accepted the empty The production finding now rejects an empty selector suffix and checks the complete rendered finding using the same formatter/bounding function as the final output. It first omits the optional root text; if the deletion warning, both complete commands and measured bound still cannot fit, it omits the action rather than printing a partial destructive command. Healthy/unregistered/profile-total behavior is unchanged. Added two filesystem-backed Rust regressions: malformed/empty/long registered selectors must remain degraded without unsafe command suggestions, and a sparse 15 GiB store with a canonical project identity and long Unicode root must retain both complete commands, deletion warning and numerical overage. Tests assert the fixture files are unchanged. These exercise the census -> canonical Doctor finding path; the negative empty/long-selector cases expose the prior behavior. Concurrency: the initial exact-head publication was rejected after the branch advanced. I read and preserved concurrent formatting commit d7c2d3a, rebuilt on that exact parent, reviewed the resulting one-file diff, and published with Validation: a separate Python rendering probe reproduced the empty/long-selector failures and checked the revised layout, but this is NOT a Rust/Bazel test pass. This environment has no Bazel, rustc or rustfmt and cannot fetch a checkout. No Cargo commands, CI weakening or merge were performed. Run |
Repair three hosted automation_runner_test failures by supplying the configured executable identity required by the production prefilter. Use the same identity for the prefilter and retained runner, preserving manual-schedule, exact-ledger, live-lock and lock-race assertions. Add a production-prefilter regression for unconfigured refusal, deduplication and same-occurrence recovery after binding, with zero backend calls and no effectful terminal. Do not relax backend admission, change timeouts, or alter the graph publication changes. Refs #4532
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Refs #4616 — merge-scope blocker after current-master comparison, not a finding against the Doctor behavior itself. The current #4799 head 621940d1 is 8 commits ahead and 2 behind master 83694e00. The reviewable diff includes the intended crates/tracedecay-maintenance/src/retention/footprint.rs plus three unrelated paths: crates/tracedecay-cli/tests/core_cli_suite/cli_non_interactive_test.rs, crates/tracedecay-session-runtime/src/session_sync/git_topology.rs, and crates/tracedecay/tests/automation_runner_test/jobs.rs. The last two commits are test(automation): bind scheduler fixtures to backend identities and fix(sessions): retain the cause of cold Git sync failures, unrelated to the Doctor slice. The exact-head CI run 42528342951 is green, but that does not establish the branch is a scoped Doctor PR. Please isolate the footprint change on a distinct clean branch/PR or otherwise reconcile concurrent ownership without rewriting peer commits. I have not modified or merged this branch.
c1d1c90
into
codex/cold-git-sync-diagnostics
Root cause and narrow fix
Refs #4616 — partial acceptance item 4 only, not a sealed-generation garbage collector.
The canonical Doctor footprint finding for an overbound registered project reported only sizes. When automatic retention stalled there was no supported command in the finding to reclaim the project store. Existing
tracedecay branch gccannot collect these sealed generations, and a storage report is read-only. The existing first-partyprojects forgetoperation can reclaim the project store, but deletes the project’s local stored data, so it must never be presented as a routine or nondestructive fix.tracedecay --dry-run projects forget proj_<id>preview, then explicittracedecay --yes projects forget proj_<id>as a last resort only if retention stalls. State clearly that it DELETES project data. Do not run either command.Review and validation
Compared the exact three-commit branch against
master91c72aba7750a398dd28e83d64bf0c6d6fef4172: one file only,crates/tracedecay-maintenance/src/retention/footprint.rs; no schema, dependency, native filesystem cleanup, or scheduler changes. Each published update usedforce=falseand an exact expected-old-head fast-forward; peer branches are untouched.On
74904325cc, the full native macOS Bazel maintenance unit target passed all 161 tests in 29.93s. The overbound registered-store guidance, unusable project selectors, and sparse 15 GiB/long-root evidence regressions each executed and passed. The earlier 183-target Linux run on the same Doctor feature also ran the maintenance binary uncached in 78.5s. The current branch remains held for its prerequisite, independent review and exact hosted qualification.Explicitly not solved
This does not satisfy #4616's full acceptance: automatic N>3 sealed retirement, ownership-safe removal under ancestor/real-directory substitution, unsafe-artifact isolation on the actual target, fair progress under sustained writers, and OOM-safe ~70-generation / 15 GB storage-report behavior still require independent proof on
master. Do not close #4616 or claim this PR solves retention. Never merge or auto-merge the separate mixed draft #4776 or any Kev/decision-model changes. Release #4763 untouched. No production, infrastructure, tag, or credential writes.At
74904325cc, the scope review identified three files unrelated to Doctor. The scheduler fixture already landed on master. Draft #4841 owns the two cold Git sync files. This PR now compares exactly one file against that prerequisite. Its footprint.rs blob is identical to621940d19e. The updated-head workflow is pending. Keep this PR held for the draft prerequisite, independent review and qualification.