From be57a7684de4e01ba01e1a58be1768e224e1062d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 16:30:41 +0000 Subject: [PATCH 1/2] chore: release v0.17.0 (#842) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 77 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56d48749..fcdcd349 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.17.0](https://github.com/nearai/ironclaw/compare/v0.16.1...v0.17.0) - 2026-03-10 + +### Added + +- *(llm)* per-provider unsupported parameter filtering (#749, #728) ([#809](https://github.com/nearai/ironclaw/pull/809)) +- persist user_id in save_job and expose job_id on routine runs ([#709](https://github.com/nearai/ironclaw/pull/709)) +- *(ci)* chained promotion PRs with multi-agent Claude review ([#776](https://github.com/nearai/ironclaw/pull/776)) +- add background sandbox reaper for orphaned Docker containers ([#634](https://github.com/nearai/ironclaw/pull/634)) +- *(wasm)* lazy schema injection on WASM tool errors ([#638](https://github.com/nearai/ironclaw/pull/638)) +- add AWS Bedrock LLM provider via native Converse API ([#713](https://github.com/nearai/ironclaw/pull/713)) +- full image support across all channels ([#725](https://github.com/nearai/ironclaw/pull/725)) +- *(skills)* exclude_keywords veto in skill activation scoring ([#688](https://github.com/nearai/ironclaw/pull/688)) +- *(mcp)* transport abstraction, stdio/UDS transports, and OAuth fixes ([#721](https://github.com/nearai/ironclaw/pull/721)) +- add PID-based gateway lock to prevent multiple instances ([#717](https://github.com/nearai/ironclaw/pull/717)) +- configurable LLM request timeout via LLM_REQUEST_TIMEOUT_SECS ([#615](https://github.com/nearai/ironclaw/pull/615)) ([#630](https://github.com/nearai/ironclaw/pull/630)) +- *(timezone)* add timezone-aware session context ([#671](https://github.com/nearai/ironclaw/pull/671)) +- *(setup)* Anthropic OAuth onboarding with setup-token support ([#384](https://github.com/nearai/ironclaw/pull/384)) +- *(llm)* add Google Gemini, AWS Bedrock, io.net, Mistral, Yandex, and Cloudflare WS AI providers ([#676](https://github.com/nearai/ironclaw/pull/676)) +- unified thread model for web gateway ([#607](https://github.com/nearai/ironclaw/pull/607)) +- WASM channel attachments with LLM pipeline integration ([#596](https://github.com/nearai/ironclaw/pull/596)) +- enable Anthropic prompt caching via automatic cache_control injection ([#660](https://github.com/nearai/ironclaw/pull/660)) +- *(routines)* approval context for autonomous job execution ([#577](https://github.com/nearai/ironclaw/pull/577)) +- *(llm)* declarative provider registry ([#618](https://github.com/nearai/ironclaw/pull/618)) +- *(gateway)* show IronClaw version in status popover [skip-regression-check] ([#636](https://github.com/nearai/ironclaw/pull/636)) +- Wire memory hygiene retention policy into heartbeat loop ([#629](https://github.com/nearai/ironclaw/pull/629)) + +### Fixed + +- *(ci)* run fmt + clippy on staging PRs, skip Windows clippy [skip-regression-check] ([#802](https://github.com/nearai/ironclaw/pull/802)) +- *(ci)* clean up staging pipeline — remove hacks, skip redundant checks [skip-regression-check] ([#794](https://github.com/nearai/ironclaw/pull/794)) +- *(ci)* secrets can't be used in step if conditions [skip-regression-check] ([#787](https://github.com/nearai/ironclaw/pull/787)) +- prevent irreversible context loss when compaction archive write fails ([#754](https://github.com/nearai/ironclaw/pull/754)) +- button styles ([#637](https://github.com/nearai/ironclaw/pull/637)) +- *(mcp)* JSON-RPC spec compliance — flexible id, correct notification format ([#685](https://github.com/nearai/ironclaw/pull/685)) +- preserve tool-call history across thread hydration ([#568](https://github.com/nearai/ironclaw/pull/568)) ([#670](https://github.com/nearai/ironclaw/pull/670)) +- CLI commands ignore runtime DATABASE_BACKEND when both features compiled ([#740](https://github.com/nearai/ironclaw/pull/740)) +- *(web)* prevent fetch error when hostname is an IP address in TEE check ([#672](https://github.com/nearai/ironclaw/pull/672)) +- add timezone conversion support to time tool ([#687](https://github.com/nearai/ironclaw/pull/687)) +- standardize libSQL timestamps as RFC 3339 UTC ([#683](https://github.com/nearai/ironclaw/pull/683)) +- *(docker)* bind postgres to localhost only ([#686](https://github.com/nearai/ironclaw/pull/686)) +- *(repl)* skip /quit on EOF when stdin is not a TTY ([#724](https://github.com/nearai/ironclaw/pull/724)) +- *(web)* prevent Enter key from sending message during IME composition ([#715](https://github.com/nearai/ironclaw/pull/715)) +- *(config)* init_secrets no longer overwrites entire config ([#726](https://github.com/nearai/ironclaw/pull/726)) +- *(cli)* status command ignores config.toml and settings.json ([#354](https://github.com/nearai/ironclaw/pull/354)) ([#734](https://github.com/nearai/ironclaw/pull/734)) +- *(setup)* preserve model name when re-running onboarding with same provider ([#600](https://github.com/nearai/ironclaw/pull/600)) ([#694](https://github.com/nearai/ironclaw/pull/694)) +- *(setup)* initialize secrets crypto for env-var security option ([#666](https://github.com/nearai/ironclaw/pull/666)) ([#706](https://github.com/nearai/ironclaw/pull/706)) +- persist /model selection across restarts ([#707](https://github.com/nearai/ironclaw/pull/707)) +- *(routines)* resolve message tool channel/target from per-job metadata ([#708](https://github.com/nearai/ironclaw/pull/708)) +- sanitize HTML error bodies from MCP servers to prevent web UI white screen ([#263](https://github.com/nearai/ironclaw/pull/263)) ([#656](https://github.com/nearai/ironclaw/pull/656)) +- prevent Instant duration overflow on Windows ([#657](https://github.com/nearai/ironclaw/pull/657)) ([#664](https://github.com/nearai/ironclaw/pull/664)) +- enable libsql remote + tls features for Turso cloud sync ([#587](https://github.com/nearai/ironclaw/pull/587)) +- *(tests)* replace hardcoded /tmp paths with tempdir + add 300 unit tests ([#659](https://github.com/nearai/ironclaw/pull/659)) +- *(llm)* nudge LLM when it expresses tool intent without calling tools ([#653](https://github.com/nearai/ironclaw/pull/653)) +- *(llm)* report zero cost for OpenRouter free-tier models ([#463](https://github.com/nearai/ironclaw/pull/463)) ([#613](https://github.com/nearai/ironclaw/pull/613)) +- reliable network tests and improved tool error messages ([#626](https://github.com/nearai/ironclaw/pull/626)) +- *(wasm)* use per-engine cache dirs on Windows to avoid file lock error ([#624](https://github.com/nearai/ironclaw/pull/624)) +- *(libsql)* support flexible embedding dimensions ([#534](https://github.com/nearai/ironclaw/pull/534)) + +### Other + +- Restructure CLAUDE.md into modular rules + add pr-shepherd command ([#750](https://github.com/nearai/ironclaw/pull/750)) +- make src/llm/ self-contained for crate extraction ([#767](https://github.com/nearai/ironclaw/pull/767)) +- add simplified Chinese (zh-CN) README translation ([#488](https://github.com/nearai/ironclaw/pull/488)) +- *(job)* cover job tool validation and state transitions ([#681](https://github.com/nearai/ironclaw/pull/681)) +- *(agent)* wire TestRig job tools through the scheduler ([#716](https://github.com/nearai/ironclaw/pull/716)) +- Fix single-message mode to exit after one turn when background channels are enabled ([#719](https://github.com/nearai/ironclaw/pull/719)) +- remove dead code ([#648](https://github.com/nearai/ironclaw/pull/648)) ([#703](https://github.com/nearai/ironclaw/pull/703)) +- add reviewer-feedback guardrails (CLAUDE.md, pre-commit hook, skill) ([#665](https://github.com/nearai/ironclaw/pull/665)) +- update WASM artifact SHA256 checksums [skip ci] ([#631](https://github.com/nearai/ironclaw/pull/631)) +- add explanatory comments to coverage workflow ([#610](https://github.com/nearai/ironclaw/pull/610)) +- build system prompt once per turn, skip tools on force-text ([#583](https://github.com/nearai/ironclaw/pull/583)) +- add comprehensive subdirectory CLAUDE.md files and update root ([#589](https://github.com/nearai/ironclaw/pull/589)) +- Improve test infrastructure: StubChannel, gateway helpers, security tests, search edge cases ([#623](https://github.com/nearai/ironclaw/pull/623)) +- *(workspace)* regression test for document_path in search results ([#509](https://github.com/nearai/ironclaw/pull/509)) + ### Added - AWS Bedrock LLM provider via native Converse API with IAM and SSO auth support (feature-gated: `--features bedrock`) diff --git a/Cargo.lock b/Cargo.lock index 064f3493..be0bdb23 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3350,7 +3350,7 @@ dependencies = [ [[package]] name = "ironclaw" -version = "0.16.1" +version = "0.17.0" dependencies = [ "aes-gcm", "aho-corasick", diff --git a/Cargo.toml b/Cargo.toml index 1e1d909a..b3551b44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ exclude = [ [package] name = "ironclaw" -version = "0.16.1" +version = "0.17.0" edition = "2024" rust-version = "1.92" description = "Secure personal AI assistant that protects your data and expands its capabilities on the fly" From 9d4cf308eff0e414a4758b2c2f79fef3f39fe30b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 17:55:38 +0000 Subject: [PATCH 2/2] chore: update WASM artifact SHA256 checksums [skip ci] (#876) Co-authored-by: github-actions[bot] --- registry/channels/discord.json | 2 +- registry/channels/slack.json | 2 +- registry/channels/telegram.json | 2 +- registry/channels/whatsapp.json | 2 +- registry/tools/github.json | 2 +- registry/tools/gmail.json | 2 +- registry/tools/google-calendar.json | 2 +- registry/tools/google-docs.json | 2 +- registry/tools/google-drive.json | 2 +- registry/tools/google-sheets.json | 2 +- registry/tools/google-slides.json | 2 +- registry/tools/slack.json | 2 +- registry/tools/telegram.json | 2 +- registry/tools/web-search.json | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/registry/channels/discord.json b/registry/channels/discord.json index abd29d82..1351c96d 100644 --- a/registry/channels/discord.json +++ b/registry/channels/discord.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/discord-wasm32-wasip2.tar.gz", - "sha256": "030707431717bca3411a48f311c6ab5f92a45c747de26cafe4f6e3e23a8b3b2d" + "sha256": "85b424604482da3fb9badb56a0360ff4c93670bc7be0ad7f57ef9d85ff972b6f" } }, "auth_summary": { diff --git a/registry/channels/slack.json b/registry/channels/slack.json index f123798f..218fc12a 100644 --- a/registry/channels/slack.json +++ b/registry/channels/slack.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/slack-wasm32-wasip2.tar.gz", - "sha256": "6ed36077b67ac70a041f06f760f93ba79b33269885413c3c3f2c8c87ee60807e" + "sha256": "9190b8250bd20c22a8c97b1ea19a6590624a69d6c63a5f5c240a7840a4966286" } }, "auth_summary": { diff --git a/registry/channels/telegram.json b/registry/channels/telegram.json index 42fd7fb3..965c469d 100644 --- a/registry/channels/telegram.json +++ b/registry/channels/telegram.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/telegram-wasm32-wasip2.tar.gz", - "sha256": "98c86895a9c4b0a1e19fe8a47f1ccbfe7e972e112b05e584bc897130dc32283a" + "sha256": "55f2a56e7afd129a48fd49b019f12f9638705defa53fa323ad3b8978d7c59664" } }, "auth_summary": { diff --git a/registry/channels/whatsapp.json b/registry/channels/whatsapp.json index 84a69dc0..098f51d7 100644 --- a/registry/channels/whatsapp.json +++ b/registry/channels/whatsapp.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/whatsapp-wasm32-wasip2.tar.gz", - "sha256": "bd35cad18d87292ea8d2f52db9b514ed9f814a414de910f59073d475c26c4c14" + "sha256": "06bcf315df93af9f683134f4055eb810c602863d8c4a632e3733a10217cc5a89" } }, "auth_summary": { diff --git a/registry/tools/github.json b/registry/tools/github.json index 67d41882..2ba222ba 100644 --- a/registry/tools/github.json +++ b/registry/tools/github.json @@ -20,7 +20,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/github-wasm32-wasip2.tar.gz", - "sha256": "6fcd32719a4ff15641a4b50fff8984686550f0c491dce60518f4126857d0c544" + "sha256": "c443328a3f10b6a4cf4d3d62c9217aca204f6467ef753d986b58ca966ca53514" } }, "auth_summary": { diff --git a/registry/tools/gmail.json b/registry/tools/gmail.json index f1e7ab6e..9ef1a0f9 100644 --- a/registry/tools/gmail.json +++ b/registry/tools/gmail.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/gmail-wasm32-wasip2.tar.gz", - "sha256": "023da7000b17568bf0e64b2e5013c8a042b2f323c85f1632339231c73d500e39" + "sha256": "e4f0095890d22e3de8e9d516f2e1e91964f8ff4acdaaa19f0a7094a1f2d7786b" } }, "auth_summary": { diff --git a/registry/tools/google-calendar.json b/registry/tools/google-calendar.json index cfc6ec92..40342b48 100644 --- a/registry/tools/google-calendar.json +++ b/registry/tools/google-calendar.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/google-calendar-wasm32-wasip2.tar.gz", - "sha256": "fc42277b65881d6e9bcc5403dc54c7f5b3ddeaaaf04617fce2c5da05d76325f0" + "sha256": "2d202bd838de94677c91ea6473c7155f021c0500cf91794d17639b1b27446b3d" } }, "auth_summary": { diff --git a/registry/tools/google-docs.json b/registry/tools/google-docs.json index 3f7107b2..9aaf9d17 100644 --- a/registry/tools/google-docs.json +++ b/registry/tools/google-docs.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/google-docs-wasm32-wasip2.tar.gz", - "sha256": "385c04abd1e6b8011ccc330e1f4bd7ce58577e488959b51594aa04eb26cbe7cc" + "sha256": "7a5e40fe58199e34f7625e11d22e5601cdfd2a94a10193a83f1925180bbb66df" } }, "auth_summary": { diff --git a/registry/tools/google-drive.json b/registry/tools/google-drive.json index d0e02f56..74bc825c 100644 --- a/registry/tools/google-drive.json +++ b/registry/tools/google-drive.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/google-drive-wasm32-wasip2.tar.gz", - "sha256": "1b107d575a5d52cc8c76d9a681802190f4373fb485f7f54f445533f097fa37c0" + "sha256": "d19f856fde0ae0320fd3f636a34116af1df0b59698c3684b686e8412a60e887f" } }, "auth_summary": { diff --git a/registry/tools/google-sheets.json b/registry/tools/google-sheets.json index 8eb88ced..716880db 100644 --- a/registry/tools/google-sheets.json +++ b/registry/tools/google-sheets.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/google-sheets-wasm32-wasip2.tar.gz", - "sha256": "c4f6b1e8c5126ac2c8a4b98e4283a3afa32223d2488fc3c3a609758c0c9beb90" + "sha256": "e113c317f9fa21ea68d0ec8accbba4a62a8222ff3c4655ae85e1e58e01de3250" } }, "auth_summary": { diff --git a/registry/tools/google-slides.json b/registry/tools/google-slides.json index 6c3a187c..25e9a64a 100644 --- a/registry/tools/google-slides.json +++ b/registry/tools/google-slides.json @@ -18,7 +18,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/google-slides-wasm32-wasip2.tar.gz", - "sha256": "7110b8565340c888e51f99e9c013bf4de8f8a7f7b33bace00eb8fc47831ff20b" + "sha256": "7875a5ae1283e57937e0618bf14465f4bb4ee7f49110312382670202f4c567a5" } }, "auth_summary": { diff --git a/registry/tools/slack.json b/registry/tools/slack.json index c1102021..e9f7e6d2 100644 --- a/registry/tools/slack.json +++ b/registry/tools/slack.json @@ -18,7 +18,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/slack-tool-wasm32-wasip2.tar.gz", - "sha256": "6ed36077b67ac70a041f06f760f93ba79b33269885413c3c3f2c8c87ee60807e" + "sha256": "9190b8250bd20c22a8c97b1ea19a6590624a69d6c63a5f5c240a7840a4966286" } }, "auth_summary": { diff --git a/registry/tools/telegram.json b/registry/tools/telegram.json index d96d8985..a01b1961 100644 --- a/registry/tools/telegram.json +++ b/registry/tools/telegram.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/telegram-mtproto-wasm32-wasip2.tar.gz", - "sha256": "98c86895a9c4b0a1e19fe8a47f1ccbfe7e972e112b05e584bc897130dc32283a" + "sha256": "55f2a56e7afd129a48fd49b019f12f9638705defa53fa323ad3b8978d7c59664" } }, "auth_summary": { diff --git a/registry/tools/web-search.json b/registry/tools/web-search.json index 7112d9b2..e61ab0dd 100644 --- a/registry/tools/web-search.json +++ b/registry/tools/web-search.json @@ -19,7 +19,7 @@ "artifacts": { "wasm32-wasip2": { "url": "https://github.com/nearai/ironclaw/releases/latest/download/web-search-wasm32-wasip2.tar.gz", - "sha256": "66cb2b9b00652385e9f30f17c74902b9222c17c53e9d3bd1ef42f5cab705bcf6" + "sha256": "dd7e54956ee0b3037ca3506dbcbd20efcc4cd2749175ed511b3640b09f77506a" } }, "auth_summary": {