Skip to content

rpi v0.3.23

Choose a tag to compare

@bigfish1913 bigfish1913 released this 13 Oct 15:31
· 437 commits to main since this release
9857e79

[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.