- Tell target app (default: Ghostty) to display notification instead of raw osascript
- This attributes notification to the app, avoiding the 'Show' button that opens Script Editor
- Configurable via PI_NOTIFICATION_APP env var
- test-notify.ts falls back to plain display notification if target app isn't running
- Synced to auto-discovery extension path
- Add packages/pi-notifications/src/test-notify.ts for isolated testing
- Run with: node --input-type=module -e "import {createJiti} from ..." ./packages/pi-notifications/src/test-notify.ts
- Decoupled from agent loop — verifies osascript in extension context
- Fix: 'default' is a reserved word in AppleScript, skip sound param when sound='default'
- Synced fix to auto-discovery extension path
- Add PI_NOTIFICATION_DEBUG=true env var
- When enabled, calls ctx.ui.steer() instead of desktop notification
- Lets you verify trigger logic in the agent loop without actual notifications
- Synced to both monorepo and auto-discovery extension paths
- Live widget showing Turns: {current}/{max}
- /turn-limit <N> command to change max turns mid-session
- Confirmation dialog at boundary turn (Yes resets counter, No aborts)
- Widget visible on session reload and fresh start
- Add pnpm-workspace.yaml for monorepo
- Add @mariozechner/pi-coding-agent as root devDependency (TS types)
- Create .pi/settings.json with local package reference
- Extension auto-loads and hot-reloads via /reload