Claude Code: model-catalog drift detection via ~/.claude.json caches (spike) #157
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/coding-lab#157
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The claude-code model catalog is pinned as family aliases in
internal/provider/claudecode/claudecode.go(opus[1m],sonnet,fable,haiku). Unlike codex (#156), the claude binary has no machine-readable model listing — nomodelssubcommand, nothing in--help, and the/modelpicker is TUI-only. Verified on 2.1.206 (2026-07-13). So the catalog can silently drift from what the binary actually offers.Decision (grill 2026-07-13, split from #156)
Claude-code stays pinned; TUI picker scraping for catalog data was rejected (login-dependent, slow, fragile-recipe budget already spent on dialog driving — compat §7). Instead: drift detection, warning a human to re-pin.
Candidate signal (needs verification — this is why it's a spike):
~/.claude.jsoncontains undocumented cache fields written by the binary after phoning home:additionalModelOptionsCache— observed populated with exactly our{value,label,description}option shape (e.g.claude-fable-5[1m]).modelAccessCache— observed empty on the lab box; population conditions unknown.Spike questions
claude-fable-5[1m], our catalog hasfable)?internal/compat/claude/.Out of scope
codex debug models+ per-model efforts seam #158