steer-core 0.10.1

Core logic for Steer.
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.10.1]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.10.0...steer-core-v0.10.1 - 2026-02-12

### Fixed

- *(dispatch-agent)* clarify sub-agent workspace context in prompts

## [0.10.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.9.0...steer-core-v0.10.0 - 2026-02-12

### Added

- *(telemetry)* emit startup usage events

### Other

- just fix

## [0.9.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.8.2...steer-core-v0.9.0 - 2026-02-12

### Added

- *(notifications)* centralize focus-aware OSC9 notifications
- add gpt-5.3-codex and opus-4.6
- rename planner agent to plan
- *(api)* retry streams on transport errors
- *(api)* preserve typed sse parse errors
- *(queue)* add durable queued work and UI preview
- *(openai)* handle responses stream deltas
- wire primary agent policy in runtime
- mark custom primary agents in tui
- add server default model rpc and model resolution integration tests
- persist session todos in database
- add dispatch agent approval patterns
- add primary agent mode switching
- persist session config updates
- *(core)* add primary agent switching core
- *(core)* add primary agent presets
- add allow tool approval behavior
- *(core)* introduce typed system context
- *(workspace)* add git worktree orchestration
- *(tools)* enforce tool error mapping
- *(tools)* add ToolSpec contract and display names
- *(core)* include env context in main agent prompt
- *(runners)* gate tool approvals in one-shot runner
- *(tools)* align contracts and typed execution errors
- *(agents)* allow per-spec model override
- *(auth)* integrate auth plugins
- *(auth)* add grpc auth flow endpoints
- *(auth)* add plugin registry scaffold
- *(auth)* add auth plugin primitives crate
- *(agents)* add dispatch session reuse
- *(subagent)* support workspace target
- *(workspace)* add repo tracking and repo APIs
- *(workspace)* add status commands in cli and tui
- *(agent)* support new workspaces in dispatch
- *(workspace)* add orchestration managers and lineage
- *(grpc)* add workspace/environment management RPCs
- *(workspace)* add workspace manager abstractions
- *(api)* add debug logging for OpenAI responses request payloads
- *(auth)* codex oauth flow wiring
- add session default model support
- redesign tool approval policy to struct-based system
- implement MCP server lifecycle effects
- split message added events by role
- *(core,proto,grpc)* add compact result event and drop model_changed
- *(steer-core)* implement slash command reducer and add compaction types
- *(steer-tui)* replace /clear with /new command for session reset
- *(streaming)* add SSE streaming support for OpenAI, xAI, and Gemini providers
- *(catalog)* gemini-3
- *(streaming)* implement true SSE streaming for Anthropic provider
- *(core)* implement command handlers, MCP lifecycle, and remove legacy modules
- *(tools)* migrate all tools to static tool system with ModelCaller
- *(tools)* add capability-based static tool system with DI
- *(tui)* migrate TUI to use ClientEvent from client_api
- *(core)* add SessionCatalog and SessionCreated event for session metadata
- *(core)* add RuntimeService with supervisor/actor architecture
- *(core)* add RuntimeManagedSession wrapper for AppRuntime
- *(core)* complete agent loop in reducer - extract tool calls and continue after results
- *(core)* add SQLite EventStore for domain event sourcing
- *(core)* add AgentInterpreter for stepper execution
- *(core)* add pure AgentStepper state machine
- *(core)* add dual-channel dispatcher with delta coalescing
- *(core)* add AgentExecutor adapter for reducer integration

### Fixed

- make queued input editable again on cancel
- lints
- *(steer-core)* parse OpenAI responses errors with typed models
- *(steer-core)* preapprove explore dispatch in normal mode
- *(compaction)* persist results and simplify UI output
- resolve lints
- clean grpc error notices and reducer validation
- *(serialization)* avoid tool error tag collisions
- *(runtime)* handle cancellation output draining
- wire tool schema reload source
- improve agent policy resolution
- sanitize anthropic tool schemas
- sanitize gemini tool schemas
- internally tag dispatch agent workspace target
- align tool schemas with OpenAI format
- preserve full input schemas
- auto-deny malformed tool calls
- append operating mode to override prompts
- make the default tool approval policy allow all read-only tools
- *(core)* avoid async recursion in tool reload
- *(core)* avoid clearing newer operation state
- codex instructions
- roundtrip gemini thought signatures
- *(claude)* omit display_name from tool payload
- *(core)* return typed results for static tools
- *(session)* serialize tool visibility lists
- *(dispatch_agent)* align workspace target plumbing
- *(agent)* process outputs FIFO to avoid stepper deadlock
- *(dispatch_agent)* reconcile formatter/executor output shape
- *(dispatch_agent)* thread workspace through core workspace trait
- test
- add env provider abstraction
- tool call approvals
- order stream deltas with events
- resolve clippy warnings
- lints, tests
- preserve stream content order
- restore typed bash command flow
- render direct bash output as user message
- tool calling + streaming
- stabilize deltas and drop legacy content
- stop model call after direct bash
- *(runtime)* preserve pending approval model state
- *(rpc)* resolve tool approvals and simplify cancel
- *(tui,grpc)* refresh delta rendering and add compaction e2e test
- *(runtime/grpc)* align compact-result action and conversion flow

### Other

- remove expects/unwraps from build.rs
- just fix
- align sub-agent policy expectations
- pull agent names into constants
- expand claude schema sanitizer coverage
- enforce structured dispatch_agent args
- coerce dispatch_agent params
- add dispatch_agent tool call integration test
- parametrize api tests with rstest
- rename dispatch agent tags
- cover dispatch_agent schema
- default to codex instead of opus
- cover planner and dispatch approvals
- *(core)* repro missing model for operation
- just fix
- *(tools)* assert sub-agent runtime persistence
- *(runners)* cover approval auto-deny flow
- *(tools)* run sub-agents via runtime
- clean up dead workspace arg to tool executor
- steer-tools contains tool contract, core contains impl
- *(workspace)* move tool ops into workspace
- make ModelId a struct
- *(workspace)* remove soft-delete support
- prefer agents.md over claude.md
- *(openai)* merge CodexClient into OpenAIClient
- *(auth)* extract chatgpt account ID from id_token instead of access_token
- remove unused attachments field from SendMessageRequest
- rename conversation -> message_graph
- remove unused runtime paths
- update model catalog
- *(proto,grpc,core)* drop stream delta is_first and make models explicit
- *(steer-core)* split conversation.rs into submodules and rename Conversation to MessageGraph
- *(core)* remove legacy session/event infrastructure
- *(tools)* remove LocalBackend in favor of static tool system
- *(core)* remove deprecated AgentExecutor and related types
- *(core)* add domain tests and deprecate legacy AgentExecutor
- *(core)* add AgentInterpreter with EventStore dependency and parent_session_id support
- remove dead code and unused fields
- migrate OneShotRunner to RuntimeService architecture
- *(core)* remove global OnceCell for tool approval channel

## [0.8.2]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.8.1...steer-core-v0.8.2 - 2025-12-02

### Fixed

- refresh provider cache on auth failure

## [0.8.1]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.8.0...steer-core-v0.8.1 - 2025-11-30

### Other

- remove bash command filtering
- increase openai request timeout from 5 -> 30 mins

## [0.7.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.6.0...steer-core-v0.7.0 - 2025-08-21

### Fixed

- *(core)* respect thinking_config across providers

## [0.6.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.5.0...steer-core-v0.6.0 - 2025-08-19

### Other

- cleaner tool error propagation

## [0.5.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.4.0...steer-core-v0.5.0 - 2025-08-19

### Added

- *(core,tui)* [**breaking**] improve model UX and resolution; stricter alias/display_name validation
- add support for a model display_name
- expose provider auth status via gRPC and switch TUI to remote provider registry
- catalog discovery, --catalog flag, and session config auto-
- *(models)* Introduce data-driven model registry
- implement ModelRegistry with config loading and merge logic
- add modelconfig & modelparameters
- *(core)* [**breaking**] refactor API client factory for provider-based dispatch
- *(core)* implement ProviderRegistry for runtime provider loading
- *(core)* introduce provider types and compile-time defaults for auth refactor
- gpt-5 -specific prompt
- support openai responses api + codex-mini

### Fixed

- *(catalog)* some configs
- don't reference function_calls for non-claude models

### Other

- merge models & providers into a single catalog file
- *(core,grpc,cli)* [**breaking**] inject ProviderRegistry and centralize AppConfig creation
- a few more hardcoded strings
- core app holds model registry, tui lists/resolves models via grpc
- generate constants for builtin models
- support bridging between legacy Model enum and new model registry
- *(auth)* rename AuthTokens to OAuth2Token with backward compatibility
- upgrade rmcp

## [0.4.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.3.0...steer-core-v0.4.0 - 2025-08-07

### Added

- gpt-5

## [0.3.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.2.0...steer-core-v0.3.0 - 2025-08-07

### Added

- opus-4.1

## [0.2.0]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.1.21...steer-core-v0.2.0 - 2025-08-01

### Fixed

- respect default_model preference

## [0.1.19]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.1.18...steer-core-v0.1.19 - 2025-07-31

### Fixed

- respect the --model flag

## [0.1.17]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.1.16...steer-core-v0.1.17 - 2025-07-29

### Other

- *(workspace)* delete dead container code + pass working_dir as a parm

## [0.1.16]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.1.15...steer-core-v0.1.16 - 2025-07-27

### Fixed

- don't continue the conversation after compacting

## [0.1.8]https://github.com/BrendanGraham14/steer/compare/steer-core-v0.1.7...steer-core-v0.1.8 - 2025-07-24

### Added

- mcp status tracking + some tool refactoring

### Other

- dead code