Amend ADR-009: record the in-use refusal on repository delete
What this does
Records one refusal that ADR-009's repository-delete contract leaves out: a repository that any virtual repository lists as an upstream cannot be deleted, under either destructive-intent value.
Why it matters
The delete section states its behavior as a table keyed by the destructive-intent parameter, so every refusal in it reads as a consequence of that value. This one is not. The association is another repository's configuration rather than this repository's contents, so declaring destructive intent does not authorize removing it — the caller dissociates the upstream first.
Read as it stood, the true row promised a cascade that "deletes the repository
and its contents". A caller who declared destructive intent had no reason to
expect a 409.
Relationship to ADR-007
ADR-007 declares the same rule as a NO ACTION foreign key on the virtual
upstream junction tables. !20928 (merged) and !20938 (merged) make that key explicit for the
container and npm tables, and !20928 (merged) points readers at the API for the
operator-visible half — which was not there.
The distinction is the point. A referential action refuses the delete without
reporting it: depending on when the DELETE FROM repositories statement runs, it
either fails as a statement the API layer has to translate, or aborts a
background purge that reaches no caller. The 409 is the half a caller can rely
on, so the API ADR is where it belongs.
Scope
One paragraph pair in ##### Repository Deletion. No route, parameter, or status
code changes for any behavior already documented. The table is untouched; the new
text sits under it, because the refusal is not keyed by the parameter the table
indexes.