v0.8.0
Minor Changes
-
0aca4d0: Rewrite: tool_call-based command mutation, new config surface, removed bash integration
Breaking config changes (migrations provided):
FeatureMode"rewrite"renamed to"mutate"features.enforcePackageManagerrenamed tofeatures.packageManagerfeatures.rewritePythonrenamed tofeatures.pythonui.showRewriteNotificationsrenamed toui.showMutationNotificationsbash.sourceModeandBashSourceModeremoved entirely- Config migrations automatically handle all renames and strip stale keys
New features:
- Command mutation via
tool_callhook —event.input.commandis mutated in place before shell execution, replacing the spawn-hook/bash-integration approach - All three behaviors (block, mutate, notify) handled by a single
tool_callhandler - Execution order: blockers first, then mutation, then notifications
Removed:
bash-integration.tsandbash-composition.tsdeletedcreateBashTool/BashSpawnContext/ spawn hook registration removedoverride-bashandcomposed-bashsource modes removed- Mutation notifications no longer have
[override-bash]/[composed-bash]prefix
Architecture:
src/— pure functions, zero Pi runtime importsextensions/toolchain/— Pi extension entry point, hooks, settings UI- 40 tests covering config defaults, migrations, feature predicates, tool_call hook, and pure mutation engine