Commit Graph
245 Commits
Author SHA1 Message Date
Mario Zechner cd81f844e4 release: v0.12.4 2025-12-02 13:26:46 +01:00
badlogic 350d9c046d 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 642c200163 docs: fix changelog - separate v0.12.2 and v0.12.3 entries 2025-12-02 13:14:20 +01:00
Mario Zechner 575d6e7a14 release: v0.12.3 2025-12-02 13:10:27 +01:00
badlogic 40ab295f65 Enable truecolor support for Windows Terminal 2025-12-02 13:04:05 +01:00
Mario Zechner e841778467 release: v0.12.2 2025-12-02 13:00:31 +01:00
badlogic 077e6f6cd9 Fix Windows binary path resolution for Bun compiled executable 2025-12-02 12:58:00 +01:00
Mario Zechner 53c0e3bdd7 docs: use xattr -c to clear all extended attributes 2025-12-02 12:36:46 +01:00
Mario Zechner 78002e278e docs: add macOS quarantine fix for unsigned binaries 2025-12-02 12:36:02 +01:00
Mario Zechner d5c813af43 release: v0.12.1 2025-12-02 12:31:05 +01:00
Mario Zechner 53bf63714c 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 ba1d7741e8 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 729f2369fe release: 0.11.6 2025-12-02 09:36:20 +01:00
Mario Zechner 7aae0d8a59 feat: show (sub) indicator in footer when using OAuth subscription 2025-12-02 09:34:37 +01:00
Mario Zechner 0f9d31e971 docs: add changelog entry for OAuth login status indicator 2025-12-02 09:29:08 +01:00
Mario Zechner ace6ec78f2 fix: use TruncatedText in oauth-selector to prevent line overflow 2025-12-02 09:28:27 +01:00
Peter Steinberger a961305a16 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 824b1fba03 Release v0.11.5 2025-12-01 20:22:14 +01:00
Mario Zechner 8cbc9f18a8 Add [Unreleased] section 2025-12-01 13:06:13 +01:00
Mario Zechner 8beecda3f1 Release v0.11.4 2025-12-01 13:05:12 +01:00
Mario Zechner 3141a768e8 Release v0.11.3 2025-12-01 12:50:04 +01:00
Mario Zechner 37e82ab203 docs(coding-agent): add changelog entry for circular menu navigation (#82) 2025-12-01 09:47:22 +01:00
86123d3c73 feat(tui): add circular wrap-around navigation to all menus (#82)
Co-authored-by: xes garcia <xes.garcia@deus.ai>
2025-12-01 02:49:38 +01:00
Mario Zechner f48654a244 fix: RPC mode session management not saving sessions
Since version 0.9.0, RPC mode (--mode rpc) was not saving messages to
session files. The agent.subscribe() call with session management logic
was only present in the TUI renderer after it was refactored.

RPC mode now properly saves sessions just like interactive mode.

Added test for RPC mode session management to prevent regression.

Fixes #83

Thanks @kiliman for reporting this issue!
2025-12-01 01:19:17 +01:00
Mario Zechner 0c90c26146 Release v0.11.1 2025-11-29 23:05:45 +01:00
Mario Zechner 2b730cc479 feat(coding-agent): add --export CLI flag to convert session files to HTML
Closes #80
2025-11-29 23:05:07 +01:00
Mario Zechner 55354cc7a3 docs(coding-agent): add changelog entry for git branch watcher (#79) 2025-11-29 21:54:02 +01:00
Tino EhrichandGitHub b58d7cc5b1 feat(coding-agent): watch .git/HEAD for branch changes (#79)
Auto-updates footer when git branch changes externally (e.g., git checkout in another terminal)
2025-11-29 21:52:13 +01:00
Mario Zechner f716f933da Release v0.11.0 2025-11-29 01:03:31 +01:00
Mario Zechner 5517b1acc7 feat(coding-agent): add read-only exploration tools (grep, find, ls) and --tools flag
Add grep, find, and ls tools for safe code exploration without modification risk.
These tools are available via the new --tools CLI flag.

- grep: Uses ripgrep (auto-downloaded) for fast regex searching. Respects .gitignore,
  supports glob filtering, context lines, and hidden files.
- find: Uses fd (auto-downloaded) for fast file finding. Respects .gitignore, supports
  glob patterns, and hidden files.
- ls: Lists directory contents with proper sorting and directory indicators.
- --tools flag: Specify available tools (e.g., --tools read,grep,find,ls for read-only mode)
- Dynamic system prompt adapts to selected tools with relevant guidelines

Closes #74
2025-11-29 00:59:23 +01:00
Mario Zechner 0329440f26 fix: file @ autocomplete performance using fd
- Replace slow synchronous directory walking with fd for fuzzy file search
- Auto-download fd to ~/.pi/agent/tools/ if not found in PATH
- Performance improved from ~900ms to ~10ms per keystroke on large repos
- Remove minimatch dependency from tui package
- Graceful degradation if fd unavailable (empty results)

Fixes #69
2025-11-28 23:38:44 +01:00
Mario Zechner da34de2503 Restore prompt to editor on API key validation failure
fixes #77
2025-11-28 23:00:37 +01:00
Mario Zechner ded2f9a087 Release v0.10.2 2025-11-27 23:59:15 +01:00
Mario Zechner 399e6b3bac coding-agent: remove identity override from system prompt (#73)
Models now use their native identity instead of being told they are Pi.
2025-11-27 23:57:02 +01:00
Mario Zechner 03b3eb1953 coding-agent: add pi-session- prefix to exported HTML files (#72)
Makes exported session files easier to filter with .gitignore
2025-11-27 23:54:10 +01:00
Mario Zechner 254c022971 Release v0.10.1 2025-11-27 14:18:29 +01:00
Mario Zechner 354709336a feat: show git branch in footer
- Footer now displays active git branch after directory path (e.g., ~/project (main))
- Branch detected by reading .git/HEAD directly (fast, synchronous)
- Cache refreshed after each assistant message to detect branch changes
- Handles normal branches, detached HEAD, and non-git repos

Closes #55
2025-11-27 12:56:45 +01:00
Mario Zechner 9dd045bbab Add CLI file arguments support via @file prefix
Implements ability to include files directly in the initial message using @ prefix.

Features:
- All @file arguments are coalesced into the first user message
- Text files wrapped in <file name="path">content</file> tags
- Images (.jpg, .jpeg, .png, .gif, .webp) attached as base64-encoded attachments
- Supports ~ expansion, relative and absolute paths
- Empty files are skipped silently
- Non-existent files cause immediate error with clear message
- Works in interactive, --print, and --mode text/json modes
- Not supported in --mode rpc (errors with clear message)

Examples:
  pi @prompt.md @image.png "Do this"
  pi --print @code.ts "Review this code"
  pi @requirements.md @design.png "Implement this"

Closes #54
2025-11-27 12:47:11 +01:00
Mario Zechner 48acd77681 Improved HTML export with timestamps, better styling, and comprehensive stats
- Added timestamps to each user and assistant message (HH:MM:SS format)
- Fixed text clipping issues with comprehensive word-wrapping CSS
- Improved font selection: ui-monospace, Cascadia Code, Source Code Pro
- Reduced font sizes for more compact display (12px base, down from 14px)
- Added model switch indicators in conversation timeline with subtle background
- Created dedicated Tokens & Cost section showing:
  - Cumulative input/output/cache read/write tokens
  - Cost breakdown by token type with 4 decimal precision
  - Total cost in bold
  - Context usage with token count, percentage, and model identification
- Now displays all unique models used during session (not just initial model)
- Made Messages section more compact (reduced gaps, removed redundant fields)

Closes #51
Closes #52
2025-11-27 12:32:45 +01:00
Mario Zechner 7353d366a2 Fix editor cursor navigation for wrapped lines, add word navigation
- Up/down arrows now navigate visual (wrapped) lines instead of logical lines
- Fixed double cursor display at wrap boundaries
- Added word by word navigation via Option+Left/Right or Ctrl+Left/Right
- Updated README keyboard shortcuts documentation

Closes #61
2025-11-27 12:08:36 +01:00
Mario Zechner 6add0cc13c Fix edit diff line number alignment and whitespace preservation
- Fix line numbers showing incorrect values for edits far from file start
  (e.g., 1,2,3 instead of 336,337,338). Skip count was added after displaying
  lines instead of before.

- Rewrite splitIntoTokensWithAnsi in pi-tui to preserve whitespace as separate
  tokens instead of discarding it. Wrapped lines now maintain proper alignment
  and code indentation.

- Update mom README: rename title, remove em-dashes for cleaner prose
2025-11-27 11:53:00 +01:00
Mario Zechner bc0756080b Release v0.10.0 2025-11-27 01:33:50 +01:00
Mario Zechner 3f08718490 feat: fuzzy file search with @ prefix
- Type @ to fuzzy-search files/folders across project
- Respects .gitignore and skips hidden files
- Pure Node.js implementation using readdir with withFileTypes
- No external dependencies (fd/find) required
- Also optimized Tab completion to use withFileTypes instead of statSync

Based on PR #60 by @fightbulc, reimplemented for performance.
2025-11-27 00:59:12 +01:00
Mario Zechner 3fd2f22f14 Merge branch 'main' into pr-60-fuzzy-search 2025-11-27 00:07:48 +01:00
Tino EhrichandMario Zechner 15d5120b6a added support for finding folders as well 2025-11-27 00:06:59 +01:00
Tino EhrichandMario Zechner b8e5f8db6d feat: Fuzzy search via 2025-11-27 00:06:54 +01:00
Mario ZechnerandGitHub 4504323819 Merge pull request #59 from kiliman/kiliman/rpc-attachments
fix: pass attachments to agent prompt from RPC interface
2025-11-26 23:58:51 +01:00
Mario Zechner e7c48e33a2 fix: emoji text wrapping crash in pi-tui
Fixed crash when rendering text containing emojis followed by long content.
The breakLongWord function was iterating over UTF-16 code units instead of
grapheme clusters, causing emojis (surrogate pairs) to be miscounted during
line wrapping. Now uses Intl.Segmenter to properly handle multi-codepoint
characters.
2025-11-26 23:55:01 +01:00
Mario Zechner 5b940c2686 docs: clarify that AGENTS.md files are loaded at every startup
Removed confusing parenthetical that suggested context files aren't loaded when continuing/resuming sessions. They are always freshly loaded from disk at startup - the parenthetical only applied to console logging behavior.
2025-11-26 23:41:52 +01:00
kiliman 958d265112 fix: pass attachments to agent prompt from RPC interface
This PR updates the call to `agent.prompt` with the `attachments` prop provided in the JSON input.
2025-11-25 21:56:32 -05:00