test(datastore): cover the container upstream list read and repairs against Postgres part 8/15 (S17 Phase 6 plan: 42/42)
Why
Parts 6 and 7 covered the writes. The list read, its scoping to the addressed repository, the tombstoned upstream it deliberately keeps, and the management statement's plan shape are unproven until this suite runs them.
The branch also touches the npm suite: it backfills TestNpmVirtualUpstreamStore_SettledListLeavesNoRepairRecord, the settled-list repair case main lacked, and gives npm's seeded-list walk a dupl directive, because the container walk here reads as its clone.
The stack
Fifteen parts, each stacked on the last, each green on its own, reviewed in this order. Each part stays under 700 changed lines, counted as insertions plus deletions against the part it targets.
The delete guard in part 9 lands before the routes in part 11, so no window exists where a container association is writable without the refusal that protects it.
Related to #314 (closed)