Releases: zeroclaw-labs/zeroclaw
v0.7.3
Changelog β v0.6.9 β v0.7.3
Changes since the v0.6.9 stable release. This release represents the largest
structural overhaul in ZeroClaw's history: the entire codebase has been split into a
proper Cargo workspace of focused crates, a new config schema has shipped with a live
migration path, and a wave of channel, provider, and security improvements have landed
on top of that foundation.
Highlights
-
Workspace split complete β ZeroClaw is now a multi-crate Cargo workspace. The
monolithic source tree has been decomposed into 12+ focused crates
(zeroclaw-api,zeroclaw-runtime,zeroclaw-gateway,zeroclaw-channels,
zeroclaw-tools,zeroclaw-memory,zeroclaw-providers,zeroclaw-infra,
zeroclaw-config,zeroclaw-tui,zeroclaw-plugins,zeroclaw-hardware).
The foundation binary now builds at 6.6 MB with--no-default-features. -
Config V2 schema with automatic migration β Provider config has moved to a cleaner
layout. Runningzeroclaw config migrateupgrades your existing config in-place,
preserving comments. The oldpropssubcommand still works but is now deprecated in
favour ofzeroclaw config. -
OpenRouter streaming β OpenRouterProvider now streams responses token-by-token
instead of waiting for the full response, matching the experience of native providers. -
Web dashboard decoupled from the binary β The dashboard is now built separately
and embedded at release time.cargo installand AUR/Homebrew packages include it.
A new voice mode and plugins page have been added to the dashboard. -
LINE channel β LINE Messaging API is now a supported channel.
-
Matrix improvements β Mention-only filtering (the agent only responds when
mentioned), encrypted media download restored, outbound attachment support added, and
onboarding wizard preservation. -
GitHub Copilot onboarding β GitHub Copilot is now selectable as a provider
through the onboarding wizard andzeroclaw configflow (#5321). -
Authenticated OTLP exporters β New
otel_headersconfig key lets you pass
custom headers (e.g.Authorization: Bearer β¦) to protected OTLP endpoints (#5700).
What's New
Architecture & Workspace
- Extracted 12 workspace crates from the monolith, implementing the microkernel RFC
roadmap (RFC D1βD5). Every subsystem β providers, channels, tools, memory, infra,
config, gateway, TUI, plugins, hardware β now lives in its own crate with explicit
dependency boundaries enforced by the compiler. - Foundation binary (
--no-default-features) compiles clean at 6.6 MB. agent-runtimefeature flag gates the full agent loop; the kernel binary builds
without it.- Switched TLS from
aws-lc-rstoringand stripped.eh_framesections, reducing
binary size further. schemarsis now optional behind aschema-exportfeature flag β no longer a
mandatory compile dependency.- 28 per-channel feature flags with forwarding chains so unused channels add zero
compile time. - Workspace-wide
[workspace.dependencies]and[workspace.package]inheritance
eliminates version duplication acrossCargo.tomlfiles. - RFC Rev 2 compliance: stability tiers, versioning policy, and release profile are now
wired into the workspace.
Providers
- OpenRouterProvider now supports streaming (#5717). Responses appear token-by-token
instead of arriving all at once. - GitHub Copilot is now available as a selectable provider in the onboarding wizard
andzeroclaw configinteractive flow (#5321). - Fixed: native tool-call messages are now stripped before sending to providers that
havenative_tool_calling = false, preventing provider errors (#5762). - Fixed:
tool_streamevents are no longer forwarded to non-Z.AI providers in the
streaming path, preventing unexpected provider errors (#5806). - Fixed: DeepSeek V3.2 system prompt escaping and token estimation corrected (#5454).
Channels
- LINE Messaging API channel added (#5642).
- Matrix: mention-only filtering β the agent can be configured to respond only when
directly mentioned. Encrypted media download restored. Outbound attachment support
added. Onboarding wizard settings now preserved across restarts (#5166, #5727). - Telegram: tool approval requests now include
inline_keyboardmarkup, giving
users interactive approve/deny buttons instead of plain text (#5790). - Sender user ID is now propagated into the channel system prompt, giving the agent
context about who it is talking to (#5526). - Email and VoiceCall channels now have an
enabledfield and are correctly wired into
the orchestrator (#5659). <think>tags are stripped from streaming draft updates before they reach the client
(#5505).- Fixed: missing channels in
build_channel_by_idcausedsessions_sendto silently
fail for some channel types (#5506). - Telegram and Matrix implementations moved out of the orchestrator into their own
modules (#5639).
Configuration
- Config V2 schema with a new provider layout (
providers.models,
providers.fallback,model_routes,embedding_routes). zeroclaw config migrateupgrades a V1 config to V2 in-place, preserving comments
and formatting.zeroclaw configreplaceszeroclaw props. The oldpropssubcommand is deprecated
but still functional.- Onboarding wizard updated to write V2 provider format directly.
- Fixed: false "Unknown config key" warnings for
Option<T>fields and config aliases
(#5510). - Fixed:
providers.fallbacknow emits a warning if it references a key that does not
exist inproviders.models. - Fixed: temperature validation restored in the
providers.modelsloop. - Slack config:
channel_iddeprecated in favour ofchannel_ids(plural) for V2. - Nostr, WhatsApp Web, and hardware wizard sections wired into the onboarding flow
(#5640).
Observability
otel_headersβ new config key for passing arbitrary HTTP headers to OTLP
endpoints. Enables authenticated exporters (e.g. Grafana Cloud, Honeycomb) without
environment variable workarounds (#5700).
Web Dashboard
- Voice mode added to the dashboard.
- Plugins management page added.
- Theme mode switch fixed β light/dark selection now applies correctly on load (#5724).
- Visual preview swatches added to the theme mode selector (#5767).
- Dashboard is now decoupled from the main binary β built separately and embedded at
release time. Included in binary releases, AUR, Homebrew, andcargo install
(#5675, #5665). - Web build logic moved into the gateway crate; no-op recompiles (previously ~1 minute)
eliminated.
Agent & Runtime
- CLI channel factory now registered for interactive mode β
zeroclawinteractive
sessions work again after the workspace split (#5802). - Duplicate
ToolCallevents inturn_streameddeduplicated; clients no longer see the
same tool call reported twice (#5746). - Empty successful tool output is now normalised before being returned to the provider,
preventing downstream parse errors on blank responses (#5565). - Session integrity improvements: streaming refactor and history pruning for long
conversations (#5167). - Cron agent jobs no longer trigger
auto_save, preventing runaway memory consolidation
on scheduled tasks (#5664). - Fixed:
cron_runtool output was not being delivered to configured channels. - Windows: the shell console window is now hidden when running as a background process
(#5563).
Skills (Claude Code)
github-issue-triageskill added β automates structured triage of GitHub issues using
Claude Code (#5780).squash-mergeskill added β preserves clean commit history when merging upstream
changes (#5782).
Security
- Dangerous interpreter arguments (e.g.
-e,--eval,-con interpreters) are now
blocked by the command security policy (#5702). - Heredocs and safe shell redirects (
<<EOF,>,>>) are explicitly allowed (#5160).
Installation & Distribution
install.shrewritten from scratch for the workspace split β correctly handles the
new crate layout and binary paths (#5666).- AUR package migrated from
zeroclawtozeroclawlabs(#5544). - Daemon supervisor and onboarding launch checks now include the webhook channel (#5799).
Dependencies & Security Advisories
rustls-webpkiandrumqttcbumped to resolve RUSTSEC-2026-0098 and
RUSTSEC-2026-0099 (#5786).
Deployment
- Sample Kubernetes and OpenShift deployment manifests added in
deploy-k8s/with
hardened security context (runAsNonRoot,readOnlyRootFilesystem,drop ALLcaps,
seccompProfile: RuntimeDefault) and pairing auth enabled by default (#5880).
Bug Fixes (summary)
| Area | Fix |
|---|---|
| Provider | Strip native tool messages for non-native-tool-calling providers |
| Provider | tool_stream events forwarded to non-Z.AI providers in streaming path |
| Provider | DeepSeek V3.2 system prompt escaping and token estimation |
| Agent | CLI channel factory missing in interactive mode |
| Agent | Duplicate ToolCall events in streaming turns |
| Agent | Normalize empty successful tool output |
| Matrix | Encrypted media download; outbound attachments |
| Channels | Missing Arc Provider forwarding methods |
| Channels | <think> tag leaking into streaming draft updates |
| Telegram | inline_keyboard missing from tool approval requests |
| Cron | cron_run tool output not delivered to configured channels |
| Config | False "Unknown config key" warnings on Option fields |
| Config | Temperature validation missing from providers loop |
| Config | Fallback key references nonexistent provider β now warns |
| Session | Integrity, streaming refactor, history pruning... |
v0.7.3-beta.1051
fix(ci): replace RELEASE_TOKEN with GITHUB_TOKEN in release workflowsβ¦
v0.7.1-beta.1049
chore: sync version references to v0.7.1
v0.7.0-beta.1047
Changelog β v0.6.9 β v0.7.0
Changes since the v0.6.9 stable release. This release represents the largest
structural overhaul in ZeroClaw's history: the entire codebase has been split into a
proper Cargo workspace of focused crates, a new config schema has shipped with a live
migration path, and a wave of channel, provider, and security improvements have landed
on top of that foundation.
Highlights
-
Workspace split complete β ZeroClaw is now a multi-crate Cargo workspace. The
monolithic source tree has been decomposed into 12+ focused crates
(zeroclaw-api,zeroclaw-runtime,zeroclaw-gateway,zeroclaw-channels,
zeroclaw-tools,zeroclaw-memory,zeroclaw-providers,zeroclaw-infra,
zeroclaw-config,zeroclaw-tui,zeroclaw-plugins,zeroclaw-hardware).
The foundation binary now builds at 6.6 MB with--no-default-features. -
Config V2 schema with automatic migration β Provider config has moved to a cleaner
layout. Runningzeroclaw config migrateupgrades your existing config in-place,
preserving comments. The oldpropssubcommand still works but is now deprecated in
favour ofzeroclaw config. -
OpenRouter streaming β OpenRouterProvider now streams responses token-by-token
instead of waiting for the full response, matching the experience of native providers. -
Web dashboard decoupled from the binary β The dashboard is now built separately
and embedded at release time.cargo installand AUR/Homebrew packages include it.
A new voice mode and plugins page have been added to the dashboard. -
LINE channel β LINE Messaging API is now a supported channel.
-
Matrix improvements β Mention-only filtering (the agent only responds when
mentioned), encrypted media download restored, outbound attachment support added, and
onboarding wizard preservation.
What's New
Architecture & Workspace
- Extracted 12 workspace crates from the monolith, implementing the microkernel RFC
roadmap (RFC D1βD5). Every subsystem β providers, channels, tools, memory, infra,
config, gateway, TUI, plugins, hardware β now lives in its own crate with explicit
dependency boundaries enforced by the compiler. - Foundation binary (
--no-default-features) compiles clean at 6.6 MB. agent-runtimefeature flag gates the full agent loop; the kernel binary builds
without it.- Switched TLS from
aws-lc-rstoringand stripped.eh_framesections, reducing
binary size further. schemarsis now optional behind aschema-exportfeature flag β no longer a
mandatory compile dependency.- 28 per-channel feature flags with forwarding chains so unused channels add zero
compile time. - Workspace-wide
[workspace.dependencies]and[workspace.package]inheritance
eliminates version duplication acrossCargo.tomlfiles. - RFC Rev 2 compliance: stability tiers, versioning policy, and release profile are now
wired into the workspace.
Providers
- OpenRouterProvider now supports streaming (#5717). Responses appear token-by-token
instead of arriving all at once. - Fixed: native tool-call messages are now stripped before sending to providers that
havenative_tool_calling = false, preventing provider errors (#5762). - Fixed: DeepSeek V3.2 system prompt escaping and token estimation corrected (#5454).
Channels
- LINE Messaging API channel added (#5642).
- Matrix: mention-only filtering β the agent can be configured to respond only when
directly mentioned. Encrypted media download restored. Outbound attachment support
added. Onboarding wizard settings now preserved across restarts (#5166, #5727). - Sender user ID is now propagated into the channel system prompt, giving the agent
context about who it is talking to (#5526). - Email and VoiceCall channels now have an
enabledfield and are correctly wired into
the orchestrator (#5659). <think>tags are stripped from streaming draft updates before they reach the client
(#5505).- Fixed: missing channels in
build_channel_by_idcausedsessions_sendto silently
fail for some channel types (#5506). - Telegram and Matrix implementations moved out of the orchestrator into their own
modules (#5639).
Configuration
- Config V2 schema with a new provider layout (
providers.models,
providers.fallback,model_routes,embedding_routes). zeroclaw config migrateupgrades a V1 config to V2 in-place, preserving comments
and formatting.zeroclaw configreplaceszeroclaw props. The oldpropssubcommand is deprecated
but still functional.- Onboarding wizard updated to write V2 provider format directly.
- Fixed: false "Unknown config key" warnings for
Option<T>fields and config aliases
(#5510). - Fixed:
providers.fallbacknow emits a warning if it references a key that does not
exist inproviders.models. - Fixed: temperature validation restored in the
providers.modelsloop. - Slack config:
channel_iddeprecated in favour ofchannel_ids(plural) for V2. - Nostr, WhatsApp Web, and hardware wizard sections wired into the onboarding flow
(#5640).
Web Dashboard
- Voice mode added to the dashboard.
- Plugins management page added.
- Dashboard is now decoupled from the main binary β built separately and embedded at
release time. Included in binary releases, AUR, Homebrew, andcargo install(#5675,
#5665). - Web build logic moved into the gateway crate; no-op recompiles (previously ~1 minute)
eliminated (#5ec5f2a6).
Agent & Runtime
- CLI channel factory now registered for interactive mode β
zeroclawinteractive
sessions work again after the workspace split (#5802). - Duplicate
ToolCallevents inturn_streameddeduplicated; clients no longer see the
same tool call reported twice (#5746). - Session integrity improvements: streaming refactor and history pruning for long
conversations (#5167). - Cron agent jobs no longer trigger
auto_save, preventing runaway memory consolidation
on scheduled tasks (#5664). - Windows: the shell console window is now hidden when running as a background process
(#5563).
Skills (Claude Code)
github-issue-triageskill added β automates structured triage of GitHub issues using
Claude Code (#5780).squash-mergeskill added β preserves clean commit history when merging upstream
changes (#5782).
Security
- Dangerous interpreter arguments (e.g.
-e,--eval,-con interpreters) are now
blocked by the command security policy (#5702). - Heredocs and safe shell redirects (
<<EOF,>,>>) are explicitly allowed (#5160).
Installation & Distribution
install.shrewritten from scratch for the workspace split β correctly handles the
new crate layout and binary paths (#5666).- AUR package migrated from
zeroclawtozeroclawlabs(#5544). - Daemon supervisor and onboarding launch checks now include the webhook channel (#5799).
Dependencies & Security Advisories
rustls-webpkiandrumqttcbumped to resolve RUSTSEC-2026-0098 and
RUSTSEC-2026-0099 (#5786).
Bug Fixes (summary)
| Area | Fix |
|---|---|
| Provider | Strip native tool messages for non-native-tool-calling providers |
| Provider | DeepSeek V3.2 system prompt escaping and token estimation |
| Agent | CLI channel factory missing in interactive mode |
| Agent | Duplicate ToolCall events in streaming turns |
| Matrix | Encrypted media download; outbound attachments |
| Channels | Missing Arc Provider forwarding methods |
| Channels | <think> tag leaking into streaming draft updates |
| Config | False "Unknown config key" warnings on Option fields |
| Config | Temperature validation missing from providers loop |
| Config | Fallback key references nonexistent provider β now warns |
| Session | Integrity, streaming refactor, history pruning |
| Cron | auto_save causing recursive memory bloat on scheduled jobs |
| Security | Dangerous interpreter flags not blocked |
| Install | install.sh broken after workspace split |
| Runtime | Windows console window visible in background mode |
| Distribution | Web dashboard missing from AUR and cargo install builds |
Breaking Changes
Config schema (V1 β V2)
The provider section of config.toml has a new layout. V1 configs are still loaded and
automatically understood, but the recommended path is to run the migration:
zeroclaw config migrateThis rewrites your config to V2 in-place. The old format will continue to work in this
release but will not be supported indefinitely.
zeroclaw props deprecated
Use zeroclaw config instead. The props subcommand still works and will not be
removed in this release, but it will emit a deprecation notice.
Slack channel_id deprecated
Use channel_ids (a list) in the Slack config block. channel_id (singular) still
works but is deprecated in V2.
Workspace crate boundaries
If you have any code that depends directly on internal ZeroClaw crate paths (e.g. for
embedding or testing), the crate structure has changed significantly. Refer to
AGENTS.md for the current crate map and stability tiers. zeroclaw-api is the stable
extension point β all other crates are Beta or Experimental.
Contributors
Thank you to everyone who contributed to this release:
- @abhijeet117
- @aliasliao
- @ArgenisDLR
- @Audacity88
- @c98
- @DaBlitzStein
- @freeekanayaka
- @guitaripod
- @ilteoood
- @JordanTheJet
- @kunalk16
- @markuman
- @micookie
- @nayrosk
- @niedbalski
- @ninenox
- @singlerider
- @theonlyhennygod
- @titulus
- @UtopiaX
- @vernonstinebaker
- @WareWolf-MoonWall
- @wlh320
- @zavertiaev
Full diff: git log v0.6.9..HEAD --oneline
v0.6.9
What's New
- config: Configurable derive macro and zeroclaw props CLI
- config: enable browser tools by default with auto-approve
- gateway: broadcast cron job results to dashboard WebSocket clients
- gateway: buffer SSE events for dashboard log persistence
- heartbeat: enable heartbeat by default
- i18n: add all 31 languages to web dashboard and fix locale API
- providers: add merge_system_into_user option to ModelProviderConfig
- skills: add github-pr-review skill for autonomous PR triage and review
- web: add collapsible desktop sidebar with local state persistence
- web: add form-based config editor with mode toggle
Contributors
- Abdul Sadath
- Argenis
- argenis de la rosa
- Claude Opus 4.6
- Claude Opus 4.6 (1M context)
- Claude Sonnet 4.6
- Drew Lipiecki
- Henrik Akselsen
- HoWon
- ilteoood
- jordanthejet
- linyibin
- m-tky
- Matteo Pietro Dazzi
- Michael Lohr
- Richard Piacentini
- Shane Engelman
- shedwards
Full changelog: v0.6.8...v0.6.9
v0.6.8
What's New
- tui: remove OAuth/Browser auth methods, expand onboarding screens
Contributors
- argenis de la rosa
Full changelog: v0.6.7...v0.6.8
v0.6.7
What's New
- agent: add context overflow recovery in interactive daemon loop
- agent: add context overflow recovery in tool call loop
- agent: add fast-path tool result trimming in context compressor
- agent: add preemptive context check before provider calls
- agent: add shared iteration budget for parent/subagent coordination
- agent: add tool result truncation to prevent context blowout
- agent: graceful shutdown when max tool iterations reached
- channels: add inbound message debouncing
- hooks: fire session:end hook on idle timeout, shutdown, and replacement
- router: add complexity-based auto model routing
- skills: .well-known/agent-skills discovery for skill install
- tools: binary file type detection in file_read
- http_request: add allowed_private_hosts config for SSRF bypass
- onboard: support Anthropic-compatible endpoints in setup wizard
Automation
- Added
scripts/release/bump-version.shfor single-command version sync across all repo files - Added
.github/workflows/version-sync.ymlto auto-sync versions when Cargo.toml changes - Fixed clippy errors blocking release builds
- Fixed release workflow git config and token permissions
Full changelog: v0.6.5...v0.6.7
v0.5.6
What's New in v0.5.6
Fixes
- Install script: Auto-accept Xcode/CLT license on macOS instead of bailing out β works seamlessly in
curl | bashvia/dev/ttysudo prompt (#4153, #4165, #4169) - Flaky test: Fixed intermittent
execute_successful_subprocessbroken pipe failure by draining stdin in test script (#4161) - Crates.io publish: Fixed
aardvark-sysmissing version spec that blockedcargo publish; all publish workflows now publish workspace deps first (#4172) - Docker builds: Added
aardvark-sysworkspace crate to Dockerfile COPY stage
Install
# One-liner (macOS / Linux)
curl -fsSL https://zeroclawlabs.ai/install.sh | bash
# Cargo
cargo install zeroclawlabs
# Docker
docker pull ghcr.io/zeroclaw-labs/zeroclaw:latestFull Changelog: v0.5.5...v0.5.6
v0.5.5
What's New
Features
- DeepMyst provider β added as OpenAI-compatible provider (#4103)
- WeatherTool β weather data via wttr.in integration (#4104)
- Slack Assistants API β status indicators for Slack channels (#4105)
- Cron edit modal β edit button and modal for updating cron jobs (#4132)
- Theme system β CSS variables and settings modal for web UI (#4133)
- OpenAI Codex auth import β import existing auth profiles (#3762)
- Service status β show running state in
zeroclaw status(#3751) - Slack markdown β native markdown blocks for rich formatting (#4142)
- LocalWhisperProvider β self-hosted STT via local Whisper (#4141)
- ClaudeCodeTool β two-tier agent delegation (#4144)
- Memory time range β
since/untilfilters for recall (#4146) - RPi GPIO & hardware plugins β Raspberry Pi GPIO, Aardvark I2C/SPI/GPIO support (#4125)
- mem0 (OpenMemory) β new memory backend integration (#3965)
- Gateway path_prefix β support for reverse-proxy deployments (#4145)
- Delegate sub-agent prompt enrichment β skills_directory config key (#3344)
- Per-channel proxy_url β HTTP/SOCKS5 proxy support per channel (#3345)
- Configurable pacing controls β for slow/local LLM workloads (#3343)
- Verifiable intent module β native verifiable intent lifecycle (#2938)
- Slack reactions β reaction support for Slack channel (#4091)
- Web search routing β provider routing with alias fallback (#4038)
- Lark/Feishu markdown β markdown rendering in Lark/Feishu (#3866)
- I18n expansion β six new locales and expanded language hubs (#2934)
Fixes
- Install script β reliable Xcode license detection via test-compile (#4151)
- Memory postgres β use OS threads to avoid nested runtime panic (#4129)
- Channel model switch β wire callback into inference path (#4130)
- Cost tracking β add enforcement to all channels (#4143)
- WhatsApp Web β add missing policy config keys (#4131)
- Transcription β honor configured default provider (#3883)
- Claude providers β clamp unsupported temperatures (#3961)
- QQ WebSocket β respond to Ping frames to prevent timeout (#4041)
- Autonomy level β respect in SafetySection for agent/gateway WS path (#4037)
- Gemini β default chat() for prompt-guided tool calling + vision (#3932)
- MCP tools β wire into WebSocket chat and gateway /api/tools (#4096)
- Cron delivery β add QQ to supported channel whitelist (#4120)
- Config tests β prevent clobbering active_workspace.toml (#4121)
- Docker builds β align workspace with Cargo.lock for --locked (#4126)
- Onboarding β make tmux paste safe for text prompts (#4106)
- Auto-approval β auto-approve read-only tools in non-interactive mode (#4094)
- Gateway Docker β better error message for bridge connectivity (#4095)
- Web UI β anchor memory table with dual scrollbars (#4027)
- OTP config β add challenge_max_attempts field (#3921)
Other
- Enhanced
.editorconfigwith comprehensive file type settings (#3872)
Full Changelog: v0.5.4...v0.5.5
v0.1.7-beta.30
What's Changed
- ci: replace all workflows with simplified CI/CD pipeline by @JordanTheJet in #2895
- chore: migrate to single master branch model and update maintainers by @JordanTheJet in #2928
- fix: resolve unused import warnings by @antonvice in #2954
- chore: update .gitignore, CODEOWNERS, and dependabot configuration + Skills for Standardizing Github work by @SimianAstronaut7 in #2976
- chore: project cleanup β restructure docs, rename firmware, update CI workflows by @SimianAstronaut7 in #3096
- fix(ci): add web dashboard build step to release workflows by @SimianAstronaut7 in #3097
- docs: add localized README files for all 31 supported languages by @theonlyhennygod in #3087
- chore(ci,docs): SHA-pin Actions, scope permissions, add gate job, and localized READMEs by @SimianAstronaut7 in #3099
- docs: consolidate extension examples into contributing guide by @SimianAstronaut7 in #3138
- fix(build): ensure web/dist directory exists at compile time by @SimianAstronaut7 in #3139
- docs: add dynamic contributor badge and contributors grid to README by @SimianAstronaut7 in #3140
- feat(provider): add API key prefix pre-flight validation by @SimianAstronaut7 in #3142
- feat(skills): add zeroclaw operational skill for CLI and REST API usage by @SimianAstronaut7 in #3147
- fix(imessage): parse attributedBody when text column is NULL by @rmorgans in #3151
- fix(docs): correct broken path references in contributing docs by @Guanzhw in #3137
- docs(changelog): add changelog by @darrenzeng2025 in #3111
- chore(git): add .gitattributes for line endings by @darrenzeng2025 in #3110
- chore(editor): add .editorconfig by @darrenzeng2025 in #3112
- chore(examples): add example configuration by @darrenzeng2025 in #3108
- fix(docker): enable BuildKit and write config.toml via printf by @Jason2031 in #3117
- fix(docker): add missing COPY data/ directive by @darrenzeng2025 in #3104
- chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #3118
- feat(gateway): add restart and get-paircode subcommands by @darrenzeng2025 in #3101
- chore(deps): bump the rust-all group across 1 directory with 10 updates by @dependabot[bot] in #3092
- feat(slack): add file handling and harden socket/media paths by @f0rr0 in #3086
- chore(deps): bump rust from 1.93-slim to 1.94-slim in the docker-all group by @dependabot[bot] in #3091
- fix(config): honor default_temperature config while running "zeroclaw agent" without temperature parameter by @kunalk16 in #3067
- feat(tts): add multi-provider TTS system by @rareba in #2994
- fix(multi): harden gateway auth, Slack file handling, and TTS subprocess safety by @SimianAstronaut7 in #3196
- style: fix cargo fmt violations blocking all PR CI by @rareba in #3182
- test: restructure test suite into five-level taxonomy by @SimianAstronaut7 in #3199
- fix(agent): strip prompt-guided tool artifacts from visible replies by @whtiehack in #3200
- fix(channels): pass embedding routes to channel memory init by @whtiehack in #3201
- fix(ci): exclude stale artifacts from release and Docker builds by @SimianAstronaut7 in #3203
- chore(codeowners): add SimianAstronaut7 to review routing by @theonlyhennygod in #3204
New Contributors
- @antonvice made their first contribution in #2954
- @SimianAstronaut7 made their first contribution in #2976
- @rmorgans made their first contribution in #3151
- @Guanzhw made their first contribution in #3137
- @darrenzeng2025 made their first contribution in #3111
- @Jason2031 made their first contribution in #3117
- @f0rr0 made their first contribution in #3086
- @kunalk16 made their first contribution in #3067
- @rareba made their first contribution in #2994
- @whtiehack made their first contribution in #3200
Full Changelog: v0.1.7...v0.1.7-beta.30