Skip to content

v0.2.0

Choose a tag to compare

@justram justram released this 24 Mar 07:14
· 64 commits to main since this release

pi-serini v0.2.0

Minor release focused on making pi-search a clearer standalone validated extension contract, with pi-serini acting as the benchmark-backed validation loop around it.

Added

  • Added a dedicated pi-search protocol contract layer under src/pi-search/protocol/.
  • Added TypeBox-authored protocol schemas, a shared Ajv runtime, explicit protocol error types, schema-backed payload parsers, and structured contract helpers for benchmark-harness consumers.
  • Added focused regression coverage for:
    • malformed pi-search protocol payloads
    • extracted helper/spill ownership modules
    • repair-friendly tool failure messaging
    • contract-detail extraction helpers
    • benchmark-runner handling of recoverable pi-search extension failures
  • Added maintainer-facing ownership documentation in docs/pi-search-contract.md.

Changed

  • Changed src/pi-search/extension.ts into a composition root over extracted pi-search subsystems:
    • protocol validation
    • helper runtime ownership
    • prompt policy
    • spill management
    • cached search state
    • tool handlers
  • Changed benchmark execution to consume pi-search-owned structured result details instead of re-deriving active pi-search semantics from rendered tool output.
  • Changed benchmark runs to record recoverable pi-search tool failures as explicit benchmark evidence and count them in per-query stats.

Fixed

  • Fixed the initial pi-search tool failure paths to return more repairable agent-loop feedback for:
    • empty search queries
    • unknown read_search_results.search_id values
    • missing read_document docids
  • Fixed the ownership boundary so standalone extension contract definitions no longer live implicitly inside the benchmark harness.

Scope

v0.2.0 is not a repo-wide JSON validation rewrite.

This release is specifically about:

  • pi-search owning its standalone extension contract
  • pi-serini consuming and benchmarking that contract correctly
  • making extension failures more explicit and measurable inside benchmark runs