Document category-name reservation and the fork-collision confirm; note the uninstall secrets report

2026-08-21 19:52:49 -06:00
parent 4413fc61f2
commit 09eea51492
+11 -5
@@ -205,8 +205,13 @@ How names are kept unambiguous:
existing record instead of creating a second one. If the repo's manifest name changed since the last install, the
record migrates to the new name and Coyote prints a notice.
- **Cross-source collisions are owner-qualified.** If you install two different repositories that both want the name
`oh-my-coyote`, the second is recorded as `<owner>/oh-my-coyote` and Coyote prints a notice. Lifecycle commands
accept the qualified name.
`oh-my-coyote`, the second is recorded as `<owner>/oh-my-coyote`. For derived names this is deterministic and
Coyote prints a notice. When a *manifest* declares the colliding name, interactive installs ask for confirmation
first (a fork or typo-squat is the likely cause); declining aborts before anything is written, and non-interactive
installs keep the deterministic qualification. Lifecycle commands accept the qualified name.
- **Category names are reserved.** A bundle cannot be named `agents`, `roles`, `skills`, `macros`, `functions`, or
`mcp_config`. A repository or manifest that wants one of those names is owner-qualified at install time (e.g.
`x/agents`), so a bundle can never shadow an asset category.
---
@@ -304,9 +309,10 @@ What gets removed:
- **The bundle's record** is dropped once nothing it owned remains. If items were kept or a deletion failed, the
record keeps them and re-running `--uninstall` offers them again.
Not removed: vault secrets the bundle's servers referenced, `enabled_*` config lists that mention its assets, and
compiled tool binaries under `functions/bin/` (those linger until the next `--build-tools` prune; Coyote prints a
note when this applies).
Not removed: vault secrets the bundle's servers referenced (the uninstall summary lists them with a note that they
were installed by this bundle but not removed, since secrets may be shared with other servers), `enabled_*` config
lists that mention its assets, and compiled tool binaries under `functions/bin/` (those linger until the next
`--build-tools` prune; Coyote prints a note when this applies).
Uninstalling is confirmation-gated: in a terminal you're shown what the bundle owns and asked to proceed;
non-interactive runs (CI, piped) require `--yes`.