Files
optimclaw/CHANGELOG.md
T
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
5869a9cc62 chore: release v0.16.1 (#628)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-06 11:23:28 -08:00

29 KiB

Changelog

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

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

0.16.1 - 2026-03-06

Fixed

  • revert WASM artifact SHA256 checksums to null (#627)

0.16.0 - 2026-03-06

Added

  • (e2e) extensions tab tests, CI parallelization, and 3 production bug fixes (#584)
  • WASM extension versioning with WIT compat checks (#592)
  • Add HMAC-SHA256 webhook signature validation for Slack (#588)
  • restart (#531)
  • merge http/web_fetch tools, add tool output stash for large responses (#578)
  • integrate 13-dimension complexity scorer into smart routing (#529)

Fixed

  • (llm) fix reasoning model response parsing bugs (#564) (#580)
  • (ci) fix three coverage workflow failures (#597)
  • Telegram channel accepts group messages from all users if owner_… (#590)
  • (ci) anchor coverage/ gitignore rule to repo root (#591)
  • (security) use OsRng for all security-critical key and token generation (#519)
  • prevent concurrent memory hygiene passes and Windows file lock errors (#535)
  • sort tool_definitions() for deterministic LLM tool ordering (#582)
  • (ci) persist all cargo-llvm-cov env vars for E2E coverage (#559)

Other

  • (llm) complete response cache — set_model invalidation, stats logging, sync mutex (#290)
  • add 29 E2E trace tests for issues #571-575 (#593)
  • add 26 tests for multi-thread safety, db CRUD, concurrency, errors (#442)
  • update WASM artifact SHA256 checksums [skip ci] (#560)
  • add WIT compatibility tests for WASM extensions (#586)
  • Trajectory benchmarks and e2e trace test rig (#553)

0.15.0 - 2026-03-04

Added

  • (oauth) route callbacks through web gateway for hosted instances (#555)
  • (web) show error details for failed tool calls (#490)
  • (extensions) improve auth UX and add load-time validation (#536)
  • add local-test skill and Dockerfile.test for web gateway testing (#524)

Fixed

  • (security) restrict query-token auth to SSE endpoints only (#528)
  • (ci) flush profraw coverage data in E2E teardown (#550)
  • (wasm) coerce string parameters to schema-declared types (#498)
  • (agent) strip leaked [Called tool ...] text from responses (#497)
  • (web) reset job list UI on restart failure (#499)
  • (security) replace .unwrap() panics in pairing store with proper error handling (#515)

Other

  • Fix UTF-8 unsafe truncation in sandbox log capture (#359)
  • enhance coverage with feature matrix, postgres, and E2E (#523)

0.14.0 - 2026-03-04

Added

  • remove the okta tool (#506)
  • add OAuth support for WASM tools in web gateway (#489)
  • (web) fix jobs UI parity for non-sandbox mode (#491)
  • (workspace) add TOOLS.md, BOOTSTRAP.md, and disk-to-DB import (#477)

Fixed

  • (web) mobile browser bar obscures chat input (#508)
  • (web) assign unique thread_id to manual routine triggers (#500)
  • (web) refresh routine UI after Run Now trigger (#501)
  • (skills) use slug for skill download URL from ClawHub (#502)
  • (workspace) thread document path through search results (#503)
  • (workspace) import custom templates before seeding defaults (#505)
  • use std::sync::RwLock in MessageTool to avoid runtime panic (#411)
  • wire secrets store into all WASM runtime activation paths (#479)

Other

  • enforce regression tests for fix commits (#517)
  • add code coverage with cargo-llvm-cov and Codecov (#511)
  • Remove restart infrastructure, generalize WASM channel setup (#493)

0.13.1 - 2026-03-02

Added

  • add Brave Web Search WASM tool (#474)

Fixed

  • (web) auto-scroll and Enter key completion for slash command autocomplete (#475)
  • correct download URLs for telegram-mtproto and slack-tool extensions (#470)

0.13.0 - 2026-03-02

Added

  • (cli) add tool setup command + GitHub setup schema (#438)
  • add web_fetch built-in tool (#435)
  • (web) DB-backed Jobs tab + scheduler-dispatched local jobs (#436)
  • (extensions) add OAuth setup UI for WASM tools + display name labels (#437)
  • (bootstrap) auto-detect libsql when ironclaw.db exists (#399)
  • (web) slash command autocomplete + /status /list + fix chat input locking (#404)
  • (routines) deliver notifications to all installed channels (#398)
  • (web) persist tool calls, restore approvals on thread switch, and UI fixes (#382)
  • add IRONCLAW_BASE_DIR env var with LazyLock caching (#397)
  • feat(signal) attachment upload + message tool (#375)

Fixed

  • (channels) add host-based credential injection to WASM channel wrapper (#421)
  • pre-validate Cloudflare tunnel token by spawning cloudflared (#446)
  • batch of quick fixes (#417, #338, #330, #358, #419, #344) (#428)
  • persist channel activation state across restarts (#432)
  • init WASM runtime eagerly regardless of tools directory existence (#401)
  • add TLS support for PostgreSQL connections (#363) (#427)
  • scan inbound messages for leaked secrets (#433)
  • use tailscale funnel --bg for proper tunnel setup (#430)
  • normalize secret names to lowercase for case-insensitive matching (#413) (#431)
  • persist model name to .env so dotted names survive restart (#426)
  • (setup) check cloudflared binary and validate tunnel token (#424)
  • (setup) validate PostgreSQL version and pgvector availability before migrations (#423)
  • guard zsh compdef call to prevent error before compinit (#422)
  • (telegram) remove restart button, validate token on setup (#434)
  • web UI routines tab shows all routines regardless of creating channel (#391)
  • Discord Ed25519 signature verification and capabilities header alias (#148) (#372)
  • prevent duplicate WASM channel activation on startup (#390)

Other

  • rename WasmBuildable::repo_url to source_dir (#445)
  • Improve --help: add detailed about/examples/color, snapshot test (clo… (#371)
  • Add automated QA: schema validator, CI matrix, Docker build, and P1 test coverage (#353)

0.12.0 - 2026-02-26

Added

  • (web) improve WASM channel setup flow (#380)
  • (web) inline tool activity cards with auto-collapsing (#376)
  • (web) display logs newest-first in web gateway UI (#369)
  • (signal) tool approval workflow and status updates (#350)
  • add OpenRouter preset to setup wizard (#270)
  • (channels) add native Signal channel via signal-cli HTTP daemon (#271)

Fixed

  • correct MCP registry URLs and remove non-existent Google endpoints (#370)
  • resolve_thread adopts existing session threads by UUID (#377)
  • resolve telegram/slack name collision between tool and channel registries (#346)
  • make onboarding installs prefer release artifacts with source fallback (#323)
  • copy missing files in Dockerfile to fix build (#322)
  • fall back to build-from-source when extension download fails (#312)

Other

  • Add --version flag with clap built-in support and test (#342)
  • Update FEATURE_PARITY.md (#337)
  • add brew install ironclaw instructions (#310)
  • Fix skills system: enable by default, fix registry and install (#300)

0.11.1 - 2026-02-23

Other

  • Ignore out-of-date generated CI so custom release.yml jobs are allowed

0.11.0 - 2026-02-23

Fixed

  • auto-compact and retry on ContextLengthExceeded (#315)

Other

  • (README) Adding badges to readme (#316)
  • Feat/completion (#240)

0.10.0 - 2026-02-22

Added

  • update dashboard favicon (#309)
  • add web UI test skill for Chrome extension (#302)
  • implement FullJob routine mode with scheduler dispatch (#288)
  • hot-activate WASM channels, channel-first prompts, unified artifact resolution (#297)
  • add pairing/permission system to all WASM channels and fix extension registry (#286)
  • group chat privacy, channel-aware prompts, and safety hardening (#285)
  • embedded registry catalog and WASM bundle install pipeline (#283)
  • show token usage and cost tracker in gateway status popover (#284)
  • support custom HTTP headers for OpenAI-compatible provider (#269)
  • add smart routing provider for cost-optimized model selection (#281)

Fixed

  • persist user message at turn start before agentic loop (#305)
  • block send until thread is selected (#306)
  • reload chat history on SSE reconnect (#307)
  • map Esc to interrupt and Ctrl+C to graceful quit (#267)

Other

  • Fix tool schema OpenAI compatibility (#301)
  • simplify config resolution and consolidate main.rs init (#287)
  • Update image source in README.md
  • Add files via upload
  • remove ExtensionSource::Bundled, use download-only install for WASM channels (#293)
  • allow OAuth callback to work on remote servers (fixes #186) (#212)
  • add rate limiting for built-in tools (closes #171) (#276)
  • add LLM providers guide (OpenRouter, Together AI, Fireworks, Ollama, vLLM) (#193)
  • Feat/html to markdown #106 (#115)
  • adopt agent-market design language for web UI (#282)
  • speed up startup from ~15s to ~2s (#280)
  • consolidate tool approval into single param-aware method (#274)

0.9.0 - 2026-02-21

Added

  • add TEE attestation shield to web gateway UI (#275)
  • configurable tool iterations, auto-approve, and policy fix (#251)

Fixed

  • add X-Accel-Buffering header to SSE endpoints (#277)

0.8.0 - 2026-02-20

Added

  • extension registry with metadata catalog and onboarding integration (#238)
  • (models) add GPT-5.3 Codex, full GPT-5.x family, Claude 4.x series, o4-mini (#197)
  • wire memory hygiene into the heartbeat loop (#195)

Fixed

  • persist WASM channel workspace writes across callbacks (#264)
  • consolidate per-module ENV_MUTEX into crate-wide test lock (#246)
  • remove auto-proceed fake user message injection from agent loop (#255)
  • onboarding errors reset flow and remote server auth (#185, #186) (#248)
  • parallelize tool call execution via JoinSet (#219) (#252)
  • prevent pipe deadlock in shell command execution (#140)
  • persist turns after approval and add agent-level tests (#250)

Other

  • add automated PR labeling system (#253)
  • update CLAUDE.md for recently merged features (#183)

0.7.0 - 2026-02-19

Added

  • extend lifecycle hooks with declarative bundles (#176)
  • support per-request model override in /v1/chat/completions (#103)

Fixed

  • harden openai-compatible provider, approval replay, and embeddings defaults (#237)
  • Network Security Findings (#201)

Added

  • Refactored OpenAI-compatible chat completion routing to use the rig adapter and RetryProvider composition for custom base URL usage.
  • Added Ollama embeddings provider support (EMBEDDING_PROVIDER=ollama, OLLAMA_BASE_URL) in workspace embeddings.
  • Added migration V9__flexible_embedding_dimension.sql for flexible embedding vector dimensions.

Changed

  • Changed default sandbox image to ironclaw-worker:latest in config/settings/sandbox defaults.
  • Improved tool-message sanitization and provider compatibility handling across NEAR AI, rig adapter, and shared LLM provider code.

Fixed

  • Fixed approval-input aliases (a, /approve, /always, /deny, etc.) in submission parsing.
  • Fixed multi-tool approval resume flow by preserving and replaying deferred tool calls so all prior tool_use IDs receive matching tool_result messages.
  • Fixed REPL quit/exit handling to route shutdown through the agent loop for graceful termination.

0.6.0 - 2026-02-19

Added

  • add issue triage skill (#200)
  • add PR triage dashboard skill (#196)
  • add OpenRouter usage examples (#189)
  • add Tinfoil private inference provider (#62)
  • shell env scrubbing and command injection detection (#164)
  • Add PR review tools, job monitor, and channel injection for E2E sandbox workflows (#57)
  • Secure prompt-based skills system (Phases 1-4) (#51)
  • Add benchmarking harness with spot suite (#10)
  • 10 infrastructure improvements from zeroclaw (#126)

Fixed

  • (rig) prevent OpenAI Responses API panic on tool call IDs (#182)
  • (docs) correct settings storage path in README (#194)
  • OpenAI tool calling — schema normalization, missing types, and Responses API panic (#132)
  • (security) prevent path traversal bypass in WASM HTTP allowlist (#137)
  • persist OpenAI-compatible provider and respect embeddings disable (#177)
  • remove .expect() calls in FailoverProvider::try_providers (#156)
  • sentinel value collision in FailoverProvider cooldown (#125) (#154)
  • skills module audit cleanup (#173)

Other

  • Fix division by zero panic in ValueEstimator::is_profitable (#139)
  • audit feature parity matrix against codebase and recent commits (#202)
  • architecture improvements for contributor velocity (#198)
  • fix rustfmt formatting from PR #137
  • add .env.example examples for Ollama and OpenAI-compatible (#110)

0.5.0 - 2026-02-17

Added

  • add cooldown management to FailoverProvider (#114)

0.4.0 - 2026-02-17

Added

  • move per-invocation approval check into Tool trait (#119)
  • add polished boot screen on CLI startup (#118)
  • Add lifecycle hooks system with 6 interception points (#18)

Other

  • remove accidentally committed .sidecar and .todos directories (#123)

0.3.0 - 2026-02-17

Added

  • direct api key and cheap model (#116)

0.2.0 - 2026-02-16

Added

  • mark Ollama + OpenAI-compatible as implemented (#102)
  • multi-provider inference + libSQL onboarding selection (#92)
  • add multi-provider LLM failover with retry backoff (#28)
  • add libSQL/Turso embedded database backend (#47)
  • Move debug log truncation from agent loop to REPL channel (#65)

Fixed

  • shell destructive-command check bypassed by Value::Object arguments (#72)
  • propagate real tool_call_id instead of hardcoded placeholder (#73)
  • Fix wasm tool schemas and runtime (#42)
  • flatten tool messages for NEAR AI cloud-api compatibility (#41)
  • security hardening across all layers (#35)

Other

  • Explicitly enable cargo-dist caching for binary artifacts building
  • Skip building binary artifacts on every PR
  • add module specification rules to CLAUDE.md
  • add setup/onboarding specification (src/setup/README.md)
  • deduplicate tool code and remove dead stubs (#98)
  • Reformat architecture diagram in README (#64)
  • Add review discipline guidelines to CLAUDE.md (#68)
  • Bump MSRV to 1.92, add GCP deployment files (#40)
  • Add OpenAI-compatible HTTP API (/v1/chat/completions, /v1/models) (#31)

0.1.3 - 2026-02-12

Other

  • Enabled builds caching during CI/CD
  • Disabled npm publishing as the name is already taken

0.1.2 - 2026-02-12

Other

  • Added Installation instructions for the pre-built binaries
  • Disabled Windows ARM64 builds as auto-updater [provided by cargo-dist] does not support this platform yet and it is not a common platform for us to support

0.1.1 - 2026-02-12

Other

  • Renamed the secrets in release-plz.yml to match the configuration
  • Make sure that the binaries release CD it kicking in after release-plz

0.1.0 - 2026-02-12

Added

  • Add multi-provider LLM support via rig-core adapter (#36)
  • Sandbox jobs (#4)
  • Add Google Suite & Telegram WASM tools (#9)
  • Improve CLI (#5)

Fixed

  • resolve runtime panic in Linux keychain integration (#32)

Other

  • Skip release-plz on forks
  • Upgraded release-plz CD pipeline
  • Added CI/CD and release pipelines (#45)
  • DM pairing + Telegram channel improvements (#17)
  • Fixes build, adds missing sse event and correct command (#11)
  • Codex/feature parity pr hook (#6)
  • Add WebSocket gateway and control plane (#8)
  • select bundled Telegram channel and auto-install (#3)
  • Adding skills for reusable work
  • Fix MCP tool calls, approval loop, shutdown, and improve web UI
  • Add auth mode, fix MCP token handling, and parallelize startup loading
  • Merge remote-tracking branch 'origin/main' into ui
  • Adding web UI
  • Rename setup CLI command to onboard for compatibility
  • Add in-chat extension discovery, auth, and activation system
  • Add Telegram typing indicator via WIT on-status callback
  • Add proactivity features: memory CLI, session pruning, self-repair notifications, slash commands, status diagnostics, context warnings
  • Add hosted MCP server support with OAuth 2.1 and token refresh
  • Add interactive setup wizard and persistent settings
  • Rebrand to IronClaw with security-first mission
  • Fix build_software tool stuck in planning mode loop
  • Enable sandbox by default
  • Fix Telegram Markdown formatting and clarify tool/memory distinctions
  • Simplify Telegram channel config with host-injected tunnel/webhook settings
  • Apply Telegram channel learnings to WhatsApp implementation
  • Merge remote-tracking branch 'origin/main'
  • Docker file for sandbox
  • Replace hardcoded intent patterns with job tools
  • Fix router test to match intentional job creation patterns
  • Add Docker execution sandbox for secure shell command isolation
  • Move setup wizard credentials to database storage
  • Add interactive setup wizard for first-run configuration
  • Add Telegram Bot API channel as WASM module
  • Add OpenClaw feature parity tracking matrix
  • Add Chat Completions API support and expand REPL debugging
  • Implementing channels to be handled in wasm
  • Support non interactive mode and model selection
  • Implement tool approval, fix tool definition refresh, and wire embeddings
  • Tool use
  • Wiring more
  • Add heartbeat integration, planning phase, and auto-repair
  • Login flow
  • Extend support for session management
  • Adding builder capability
  • Load tools at launch
  • Fix multiline message rendering in TUI
  • Parse NEAR AI alternative response format with output field
  • Handle NEAR AI plain text responses
  • Disable mouse capture to allow text selection in TUI
  • Add verbose logging to debug empty NEAR AI responses
  • Improve NEAR AI response parsing for varying response formats
  • Show status/thinking messages in chat window, debug empty responses
  • Add timeout and logging to NEAR AI provider
  • Add status updates to show agent thinking/processing state
  • Add CLI subcommands for WASM tool management
  • Fix TUI shutdown: send /shutdown message and handle in agent loop
  • Remove SimpleCliChannel, add Ctrl+D twice quit, redirect logs to TUI
  • Fix TuiChannel integration and enable in main.rs
  • Integrate Codex patterns: task scheduler, TUI, sessions, compaction
  • Adding LICENSE
  • Add README with IronClaw branding
  • Add WASM sandbox secure API extension
  • Wire database Store into agent loop
  • Implementing WASM runtime
  • Add workspace integration tests
  • Compact memory_tree output format
  • Replace memory_list with memory_tree tool
  • Simplify workspace to path-based storage, remove legacy code
  • Add NEAR AI chat-api as default LLM provider
  • Add CLAUDE.md project documentation
  • Add workspace and memory system (OpenClaw-inspired)
  • Initial implementation of the agent framework