Take a repository's name, and nothing that merely finds one

main

Commit

gtrrz-victor1w ago

repo view accepted a repo ULID and a bare name with --project. Neither is a repository's name: a ULID identifies a row, and a name is unique only inside a project, which is why the flag had to exist to scope it. The verb takes /et/<project>/<repo>, /gh/<owner>/<repo> and an entire:// URL — forms that name their forge — so --project has nothing left to scope and leaves with them.

The ULID also let repo view <mirror ULID> reach the native path, which called /native-mirrors for a GitHub repo, labelled the row primary, and accepted --authoritative for a repo Entire holds no provisioning state for. Refusing the spelling settles that without a provider branch.

Three hints told users to run repo view <ULID>, which would now error at the moment they were already stuck. They print the server's path. repoViewRef falls back to the bare name when no path exists yet — not a working ref, but the only name there is in that window, and the ID is on the line above for support.

--authoritative now keeps its word. It promises to fail if the server cannot confirm provisioning state, and a 200 whose body omits state is exactly that: the read succeeded and still cannot say whether the repo is usable. state is optional on the wire, and awaitRepoActive already refuses the same answer when repo create waits.

Whether the command was interrupted is the context's answer, not an inference from the read's error: that relied on every wrapper preserving the chain, and missed the read SUCCEEDING as the cancellation lands, printing a table for work already stopped.

And the .git sentence was true of one forge. It is dropped from a /gh/ URL, where GitHub's naming makes it decoration, and kept on an /et/ one, where a repo may be named web.git and trimming would address another.

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

Checkpoints

Fix repo view CLI output and validation

Claude CodeOpus 5
View session
Checkpoint 1