Repository navigation
v0.3.3 — headless standard, primitives, safety net, visibility completion
The "headless standard" release. Soul Protocol is now positioned as a language-agnostic standard with a Python reference implementation, plus the rest of the #97 visibility work and a safety net for destructive CLI commands.
The 0.3.2 number is intentionally skipped — its scope rolled into 0.3.3 alongside the rest of the work that landed in the same session.
Headlines
docs/SPEC.md— language-agnostic contract for any third-party Soul Protocol implementation in Rust, Go, TypeScript, or a custom Python runtime.- 5 journal/retrieval primitives —
Journal.appendreturns the committed entry,Journal.query(action_prefix=...), typedDataRef,RetrievalRequest.point_in_time, asyncSourceAdapter.aquery+RetrievalRouter.adispatch. - Spec-level retrieval vocabulary —
Credential,CredentialBroker,SourceAdapter,AsyncSourceAdapter, and theRetrievalErrorhierarchy moved intospec/retrieval.py. ConcreteRetrievalRouter/InMemoryCredentialBrokerremoved from this package and now ship in pocketpaw. - Backup-before-cleanup safety net —
soul cleanupandsoul forgetare dry-run by default and require--applyto execute. Before any destructive save, a side-by-side.soul.bakis written. Closes #148. - System prompt safety guardrails —
Soul.to_system_prompt()appends a default safety section so the agent doesn't surface core memory, bond details, or evolution history when asked. Soul.public_profile()— safe-to-expose subset of identity for registries and peer discovery.- The visibility tier work shipped in PR #114 plus the two pieces above close the remaining surface of #97.
Tests
2371 passed, 4 warnings
Migration
If you import from soul_protocol.engine.retrieval, switch to soul_protocol.spec.retrieval. If you depend on the concrete RetrievalRouter / InMemoryCredentialBroker, those are now in pocketpaw.retrieval (pocketpaw v0.4.17+). See CHANGELOG.md for the full migration table.