Skip to content

v1.152.0

Latest

Choose a tag to compare

@docker-read-write docker-read-write released this 21 Oct 09:17
· 49 commits to main since this release
e7f1ec3

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 (ProviderState gains Version and Model fields) 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.Builder instead 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_post unless the server only offers basic or none, and token exchange follows the registered method
  • Fixes OAuth default: omitted token_endpoint_auth_methods_supported and token_endpoint_auth_method now default to client_secret_basic
  • Locks down the REST session API against CSRF and DNS rebinding: rejects cross-origin requests on all methods, validates Host headers 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: ThemeWatcher now uses a blocking, context-owned Run method instead of an internally managed goroutine
  • Fixes transcription: preserves transcripts and errors through dictation finalization; Capturer.Run and Transcriber.Run are 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