Commit Graph
462 Commits
Author SHA1 Message Date
Mario Zechner 00decc2634 Release v0.7.25 v0.7.25 2025-11-20 13:41:38 +01:00
Mario Zechner 995099da32 Add PR and contributor credits to CHANGELOG 2025-11-20 13:41:19 +01:00
Mario Zechner 320abe1140 Add table of contents to README 2025-11-20 13:20:48 +01:00
Mario Zechner 73b67e62e2 Fix help text to use 'pi' instead of 'coding-agent' 2025-11-20 13:00:38 +01:00
Mario Zechner cc32c45fa5 Add documentation for model cycling feature 2025-11-20 12:58:31 +01:00
Mario ZechnerandTino Ehrich 86997322db Add --models parameter for quick model cycling with Ctrl+P
- Add --models CLI arg accepting comma-separated patterns
- Implement smart matching: prefers aliases over dated versions
- Add Ctrl+P to cycle through scoped models (or all if no scope)
- Show model scope hint at startup
- Update help text with examples

Co-authored-by: Tino Ehrich <tino.ehrich@hey.com>
2025-11-20 12:57:20 +01:00
Mario Zechner a08d8f5f7c Release v0.7.24 v0.7.24 2025-11-20 12:41:00 +01:00
Mario Zechner 4852a26a35 Simplify thinking level display in footer (remove 'Thinking:' prefix) 2025-11-20 12:38:55 +01:00
Mario Zechner f914697bed Don't show 'Thinking: off' in footer when thinking is disabled 2025-11-20 12:37:17 +01:00
Mario Zechner bc47add093 Add CHANGELOG and README docs for thinking level cycling feature 2025-11-20 12:35:54 +01:00
Mario Zechner aed141a026 Merge PR #36: Add Shift+Tab thinking level cycling with visual border feedback 2025-11-20 12:34:12 +01:00
Mario Zechner 2de9fb4ef5 Fix superfluous newline in update notification 2025-11-20 12:28:18 +01:00
Mario Zechner d8fb065f1b Fix TypeScript error in version check 2025-11-20 12:00:51 +01:00
Mario Zechner 44b0f43eeb Release v0.7.23 v0.7.23 2025-11-20 11:59:17 +01:00
Mario Zechner 686454aa0b Remove the garbage the agent left behind and commited 2025-11-20 11:03:01 +01:00
Tino Ehrich 5a3fa7a873 fix: change thinking level cycling from Ctrl+T to Shift+Tab 2025-11-19 18:07:53 +01:00
Tino Ehrich 401702fda9 fix: change thinking level cycling from Tab to Ctrl+T
Tab key was preventing file path autocomplete from working.
Changed to Ctrl+T to avoid conflict with Tab completion.

- Tab now works normally for file/path autocomplete
- Ctrl+T cycles through thinking levels
- Shows message if model doesn't support thinking
2025-11-19 12:12:23 +01:00
Tino Ehrich f6a2fd805e refactor: improve thinking level display in footer
Change from 'off (tab to cycle)' to 'Thinking: off' for better clarity.
Format: 'model-id • Thinking: [level]'
2025-11-19 12:12:10 +01:00
Tino Ehrich af0f67a0b4 feat: add visual thinking level indicator via border colors
The horizontal borders around the input editor now change color based on
the current thinking level, providing immediate visual feedback:

- off: gray (default)
- minimal: dim blue
- low: blue
- medium: cyan
- high: magenta

The more thinking, the brighter/more vibrant the color.

Changes:
- Add public borderColor property to Editor component (packages/tui)
- Use borderColor instead of hardcoded chalk.gray for borders
- Add getThinkingBorderColor() helper in TuiRenderer
- Add updateEditorBorderColor() to apply color changes
- Update border color when:
  - Cycling with Tab key
  - Selecting via /thinking command
  - Restoring session with thinking level set
2025-11-19 12:12:10 +01:00
Tino Ehrich 52dc7a3e57 feat: add Tab key to cycle through thinking levels
- Add onTab callback to CustomEditor
- Implement cycleThinkingLevel() in TuiRenderer
- Only works when model supports reasoning
- Cycles through: off → minimal → low → medium → high → off
- Update footer to show current thinking level with '(tab to cycle)' hint
- Update header instructions to mention tab for thinking
- Show notification when thinking level changes
2025-11-19 12:12:10 +01:00
Mario Zechner 90cf028218 Release v0.7.22 v0.7.22 2025-11-19 01:50:45 +01:00
Mario Zechner f7279d6b47 Release v0.7.21 v0.7.21 2025-11-19 00:56:16 +01:00
Mario Zechner 41f51bd93e Release v0.7.20 v0.7.20 2025-11-18 22:52:49 +01:00
Mario Zechner 5703a3bf2d Add ANSI-aware word wrapping to TUI components
- Created shared wrapTextWithAnsi() function in utils.ts
- Handles word-based wrapping while preserving ANSI escape codes
- Properly tracks active ANSI codes across wrapped lines
- Supports multi-byte characters (emoji, surrogate pairs)
- Updated Markdown and Text components to use shared wrapping
- Removed duplicate wrapping logic (158 lines total)
2025-11-18 22:26:24 +01:00
Mario Zechner e1381ff21d Release v0.7.18 v0.7.18 2025-11-18 22:08:44 +01:00
Mario Zechner 1fa7d1cd73 Release v0.7.17 v0.7.17 2025-11-18 17:49:12 +01:00
Mario Zechner 117f0db17e feat(coding-agent): add OAuth authentication for Claude Pro/Max
- Add /login and /logout commands for OAuth flow
- OAuth tokens stored in ~/.pi/agent/oauth.json with 0600 permissions
- Auto-refresh tokens when expired (5min buffer)
- Priority: OAuth > ANTHROPIC_OAUTH_TOKEN env > ANTHROPIC_API_KEY env
- Fix model selector async loading and re-render
- Add bracketed paste support to Input component for long codes
- Update README.md with OAuth documentation
- Add implementation docs and testing checklist
2025-11-18 17:33:33 +01:00
Mario Zechner 433e7a2e6e Fix Anthropic API rejection when resubmitting aborted thinking blocks
- Convert thinking blocks with missing/empty signatures to text blocks
- Prevents 400 error: 'Invalid signature in thinking block'
- Occurs when stream is aborted mid-thinking and message is resubmitted
2025-11-18 14:36:57 +01:00
Mario Zechner f77dfbe173 Release v0.7.16 v0.7.16 2025-11-17 14:12:04 +01:00
Mario Zechner acfd1de53f v0.7.15: Anthropic OAuth support 2025-11-17 12:53:57 +01:00
Mario Zechner c28ce3ee03 chore: bump coding-agent to 0.7.14 - fix Anthropic OAuth and Mistral API compatibility 2025-11-17 12:46:59 +01:00
Mario Zechner ed53fcec95 v0.7.13: Unicode input support for TUI editor v0.7.13 2025-11-16 23:08:10 +01:00
Mario Zechner a032d41893 Merge branch 'fix/support-umlauts-and-unicode' 2025-11-16 23:06:06 +01:00
Mario Zechner adc8b0e6fb refactor(tui): Use explicit charCode check for unicode filtering
- Use 'charCodeAt(0) >= 32' instead of open 'else' in handleInput()
- Use same filter in handlePaste() for consistency
- Prevents control characters while allowing all unicode
- More explicit and safer than accepting everything
2025-11-16 23:05:19 +01:00
Mario Zechner b2491aac23 v0.7.12: Custom models/providers support via models.json
- Add ~/.pi/agent/models.json config for custom providers (Ollama, vLLM, etc.)
- Support all 4 API types (openai-completions, openai-responses, anthropic-messages, google-generative-ai)
- Live reload models.json on /model selector open
- Smart model defaults per provider (claude-sonnet-4-5, gpt-5.1-codex, etc.)
- Graceful session fallback when saved model missing or no API key
- Validation errors show precise file/field info in CLI and TUI
- Agent knows its own README.md path for self-documentation
- Added gpt-5.1-codex (400k context, 128k output, reasoning)

Fixes #21
2025-11-16 22:56:24 +01:00
Mario Zechner 8c0a585308 Footer shouldn't explode when no model is given. 2025-11-16 22:35:27 +01:00
Mario Zechner b25db56ea1 Add gpt-5.1-codex to model list 2025-11-16 22:35:09 +01:00
Mario Rodler 8a3eac47c7 Merge branch 'main' into fix/support-umlauts-and-unicode 2025-11-16 21:08:31 +01:00
Mario Rodler 7efcda6a1e test(editor): Simplify and refine Unicode handling tests for clarity and consistency 2025-11-16 21:05:49 +01:00
Mario Zechner fd2b2ec770 Filter model selector by API keys and add user-facing documentation
- Model selector now only shows models with configured API keys
- Added yellow hint in model selector UI explaining the filtering
- Updated README.md to document the filtering behavior in both API Keys and /model sections
- Bumped version to 0.7.11
2025-11-16 21:01:31 +01:00
Mario ZechnerandGitHub 2db95805e7 Merge pull request #19 from CarlosGtrz/filter-model-selector-by-api-key
Filter model selector to only show models with configured API keys
2025-11-16 20:43:02 +01:00
Mario Rodler 500e0f82a3 test(editor): Add tests for handling extended characters, emojis, and special key inputs 2025-11-16 18:15:21 +01:00
Mario Rodler efa6a006c7 feat(tui): Editor now handles extended character input (e.g., umlauts) and updates key binding documentation 2025-11-16 18:09:17 +01:00
Carlos Gutierrez 1b8a8c7f08 Filter model selector to only show models with configured API keys 2025-11-15 18:49:30 -07:00
Mario Zechner 7cbfd45fca Add lifecycle callbacks to SandboxRuntimeProvider for abort signal support
- Added onExecutionStart(sandboxId, signal) - called when sandbox execution begins
- Added onExecutionEnd(sandboxId) - called when sandbox execution ends
- Integrated callbacks in SandboxedIframe.execute()
- Enables providers to track and cancel async operations (e.g., userScript executions)
2025-11-16 00:56:20 +01:00
Mario Zechner 82e5271486 Pin pdfjs-dist to exact version 5.4.394 to fix worker version mismatch 2025-11-16 00:03:58 +01:00
Mario Zechner cc623135d4 Remove instructions to run publish:dry 2025-11-14 23:56:58 +01:00
Mario Zechner 1afe40efae Release 0.7.10 2025-11-14 23:55:56 +01:00
Mario Zechner 6ae0a05bdc Add /branch command for conversation branching (fixes #16)
- Add /branch slash command to create conversation branches
- New UserMessageSelectorComponent shows all user messages chronologically
- Selecting a message creates new session with messages before selection
- Selected message is placed in editor for modification/resubmission
- SessionManager.createBranchedSession() creates new session files
- Updated README.md and CHANGELOG.md with /branch documentation
2025-11-14 23:52:46 +01:00
Mario Zechner 6bed5a919f chore: bump version to 0.7.9 v0.7.9 2025-11-14 23:22:20 +01:00