18 Commits

Author SHA1 Message Date
93a5675f06 chore(pi-notifications): remove remaining console.log 2026-04-28 13:06:44 +01:00
113878e83f chore(pi-notifications): remove debug mode and console.log noise
- Remove PI_NOTIFICATION_DEBUG env var and steer signal logic
- Remove console.log on extension load
- Keep only: session_start notification + agent_end beep
- Clean README without debug references
2026-04-28 13:04:33 +01:00
d7eabfffbb docs(pi-notifications): update README for audio-based alerts 2026-04-28 13:03:11 +01:00
823af3c486 feat(pi-notifications): switch to afplay audio instead of desktop notifications
- Uses afplay to play an audio file (default: Glass.aiff)
- Configurable via PI_NOTIFICATION_AUDIO env var
- Works from sandboxed context — no osascript needed
- test-notify.ts verifies audio playback standalone
- Synced to auto-discovery extension path
2026-04-28 13:02:18 +01:00
040513e1d6 feat(pi-notifications): use 'tell application' for notifications to suppress Show button
- 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
2026-04-28 12:56:02 +01:00
383cb46fe7 feat(pi-notifications): add standalone test-notify.ts and fix AppleScript sound bug
- 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
2026-04-28 12:10:30 +01:00
45a13fd08c feat(pi-notifications): add PI_NOTIFICATION_DEBUG mode with visible steer signal
- 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
2026-04-28 12:09:06 +01:00
98e18643c5 pi-performance: Make Time to first token more accurate.
Summary of changes:

 ┌──────┬──────────────────────────────────────────────────────────────────┬──────────┐
 │ Step │ Change                                                           │ Result   │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 1    │ Removed duplicate llm-performance-metrics.test.ts                │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 2    │ Added rawTimestamps assertions to toLogEntry test                │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 3    │ Added rawTimestamps assertions to single-turn aggregate test     │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 4    │ Added rawTimestamps assertions to multi-turn aggregate test      │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 5    │ Added negative TTFT filtering test                               │ 15 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 6    │ Added "first turn missing TTFT, later turns have it" test        │ 16 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 7    │ Added sanity check tests (warn on >500 tok/s, no warn otherwise) │ 18 tests │
 └──────┴──────────────────────────────────────────────────────────────────┴──────────┘

This is what it looks like now when I run `pi`
 📊 Performance: llama.cpp/Qwen3.6-35B-A3B-MXFP4_MOE.gguf
   Prefill: 15,460 tokens @ 20104.0 tok/s
   Generation: 12,179 tokens @ 52.6 tok/s
   Combined: 27,639 tokens @ 118.9 tok/s (3.9m total)
   TTFT: 769ms
   Turns: 36
2026-04-28 10:52:00 +01:00
a38c76c65e move pi-llm-performance to monorepo, update README and add deno.json 2026-04-28 10:06:03 +01:00
0cf13ed54e move pi-llm-performance to this repo 2026-04-28 10:00:45 +01:00
36b30c1f02 Create detailed readme for pi-turn-limit 2026-04-23 16:10:40 +01:00
a4181af13e feat: unlimited turns + tests 2026-04-23 15:56:16 +01:00
191507785f fix(pi-turn-limit): use turnCount for boundary check instead of event.turnIndex\n\nThe exceeded check used event.turnIndex which keeps incrementing from\nthe original session, causing false aborts after a boundary confirmation\nreset. Now turnCount is used consistently, and the dead exceeded check\nis removed since the boundary at turnCount === maxTurns handles all cases. 2026-04-21 12:48:14 +01:00
a7f9822fa0 feat(pi-turn-limit): add widget, /turn-limit command, and boundary confirmation
- 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
2026-04-21 12:34:09 +01:00
14282370ec Added live widget for turn limit 2026-04-21 12:28:13 +01:00
ce325cfec9 plan for turn limit widget 2026-04-21 12:28:00 +01:00
68c7cb2daf setup: workspace, dev deps, and project-local extension install
- 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
2026-04-21 11:47:47 +01:00
57d238a1ea feat: restructure as pnpm monorepo workspace
- Move limit-turns.ts into packages/pi-turn-limit/src/index.ts
- Add root package.json (private workspace manifest)
- Add pnpm-workspace.yaml
- Add shared tsconfig.json
- Add pi package manifest to extension (pi.extensions, pi-package keyword)
- Update AGENTS.md with monorepo workflow
2026-04-20 23:04:34 +01:00