Skip to content

Keep cleanup suppression outside installed skill payloads - #64

Merged
harder merged 3 commits into
mainfrom
codex/external-maintenance-preferences
Oct 16, 2026
Merged

harder merged 3 commits into
mainfrom
codex/external-maintenance-preferences

Conversation

@harder

@harder harder commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Cleanup Ignore writes .skillview-ignore into installed payloads, changing content that an installer or update review may treat as authored files. Store new suppression preferences in private external state instead, preserving legacy markers as a separate reported origin.

Exact path/install-ID CLI set and clear commands and owned background TUI actions bind one physical installation across its consumer contexts. Stable source/owner namespaces survive revision changes; unknown sources require native continuity and bounded whole-payload evidence. Reads are noncreating, corrupt state leaves suggestions visible, publication is serialized and bounded with clear capacity reserved, and partial changes trigger a rescan. Agent symlink aliases resolve to the physical installation. Cleanup removal confirmation stays on the event-loop thread.

Validation: build and formatting pass; all 1,752 tests pass without failures/skips, including 20 preference, two event-loop, and eight CLI regressions. Both sequential macOS ARM64 AOT publishes pass (standalone strict trimming/AOT warnings). Both native hosts pass 116 disposable commands across minimum/current gh, actual remote/local installs and ownerless copies, proving unchanged payload objects/modes and registry bytes, restart, alias/same-name isolation, edited-source expiry, legacy preservation, alternate state and corrupt-clear behavior. CI adds both-host native proofs to every RID. Independent store and UI/CLI/proof reviews were corrected and re-reviewed without outstanding agreed findings. Copilot findings for missing-home setup and incomplete ownership coverage are fixed with regressions; owner-only provenance is rechecked against live metadata. Both Copilot threads are resolved.

This is an M08 slice, not completion of its original acceptance. Preserve/merge/fork/source/owner transitions, non-installation suppression and damaged/stale preference recovery remain tracked. The acceptance ledger remains at 9/21 complete. The PR also retains the verified M12 final evidence and merged-tree attribution from #63.

Copilot AI balanced review requested due to automatic review settings October 16, 2026 02:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Preference-root failures can abort inventory, and incomplete ownership evidence can incorrectly retain suppression.

2 open findings
What changed in this PR

Moves cleanup suppression into private external preferences, preserving installed payloads and legacy markers. This advances M08 without completing its remaining maintenance workflows.

Changes:

  • Adds exact-install CLI set/clear commands and background TUI Ignore actions.
  • Integrates suppression status and diagnostics into inventory.
  • Adds regression tests, native CI proofs, and updated acceptance records.
File Description
tests/​SkillView.Tests/​Ui/​CleanupSuppressionScreenTests.cs Tests cancellation and confirmation threading.
tests/​SkillView.Tests/​Preferences/​CleanupSuppressionStoreTests.cs Tests preference integrity, binding, and bounds.
tests/​SkillView.Tests/​Cli/​CliDispatcherIgnoreTests.cs Tests selectors and alias resolution.
src/​SkillView.Core/​Ui/​SkillViewWorkflowCoordinator.cs Supplies fresh inventory and triggers rescans.
src/​SkillView.Core/​Ui/​InstalledScreen.cs Displays suppression details.
src/​SkillView.Core/​Ui/​CleanupScreen.cs Runs owned background suppression actions.
src/​SkillView.Core/​Preferences/​CleanupSuppressionWorkflow.cs Coordinates exact-install batch suppression.
src/​SkillView.Core/​Preferences/​CleanupSuppressionStore.cs Implements bounded external preference storage.
src/​SkillView.Core/​Preferences/​CleanupSuppression.cs Defines observations and persistence records.
src/​SkillView.Core/​Maintenance/​PayloadSnapshot.cs Adds configurable evidence byte limits.
src/​SkillView.Core/​Inventory/​Models/​InventorySnapshot.cs Adds independent preference diagnostics.
src/​SkillView.Core/​Inventory/​Models/​InstalledSkill.cs Adds transient suppression observations.
src/​SkillView.Core/​Inventory/​LocalInventoryService.cs Enriches inventory with suppression state.
src/​SkillView.Core/​Inventory/​IgnoreMarker.cs Clarifies legacy-marker compatibility comments.
src/​SkillView.Core/​Cli/​CliDispatcher.Ignore.cs Implements exact-install set/clear commands.
src/​SkillView.Core/​Cli/​CliDispatcher.cs Adds routing, help, and suppression output.
docs/​usage.md Documents commands and limitations.
AGENTS.md Records suppression safety requirements.
agent_docs/​maintenance-local-dispositions.md Retains remaining M08 work.
agent_docs/​maintenance-implementation.md Records M12 acceptance and suppression progress.
agent_docs/​maintenance-external-suppression.md Documents suppression design and proof requirements.
agent_docs/​maintenance-effective-loading.md Records final M12 acceptance.
agent_docs/​maintenance-acceptance.json Updates the acceptance ledger.
agent_docs/​evidence/​prove-cleanup-suppression.py Adds disposable native suppression proofs.
agent_docs/​evidence/​maintenance-batch-14-checkpoint.json Records local validation evidence.
.github/​workflows/​ci.yml Runs suppression proofs for both native hosts.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/SkillView.Core/Inventory/LocalInventoryService.cs Outdated
Comment thread src/SkillView.Core/Preferences/CleanupSuppressionStore.cs
@harder
harder merged commit 80921f4 into main Oct 16, 2026
16 checks passed
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.

2 participants