v0.2.0
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-searchprotocol contract layer undersrc/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-searchprotocol payloads - extracted helper/spill ownership modules
- repair-friendly tool failure messaging
- contract-detail extraction helpers
- benchmark-runner handling of recoverable
pi-searchextension failures
- malformed
- Added maintainer-facing ownership documentation in
docs/pi-search-contract.md.
Changed
- Changed
src/pi-search/extension.tsinto a composition root over extractedpi-searchsubsystems:- 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 activepi-searchsemantics from rendered tool output. - Changed benchmark runs to record recoverable
pi-searchtool failures as explicit benchmark evidence and count them in per-query stats.
Fixed
- Fixed the initial
pi-searchtool failure paths to return more repairable agent-loop feedback for:- empty
searchqueries - unknown
read_search_results.search_idvalues - missing
read_documentdocids
- empty
- 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-searchowning its standalone extension contractpi-seriniconsuming and benchmarking that contract correctly- making extension failures more explicit and measurable inside benchmark runs