Repository navigation
v3.5.0
What's new
Persona interoperability for pi-subagents, plus a SessionStart hook contract fix and routine dependency maintenance.
Features
pi-subagents persona interoperability (#710) — Systematic categories and agents can now be exported as personas compatible with @tintinweb/pi-subagents, via an opt-in systematic pi-subagents <preview|export|refresh|cleanup> lifecycle for both project- and global-scoped exports. The generator projects Systematic's category/agent model overlays alongside Pi-native thinking, max_turns, tools, and skills fields, while systematic_delegate stays the bounded default so the new pi-subagents delegation boundary remains opt-in and clearly separated.
The export path is hardened for concurrent and adversarial filesystem conditions: a manifest with an exclusive mutation lock, anchored path checks, transactional rollback, and hash-gated deletion. Filesystem and locking code fails closed on symlink or non-directory path components, refuses unsafe manifest edits, and verifies manifest-owned files with hash-drift checks before removal. Manifest reads open and validate a single descriptor before parsing — rejecting symlinked paths via O_NOFOLLOW where available, and verifying opened-file identity via lstat as a fallback to close symlink/replacement race conditions. Real exported-persona discovery and execution were verified end-to-end against pinned @tintinweb/pi-subagents@0.14.3.
Tests
claude: the SessionStart hook contract was aligned to intentionally omit a matcher (#709), so the hook covers all session-start event sources (startup, resume, clear, compact) per the documented contract, rather than being scoped to startup only.
Also in this release
- dev: update OpenCode to v1.18.6 (#706)
- deps: update bfra-me/.github to v4.16.42 (#707)
- deps: update fro-bot/agent to v0.95.1 (#708)