Skip to content

fix(ticket-117): preserve JetBrains Local History during cleanup - #150

Merged
ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/117-protect-jetbrains-history
Oct 31, 2026
Merged

ifuri-validator-agent[bot] merged 1 commit into
mainfrom
ticket/117-protect-jetbrains-history

Conversation

@tom-sapletta-com

@tom-sapletta-com tom-sapletta-com commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

The explicit JetBrains cleanup command selected whole IDE system-cache roots. Running --jetbrains --yes could delete LocalHistory file revisions and Toolbox/recovery state. Exclude these mixed roots from bulk candidates, explain the protection in text/JSON previews, and update the existing help and cleanup description. Existing stale installation/version-data eligibility remains.

Ticket: ticket-117

Validation: three regressions reproduced the original deletion/unsafe preview. All 58 affected tests pass, including preservation of real fixture file bytes and continued stale channel removal. Changed-file Ruff passes; managed governance and protected full checks validate the final commit. Deployment performs no cleanup of host IDE data.

@ifuri-validator-agent ifuri-validator-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validator approval after policy checks for exact head e93e8502b663355cb29c7a2004688dded1292f39.

Ticket: ticket-117
Correlation ID: fixos117-e93e850-20261031
Model: zai/glm-5.3
Reviewed diff chunks: 2
Advisory LLM verdict: APPROVE
Advisory summary: Reviewed all 2 diff chunk(s). Change removes unsafe bulk deletion of ~/.cache/JetBrains roots (which can contain irreplaceable LocalHistory and Toolbox/recovery state) from the explicit --jetbrains cleanup path, while preserving stale Toolbox channel and unused version-data cleanup. Help text, policy table, JSON previews, and CLI docs are consistently updated, and a user-facing advisory explains the protection. Tests cover preservation under --yes and absence of cache roots in JSON output. All required checks passed. | This chunk shows test coverage asserting that JetBrains cleanup excludes cache-root candidates from the deletion plan and surfaces a LocalHistory advisory, matching the PR's stated protective intent. The test parses JSON CLI output, verifies exit code 0, checks no candidate paths fall under the cache root, and confirms the advisory mentions LocalHistory. No code defects or security concerns are visible in this chunk, and all required checks passed.
Advisory findings: none
The LLM output above is advisory and was not used as the approval trust root.
Semantic review prerequisite: not_required; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.

Actual PR impact radar

Exact range: dc5de059fe93ddce373c048499976242abfaa167...e93e8502b663355cb29c7a2004688dded1292f39
Change digest: 0fb77c2ef09198a880dd98204433fa65f82517249e3ecb6dde4a6b6af5b12853
Score: 68/100 (L), estimated 84 min, split recommended: true
Affected services/components: repository-wide/unclassified

Machine-readable radar JSONL and SVG
{"actual_change":{"additions":175,"base_sha":"dc5de059fe93ddce373c048499976242abfaa167","binary_files":0,"categories":{"code":2,"configuration":1,"docs":1,"tests":1},"change_digest":"0fb77c2ef09198a880dd98204433fa65f82517249e3ecb6dde4a6b6af5b12853","comparison":"dc5de059fe93ddce373c048499976242abfaa167...e93e8502b663355cb29c7a2004688dded1292f39","deletions":24,"file_count":5,"files":["fixos/cli/_cleanup_space.py","fixos/cli/cleanup_cmd.py","project/ticket-117/README.md","project/ticket-117/intent.json","tests/unit/test_cleanup_space.py"],"head_sha":"e93e8502b663355cb29c7a2004688dded1292f39","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":5,"delivery":3,"scope":4,"uncertainty":3,"validation":2},"complexity":"L","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":84,"within_budget":false},"impact":{"components":["Toolbox","deletion","fixos","installation","project","tests","text"],"files":["Toolbox/recovery","deletion/unsafe","fixos/cli/_cleanup_space.py","fixos/cli/cleanup_cmd.py","installation/version-data","project/ticket-117/README.md","project/ticket-117/intent.json","tests/unit/test_cleanup_space.py","text/JSON"],"public_interfaces":[],"runtime_dependencies":0},"schema":"subactor.ticket-radar/v1","score":68,"split":{"parts":[{"estimated_minutes":11,"name":"Implement Toolbox","scope":["Toolbox"]},{"estimated_minutes":11,"name":"Implement deletion","scope":["deletion"]},{"estimated_minutes":11,"name":"Implement fixos","scope":["fixos"]},{"estimated_minutes":11,"name":"Implement installation","scope":["installation"]},{"estimated_minutes":11,"name":"Implement project","scope":["project"]},{"estimated_minutes":15,"name":"Validate and project to trackers","scope":["tests","planfile","github/gitlab/jira projections"]}],"reason":"estimated_minutes_exceed_budget","recommended":true},"standards":[{"id":"wellmanifest/dsl","revision":"6c60fc4e0dd1f1bb74f46a7745e28019908d1203","version":"0.1.0-dev"},{"id":"wellmanifest/ticket-lifecycle","revision":"5bf581907a87b46a13a73e6c033d3abe4d9a306f","version":"0.1.0-dev"},{"id":"wellmanifest/git-lifecycle","revision":"7d77d4b7af57e69bc75c3a0290b3a4805c5c4438","version":"0.2.0-dev"},{"id":"wellmanifest/logs","revision":"48c284ef7a069055c0bcb6b900147ce5e65f8b43","version":"0.3.0"}],"ticket_ref":"ticket-117"}
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-117: fix(ticket-117): preserve JetBrains Local History during cleanup</title><rect width="128" height="128" rx="12" fill="#f8fafc"/><g stroke-width="1"><polygon points="64,55 72,61 69,71 59,71 56,61" fill="none" stroke="#d7dde5"/><polygon points="64,47 80,59 74,78 54,78 48,59" fill="none" stroke="#d7dde5"/><polygon points="64,38 89,56 79,85 49,85 39,56" fill="none" stroke="#d7dde5"/><polygon points="64,30 97,53 84,92 44,92 31,53" fill="none" stroke="#d7dde5"/><polygon points="64,21 105,51 89,99 39,99 23,51" fill="none" stroke="#d7dde5"/><line x1="64" y1="64" x2="64" y2="21" stroke="#aab4c0"/><line x1="64" y1="64" x2="105" y2="51" stroke="#aab4c0"/><line x1="64" y1="64" x2="89" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="39" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="23" y2="51" stroke="#aab4c0"/></g><polygon points="64,30 105,51 79,85 54,78 39,56" fill="#fb923c" fill-opacity="0.45" stroke="#c2410c" stroke-width="2"/><circle cx="64" cy="64" r="3" fill="#c2410c"/><g font-family="sans-serif" font-size="7" fill="#334155"><text x="64" y="11" text-anchor="middle">SCO</text><text x="114" y="48" text-anchor="middle">COU</text><text x="95" y="107" text-anchor="middle">UNC</text><text x="33" y="107" text-anchor="middle">VAL</text><text x="14" y="48" text-anchor="middle">DEL</text></g><text x="64" y="124" text-anchor="middle" font-family="sans-serif" font-size="8" fill="#0f172a">L · 84m</text></svg>
Merge will be attempted after this approval when explicitly authorized. ## Decision record (recomputable)
DECISION D-117-4513
TICKET ticket-117
HEAD_SHA e93e8502b663355cb29c7a2004688dded1292f39
CORRELATION_ID fixos117-e93e850-20261031
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["test-summary=PASS","test-alpine=PASS","test-ubuntu=PASS","test-debian=PASS","test-fedora=PASS","test-arch=PASS","governance / remote lifecycle=PASS","test (3.12)=PASS","test (3.11)=PASS","governance / enforce=PASS","test (3.10)=PASS","onedev/local-verify=PASS"]
INPUT required_checks = ["onedev/local-verify","test (3.10)","test (3.11)","test (3.12)","test-summary"]
INPUT required_checks_source = "protected registry (env/request)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT semantic_review_assessment = {"schema":"subactor.validator/semantic-review-assessment/v1","subject":{"repository":"semcod/fixos","pull_request":150,"head_sha":"e93e8502b663355cb29c7a2004688dded1292f39","base_sha":"dc5de059fe93ddce373c048499976242abfaa167","diff_sha256":"4d21b4dbea6a2a161de4967e69b4ac2b9b1d62b2a80c91e151cac89445635ca9"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["fixos/cli/_cleanup_space.py","fixos/cli/cleanup_cmd.py","project/ticket-117/README.md","project/ticket-117/intent.json","tests/unit/test_cleanup_space.py"]},"grounding":"full-diff-not-per-finding-proof","execution_authority":false,"status":"not_required","reason":null,"review_sha256":null,"unresolved":[]}
INPUT superseded_checks = []
INPUT ticket_radar_receipt = {"schema":"subactor.ticket-radar/v1","base_sha":"dc5de059fe93ddce373c048499976242abfaa167","head_sha":"e93e8502b663355cb29c7a2004688dded1292f39","change_digest":"0fb77c2ef09198a880dd98204433fa65f82517249e3ecb6dde4a6b6af5b12853","score":68,"complexity":"L","estimated_minutes":84,"split_recommended":true,"services":[],"authority":"ADVISORY","promotion":"FORBIDDEN"}
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "APPROVE" MODEL "zai/glm-5.3"
ASSERT VERDICT_AUTHORITY != "ADVISORY"

@ifuri-validator-agent
ifuri-validator-agent Bot merged commit 1ca92a5 into main Oct 31, 2026
12 checks passed
@ifuri-validator-agent
ifuri-validator-agent Bot deleted the ticket/117-protect-jetbrains-history branch October 31, 2026 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant