Skip to content

Reach the rest of the registry - #17

Merged
nicodes merged 1 commit into
mainfrom
close-the-cli-gaps
Aug 3, 2026
Merged

Reach the rest of the registry#17
nicodes merged 1 commit into
mainfrom
close-the-cli-gaps

Conversation

@nicodes

@nicodes nicodes commented Aug 3, 2026

Copy link
Copy Markdown
Member

An audit of the 23 endpoints against what any client calls found six nothing could reach. Three were bugs rather than missing features.

The three bugs

Handle availability had no caller at all. The only way to learn a name was taken was to fail signing up — the one moment that is awkward to retry. termcade username <name> answers it signed out, which is when somebody is choosing a name.

$ termcade username admin
termcade: that username is reserved
$ termcade username somethingfree
somethingfree is available — claim it with `termcade signup`

Rename was unreachable. It exists precisely so a typo at signup is fixable, and the rule that makes it safe — refused once the handle has published games — means the window to use it closes. Shipping it with no way to call it wasted the feature. The stored session follows the rename, or every later command reports the old name.

Account deletion was built for the e2e suite to clean up after itself, and never given to a person. Backwards for something that is a feature first.

Also

termcade whoami, termcade org edit, termcade org delete.

Confirmation by typing the name

Both destructive commands refuse a bare invocation:

$ termcade account delete
termcade: this deletes you@example.com and releases the handle "nicodes" for
anyone to claim. it cannot be undone. to confirm:

  termcade account delete nicodes

Each releases a handle for anyone to claim and cannot be undone. A y/n prompt is the wrong weight for that.

Verified against production

availability, signed out reserved → refused; free → available
whoami account, handle, studios
rename applied, and the stored session followed it
org edit / show bio updated and read back
both confirmations refused without the name, accepted with it
account delete 204, session cleared, handle lookup now 404

Still open

The app reaches 5 of 23 endpoints — it can sign in, browse, list a library and play, but cannot manage the account it signed you into. That is the next PR.

🤖 Generated with Claude Code

An audit of the twenty-three endpoints against what any client calls
found six nothing could reach. Three of those were bugs rather than
missing features.

Handle availability had no caller at all, so the only way to learn a name
was taken was to fail signing up — the one moment that is awkward to
retry. `termcade username <name>` answers it signed out, which is when
somebody is choosing.

Rename was unreachable. It exists precisely so a typo at signup is
fixable, and the rule that makes it safe — refused once the handle has
published games — means the window to use it closes. Shipping it with no
way to call it wasted the feature. The stored session follows the rename,
or every later command reports the old name.

Account deletion was built for the end-to-end suite to clean up after
itself and never given to a person, which is backwards for something
that is a feature first.

Also: whoami, org edit, org delete.

Both destructive commands confirm by having the name typed rather than
by a yes. Each releases a handle for anyone to claim and cannot be
undone, and a y/n prompt is the wrong weight for that.

Verified against production end to end: availability signed out for a
reserved and a free name, whoami, a rename that the session followed, an
org edited and read back, both confirmations refusing without the name,
and an account deleted with its handle released.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@nicodes
nicodes merged commit 7ac0269 into main Aug 3, 2026
1 check passed
@nicodes
nicodes deleted the close-the-cli-gaps branch August 3, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant