I1111 — Uninstall gives back exactly what was taken
Implement removal that reverses every recorded mutation, refuses anything a person has since edited, and leaves authored knowledge in place unless removal is asked for separately and explicitly.
BLOCKED wave 5 · p0 · deep-work profile · parallel safe
Blocked. This issue cannot start until I1109 is done. The status is derived from that, not declared.
Objective
Implement removal that reverses every recorded mutation, refuses anything a person has since edited, and leaves authored knowledge in place unless removal is asked for separately and explicitly.
Why
A tool that cannot be removed is a tool people hesitate to adopt. And the half of the footprint that matters most — the decisions, the handovers, the knowledge accumulated over months — is the project's property, not the tool's leftovers.
Current state
Nothing removes an adoption. What Majordomus wrote outside its namespaces can only be found by reading a diff.
Desired state
One command reverses the ledger, one flag additionally removes generated state, and removing authored content is a separate decision the default never makes.
Scope
- apps/majordomus-cli/src/commands/uninstall.rs
Out of scope
- Removing authored content under any default
- A broad recursive delete of any path not named by the ledger
Dependencies
What waits on this
Acceptance criteria
- Every recorded mutation outside the two namespaces is reversed to the state the ledger recorded as prior
- A managed region is removed without disturbing the rest of its file, and a file that exists only because Majordomus created it is removed whole
- A bridge whose hash no longer matches is left in place and reported, never overwritten or deleted
- The default leaves authored `.ai/` content untouched; removing generated state and removing authored content are separate, explicit requests
- After the default removal, the repository is what it was before adoption apart from authored content, proved by comparing against a recorded starting state
Validation
- bash test/run.sh
- cargo test --workspace --all-features
Evidence required
- reverses_ledger
- refuses_edited
- authored_survives
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
This is the operation where a mistake destroys somebody's work. Every deletion is justified by a ledger entry and a matching hash, or it does not happen.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I1111.yaml. Read it back with majordomus plan show I1111.