Let this view say what it does not know

main

Commit

gtrrz-victor1w ago

Five ways the record view asserted more than it had read, found by review.

A repo whose provisioning FAILED has no placement either, so the empty table explained it away as a read that arrived too early — sending the reader back to wait for something never coming, and repo create's own recovery hint sends them here. The row now carries the repo's own lifecycle word, which is what tells the two apart. It is carried in --json as state besides, where the placement reshaping had dropped it: status speaks the placement vocabulary (active there is ready here), so neither field can stand in for the other and both are kept.

An absent visibility rendered Public. That is a new assertion this branch introduced — the old view made no visibility claim at all — and its default was the permissive one, on the question an operator asks to confirm a repo is restricted before widening a grant. Private is now a pointer: unknown prints -, omits the JSON key, and matches neither --private nor --private=false.

A dash was baked into the status FIELD rather than the rendering, so --json handed "-" to jq, and the shared fold turned a healthy repo whose state merely could not be read into "mixed" — which the table then paints as part-degraded. Only orDash dashes now, at the point of print.

The authoritative read is issued on every native invocation, and any failure but a cancellation or the two the flag handles fell off the end of the switch: a core outage downgraded every repo view to a table asserting nothing was wrong, at exit 0. It is disclosed on stderr now, the way fetchRepoDirCatalog refuses the same trade two hundred lines away. The test that pinned the silence now pins the disclosure.

Finally, the recovery hint told readers to wait until the command "reports active", a word primaryPlacementStatus makes it incapable of printing, and repo mirror get left without an entry in the deprecation ledger that stops a help string advertising it again.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com Entire-Checkpoint: 01M375H6M27GN8XREKH49X9C2W

Checkpoints

Fix repo view CLI output and validation

Claude CodeOpus 5
View session
Checkpoint 1