Commit graph

571 commits

Author SHA1 Message Date
Mario Zechner
c3f63dd243 feat(coding-agent): add auto-compaction to RPC mode, add RPC compaction test
- RPC mode now auto-compacts when context exceeds threshold (same as TUI)
- Add RPC test for manual compaction via compact command
- Auto-compaction emits compaction event with auto: true flag
2025-12-04 02:49:22 +01:00
Mario Zechner
1a97331af1 perf(coding-agent): avoid loading session file for auto-compaction check
Use agent.state.messages instead of loading entries from disk
2025-12-04 02:42:43 +01:00
Mario Zechner
c89b1ec3c2 feat(coding-agent): context compaction with /compact, /autocompact, and auto-trigger
- Add /compact command for manual context compaction with optional custom instructions
- Add /autocompact command to toggle automatic compaction
- Auto-trigger compaction when context usage exceeds threshold (contextWindow - reserveTokens)
- Add CompactionComponent for TUI display with collapsed/expanded states
- Add compaction events to HTML export with collapsible summary
- Refactor export-html.ts to eliminate duplication between session and streaming formats
- Use setTimeout to break out of agent event handler for safe async compaction
- Show compaction summary in TUI after compaction completes

fixes #92
2025-12-04 02:39:54 +01:00
Mario Zechner
bddb99fa7c Wire up /compact and /autocompact slash commands 2025-12-04 00:31:21 +01:00
Mario Zechner
79731249eb Context compaction: commands, auto-trigger, RPC support, /branch rework (fixes #92)
- Add compaction settings to Settings interface
- /compact [instructions]: manual compaction with optional focus
- /autocompact: toggle auto-compaction on/off
- Auto-compaction triggers after assistant message_end when threshold exceeded
- Footer shows (auto) when auto-compact is enabled
- RPC mode: {type: 'compact'} command emits CompactionEntry
- /branch now reads from session file to show ALL historical user messages
- createBranchedSessionFromEntries preserves compaction events
2025-12-04 00:25:53 +01:00
Mario Zechner
6c2360af28 WIP: Context compaction core logic (#92)
- Add CompactionEntry type with firstKeptEntryIndex
- Add loadSessionFromEntries() for compaction-aware loading
- Add compact() function that returns CompactionEntry
- Add token calculation and cut point detection
- Add tests with real session fixture and LLM integration

Still TODO: settings, /compact and /autocompact commands, auto-trigger in TUI, /branch rework
2025-12-04 00:07:53 +01:00
Mario Zechner
f02194296d feat(mom): backfill missed messages on startup using conversations.history API
- Add getLastTimestamp() to ChannelStore to read last ts from log.jsonl
- Add backfillChannel() to fetch up to 3 pages (3000 messages) per channel
- Add backfillAllChannels() called in start() before socket connection
- Include mom's own messages (as bot) and user messages, exclude other bots
- Process attachments from backfilled messages
- Add logging: logBackfillStart, logBackfillChannel, logBackfillComplete
- Warn if attachment missing name instead of failing

fixes #103
2025-12-03 22:05:13 +01:00
Mario Zechner
1517e64869 chore: bump version to 0.12.6 2025-12-03 17:12:27 +01:00
Mario Zechner
989af79752 fix: normalize OpenAI token counting, add branch source tracking
pi-ai:
- Fixed usage.input to exclude cached tokens for OpenAI providers
- Previously input included cached tokens, causing double-counting
- Now input + output + cacheRead + cacheWrite correctly gives total context

coding-agent:
- Session header now includes branchedFrom field for branched sessions
- Updated compaction.md with refined implementation plan
- Updated session.md with branchedFrom documentation
2025-12-03 17:11:22 +01:00
Mario Zechner
6cd8bcdeb3 fix(coding-agent): use APP_NAME in export-html and tools-manager 2025-12-03 16:27:49 +01:00
Mario Zechner
d4d5051940 Release v0.12.5 2025-12-03 16:21:11 +01:00
Mario Zechner
e82fb0fc83 feat(coding-agent): configurable app name and config dir for forks (#95)
- Add piConfig to package.json for app name and config directory
- Consolidate paths.ts into config.ts with clearer naming
- Fix Bun binary detection (changed from %7EBUN to $bunfs)
- Update all hardcoded paths to use config.ts exports
- getThemesDir() for built-in themes, getCustomThemesDir() for user themes
2025-12-03 16:18:59 +01:00
Mario Zechner
9d5fe1fe85 Update session docs: add type definition links, reorder sections 2025-12-03 15:44:33 +01:00
Mario Zechner
9ed1c4e7ba Clean up docs, add session format documentation 2025-12-03 15:42:56 +01:00
Mario Zechner
011e8d705a Add RPC protocol documentation with tool call correlation 2025-12-03 15:28:17 +01:00
Mario Zechner
92b2ba9e91 Add comprehensive RPC protocol documentation 2025-12-03 15:22:20 +01:00
Mario Zechner
05644ebcd5 Use ordered root build instead of parallel workspace build in CI 2025-12-03 15:05:04 +01:00
Mario Zechner
e0c057ecc6 Add web-ui/example to workspaces, remove CI workaround 2025-12-03 14:27:02 +01:00
Mario Zechner
24fcca5b7b Try fixing root level compiles 2025-12-03 14:16:00 +01:00
Mario Zechner
eb5cd9d4be Add CTRL+ENTER note for WSL 2025-12-02 22:18:12 +01:00
Mario Zechner
1c18b8006f Add auto-compaction trigger flow and maxTokens calculation 2025-12-02 16:17:05 +01:00
Mario Zechner
50b334f88a Add compaction examples and /branch interaction 2025-12-02 16:09:46 +01:00
Mario Zechner
5daef11b4c Add compaction research and implementation plan 2025-12-02 16:00:52 +01:00
Mario Zechner
bc4aa4aaa1 fix(coding-agent): use describe.skipIf for RPC test with explicit model
- Use describe.skipIf pattern matching other tests
- Skip when ANTHROPIC_API_KEY and ANTHROPIC_OAUTH_TOKEN are missing
- Use explicit --provider anthropic --model claude-sonnet-4-5
2025-12-02 14:50:29 +01:00
Peter Steinberger
c43f1d307c Add CI workflow and fix workspace tests 2025-12-02 12:53:53 +00:00
Mario Zechner
30f69c5f83 release: v0.12.4 2025-12-02 13:26:46 +01:00
badlogic
7b1f975ca1 Fix Windows terminal background rendering and add /debug command
- Strip carriage return characters from bash tool output to fix background padding on Windows
- Add hidden /debug command to write rendered lines to debug log for TUI debugging
- Document /debug command in README.md development section
2025-12-02 13:22:54 +01:00
Mario Zechner
cd62c87323 docs: fix changelog - separate v0.12.2 and v0.12.3 entries 2025-12-02 13:14:20 +01:00
Mario Zechner
858d041a5b release: v0.12.3 2025-12-02 13:10:27 +01:00
badlogic
e2e2cf116c Enable truecolor support for Windows Terminal 2025-12-02 13:04:05 +01:00
Mario Zechner
15428f10ed Clean-up out.html 2025-12-02 13:01:13 +01:00
Mario Zechner
0d905ec5d9 release: v0.12.2 2025-12-02 13:00:31 +01:00
badlogic
ccae220032 Fix Windows binary path resolution for Bun compiled executable 2025-12-02 12:58:00 +01:00
Mario Zechner
468acdf0d6 docs: use xattr -c to clear all extended attributes 2025-12-02 12:36:46 +01:00
Mario Zechner
062edb4707 docs: add macOS quarantine fix for unsigned binaries 2025-12-02 12:36:02 +01:00
Mario Zechner
f480c98c80 release: v0.12.1 2025-12-02 12:31:05 +01:00
Mario Zechner
b348c2549e docs: update AGENTS.md style guide - no emojis, no fluff 2025-12-02 12:20:32 +01:00
Mario Zechner
c4a65ad8b9 feat: standalone binary support with Bun
- Add build:binary script for Bun compilation
- Add paths.ts for cross-platform asset resolution (npm/bun/tsx)
- Add GitHub Actions workflow for automated binary releases
- Update README with installation options

Based on #89 by @steipete
2025-12-02 12:18:42 +01:00
Peter Steinberger
4a60bffe3b feat(coding-agent): add build:binary script for Bun bytecode compilation
Add npm script to build a standalone binary using Bun's bytecode compilation.
The binary is ~30% faster than Node.js for CLI operations.

Benchmark results (10 runs, simple query):
- Bun Bytecode Binary: 1.82s avg
- Bun runtime: 2.09s avg
- Node.js: 2.59s avg

Startup time only (--help):
- Bun Bytecode: 0.049s (3.8x faster than Node)
- Bun runtime: 0.121s
- Node.js: 0.185s

Usage: npm run build:binary
Output: dist/pi-binary

Requires Bun 1.3+ for bytecode compilation support.
2025-12-02 09:11:13 +00:00
Mario Zechner
1f55424d2d chore: update models.generated.ts 2025-12-02 09:38:49 +01:00
Mario Zechner
c32ff608d3 release: 0.11.6 2025-12-02 09:36:20 +01:00
Mario Zechner
bc838b021d feat: show (sub) indicator in footer when using OAuth subscription 2025-12-02 09:34:37 +01:00
Mario Zechner
8cd3151c2a docs: add changelog entry for OAuth login status indicator 2025-12-02 09:29:08 +01:00
Mario Zechner
5a65ce5349 fix: use TruncatedText in oauth-selector to prevent line overflow 2025-12-02 09:28:27 +01:00
Peter Steinberger
87b7343b00 feat(coding-agent): show login status in OAuth provider selector
Display '✓ logged in' indicator next to providers where the user is already authenticated. This makes it clear at a glance whether you're using your Claude Pro/Max subscription.
2025-12-02 07:35:00 +00:00
Mario Zechner
7a1884f85c Release v0.11.5 2025-12-01 20:22:14 +01:00
Mario Zechner
cdc64c7569 Add [Unreleased] section 2025-12-01 13:06:13 +01:00
Mario Zechner
e25420a4c8 Release v0.11.4 2025-12-01 13:05:12 +01:00
Mario Zechner
285c657b70 Release v0.11.3 2025-12-01 12:50:04 +01:00
Mario Zechner
75bb14cc4d fix(mom): include triggering message in context
Fix race condition where app_mention event fires before message event
logs to log.jsonl, causing the user's triggering message to be missing
from the agent's context. Now append the current message directly from
ctx.message to recentMessages.
2025-12-01 11:56:40 +01:00