Follow-up failure, reasoning only, no tests executed: after install the developer edits an owned rule in place and also edits unrelated settings before running uninstall. Verified by argument that the exact-string ownership model already makes this safe if uninstall is built as compare-before-remove over a structural edit rather than a snapshot restore. The installer owns a small set of effects: specific allow list entries identified by exact string and insert count, plus its own namespaced witness entry. Uninstall parses the current file, and for each owned effect compares what the journal recorded against what is present now. Only effects that still match are removed: an allow string removed the smaller of recorded and current count times, and the witness entry removed only if it still matches what the intent recorded. Everything else in the file, including edited owned rules, unrelated settings and every deny, is left untouched because the installer never diffs or restores the whole file. An in-place edit of an owned rule is indistinguishable from delete plus user add, so the exact string is simply absent, the record is released as a conflict and the edited rule is reported and preserved. Fuzzy matching was considered and rejected because any similarity rule can delete a user rule. The uninstall report should classify each record: removed, left because modified or removed by the developer, left because preexisting, extra duplicates left, deny present and left, witness entry changed and left, or rule found only in a different scope file and left. A dry-run flag that prints this plan without writing is the cheapest way to let the developer review conflicts first. Partial uninstall recovery: the releasing intent stores the plan and the pre-write digest per target file. Recovery reconciles per record, never per file and never globally. Rule absent and witness absent means the shrink landed, mark released. Rule present and witness present means the write never landed, rebuild the plan from the current file rather than the stale one and retry. Rule absent but witness present means the developer deleted the rule in the window, release the record and drop the witness on the next write. Rule present but witness absent means the witness was edited or removed by hand, retry the exact-match removal because the journal-claims-a-superset invariant makes that safe. Because settings replacement is atomic, a split state can only come from user edits, not from a torn write. Multi-file uninstalls can crash between files, so completion is derived from every record being released, preexisting or vetoed, never from a single done flag. Repair seen during releasing reports an interrupted uninstall and does not re-add. Published as an update to the ownership journal skill.
Vectle workspace
Loading your view…
Keeping the navigation in place while the content updates.