Commits on Source 9

  • Matt Cockayne's avatar
  • Matt Cockayne's avatar
  • Matt Cockayne's avatar
  • Matt Cockayne's avatar
    fix(deps): update go modules · cb3cd00b
    Matt Cockayne authored
    cb3cd00b
  • Matt Cockayne's avatar
  • Matt Cockayne's avatar
    fix(models): drop the withdrawn claude-opus-4-1 from the capability table · cf8f064d
    Matt Cockayne authored and Matt Cockayne's avatar Matt Cockayne committed
    Anthropic no longer serves claude-opus-4-1-20250805. The generated table still
    answered for it, so Capabilities() reported support for a model the API now
    rejects — a caller checking before a call was told yes and then failed on the
    request.
    
    Regenerated in full rather than edited by hand. That matters here: the listing
    does not report whether a model still accepts temperature, so genmodels probes
    each one, and a hand-deletion would have looked like the same change while
    proving nothing about the other ten. The probe confirms none of them moved —
    the diff is exactly the one withdrawn entry.
    
    The default does not change. claude-opus-5 is still served and is still the
    most capable model Anthropic offers at GA, so D1 selects what it already
    selected; the withdrawal is two generations below it.
    
    Listing read and probes run on 2026-08-18.
    
    Closes #3
    cf8f064d
  • Matt Cockayne's avatar
    build(deps): require go/chat v0.11.0 · 74051c0d
    Matt Cockayne authored and Matt Cockayne's avatar Matt Cockayne committed
    v0.11.0 adds chat.BoundConversation, the seam a provider applies a history
    policy through, and the conformance case that proves it runs.
    
    The case fails on this bump alone — history_policy_applied reports the last
    request carrying 9 turns with TruncateOldest(2) set. That is the point of it:
    the policy has never been applied here, and until now nothing said so.
    74051c0d
  • Matt Cockayne's avatar
    feat(history): apply the caller's history policy · 3729d267
    Matt Cockayne authored and Matt Cockayne's avatar Matt Cockayne committed
    Config.HistoryPolicy has had no effect on this provider since it shipped. The
    core defined the seam and this module never called it, so a caller setting
    TruncateOldest(40) got a conversation that grew without bound.
    
    Before every request, the client now describes its retained turns, passes them
    through chat.BoundConversation, and rewrites the session from the indices that
    come back.
    
    Before *every* request, not once per call: the ReAct loop appends a tool
    request and its results per step, so a bound taken on entry never sees the
    transcript that actually overflows. All three request paths run it — Chat, Ask
    and the streaming loop.
    
    Two things the description has to get right, and the core refuses the edit if
    it does not:
    
      - A turn carrying cache_control is Pinned. Caching bills a matching prefix,
        so dropping a cached turn invalidates every later cache hit — a failure
        that surfaces only as a larger invoice.
      - An assistant turn requesting tools and the user turn answering it share a
        ToolGroup. Keeping one without the other is an API error rather than a
        shorter conversation.
    
    The turn being answered is held out of the budget, per spec 0013 D8. At a tool
    step that is the whole tool unit rather than the trailing message alone:
    holding back only the tool_result would leave its tool_use in the described
    set, where a policy is free to drop it on its own. Recorded as the 2026-08-19
    amendment to D8, because all three adapters have to agree and the conformance
    case cannot see the difference.
    
    chatStep extracts the bound and the round-trip together, which keeps Chat
    inside the complexity limit rather than suppressing the check.
    
    Refs chat#13
    3729d267
  • Matt Cockayne's avatar
    chore(main): release v0.10.0 · b7a92d9a
    Matt Cockayne authored and Matt Cockayne's avatar Matt Cockayne committed
    b7a92d9a
Loading
Loading