feat(config): add Claude 5 family (Fable 5, Sonnet 5) to the Model enum - #68
Conversation
…ort evidence, sonnet/default aliases (TJC-1550)
- Model.Fable5 ("claude-fable-5") and Model.Sonnet5 ("claude-sonnet-5") enum
cases + fromId mappings, new Claude 5 family section
- new Model.fable alias; Model.sonnet and Model.default repointed
Sonnet4_6 → Sonnet5 per the "point to current generation" contract
(behavior change for callers that never set a model)
- SupportsEffort: XHigh + Max evidence for Fable5 and Sonnet5 (Sonnet 5 is
the first Sonnet tier with xhigh)
- ModelSpec (32, jvm+js) and AgentOptionsSpec (105, js) green, including
typeChecks positives for the new model/effort pairs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review — feat(config): add Claude 5 family (Fable 5, Sonnet 5)Clean, focused change. The additions to the 🟡 Stale docs in
|
…; document default-stays-Sonnet5 rationale (review follow-up) - Effort.XHigh/Max docstrings now list Fable 5 + Sonnet 5 alongside the Opus/Sonnet 4.x tiers, matching the SupportsEffort givens - Model.default doc states why it stays Sonnet 5 (Fable 5 is org-gated on data retention; opt-in via Model.fable) - alias comment clarifies opus tracks the 4.8 family (no Opus-tier Claude 5) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Review follow-ups addressed in d-latest:
🤖 Generated with Claude Code |
|
Review — Claude 5 family (Fable 5, Sonnet 5) 🤖 Reviewed the diff plus surrounding code. Tight, well-scoped change with solid internal consistency. Approving in spirit; one behavior change deserves an explicit owner sign-off. What's good
Worth a second look
Minor / optional
Nothing blocking. Validation numbers in the description (ModelSpec 32/32, AgentOptionsSpec 105/105, compile 389/389) cover the surface area well. |
Summary
Model.Fable5(claude-fable-5) andModel.Sonnet5(claude-sonnet-5) as first-class enum cases withfromIdmappings.Model.fableconvenience alias.Model.sonnetandModel.defaultfromSonnet4_6toSonnet5— the aliases are documented as "point to current generation", butdefaultaffects any caller that never sets a model. Flagging for explicit review; easy to revert toSonnet4_6if you want the default pinned.SupportsEffort: addsXHigh+Maxcompile-time evidence for both new models (Sonnet 5 is the first Sonnet tier withxhigh). Negative cases (e.g.Sonnet4_6 + XHigh) unchanged.Motivation
TJC-1550 moves the tjc-agents fleet default to Claude Fable 5. tjc-agents currently carries a
Models.fable = Model.fromId("claude-fable-5")shim (lands asCustom); once this ships in a release, the shim collapses toModel.fableand the pin bumps.Validation
ModelSpec: 32/32 on JVM and JS (id mapping, fromId round-trip, JSON codec round-trip, alias assertions).AgentOptionsSpec(JS): 105/105 —typeCheckspositives forFable5/Sonnet5×XHigh/Max, negatives still rejected.__.compile389/389; scalafmt applied.claude-sonnet-5responds 200 with the TJC org key.claude-fable-5is currently gated org-side (400model_not_available— data retention must be enabled ≥30d), which is a Console setting, not an SDK concern.🤖 Generated with Claude Code