Skip to content

Add explicit companion quarantine retention - #754

Merged
shiny-code-app[bot] merged 5 commits into
mainfrom
work/714-quarantine-retention
Oct 3, 2026
Merged

shiny-code-app[bot] merged 5 commits into
mainfrom
work/714-quarantine-retention

Conversation

@shiny-code-app

@shiny-code-app shiny-code-app Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

The persistent companion-validation quarantine has grown to 453 entries (about 17.7 GiB) without a retention command. This adds context-panel-companion-cache.sh prune --root ...: a read-only preview by default, with explicit --apply and a seven-day window configurable through --older-than-days.

Removal uses directory descriptors and no-follow opens. It preserves signed/profile material, hard links, active bundle suffixes, recent writes and unrelated evidence; expired empty entries and Finder metadata can age out. Failed or partial runs report the timestamped entry and count of prior removals without host paths. The existing quarantine command also protects macOS provisioning profiles. Retention remains an explicit operator action; no build or workflow invokes deletion automatically. Release docs and GitHub command metadata describe that route.

Validation:

  • Full commit gate passed, including 1,203 Swift tests; routine Python lane and existing 114 release/validator tests passed with cryptography supplied through uv.
  • All 22 final retention tests pass. A real quarantine-to-retention fixture proves nested bundles and symlink compatibility. Planted faults in signature protection, no-follow opens and retention age are caught.
  • Live read-only preview: 154 eligible, 299 preserved, zero removed. No installed runtime or production state changed.
  • Shellcheck, shfmt and diff checks pass.
  • Changed-file PyCharm: UNKNOWN, lifecycle-lock timeout before project opening or inspection. Recorded under the overnight brief's explicit IDE-UNKNOWN allowance; no owned project/SDK cleanup remains.
  • Anthropic claude-opus-5-5 completed five reviews with no blocking findings. Hard-link/profile protection and partial-error/overflow diagnostics were fixed; fail-closed I/O handling and repository-standard PATH-based Python were retained with reasons. Ctrl-C reports interruption without a traceback or rollback claim. Final exact-head review of 1f76e63 completed with no blocking findings; all findings are accounted for in the PR review comment.

Refs #714

@shiny-code-app

shiny-code-app Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor Author

Final exact-head review of 1f76e63f44b775ce6f96e62fe61de1a41c415ea6 by Anthropic claude-opus-5-5 completed with no blocking defects. Across the reviews, reproduced hard-link partial deletion, missing macOS-profile protection, failure reporting, age overflow and Ctrl-C traceback concerns were addressed with tests. Real quarantine output now has a behavioral compatibility test, including nested Watch bundles and external symlinks.

Final low findings were weighed as follows: partial entries and Finder writes intentionally refresh mtime/ctime, so they remain preserved for another window; the docs already require all change/modification times to be old and say recent writes are kept. Inspection is not an age override or a guarantee of immediate retry completion. Protected or unrecognized old layouts remain preserved by design; this work does not authorize deleting signed evidence. Per-reason diagnostics are optional usability work and are not needed for the requested age/confinement command. PATH-based Python follows the repository's operator/uv route. The reviewer reported no realistic trigger for a nested mount point, and the same-user unlink race remains bounded by the documented idle-cache requirement; no speculative branches were added.

All 22 final retention tests pass; all earlier required local gates passed. Changed-file PyCharm remains UNKNOWN due to lifecycle-lock contention, before any project open or inspection, under the brief's allowance. No native GREEN claim. No live deletion, installed runtime replacement, release or production action occurred. Background review is not yet observable for this head; a post-turn review may still start.

@shiny-code-app
shiny-code-app Bot merged commit 7d17469 into main Oct 3, 2026
4 checks passed
@shiny-code-app
shiny-code-app Bot deleted the work/714-quarantine-retention branch October 3, 2026 18:53
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