You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[0.3.23] - 2026-10-13
Changed
Refresh the homepage, bilingual documentation navigation and extension catalog;
show registry-backed release/download metadata and retain SDK access.
Forbid unsafe Rust in the AI, agent, harness, tools and telemetry crates.
Require explicit unsafe calls to raw SDK string readers and JSON decoding;
document buffer validity and lifetime requirements without changing the C ABI.
Require explicit unsafe calls to raw string/step deallocators and step-result
adoption, including take_step_result!. Add a non-copyable OwnedString for
safe Rust-side reads and automatic producer-side cleanup after ABI adoption.
Fixed
Own plugin registration contexts through scoped Arc handles instead of
thread-local raw pointers, restoring enclosing registrations on nested calls
and unwinding. Keep the native plugin ABI unchanged.
Use the SDK's safe handle registry and shared string cleanup in plugin-stub;
invalid, retired and cancelled tool handles no longer dereference raw state.
Validate borrowed ABI input strings as UTF-8 before exposing them to callback
bodies, replacing unchecked decoding while retaining pointer validity and
lifetime requirements at the FFI boundary.
Route the stub's discovery, prompt, provider and renderer callbacks through
SDK string trampolines that reject missing output slots. Replace raw tool-state
pointers in adapter tests with safe handles and reuse SDK string deallocation.
Keep standard-library ABI string helpers available with the SDK's default
JSON feature disabled, so string callbacks compile in minimal builds.
Reclaim tool partial callbacks through the producing plugin's registered
deallocator instead of the host allocator, including closed receiver paths.
Adopt callback outputs, tool results and schema strings with scoped ownership
so early returns and host-side unwinding reclaim each allocation once.
Remove duplicate raw string deallocation, leaked prompt-marker contexts and
raw callback state in extension/CLI tests, using SDK views and safe handles.
Give tool execute callbacks an owned-parameter trampoline that reclaims host
inputs on refusal or malformed call IDs. Remove redundant schema Send/Sync
overrides and require explicit unsafe operations inside SDK unsafe functions.