Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
439 commits
Select commit Hold shift + click to select a range
e5cb8cf
fix(sop): call reload() after SopEngine construction at both call sit…
Yyukan May 10, 2026
247f2ba
fix(channels): scope session key for channel tools (#6541)
Audacity88 May 10, 2026
3821550
fix(runtime): omit native tool prompt catalog (#6544)
Audacity88 May 10, 2026
28afeee
fix(config): respect ZEROCLAW_CONFIG_DIR in path field defaults (#6533)
flyin1600 May 10, 2026
470a169
fix(runtime): require shell approval in direct sessions (#6539)
Audacity88 May 10, 2026
4f90c85
docs(skills): add user-facing skills guide (#6542)
Audacity88 May 10, 2026
966ec7b
fix(build): route source web builds through cargo (#6540)
Audacity88 May 10, 2026
6a1c6ff
fix(agent): suppress tool protocol when no tools are available (#6546)
Audacity88 May 10, 2026
5767b1d
fix(channels,deps): bump matrix-sdk 0.16 → 0.17 (#6566)
singlerider May 11, 2026
6f96122
feat(codex): support native Responses tool calls (#6117)
aliasliao May 11, 2026
a2de501
chore(build): pin Docker web-builder base images (#6559)
Audacity88 May 11, 2026
93ba884
fix(provider): strip media markers in auxiliary LLM calls (#6114)
arucil May 11, 2026
d8ba18c
feat(provider): add prompt caching to OpenRouter (#6008)
alexandme May 11, 2026
faee457
fix(provider): sanitize llama.cpp gemma4 tool schemas (#5254)
Alix-007 May 11, 2026
b255ac1
feat(providers): add atomic-chat as local provider option (#6513)
yanalialiuk May 11, 2026
a461b01
fix(web): cron jobs table behaviour (#6505)
ilteoood May 11, 2026
ff8fc6e
docs(container): correct image registry and add onboarding/re-auth st…
zwffff May 12, 2026
99d5327
fix(ci): add crate paths to labeler.yml for workspace layout (#6567)
zwffff May 12, 2026
219925e
fix(channels): gate telegram tests behind channel-telegram feature (#…
zwffff May 12, 2026
30840db
fix(vscode): remove duplicate --all-targets from rust-analyzer extraA…
zwffff May 12, 2026
ed9bd52
fix(update): tighten release asset selection (#6585)
Audacity88 May 12, 2026
f8221ce
fix(gemini): propagate token usage to cost tracker (#6575)
Audacity88 May 12, 2026
601dfdf
fix(tools): report DuckDuckGo search blocks (#6582)
Audacity88 May 12, 2026
4ff6c2b
fix(cron): clarify plain string schedule errors (#6586)
Alix-007 May 12, 2026
9f84c20
fix(multimodal): normalize image markers across agent and tool histor…
nebullii May 12, 2026
aa70297
fix(channels): trigger TTS voice replies in finalize_draft for stream…
zwffff May 12, 2026
ac88a59
fix(providers/glm): mark GLM provider as vision-capable (#6573)
roywong10 May 12, 2026
ccb6beb
fix(channels): close Discord media send/receive gaps (#6572)
singlerider May 12, 2026
2fd1d4e
docs(skills/pr-review): refine Phase 3.5 milestone alignment — break-…
WareWolf-MoonWall May 12, 2026
4bfd53c
feat(nix): add NixOS module + test for services.zeroclaw.instances (#…
fresh-fx59 May 13, 2026
6f959dc
feat(gateway): expose version in /api/status and display it in sideba…
ilteoood May 13, 2026
f97e1fe
fix(matrix): avoid threading root timeline messages (#6525)
drbparadise May 13, 2026
5cbc1b6
refactor(tools): bundle wrapper migration for file, pdf/image, cron, …
yijunyu May 13, 2026
8bee91f
docs(security): point sandboxing example at the actually-pullable def…
yijunyu May 13, 2026
7fb991a
chore(codeowners): rewrite for post-microkernel layout (#6537)
singlerider May 13, 2026
777df9e
fix(gateway): target paircode retrieval to running instance (#6192)
nebullii May 13, 2026
30829bb
fix(cron): handle tool-only outputs and degraded delivery (#6026)
TeoConnexioh May 13, 2026
152ae91
fix: keep system messages at the start of chat history (#6552)
drbparadise May 13, 2026
a0023a1
fix(gateway,runtime): broadcast agent observer events to /api/events …
mn13 May 13, 2026
5e9c199
fix(providers): accept `reasoning` alias on OpenAI-compatible respons…
yijunyu May 13, 2026
cbd2f63
fix(providers): use --prompt for gemini-cli (replaces removed --print…
yijunyu May 13, 2026
7421792
fix(gateway): cancel turn on WS disconnect to stop forward_fut spin (…
yijunyu May 13, 2026
3afb545
fix(matrix): include attachment media metadata (#6610)
drbparadise May 13, 2026
d4e338b
fix(gateway/nextcloud-talk): process webhook async to avoid 5s cancel…
yijunyu May 13, 2026
60d17a5
fix(tools): resolve gws via PATH so Windows .cmd shims work (#6601)
yijunyu May 13, 2026
34d4ee2
fix(runtime): load workspace profiles at startup (#6599)
yijunyu May 13, 2026
c6ee596
fix(providers): trust system CA roots for provider HTTPS requests (#6…
yijunyu May 13, 2026
1bcc2a8
fix(providers): supports_vision() must reflect default/primary, not .…
yijunyu May 13, 2026
a054a90
fix(providers): defensively omit Anthropic temperature for Opus 4.7 (…
yijunyu May 14, 2026
017ecf9
fix(providers): stop replaying stale tool-result images (#6629)
Audacity88 May 14, 2026
d2dd45a
fix(provider): restrict compatible reasoning effort models (#6631)
Audacity88 May 14, 2026
b9e53f5
fix(tool-call-parser): omit assistant history when no parsed tool cal…
yijunyu May 14, 2026
8c1a052
fix(provider): honor LM Studio compatible runtime options (#6580)
Audacity88 May 14, 2026
30795cf
fix(cron,channels): carry thread_id through cron announce delivery (#…
mn13 May 14, 2026
7f7ef1d
fix(channels/telegram): apply mention_only gate to photo, document, a…
theonlyhennygod May 14, 2026
1f137bc
fix(deps): update lettre for RUSTSEC-2026-0141 (#6662)
Audacity88 May 15, 2026
0b16263
fix(cron): keep read-only access off schema init path (#6655)
drbparadise May 15, 2026
388657f
fix: sanitize session keys at the channel orchestrator layer (#6228)
thezillo May 15, 2026
640bf31
feat(channels): configurable reply-intent precheck model + timeout (#…
mn13 May 15, 2026
e3c53b1
feat(web): tool approval UI for supervised-mode tool execution (#6603)
NiuBlibing May 15, 2026
ad5f6c0
feat(skills): show tier banner on `zeroclaw skills install` (#6409)
JordanTheJet May 15, 2026
d234ec3
fix(cli): capture original bash completion function body to prevent i…
xydigit-sj May 15, 2026
93896ac
perf(cron): persist run results in one transaction (#6656)
drbparadise May 15, 2026
c6c35c4
fix(runtime/observability): share PrometheusObserver across subsystem…
guitaripod May 15, 2026
bd18aa7
docs(ci): remove stale strict-delta references (#6133)
nebullii May 15, 2026
43acc33
fix(skills): restrict audit to structural checks, delegate command sa…
RyanHoldren May 15, 2026
6438b23
test(skills): fix heredoc manifest fixture (#6677)
Audacity88 May 15, 2026
b0c458a
fix(config): add allowed_path/allowed_paths aliases for allowed_roots…
theonlyhennygod May 15, 2026
c1ec59d
fix(docker): install dashboard outside /zeroclaw-data bind mount (#64…
yijunyu May 15, 2026
ad34fa3
fix(security): allow safe device redirect targets in path policy (#6236)
0disoft May 16, 2026
5c2bfdc
fix(config/channels/slack): make bot_token optional and load from env…
theonlyhennygod May 16, 2026
a090cbc
feat(ci): force check pr title (#6396)
ilteoood May 16, 2026
ea825ce
fix(provider): recover Codex non-streaming fallback (#6668)
Audacity88 May 16, 2026
38387cd
feat(skills): suggest missing skill capabilities (#6676)
Audacity88 May 16, 2026
38c4163
feat(skills): localize install output with Fluent (#6674)
Audacity88 May 16, 2026
34ab1bb
ci: update GitHub Actions pins for Node 24 readiness (#6447)
Project516 May 16, 2026
67b2380
fix(gateway): publish session notifications (#6671)
Audacity88 May 16, 2026
2253fe1
fix(providers/compatible): normalize image markers at provider bounda…
yijunyu May 16, 2026
3e27b58
feat(debug): restore --log-llm payload tracing (#6709)
Audacity88 May 17, 2026
d64d324
fix(cron): use cmd.exe on Windows instead of hardcoded sh (#6713)
abhinavmathur-atlan May 17, 2026
657697c
fix(skills): respect timeout_secs from SKILL.toml (#6054)
RyanHoldren May 17, 2026
09fe96a
fix(memory): tolerate concurrent sqlite schema migrations (#6432)
drbparadise May 17, 2026
e8e1f07
docs: update arduino-uno-q-setup (#6172)
Project516 May 17, 2026
3592f6b
fix(channels): localize runtime command replies (#6550)
drbparadise May 17, 2026
f1ced29
fix(onboard): restore interactive flag compatibility (#6673)
Audacity88 May 17, 2026
a62158e
feat(tauri): add Linux and Windows desktop permission onboarding (#6710)
Project516 May 17, 2026
ef18e5e
fix(xtask): parse Fluent audit inputs correctly (#6707)
Audacity88 May 17, 2026
abf4d3a
fix(observability): restore broken SSE /logs stream; add build-stampe…
WareWolf-MoonWall May 17, 2026
9928546
fix(skills): use __ separator in tool names for OpenAI-compat functio…
kmsquire May 18, 2026
47d9af6
feat(providers): add Manifest open-source LLM router (#6268)
SebConejo May 18, 2026
f0af609
fix(config): emit json patch errors for cli patch (#6617)
Alix-007 May 18, 2026
234bc64
fix(cron): align timezone contract with scheduler behavior (#6740)
drbparadise May 18, 2026
6b283bc
fix(cron): preserve timezone through the cron API (#6741)
drbparadise May 18, 2026
d681561
fix(service): render valid macOS launchd plist (#6738)
Audacity88 May 18, 2026
bacde5d
feat(providers): add Morph as a model provider (#6440)
theonlyhennygod May 18, 2026
dce8f52
fix(skills): strict SkillMeta + relocate SkillForge provenance to [fo…
johnrspeer83-png May 18, 2026
2464846
feat(providers): add GitHub Models as a model provider (#6445)
theonlyhennygod May 18, 2026
1acd1cf
fix(skills): run ClawHub install on the async runtime (#6682)
abhinavmathur-atlan May 18, 2026
b168c85
test(tools): cover Tavily search routing aliases (#6616)
Alix-007 May 18, 2026
3dabcdb
test(providers): cover streaming payload tracing (#6744)
Audacity88 May 18, 2026
f6b9012
fix(providers): skip unresolvable multimodal images (#6743)
Audacity88 May 18, 2026
bbe52dd
fix(observability): scope gateway broadcast hook lifetime (#6757)
Audacity88 May 18, 2026
eec2876
feat(providers): split MiniMax picker into Global and China entries (…
kapelame May 18, 2026
24f40b1
fix: Windows snapshot TTL is shorter than the polling interval (#6750)
Project516 May 18, 2026
233c011
ci: expand manual cross-platform build matrix coverage (#6749)
Project516 May 18, 2026
5dd4580
feat(channels/acp): persist ACP sessions (#6649)
tidux May 19, 2026
18622d9
feat!: multi-agent runtime and schema V3 (#6398)
singlerider May 20, 2026
efe4ebf
fix(tools/web_search): surface DuckDuckGo anomaly-modal block (#6373)…
yijunyu May 20, 2026
565deaf
fix(runtime,channels): keep malformed tool protocol internal (#6736)
drbparadise May 20, 2026
4fb0ef2
feat(skills): emit positive log when skill tools are registered (#6072)
perlowja May 20, 2026
c746998
fix(policy): allow multiline heredocs in SecurityPolicy command split…
tidux May 21, 2026
7437cd0
fix(runtime): add strict tool parsing mode (#6675)
Audacity88 May 22, 2026
7f9271c
fix(providers): restore Kimi Code vision capability (#6809)
Audacity88 May 22, 2026
84413ff
fix(security): detect Groq API keys in leak scanner (#6812)
Audacity88 May 22, 2026
ded9abe
fix(web): validate local provider models during onboarding (#6811)
Audacity88 May 22, 2026
ffaef80
fix(memory): purge_namespace deletes by namespace, not category colum…
nixosclaw May 22, 2026
17891e3
fix(channels): compile no-default feature builds (#6745)
Audacity88 May 22, 2026
88e8f90
fix(channel): persist WeChat context_tokens and expand tilde in confi…
XiaoliangWang1991 May 22, 2026
b4d1d59
feat(browser): add agent-browser headed config (#6636)
Alix-007 May 22, 2026
04cd70f
fix(runtime): transcode Windows shell output from system code page to…
NiuBlibing May 22, 2026
d05c8a9
fix(discord): treat thread messages as belonging to parent channel in…
singlerider May 22, 2026
c356f55
chore: Optimize images (#6748)
Project516 May 22, 2026
f1f5757
feat(obs): enrich OTel tool spans with gen_ai.tool.* semantic convent…
alexandme May 22, 2026
d6b2c92
fix(deploy): parametrize service template user (#6804)
vernonstinebaker May 22, 2026
cab2f5a
ci(labeler): narrow ci label matcher scope (#6814)
Project516 May 22, 2026
121bbb5
fix: fix link rendering in philosophy.md (#6769)
Project516 May 22, 2026
fa51898
fix(channels/whatsapp): restore Apr-2026 protocol parity via whatsapp…
alexandme May 22, 2026
884fae4
fix(doctor): use configured model provider credentials (#6838)
puneetdixit200 May 23, 2026
f8509c2
feat: Add blog RSS/Atom feeds and sitemap discovery endpoints (#6774)
Project516 May 23, 2026
8e12d4b
fix(web): align provider badge with ConfiguredOnlyPicker filter (#6828)
singlerider May 23, 2026
a8c7277
docs(contributing): add architecture contribution map (#6853)
Audacity88 May 23, 2026
90fc018
fix(channels/whatsapp-web): convert LID to phone reply target for all…
tmigone May 23, 2026
3498f50
feat(channels,runtime): support lark as a cron delivery channel (#6851)
kanmars May 23, 2026
7e59c2d
fix(deploy): update gateway ExecStart and remove deprecated OTP field…
vernonstinebaker May 23, 2026
eb19172
fix(matrix): isolate streaming draft state (#6735)
drbparadise May 23, 2026
912315c
feat: separate IMAP/SMTP credentials (#6666)
r4mmer May 23, 2026
624fdfd
fix(discord): park fatal gateway preflight failures (#6834)
vernonstinebaker May 23, 2026
935330d
fix(config): resolve Homebrew runtime config dirs (#6639)
BernardKuo May 23, 2026
98876c0
feat(jira): add list_transitions, transition_ticket, create_ticket ac…
itripn May 23, 2026
f4c28e8
docs: clarify translation sync policy (#6696)
Audacity88 May 23, 2026
113206a
docs: fix stale RUST_LOG targets (#6692)
Audacity88 May 23, 2026
19e014d
feat(orchestrator): expose message_id in agent channel context (#6843)
kristofferkoch May 23, 2026
ef8bc0a
feat(signal): outbound emoji reactions via sendReaction (#6840)
kristofferkoch May 24, 2026
3f6d8e0
feat(channel): add WeCom AI Bot WebSocket channel (#6680)
Audacity88 May 24, 2026
4a668d5
fix(provider): resolve per-provider API key from config model entry (…
easyteacher May 24, 2026
e0aa285
docs(triage): sync stale exemption label spelling (#6855)
Audacity88 May 24, 2026
ac8eaef
fix(mdbook): stabilize gettext catalog diffs for docs sync (#6868)
Project516 May 24, 2026
882c759
feat(channels): support selective channel builds and filter channel l…
NiuBlibing May 24, 2026
9c2522c
fix(providers): preserve Ollama cloud suffix for private remotes (#6863)
Audacity88 May 24, 2026
3e8efca
fix(providers): avoid synthetic Codex tool call ids (#6865)
Audacity88 May 24, 2026
fe570ce
feat(provider): add native extended thinking for Anthropic and Bedroc…
Stealinglight May 24, 2026
70787ae
feat(channels/lark): implement request_approval() for Lark/Feishu (#6…
kanmars May 24, 2026
3f7c4f8
fix(provider): replace expect_err panic with propagated error in Code…
abhinavmathur-atlan May 25, 2026
6829faa
docs(maintainers): document PR lanes and label policy (#6854)
Audacity88 May 25, 2026
0757925
docs(triage): define status label semantics (#6899)
Audacity88 May 25, 2026
65f922d
docs(triage): define contributor pickup semantics (#6903)
Audacity88 May 25, 2026
fcc1545
docs(channels): document Signal and WhatsApp setup (#6898)
Audacity88 May 25, 2026
24fbc13
docs(skills): add current Python skills guide (#6860)
Audacity88 May 25, 2026
bbf958b
docs(review): update milestone fallback owner (#6872)
Audacity88 May 25, 2026
6d02620
fix(discord): resume gateway sessions after reconnect (#6835)
vernonstinebaker May 25, 2026
7dfda73
fix(memory): reject clear on append-only markdown backend (#5120)
Alix-007 May 25, 2026
d05cdbc
fix(security): conditionally bind /lib64 and /lib in bubblewrap sandb…
Project516 May 25, 2026
694746f
fix(setup): align Windows minimal install with core-only build (#6867)
Project516 May 25, 2026
508e060
fix(ci): unblock pr-title workflow with inline regex check (#6752)
JordanTheJet May 25, 2026
24a57ae
fix(providers): preserve full reqwest error chains in transport/log d…
Project516 May 25, 2026
cc1a66b
fix(onboarding): restore Homebrew config dir detection (#6896)
Audacity88 May 25, 2026
d47b5aa
fix(channels/email): html body rendering, subject threading, attachme…
mov-xound-glitch May 25, 2026
06c73e7
fix(web): tighten Canvas iframe sandbox to prevent token theft via XS…
nixosclaw May 26, 2026
f4d17ea
fix(providers): route system streaming through RouterModelProvider (#…
Audacity88 May 27, 2026
83bdc03
fix(runtime): preserve provider aliases for Codex OAuth (#6938)
vrurg May 27, 2026
6a68466
fix(providers): siliconflow DEFAULT_URL .cn → .com (international end…
perlowja May 27, 2026
8ff0a48
fix(onboard): validate provider catalog aliases (#6928)
Audacity88 May 27, 2026
d827087
docs(api): document attachment path validation boundary (#6949)
Project516 May 27, 2026
c931055
docs(governance): align FND-003 with work-lane policy (#6919)
Audacity88 May 27, 2026
e5fbd01
docs(triage): define terminal resolution labels (#6929)
Audacity88 May 27, 2026
c7de6f0
fix(gateway): /ws/nodes 404 when nodes.enabled=false + reject unauthe…
perlowja May 27, 2026
3ea1f30
feat(tools): add file_upload tool for HTTP multipart uploads (#6773)
mn13 May 27, 2026
e1da88b
fix(channel): restore legacy channel startup fallback when agent chan…
Project516 May 27, 2026
ec4d0f7
fix(update): verify self-update downloads against SHA256SUMS (#6900)
Audacity88 May 27, 2026
8082c09
fix(cron): persist manual delivery failures as degraded (#6897)
Audacity88 May 27, 2026
0848e1a
fix(gateway): add structured onboarding repair items (#6894)
Audacity88 May 27, 2026
1861e4d
feat(gateway): preserve websocket steering transcript (#6933)
Audacity88 May 27, 2026
28ce7c5
fix(runtime): sanitize compressor media markers before truncation (#6…
Audacity88 May 27, 2026
c10c20f
fix(discord): keep gateway preflight 429 retryable (#6934)
Audacity88 May 27, 2026
43419e0
fix(cli): suppress INFO logs in agent interactive mode (#6947)
h03-xydt May 27, 2026
6c4b6d1
feat(config): generalize #[secret] via SecretField trait (#6918)
mn13 May 27, 2026
c684b75
fix(tests): replace wall-clock timing assert in parallel-dispatch tes…
eldar702 May 27, 2026
e2fd032
feat(web): declare minimum browser floor and add unsupported-browser …
Project516 May 27, 2026
6a4013d
fix(config): use platform-agnostic paths in policy tests (#6913)
easyteacher May 28, 2026
abc6414
fix(provider): preserve reasoning_content in native tool requests (#6…
Audacity88 May 28, 2026
cbf915d
docs(channels): reconcile against schema and fix stale CLI refs (#6382)
singlerider May 28, 2026
f6015ab
fix(onboard): add Codex subscription auth for OpenAI provider (#6908)
tidux May 28, 2026
780351f
fix(web_fetch): treat max_response_size=0 as unlimited (#6884)
perlowja May 30, 2026
26b5c43
feat(memory): introduce MemoryStrategy trait and DefaultMemoryStrateg…
fanchanghu May 30, 2026
a63484c
feat(agents): add per-agent `classifier_provider` to route reply-inte…
kanmars May 30, 2026
1300684
fix(tools): add ipv6 support and use reqwest.url (#5450)
jokemanfire May 30, 2026
79534f9
fix(providers): respect explicit provider kind (#6607)
Alix-007 May 30, 2026
e3a3228
fix(provider/compatible): preserve reasoning_content for plain-text a…
theonlyhennygod May 30, 2026
9358038
feat(tools): filter deferred MCP tools by access policy (#6920)
alex-nax May 30, 2026
f4f2979
fix(tauri): remove manual MANIFEST linker flags to fix CVT1100/LNK112…
NiuBlibing May 30, 2026
ff024ad
fix(runtime/agent): preserve reasoning_content through context compre…
theonlyhennygod May 30, 2026
233b3a6
feat(tools): add result mode to execute_pipeline (#7009)
metalmon May 30, 2026
282b00f
fix(web_fetch): unwrap zero-limit regression test tools (#7016)
Audacity88 May 30, 2026
65837f3
feat(channels/webhook): add retry logic with exponential backoff (#5838)
mn13 May 30, 2026
0627efc
fix(runtime): avoid invalid GLM history after pruning (#7013)
Audacity88 May 30, 2026
58c24e2
fix(provider): accept compatible typed content arrays (#7010)
Audacity88 May 30, 2026
fcc8be8
fix(runtime): apply SecurityPolicy tool filter in process_message() (…
alex-nax May 30, 2026
97b5f96
fix(observability): record LlmRequest/LlmResponse events in agent tur…
FTDGRT May 30, 2026
589eb5f
feat(api): add ChannelMessage::new and SendMessage::reply_to construc…
mov-xound-glitch May 31, 2026
afc5828
fix(matrix): preserve self-anchored root sessions (#6967)
drbparadise May 31, 2026
e2b8e95
feat(gateway): report honest channel readiness (#6985)
Audacity88 May 31, 2026
d050b57
feat(agent): add channel_send tool with default_target (#6665)
Yyukan May 31, 2026
35624db
fix(gateway/acp): wire shared CanvasStore into WS chat and ACP sessio…
NiuBlibing May 31, 2026
68aec2e
fix(agent): resolve runtime profile budgets when constructing securit…
easyteacher May 31, 2026
f5567c2
feat(tools): add file_download tool for fetching remote files into th…
mn13 May 31, 2026
c4bb711
feat(tts): configurable uri and response_format for openai provider
mov-xound-glitch May 31, 2026
d78ac72
fix(channels): restore per-agent reply precheck controls
drbparadise May 31, 2026
9caf28c
feat(tools): add file_upload_bundle tool for multi-file uploads
alex-nax May 31, 2026
3ff690f
feat(skills): scoped tool elevation for built-in and MCP tools
alex-nax May 31, 2026
8377845
fix(channels/telegram): wire transcription_provider alias for inbound…
metalmon May 31, 2026
1208a45
chore(release): remove marketplace sync workflow (#6956)
theonlyhennygod May 31, 2026
b33bec8
docs(gateway): document web_dist_dir setting and supported env-var ov…
eldar702 May 31, 2026
4903ba5
fix(channels/whatsapp-web): match LID bot mentions (#7034)
rifuki May 31, 2026
0690456
fix(channels/media-pipeline): inline image data for vision (#7035)
rifuki May 31, 2026
3c81823
fix(providers): omit temperature for kimi-k2 models in compatible.rs …
Yyukan Jun 1, 2026
31c6273
feat(tools): add Jina AI as web_search provider (#6833)
h03-xydt Jun 1, 2026
34c80b0
feat(channels): define lean default channel bundle (#6904)
Audacity88 Jun 2, 2026
9651e13
fix(channels): restore date-only channel prompt context (#6931)
Audacity88 Jun 2, 2026
708f1f6
fix(tools): resolve image_info paths through policy (#6972)
Audacity88 Jun 2, 2026
3fa62f3
fix(web_fetch): honor private DNS host allowlist (#6974)
Audacity88 Jun 2, 2026
883d5ee
fix(email): ignore blank SMTP credential overrides (#6979)
Audacity88 Jun 2, 2026
4ed0334
fix(runtime): fall back before visible stream errors (#6983)
Audacity88 Jun 2, 2026
4cee401
fix(channels): redact Discord delivery failure targets (#7031)
Audacity88 Jun 2, 2026
599bd7e
fix(providers): retry empty completions instead of returning a blank …
mn13 Jun 2, 2026
e7cb467
feat(docs): reskin mdBook to match the web dashboard (PoC) (#7055)
singlerider Jun 2, 2026
2c91478
feat(integration): introduce zerocode TUI, RPC socket transport, Deny…
singlerider Jun 2, 2026
a489161
feat(tools): optional base64 encoding for file_read / file_write (#7004)
metalmon Jun 2, 2026
a3b1c07
feat(i18n): add Spanish and Chinese runtime and zerocode locales (#7039)
singlerider Jun 2, 2026
206f320
fix(channels): honor webhook Retry-After dates (#7027)
Audacity88 Jun 2, 2026
db3f394
feat(config/channels): static output_modality preference on peer grou…
mov-xound-glitch Jun 2, 2026
63d1d24
feat(tools): add http_request private-host allowlist (#6981)
Audacity88 Jun 2, 2026
708af4f
feat(hardware): add smartroom named-device tools (set_device / read_d…
Rhoahndur Jun 2, 2026
15e12af
feat(hardware): add dev-sim feature with /tmp/zc-sim-* serial allowli…
Rhoahndur Jun 2, 2026
077458a
feat(self-test): flag web_dist_dir paths using tilde or $VAR expansio…
eldar702 Jun 2, 2026
4ac8cfa
fix(channels/tts): bind TTS manager to the channel-owning agent (#7002)
metalmon Jun 2, 2026
83865ee
fix(channels): enforce per-agent tool allowlist in start_channels (#7…
alex-nax Jun 2, 2026
b64f96f
fix(channels): deliver WhatsApp replies for LID JIDs and empty saniti…
LuaniiMM Jun 2, 2026
5de4940
feat(tts): transcode to OGG/Opus for voice notes (Telegram + WhatsApp…
mov-xound-glitch Jun 2, 2026
40be773
feat(docs): versioned documentation deployment and version selector (…
kitswas Jun 3, 2026
2620814
fix(ui/channels): avoid UTF-8 char-boundary panics in text truncation
NiuBlibing Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .actrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# act defaults — keeps `act` runs reproducible without flag soup.
# https://github.com/nektos/act

# Map the ARM runner used in production to a standard amd64 image so act
# can run it on any host. (Prod still uses ubuntu-24.04-arm via GitHub.)
-P ubuntu-24.04-arm=catthehacker/ubuntu:act-latest
-P ubuntu-latest=catthehacker/ubuntu:act-latest

# Load secrets (e.g. ANTHROPIC_API_KEY) from a local file. Create it as:
# ANTHROPIC_API_KEY=sk-ant-...
# .secrets is gitignored.
--secret-file .secrets

# Force amd64 container architecture (Apple Silicon hosts otherwise pull
# arm64 images that lack many tools).
--container-architecture linux/amd64

# Run a local artifact server so actions/upload-artifact and
# actions/download-artifact work between jobs. The directory is
# auto-created by scripts/dev/act-local.sh on first run.
--artifact-server-path /tmp/act-artifacts
4 changes: 0 additions & 4 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@

[advisories]
ignore = [
# wasmtime vulns via extism — no upstream fix available; plugins feature-gated
"RUSTSEC-2026-0006", # wasmtime f64.copysign segfault on x86-64
"RUSTSEC-2026-0020", # WASI guest-controlled resource exhaustion
"RUSTSEC-2026-0021", # WASI http fields panic
# wasmtime 2026-04-09 batch — extism 1.21.0 pins wasmtime 41.x; no extism release with fix yet
"RUSTSEC-2026-0085", # panic when lifting `flags` component value
"RUSTSEC-2026-0086", # host data leakage with 64-bit tables and Winch
"RUSTSEC-2026-0087", # f64x2.splat Cranelift x86-64 segfault
Expand All @@ -19,9 +17,7 @@ ignore = [
"RUSTSEC-2026-0094", # Winch table.grow improperly masked return value
"RUSTSEC-2026-0095", # Winch sandbox-escape (critical)
"RUSTSEC-2026-0096", # aarch64 Cranelift sandbox-escape (critical)
# instant crate unmaintained — transitive dep via nostr; no upstream fix
"RUSTSEC-2024-0384",
# rustls-webpki via rumqttc 0.25.1 — rumqttc pins rustls-webpki ^0.102; no upstream release with fix
"RUSTSEC-2026-0049", # CRL matching bypass
"RUSTSEC-2026-0098", # URI name constraint incorrectly accepted (2026-04-14)
"RUSTSEC-2026-0099", # URI name constraint incorrectly accepted (2026-04-14)
Expand Down
8 changes: 8 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
[alias]
mdbook = "run --release -p xtask --bin mdbook --"
fluent = "run --release -p xtask --bin fluent --"
web = "run --release -p xtask --bin web --"

[build]
rustdocflags = ["--default-theme=ayu"]

[target.x86_64-unknown-linux-musl]
rustflags = ["-C", "link-arg=-static"]

Expand Down
9 changes: 5 additions & 4 deletions .claude/skills/changelog-generation/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ checked out and up to date.

Read the protocol reference before doing anything else:

- `docs/contributing/changelog-generation.md` — **the full procedure**; follow it
- `docs/book/src/maintainers/changelog-generation.md` — **the full procedure**; follow it
exactly for every run. It defines the commit range logic, categorisation rules,
GraphQL contributor resolution, filter lists, output format, and release workflow
integration.
Expand Down Expand Up @@ -130,7 +130,7 @@ to `master` directly.

## Execution rules

1. **Always read `docs/contributing/changelog-generation.md` first.** The protocol
1. **Always read `docs/book/src/maintainers/changelog-generation.md` first.** The protocol
file is authoritative. If anything in this skill conflicts with it, the protocol
wins.
2. **Always report the resolved range before doing any work.** The user should
Expand All @@ -147,5 +147,6 @@ to `master` directly.
7. **Always confirm before committing.** Show the user the exact commit message
and ask for an explicit yes. Do not infer consent from prior steps.
8. **Never push to `master` directly.** Always push to the open release PR branch.
9. **Never delete `CHANGELOG-next.md` manually.** The release workflow deletes it
automatically after a successful stable release.
9. **Do not delete `CHANGELOG-next.md` manually.** The file is intentionally left on
`master` between releases and is overwritten at the start of the next release cycle.
No cleanup is needed after a release ships.
12 changes: 6 additions & 6 deletions .claude/skills/github-issue-triage/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ You are an autonomous issue triage and lifecycle agent for ZeroClaw. You triage,
Read these repository files at the start of every session — they are authoritative and override this skill if conflicts exist:

- `AGENTS.md` — conventions, risk tiers, anti-patterns, core engineering constraints
- `docs/contributing/reviewer-playbook.md` — §4 Issue Triage and Backlog Governance
- `docs/contributing/pr-workflow.md` — §8.3–8.4 Issue triage discipline and automation guards
- `docs/contributing/pr-discipline.md` — privacy rules, neutral wording requirements
- `docs/book/src/maintainers/reviewer-playbook.md` — Issue Triage section
- `docs/book/src/maintainers/pr-workflow.md` — Review SLA and queue discipline
- `docs/book/src/contributing/privacy.md` — privacy rules, neutral wording requirements

Then read `references/triage-protocol.md` for the full mode-by-mode workflow.

The protocol encodes operational details from RFC #5577 (governance, stale policy, label taxonomy) and RFC #5615 (contribution culture). If you need background context beyond what the protocol provides, fetch these RFCs (open issues in zeroclaw-labs/zeroclaw). The RFCs are authoritative where they conflict with this skill — but the protocol already reflects their current state, so routine sessions should not need to fetch them.
The protocol encodes operational details from RFC #5577 (governance and stale thresholds), RFC #5615 (contribution culture), and later maintainer label-policy corrections. If you need background context beyond what the protocol provides, fetch those RFCs or the current maintainer label guide. RFC #5577 remains authoritative for stale timing; `docs/book/src/maintainers/labels.md` and `references/triage-protocol.md` carry the current operational label policy.

## Invocation

Expand Down Expand Up @@ -50,7 +50,7 @@ The protocol encodes operational details from RFC #5577 (governance, stale polic
| Action | Authority | Condition |
|---|---|---|
| Apply labels | Act | Always |
| Remove labels | Act | Only for labels the agent applied in this session, or `status:stale` when the author has re-engaged. Never remove `no-stale`, `priority:critical`, `status:blocked`, or `type:rfc` — these are protection labels. |
| Remove labels | Act | Only for labels the agent applied in this session, or `status:stale` when the author has re-engaged. Never remove `status:no-stale`, `priority:p0`, or `type:rfc` autonomously. Do not remove `status:blocked` during routine triage; during a stale pass, first verify the recorded blocker and present any proposed `status:blocked` change to the user. |
| Comment on an issue | Act | Always |
| Close — fixed by merged PR | Act (single-issue: present first) | PR confirmed merged; issue explicitly referenced in PR |
| Close — duplicate | Act (single-issue: present first) | Concrete shared identifier confirmed per §3 Pass 2; primary issue clearly identified |
Expand Down Expand Up @@ -83,7 +83,7 @@ Every comment must be:
- **Specific to the issue** — never a copy-paste that could apply to anything
- **Referenced** — links at least one other issue, PR, or specific docs section so the reporter has somewhere to go next
- **Welcoming** — the repo is under new management with a human touch; do not discourage contributors; assume good faith
- **Privacy-compliant** — the `docs/contributing/pr-discipline.md` privacy rules apply to code, tests, fixtures, and examples (use `zeroclaw_user`, `example.com`, etc.). In issue comments, addressing contributors by their GitHub handle (@username) is expected and welcome — that's how you talk to people on GitHub. Do not put real names, emails, or personal data in comments, but @-mentioning the issue author is not a privacy violation.
- **Privacy-compliant** — the `docs/book/src/contributing/privacy.md` rules apply to code, tests, fixtures, and examples (use `zeroclaw_user`, `example.com`, etc.). In issue comments, addressing contributors by their GitHub handle (@username) is expected and welcome — that's how you talk to people on GitHub. Do not put real names, emails, or personal data in comments, but @-mentioning the issue author is not a privacy violation.
- **Concise** — under ~200 words for routine actions; longer only when the issue warrants real explanation

Situational tailoring is always preferred. If multiple issues in a batch warrant structurally similar comments (e.g., a stale sweep), generate the shared pattern at runtime and vary it per issue — do not apply a literal copy-paste to more than one issue.
Expand Down
Loading
Loading