This release delivers significant Claude 5.x support improvements, RAG sharing optimizations, security hardening for the REST API, and history load performance gains.
What's New
- Adds syntax highlighting for scripts in common shell wrappers, including Python, Node/JavaScript, Ruby, Perl, and shell heredocs in the TUI
- Adds an explicit Claude 5.x model table covering nine models, replacing name-based guesses for request policy on Anthropic Direct, Vertex, and Bedrock
- Adds warnings and refusals when Claude 5.x cannot honor
thinking_budget none, and rejects final assistant prefill for Claude 5.x - Refuses server-side fallback involving Claude 5.x and refuses Claude Mythos 5 on Bedrock (unsupported configurations)
- Adds versioned, attributed provider raw state (
ProviderStategainsVersionandModelfields) with explicit policy for unreplayable thinking blocks - Adds helpers for raw-state replay policy and seals provider state after generated media
Improvements
- Deduplicates history entries in linear time on load, replacing a quadratic scan-and-splice approach
- Redacts loaded history messages concurrently across available CPU workers, reducing sequential redaction overhead
- Shares a single RAG index, file watcher, and embedding concurrency cap across all agents referencing the same RAG definition, eliminating redundant re-indexing
- Accumulates Bedrock native block text in a
strings.Builderinstead of copying immutable strings on every delta, fixing quadratic behavior on Bedrock streams
Bug Fixes
- Fixes OAuth token endpoint auth method: registration now requests
client_secret_postunless the server only offersbasicornone, and token exchange follows the registered method - Fixes OAuth default: omitted
token_endpoint_auth_methods_supportedandtoken_endpoint_auth_methodnow default toclient_secret_basic - Locks down the REST session API against CSRF and DNS rebinding: rejects cross-origin requests on all methods, validates
Hostheaders on unauthenticated TCP listeners, and requires tokens on non-loopback listeners - Fixes Anthropic Haiku 5.x: omits sampling parameters (e.g. temperature) that the model rejects
- Fixes RAG: skips re-embedding files already indexed by another store, and does not attribute shared background indexing to a session
- Fixes Bedrock: captures, persists, and replays native Claude reasoning blocks in order; never replays unsigned reasoning blocks
- Fixes Anthropic: preserves thinking blocks from another provider's raw state
- Fixes structured output on Claude 5.x: fails correctly without a prefill retry
- Fixes provider factory: keeps VertexAI out of the factory's dependencies; scopes the Claude 5.x thinking warning to Model Garden and zero budgets
- Fixes images in tool results: restores typed image attachments after tool replies, handles the explicit-cache path, and preserves following user text on message merge
- Fixes theme watcher races:
ThemeWatchernow uses a blocking, context-ownedRunmethod instead of an internally managed goroutine - Fixes transcription: preserves transcripts and errors through dictation finalization;
Capturer.RunandTranscriber.Runare now context-owned per run - Replaces models removed from the models.dev snapshot
Technical Changes
- Refreshes the embedded models.dev catalog snapshot (+661 added, -71 removed, ~381 modified)
- Updates Go to 1.27.3, picking up security fixes
What's Changed
- fix: lock down REST session API against CSRF and DNS rebinding by @dgageot in #4632
- perf(history): deduplicate entries in linear time on load by @dgageot in #4633
- fix(oauth): send the registered token auth method by @locker95 in #4595
- chore(deps): bump portcullis to v1.1.2 by @dgageot in #4635
- docs: update CHANGELOG.md for v1.151.0 by @docker-read-write[bot] in #4638
- perf(history): redact loaded messages concurrently by @dgageot in #4639
- chore: refresh models.dev snapshot (+661 -71 ~381) by @github-actions[bot] in #4631
- fix(anthropic): omit sampling params for Haiku 5.x by @locker95 in #4640
- feat: highlight scripts in common shell wrappers by @rumpl in #4649
- fix(rag): share one index across agents referencing the same RAG by @aheritier in #4650
- docs: document TUI shell command syntax highlighting (2026-10-20) by @aheritier in #4662
- test(runtime): make TestHandleStream_ContextCancellation deterministic by @aheritier in #4648
- test(teamloader): stop LSP tests from auto-installing gopls by @aheritier in #4647
- fix: preserve images in tool results by @topabomb in #4661
- chore: bump direct Go dependencies by @dgageot in #4663
- fix(claude): explicit Claude 5.x model table for request policy by @aheritier in #4657
- feat(claude): refuse Claude 5.x fallbacks and Mythos 5 on Bedrock by @aheritier in #4658
- fix(bedrock): capture and replay native Claude reasoning blocks by @aheritier in #4666
- perf(bedrock): accumulate native block text in a strings.Builder by @aheritier in #4667
- test: shrink GitHub archive file-count fixtures by @dgageot in #4670
- test: disable tool installation when loading examples by @dgageot in #4669
- feat(provider): versioned raw state and explicit policy for unreplayable thinking by @aheritier in #4668
- fix: harden context-owned theme watching by @dgageot in #4673
- refactor: make transcription and capture context-owned per run by @dgageot in #4674
- test: speed up test fixtures and completion checks by @dgageot in #4675
- ci: prune unused Go build-cache entries before saving by @dgageot in #4676
- bump Go to 1.27.3 by @trungutt in #4679
New Contributors
Full Changelog: v1.151.0...v1.152.0