Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
3d7472a
Merge pull request #1890 from nearai/staging-promote/420f165a-2387330…
henrypark133 Apr 1, 2026
028230f
Merge pull request #1887 from nearai/staging-promote/2f2ad260-2386661…
henrypark133 Apr 1, 2026
38e0165
Merge pull request #1885 from nearai/staging-promote/510fe19a-2386377…
henrypark133 Apr 1, 2026
8af99c9
Merge pull request #1883 from nearai/staging-promote/eb3fa0e6-2385886…
henrypark133 Apr 1, 2026
8395569
Merge pull request #1879 from nearai/staging-promote/58b01f15-2385653…
henrypark133 Apr 1, 2026
ab67242
Merge pull request #1878 from nearai/staging-promote/27a2fab1-2385391…
henrypark133 Apr 1, 2026
9183ad7
Merge pull request #1866 from nearai/staging-promote/73759253-2383726…
henrypark133 Apr 1, 2026
dbc5b2e
Merge pull request #1857 from nearai/staging-promote/684a9d30-2383529…
henrypark133 Apr 1, 2026
e85e071
Merge pull request #1847 from nearai/staging-promote/f441d788-2382552…
henrypark133 Apr 1, 2026
bea90ad
Merge pull request #1843 from nearai/staging-promote/b6b3ffa1-2381956…
henrypark133 Apr 1, 2026
47ad9b8
Merge pull request #1830 from nearai/staging-promote/78e448df-2380783…
henrypark133 Apr 1, 2026
c8edcf0
Merge pull request #1812 from nearai/staging-promote/27fa292b-2378212…
henrypark133 Apr 1, 2026
7be3b91
[codex] Label migration PRs with DB MIGRATION (#1967)
serrrfirat Apr 6, 2026
6f7575d
Fix Telegram UTF-16 message splitting (#1961)
serrrfirat Apr 8, 2026
e3789a3
Merge pull request #2170 from nearai/staging-promote/1eaea594-2416018…
henrypark133 Apr 9, 2026
9e89f77
Merge pull request #2163 from nearai/staging-promote/bb2c3e1d-2415433…
henrypark133 Apr 9, 2026
d17161a
Merge pull request #2161 from nearai/staging-promote/315c4cf8-2415150…
henrypark133 Apr 9, 2026
6e30425
Merge pull request #2156 from nearai/staging-promote/8aa09412-2414640…
henrypark133 Apr 9, 2026
75cd523
Merge pull request #2152 from nearai/staging-promote/482ee57c-2414098…
henrypark133 Apr 9, 2026
7af0c26
Merge pull request #2149 from nearai/staging-promote/3df1bf38-2413261…
henrypark133 Apr 9, 2026
2c6aedf
Merge pull request #2137 from nearai/staging-promote/10d970d4-2412572…
henrypark133 Apr 9, 2026
b5c635f
Merge pull request #2136 from nearai/staging-promote/fdb093fb-2411828…
henrypark133 Apr 9, 2026
f0db0a3
chore: bump registry versions for github tool, whatsapp and telegram …
henrypark133 Apr 9, 2026
90a7d03
Merge branch 'main' into staging-promote/42623ed1-23780941831
henrypark133 Apr 9, 2026
ea4bd07
Merge pull request #1809 from nearai/staging-promote/42623ed1-2378094…
henrypark133 Apr 9, 2026
264ef21
Merge pull request #1942 from nearai/staging-promote/4c9a985b-2393180…
henrypark133 Apr 9, 2026
bab0117
Merge pull request #1936 from nearai/staging-promote/2b6f22f1-2392212…
henrypark133 Apr 9, 2026
5afc32c
Merge pull request #1933 from nearai/staging-promote/d789a5d2-2391973…
henrypark133 Apr 9, 2026
8718dff
Merge pull request #1929 from nearai/staging-promote/3974163e-2391781…
henrypark133 Apr 9, 2026
a4ca8cf
Merge pull request #1927 from nearai/staging-promote/a6835808-2391511…
henrypark133 Apr 9, 2026
f2c2bbb
Merge pull request #1922 from nearai/staging-promote/5c35b58f-2391036…
henrypark133 Apr 9, 2026
4928ae1
Merge pull request #1917 from nearai/staging-promote/db5903fe-2390288…
henrypark133 Apr 9, 2026
ff455fe
Merge pull request #1913 from nearai/staging-promote/5435b38e-2388927…
henrypark133 Apr 9, 2026
d5e27cc
Merge pull request #1896 from nearai/staging-promote/a55aff98-2388158…
henrypark133 Apr 9, 2026
a0ece9e
Merge pull request #2027 from nearai/staging-promote/f3036388-2399513…
henrypark133 Apr 9, 2026
1489daa
Merge pull request #2026 from nearai/staging-promote/833dd32a-2399450…
henrypark133 Apr 9, 2026
a570d62
Merge pull request #2007 from nearai/staging-promote/54519776-2396987…
henrypark133 Apr 9, 2026
654f61d
Merge pull request #2006 from nearai/staging-promote/0588dd1b-2396845…
henrypark133 Apr 9, 2026
3a5295d
Merge pull request #1982 from nearai/staging-promote/994f9607-2395879…
henrypark133 Apr 9, 2026
5aed1b4
Merge pull request #1978 from nearai/staging-promote/b91bdbdb-2395480…
henrypark133 Apr 9, 2026
479a5fd
Merge pull request #1974 from nearai/staging-promote/1e2d3352-2395113…
henrypark133 Apr 9, 2026
434f2ef
Merge pull request #1972 from nearai/staging-promote/fd7dd6c6-2394925…
henrypark133 Apr 9, 2026
1b0d295
Merge pull request #1959 from nearai/staging-promote/37a7de43-2393813…
henrypark133 Apr 9, 2026
4896996
Merge pull request #2293 from nearai/staging-promote/2f2fe306-2426380…
henrypark133 Apr 10, 2026
7cc172d
Merge pull request #2290 from nearai/staging-promote/b4502cf9-2425811…
henrypark133 Apr 10, 2026
fe37205
Merge pull request #2278 from nearai/staging-promote/2cc55460-2425498…
henrypark133 Apr 10, 2026
0f700af
Merge pull request #2272 from nearai/staging-promote/f37a26f7-2425259…
henrypark133 Apr 10, 2026
db449ee
Merge pull request #2266 from nearai/staging-promote/56eb0adf-2425000…
henrypark133 Apr 10, 2026
f9639af
Merge pull request #2264 from nearai/staging-promote/a8e6533a-2424764…
henrypark133 Apr 10, 2026
66c7de1
Merge pull request #2256 from nearai/staging-promote/e5b82fc6-2424031…
henrypark133 Apr 10, 2026
1538cf8
Merge pull request #2253 from nearai/staging-promote/55cdbf2b-2423827…
henrypark133 Apr 10, 2026
ac1f301
Merge pull request #2251 from nearai/staging-promote/4147c6d5-2423615…
henrypark133 Apr 10, 2026
8c55fee
Merge pull request #2243 from nearai/staging-promote/efdb738a-2422991…
henrypark133 Apr 10, 2026
c5a9237
Merge pull request #2226 from nearai/staging-promote/b9b239ee-2422188…
henrypark133 Apr 10, 2026
30b2d17
Merge pull request #2218 from nearai/staging-promote/26e5e4cf-2421365…
henrypark133 Apr 10, 2026
c8d824d
Merge pull request #2213 from nearai/staging-promote/e0bdd74f-2420621…
henrypark133 Apr 10, 2026
e462b5e
Merge pull request #2208 from nearai/staging-promote/9399fccc-2420383…
henrypark133 Apr 10, 2026
de20175
Merge pull request #2205 from nearai/staging-promote/b819d704-2420134…
henrypark133 Apr 10, 2026
de2ab7a
Merge pull request #2197 from nearai/staging-promote/13c458e3-2419291…
henrypark133 Apr 10, 2026
5e58eed
Merge pull request #2191 from nearai/staging-promote/6895cdad-2418521…
henrypark133 Apr 10, 2026
4da53f4
Merge pull request #2187 from nearai/staging-promote/63a48e4e-2418283…
henrypark133 Apr 10, 2026
d3f5210
Merge pull request #2131 from nearai/staging-promote/288fe49a-2411079…
henrypark133 Apr 10, 2026
174d1e3
Merge pull request #2128 from nearai/staging-promote/79c1b0fd-2410831…
henrypark133 Apr 10, 2026
acba3f4
Merge pull request #2120 from nearai/staging-promote/86c15903-2410011…
henrypark133 Apr 10, 2026
299e7f5
Merge pull request #2115 from nearai/staging-promote/00fd2e88-2409215…
henrypark133 Apr 10, 2026
b0f4a2b
Merge pull request #2108 from nearai/staging-promote/f765958f-2407864…
henrypark133 Apr 10, 2026
6c5909c
Merge pull request #2199 from nearai/staging-promote/af9b59a2-2419867…
henrypark133 Apr 10, 2026
ffeeec1
Merge pull request #2106 from nearai/staging-promote/13774cc0-2407644…
henrypark133 Apr 10, 2026
165b520
Merge pull request #2105 from nearai/staging-promote/6fa2d0ec-2407177…
henrypark133 Apr 10, 2026
0d0e20e
Merge pull request #2097 from nearai/staging-promote/0ab1a474-2406476…
henrypark133 Apr 10, 2026
9537702
Merge pull request #2090 from nearai/staging-promote/5d6a247d-2405773…
henrypark133 Apr 10, 2026
203a994
Merge pull request #2076 from nearai/staging-promote/8b629851-2404193…
henrypark133 Apr 10, 2026
f72bdb2
Merge pull request #2067 from nearai/staging-promote/9cf37364-2403963…
henrypark133 Apr 10, 2026
b847855
Merge pull request #2063 from nearai/staging-promote/d0096dfc-2403542…
henrypark133 Apr 10, 2026
ea91d9d
Merge pull request #2053 from nearai/staging-promote/f9ed8152-2402323…
henrypark133 Apr 10, 2026
1e8c160
Merge pull request #2052 from nearai/staging-promote/13852ff5-2402166…
henrypark133 Apr 10, 2026
3b55836
Merge pull request #2044 from nearai/staging-promote/5083aed4-2400241…
henrypark133 Apr 10, 2026
269b2d3
Merge pull request #2032 from nearai/staging-promote/733678dd-2399677…
henrypark133 Apr 10, 2026
cc5846d
Merge pull request #2028 from nearai/staging-promote/e1695914-2399587…
henrypark133 Apr 10, 2026
0facf16
Merge pull request #1953 from nearai/staging-promote/aa59ca09-2393525…
henrypark133 Apr 10, 2026
92388b7
revert: undo 2 main-only commits to unblock staging-promote merge (#2…
henrypark133 Apr 10, 2026
8c65f3d
chore: merge main into staging-promote to resolve conflicts
henrypark133 Apr 10, 2026
ba0f825
Merge pull request #1893 from nearai/staging-promote/9c6d8cb3-2387531…
henrypark133 Apr 10, 2026
7378da3
Merge branch 'main' into staging-promote/a53eac5c-24269060157
henrypark133 Apr 11, 2026
fc0ff2f
Merge pull request #2301 from nearai/staging-promote/a53eac5c-2426906…
henrypark133 Apr 11, 2026
fda3767
chore: release (#2075)
ironclaw-ci[bot] Apr 11, 2026
be6de43
fix(ci): unblock v0.25.0 release — fix tag filter and publish config …
henrypark133 Apr 11, 2026
72829db
chore: update WASM artifact SHA256 checksums [skip ci] (#2308)
github-actions[bot] Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ permissions:
on:
push:
tags:
- '**[0-9]+.[0-9]+.[0-9]+*'
- 'ironclaw-v[0-9]+.[0-9]+.[0-9]+*'

Copilot AI Apr 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The on.push.tags filter uses glob patterns (not regex). The pattern ironclaw-v[0-9]+.[0-9]+.[0-9]+* likely won't match tags like ironclaw-v0.25.0 (the + is treated literally and the [0-9] class only matches a single digit). Replace this with a glob that actually matches semver tags, e.g. ironclaw-v[0-9]*.[0-9]*.[0-9]* (optionally with a trailing * to allow prerelease/build suffixes).

Suggested change
- 'ironclaw-v[0-9]+.[0-9]+.[0-9]+*'
- 'ironclaw-v[0-9]*.[0-9]*.[0-9]*'

Copilot uses AI. Check for mistakes.

jobs:
# Run 'dist plan' (or host) to determine what tasks we need to do
Expand Down
123 changes: 123 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,129 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.25.0](https://github.com/nearai/ironclaw/compare/ironclaw-v0.24.0...ironclaw-v0.25.0) - 2026-04-11

### Added

- *(tools)* production-grade coding tools, file history, and skills ([#2025](https://github.com/nearai/ironclaw/pull/2025))
- add extensible deployment profiles (IRONCLAW_PROFILE) ([#2203](https://github.com/nearai/ironclaw/pull/2203))
- *(skills)* commitments system — active intake for personal AI assistant ([#1736](https://github.com/nearai/ironclaw/pull/1736))
- add native Composio tool for third-party app integrations ([#920](https://github.com/nearai/ironclaw/pull/920))
- *(gateway)* extract gateway frontend into ironclaw_gateway crate with widget system ([#1725](https://github.com/nearai/ironclaw/pull/1725))
- *(railway)* build staging target with pre-bundled WASM extensions ([#2219](https://github.com/nearai/ironclaw/pull/2219))
- *(docker)* pre-bundle WASM extensions in staging image ([#2210](https://github.com/nearai/ironclaw/pull/2210))
- *(tui)* ship TUI in default binary ([#2195](https://github.com/nearai/ironclaw/pull/2195))
- *(admin)* admin tool policy to disable tools for users ([#2154](https://github.com/nearai/ironclaw/pull/2154))
- *(web)* add scroll-to-bottom arrow in gateway chat ([#2202](https://github.com/nearai/ironclaw/pull/2202))
- unified tool dispatch + schema-validated workspace ([#2049](https://github.com/nearai/ironclaw/pull/2049))
- *(workspace)* admin system prompt shared with all users ([#2109](https://github.com/nearai/ironclaw/pull/2109))
- *(engine)* restage skill repair learning loop on staging ([#1962](https://github.com/nearai/ironclaw/pull/1962))
- *(tui)* port full-featured Ratatui terminal UI onto staging ([#1973](https://github.com/nearai/ironclaw/pull/1973))
- *(slack)* implement on_broadcast and fix message tool hints ([#2113](https://github.com/nearai/ironclaw/pull/2113))
- *(i18n)* add Korean translation, fix zh-CN drift, and prevent future drift via pre-commit hook ([#2065](https://github.com/nearai/ironclaw/pull/2065))
- NEAR AI MCP server ([#2009](https://github.com/nearai/ironclaw/pull/2009))
- *(test)* dual-mode live/replay test harness with LLM judge ([#2039](https://github.com/nearai/ironclaw/pull/2039))
- add AWS Bedrock embeddings provider ([#1568](https://github.com/nearai/ironclaw/pull/1568))
- *(ownership)* centralized ownership model with typed identities, DB-backed pairing, and OwnershipCache ([#1898](https://github.com/nearai/ironclaw/pull/1898))
- *(tools)* persistent per-user tool permission system ([#1911](https://github.com/nearai/ironclaw/pull/1911))
- *(engine)* Unified Thread-Capability-CodeAct execution engine (v2 architecture) ([#1557](https://github.com/nearai/ironclaw/pull/1557))
- *(auth)* direct OAuth/social login with Google, GitHub, Apple, and NEAR wallet ([#1798](https://github.com/nearai/ironclaw/pull/1798))
- Add ACP (Agent Client Protocol) job mode for delegating to any compatible coding agent ([#1600](https://github.com/nearai/ironclaw/pull/1600))
- *(workspace)* metadata-driven indexing/hygiene, document versioning, and patch ([#1723](https://github.com/nearai/ironclaw/pull/1723))
- *(jobs)* per-job MCP server filtering and max_iterations cap ([#1243](https://github.com/nearai/ironclaw/pull/1243))
- *(config)* unify all settings to DB > env > default priority ([#1722](https://github.com/nearai/ironclaw/pull/1722))
- *(telegram)* add sendVoice support for audio/ogg attachments ([#1314](https://github.com/nearai/ironclaw/pull/1314))
- *(setup)* build ironclaw-worker Docker image in setup wizard ([#1757](https://github.com/nearai/ironclaw/pull/1757))

### Fixed

- *(ci)* bump 5 channel versions + fix lifetime desync in panics check ([#2300](https://github.com/nearai/ironclaw/pull/2300))
- *(test)* case-insensitive hint matching in TraceLlm step_matches ([#2292](https://github.com/nearai/ironclaw/pull/2292))
- *(v2)* tool naming, auth gates, schema flatten, WASM traps, workspace race ([#2209](https://github.com/nearai/ironclaw/pull/2209))
- *(ci)* resolve 4 staging test failures ([#2273](https://github.com/nearai/ironclaw/pull/2273))
- *(docker)* copy profiles/ into build stages ([#2289](https://github.com/nearai/ironclaw/pull/2289))
- *(engine)* mission cron scheduling + timezone propagation ([#1944](https://github.com/nearai/ironclaw/pull/1944)) ([#1957](https://github.com/nearai/ironclaw/pull/1957))
- *(oauth)* use localhost for redirect URI when bound to 0.0.0.0 ([#2247](https://github.com/nearai/ironclaw/pull/2247))
- *(bridge)* sanitize auth_url on engine v2 path ([#2206](https://github.com/nearai/ironclaw/pull/2206)) ([#2215](https://github.com/nearai/ironclaw/pull/2215))
- *(docs)* explain in more details `activation` block & installation steps for skills ([#2216](https://github.com/nearai/ironclaw/pull/2216))
- *(docker)* consume CACHE_BUST arg so BuildKit invalidates cache

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This changelog entry is missing a reference to its corresponding pull request. For better traceability and consistency with other entries in this file, please add the PR link if available.

- *(gateway)* suppress duplicate text response during auth flow and unify extension config modal ([#2172](https://github.com/nearai/ironclaw/pull/2172))
- *(agent)* stop intercepting bare yes/no/always as approval when nothing pending ([#2178](https://github.com/nearai/ironclaw/pull/2178))
- *(ci)* resolve 3 staging test failures ([#2207](https://github.com/nearai/ironclaw/pull/2207))
- *(wasm)* upgrade Wasmtime to 43.0.1 and restore CI ([#2224](https://github.com/nearai/ironclaw/pull/2224))
- fix(auth) first-pass Gmail OAuth auth prompt in chat ([#2038](https://github.com/nearai/ironclaw/pull/2038))
- *(db)* repair V6 migration checksum and guard against re-modification ([#1328](https://github.com/nearai/ironclaw/pull/1328)) ([#2101](https://github.com/nearai/ironclaw/pull/2101))
- *(ci)* target wasm32-wasip2 in WASM build script ([#2175](https://github.com/nearai/ironclaw/pull/2175))
- *(test)* use canonical extension name in setup submit test ([#2158](https://github.com/nearai/ironclaw/pull/2158))
- fix (skills) installs for invalid catalog names ([#2040](https://github.com/nearai/ironclaw/pull/2040))
- universal engine-version tool visibility filtering ([#2132](https://github.com/nearai/ironclaw/pull/2132))
- *(ownership)* remove silent cross-tenant credential fallback ([#2099](https://github.com/nearai/ironclaw/pull/2099))
- *(e2e)* canonicalize extension names + fix remaining test failures ([#2129](https://github.com/nearai/ironclaw/pull/2129))
- *(ownership)* unify ownership checks via Owned trait and fix mission visibility bug ([#2126](https://github.com/nearai/ironclaw/pull/2126))
- *(web)* intercept approval text input in chat ([#2124](https://github.com/nearai/ironclaw/pull/2124))
- *(staging)* repair 4 categories of CI test failures ([#2091](https://github.com/nearai/ironclaw/pull/2091))
- *(web)* emit Done after response — SSE ordering fix ([#2079](https://github.com/nearai/ironclaw/pull/2079)) ([#2104](https://github.com/nearai/ironclaw/pull/2104))
- *(tools)* gate claude_code and acp modes behind enabled flags ([#2003](https://github.com/nearai/ironclaw/pull/2003))
- *(acp)* propagate follow-up prompt failures as job errors ([#1981](https://github.com/nearai/ironclaw/pull/1981))
- color for tools use ([#2096](https://github.com/nearai/ironclaw/pull/2096))
- *(registry)* use canonical underscore names in manifests to fix WASM install ([#2029](https://github.com/nearai/ironclaw/pull/2029))
- *(safety)* add credential patterns and sensitive path blocklist ([#1675](https://github.com/nearai/ironclaw/pull/1675))
- *(channels)* allow telegram wasm channel name ([#2051](https://github.com/nearai/ironclaw/pull/2051))
- *(staging)* repair broken test build and macOS-incompatible SSRF tests ([#2064](https://github.com/nearai/ironclaw/pull/2064))
- honor auto-approve tools in engine v2 ([#2013](https://github.com/nearai/ironclaw/pull/2013))
- *(bridge)* sanitize orphaned tool results in v2 adapter ([#1975](https://github.com/nearai/ironclaw/pull/1975))
- *(docker)* ensure ironclaw runtime home exists ([#1918](https://github.com/nearai/ironclaw/pull/1918))
- *(agent)* prevent self-repair notification spam for stuck jobs ([#1867](https://github.com/nearai/ironclaw/pull/1867))
- *(self-repair)* skip built-in tools in broken tool detection and repair ([#1991](https://github.com/nearai/ironclaw/pull/1991))
- unblock bootstrap ownership on dynamic_tools ([#2005](https://github.com/nearai/ironclaw/pull/2005))
- *(llm)* invert reasoning default — unknown models skip think/final tags ([#1952](https://github.com/nearai/ironclaw/pull/1952))
- *(llm)* add sanitize_tool_messages to OpenAiCodexProvider ([#1971](https://github.com/nearai/ironclaw/pull/1971))
- update CLI help snapshots for --auto-approve and acp command ([#1966](https://github.com/nearai/ironclaw/pull/1966))
- *(docker)* switch to glibc to fix libSQL segfault on DB reopen ([#1930](https://github.com/nearai/ironclaw/pull/1930))
- *(db)* swap V16/V17 to match production PG (document_versions before user_identities) ([#1931](https://github.com/nearai/ironclaw/pull/1931))
- *(db)* keep V15=conversation_source_channel to match production PG ([#1928](https://github.com/nearai/ironclaw/pull/1928))
- *(db)* resolve V15 migration numbering conflict ([#1923](https://github.com/nearai/ironclaw/pull/1923))
- *(routines)* add bounded retry for transient lightweight failures ([#1471](https://github.com/nearai/ironclaw/pull/1471))
- *(relay)* thread responses under original message in Slack channels ([#1848](https://github.com/nearai/ironclaw/pull/1848))
- *(worker)* Improve command execution parameter validation ([#1692](https://github.com/nearai/ironclaw/pull/1692))
- *(telegram)* auto-generate webhook secret during setup ([#1536](https://github.com/nearai/ironclaw/pull/1536))
- *(builder)* accept inline-table and object-map dependency formats from LLM ([#1748](https://github.com/nearai/ironclaw/pull/1748))
- *(gemini)* preserve and echo thoughtSignature for Gemini 3.x function calls ([#1752](https://github.com/nearai/ironclaw/pull/1752))
- *(relay)* route async Slack messages to correct channel instead of DMs ([#1845](https://github.com/nearai/ironclaw/pull/1845))
- *(security)* block cross-channel approval thread hijacking ([#1590](https://github.com/nearai/ironclaw/pull/1590))
- *(builder)* add approval context propagation for sub-tool execution ([#1125](https://github.com/nearai/ironclaw/pull/1125))

### Other

- trigger ironclaw-dind image build ([#2190](https://github.com/nearai/ironclaw/pull/2190))
- add amazon tutorial ([#2261](https://github.com/nearai/ironclaw/pull/2261))
- Create QA Bug Report issue template ([#2228](https://github.com/nearai/ironclaw/pull/2228))
- [codex] Stabilize auth readiness and gate flows ([#2050](https://github.com/nearai/ironclaw/pull/2050))
- Add mintlify docs ([#2189](https://github.com/nearai/ironclaw/pull/2189))
- [codex] allow private local llm endpoints ([#1955](https://github.com/nearai/ironclaw/pull/1955))
- *(ci)* add Dependabot and pin GitHub Actions by SHA ([#2043](https://github.com/nearai/ironclaw/pull/2043))
- Fix routine Telegram notification summaries ([#2033](https://github.com/nearai/ironclaw/pull/2033))
- *(channels)* add Slack E2E tests, integration tests, and smoke runner ([#2042](https://github.com/nearai/ironclaw/pull/2042))
- *(engine)* rename ENGINE_V2_TRACE to IRONCLAW_RECORD_TRACE ([#2114](https://github.com/nearai/ironclaw/pull/2114))
- fix multi-tenant inference latency (per-conversation locking + workspace indexing) ([#2127](https://github.com/nearai/ironclaw/pull/2127))
- Improve channel onboarding and Telegram pairing flow ([#2103](https://github.com/nearai/ironclaw/pull/2103))
- *(e2e)* expand SSE resilience coverage ([#1897](https://github.com/nearai/ironclaw/pull/1897))
- add Telegram E2E tests and Rust integration tests ([#2037](https://github.com/nearai/ironclaw/pull/2037))
- (fix) WASM channel HTTP SSRF protections ([#1976](https://github.com/nearai/ironclaw/pull/1976))
- Ignore default model override and empty WASM polls ([#1914](https://github.com/nearai/ironclaw/pull/1914))
- *(workspace)* add direct regression tests for scoped_to_user rebinding ([#1652](https://github.com/nearai/ironclaw/pull/1652)) ([#1875](https://github.com/nearai/ironclaw/pull/1875))
- Fix turn cost footer and per-turn usage accounting ([#1951](https://github.com/nearai/ironclaw/pull/1951))
- Publish ironclaw-worker image from Dockerfile.worker ([#1979](https://github.com/nearai/ironclaw/pull/1979))
- [codex] Move safety benches into ironclaw_safety crate ([#1954](https://github.com/nearai/ironclaw/pull/1954))
- Fix bootstrap paths and webhook defaults

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This entry is missing a PR reference. Additionally, it describes a fix but is located under the Other section instead of Fixed. Consider moving it for better categorization.

- Only tag :latest/:version on release, allow :staging via manual dispatch [skip-regression-check] ([#1925](https://github.com/nearai/ironclaw/pull/1925))
- Add Docker Hub workflow and optimize Dockerfile for size ([#1886](https://github.com/nearai/ironclaw/pull/1886))
- *(e2e)* add agent loop recovery coverage ([#1854](https://github.com/nearai/ironclaw/pull/1854))
- disable cooldown in gateway webhook workflow test ([#1889](https://github.com/nearai/ironclaw/pull/1889))
- Expand GitHub WASM tool surface ([#1884](https://github.com/nearai/ironclaw/pull/1884))
- *(e2e)* cover chat approval parity across channels ([#1858](https://github.com/nearai/ironclaw/pull/1858))
- add routine coverage for issue 1781 ([#1856](https://github.com/nearai/ironclaw/pull/1856))

## [0.24.0](https://github.com/nearai/ironclaw/compare/ironclaw-v0.23.0...ironclaw-v0.24.0) - 2026-03-31

### Added
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ exclude = [

[package]
name = "ironclaw"
version = "0.24.0"
version = "0.25.0"
edition = "2024"
rust-version = "1.92"
description = "Secure personal AI assistant that protects your data and expands its capabilities on the fly"
Expand Down Expand Up @@ -113,14 +113,14 @@ cron = "0.13"
jsonschema = { version = "0.45", default-features = false }

# Shared types
ironclaw_common = { path = "crates/ironclaw_common", version = "0.1.0" }
ironclaw_common = { path = "crates/ironclaw_common", version = "0.2.0" }

# Safety/sanitization
ironclaw_engine = { path = "crates/ironclaw_engine", version = "0.1.0" }
ironclaw_gateway = { path = "crates/ironclaw_gateway", version = "0.1.0" }
ironclaw_safety = { path = "crates/ironclaw_safety", version = "0.2.0" }
ironclaw_engine = { path = "crates/ironclaw_engine" }
ironclaw_gateway = { path = "crates/ironclaw_gateway" }
ironclaw_safety = { path = "crates/ironclaw_safety", version = "0.2.1" }
ironclaw_skills = { path = "crates/ironclaw_skills", version = "0.1.0" }
ironclaw_tui = { path = "crates/ironclaw_tui", version = "0.1.0", optional = true }
ironclaw_tui = { path = "crates/ironclaw_tui", optional = true }
regex = "1"
aho-corasick = "1"

Expand Down
23 changes: 6 additions & 17 deletions channels-src/telegram/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -420,8 +420,7 @@ fn split_message(text: &str) -> Vec<String> {
let window = &remaining[..window_bytes];

// 1. Double newline — best paragraph boundary
let split_at = window
.rfind("\n\n")
let split_at = window.rfind("\n\n")
// 2. Single newline
.or_else(|| window.rfind('\n'))
// 3. Sentence-ending punctuation followed by space.
Expand All @@ -431,21 +430,17 @@ fn split_message(text: &str) -> Vec<String> {
.or_else(|| {
let bytes = window.as_bytes();
// Search backwards for '. ', '! ', '? '
(1..bytes.len())
.rev()
.find(|&i| matches!(bytes[i - 1], b'.' | b'!' | b'?') && bytes[i] == b' ')
(1..bytes.len()).rev().find(|&i| {
matches!(bytes[i - 1], b'.' | b'!' | b'?') && bytes[i] == b' '
})
})
// 4. Word boundary (last space)
.or_else(|| window.rfind(' '))
// 5. Hard cut
.unwrap_or(window_bytes);

// Avoid empty chunks (e.g. text starting with \n\n).
let split_at = if split_at == 0 {
window_bytes
} else {
split_at
};
let split_at = if split_at == 0 { window_bytes } else { split_at };

// Trim whitespace at chunk boundaries for clean Telegram display.
// Note: this drops leading/trailing spaces at split points, which is
Expand Down Expand Up @@ -1401,13 +1396,7 @@ fn send_response(

for (i, chunk) in chunks.into_iter().enumerate() {
// Try Markdown, fall back to plain text on parse errors
let result = send_message(
chat_id,
&chunk,
reply_to,
Some("Markdown"),
message_thread_id,
);
let result = send_message(chat_id, &chunk, reply_to, Some("Markdown"), message_thread_id);

let msg_id = match result {
Ok(id) => {
Expand Down
24 changes: 24 additions & 0 deletions crates/ironclaw_common/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Changelog

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

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

## [Unreleased]

## [0.2.0](https://github.com/nearai/ironclaw/compare/ironclaw_common-v0.1.0...ironclaw_common-v0.2.0) - 2026-04-11

### Added

- *(tui)* port full-featured Ratatui terminal UI onto staging ([#1973](https://github.com/nearai/ironclaw/pull/1973))
- *(engine)* Unified Thread-Capability-CodeAct execution engine (v2 architecture) ([#1557](https://github.com/nearai/ironclaw/pull/1557))
- *(jobs)* per-job MCP server filtering and max_iterations cap ([#1243](https://github.com/nearai/ironclaw/pull/1243))
Comment on lines +14 to +16

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The changelog for ironclaw_common contains several entries (e.g., TUI porting, execution engine architecture) that seem to be copied from the root changelog and are not specific to the changes within this crate. Sub-crate changelogs should ideally only list changes that directly affect that specific crate's code or public API to remain useful for consumers of the individual crate.


### Fixed

- *(engine)* mission cron scheduling + timezone propagation ([#1944](https://github.com/nearai/ironclaw/pull/1944)) ([#1957](https://github.com/nearai/ironclaw/pull/1957))

### Other

- Improve channel onboarding and Telegram pairing flow ([#2103](https://github.com/nearai/ironclaw/pull/2103))
2 changes: 1 addition & 1 deletion crates/ironclaw_common/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ironclaw_common"
version = "0.1.0"
version = "0.2.0"
edition = "2024"
rust-version = "1.92"
description = "Shared types and utilities for the IronClaw workspace"
Expand Down
2 changes: 1 addition & 1 deletion crates/ironclaw_engine/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ dist = false
[dependencies]
async-trait = "0.1"
cron = "0.13"
ironclaw_common = { path = "../ironclaw_common", version = "0.1.0" }
ironclaw_common = { path = "../ironclaw_common", version = "0.2.0" }
ironclaw_skills = { path = "../ironclaw_skills", version = "0.1.0", default-features = false }
chrono = { version = "0.4", features = ["serde"] }
monty = { git = "https://github.com/pydantic/monty.git", rev = "7a0d4b75b72e6ddacafaf36e26486186cdb6eb68" }
Expand Down
1 change: 1 addition & 0 deletions crates/ironclaw_gateway/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ edition = "2024"
rust-version = "1.92"
description = "Gateway frontend assets, layout configuration, and widget extension system for IronClaw"
license = "MIT OR Apache-2.0"
publish = false

[package.metadata.dist]
dist = false
Expand Down
Loading
Loading