Commit Graph

510 Commits

Author SHA1 Message Date
can1357 5280292306 docs: retrospective changelog maintenance for recent commits 2026-01-31 01:57:20 +01:00
can1357 4e4fb944c5 chore: bump version to 9.2.1 2026-01-31 01:35:32 +01:00
can1357 7233c4c8af fix: added windowsHide option to child process spawn calls
- Added `windowsHide: true` option to all child process spawn calls to prevent console windows from appearing on Windows systems.
2026-01-31 01:35:10 +01:00
can1357 ff8ec3426c chore: bump version to 9.2.0 2026-01-31 01:29:50 +01:00
can1357 a07f38b16e feat(grep): added grep CLI, diff highlighting, FileReader abstraction, and markdown improvements
- Added grep CLI subcommand with support for pattern matching, file globbing, context lines, and multiple output modes (content, files-with-matches, count).
- Added diff syntax highlighting support with distinct colors for inserted and deleted lines in code output.
- Implemented FileReader abstraction for cross-platform file reading with mmap support and 4MB size limit.
- Refactored worker pool initialization to support both compiled and development build environments using resolveWorkerSpecifier utility.
- Enhanced markdown rendering with improved inline style context handling and blockquote formatting with text wrapping.
- Replaced external strip-ansi dependency with Bun's built-in stripANSI method across all packages.
2026-01-31 01:27:36 +01:00
can1357 27d7e66be6 chore: bump version to 9.1.1 2026-01-30 01:27:47 +01:00
can1357 d972f3dcb9 refactor(tui): restructured box component cache and consolidated image line detection logic
- Consolidated box component cache state from four separate properties into a single typed Cache object with key, width, bgSample, and result fields.
- Extracted image line detection logic into centralized TERMINAL_INFO.isImageLine() method, removing duplicate containsImage() implementations from Markdown and TUI classes.
- Simplified cache validation in box component by introducing matchCache() method to compare current parameters against cached values.
- Removed trimStart() call from TerminalInfo.isImageLine() to check image protocol at line start without whitespace stripping.
2026-01-30 01:27:28 +01:00
can1357 cdb4f72cbc chore: bump version to 9.1.0 2026-01-30 01:13:03 +01:00
can1357 599c0dfe38 refactor(tui): restructured terminal capabilities from interface-based to class-based model
- Replaced interface-based terminal capabilities with class-based TerminalInfo model.
- Converted ImageProtocol from union type to enum with escape sequence values.
- Removed detectCapabilities, getCapabilities, and resetCapabilitiesCache functions in favor of eager TERMINAL_ID and TERMINAL_INFO constants.
- Introduced TerminalId type and KNOWN_TERMINALS registry for terminal detection.
- Updated renderImage and TUI.queryCellSize to use TERMINAL_INFO directly instead of calling getCapabilities().
- Updated exports in index.ts to reflect new API surface.
2026-01-30 01:12:28 +01:00
can1357 f28d0bc507 chore: bump version to 9.0.0 2026-01-30 00:23:37 +01:00
can1357 bf891b329c fix: backport fixes from pi-mono (9f3eef65f..52532c7c0)
packages/ai:
- fix: handle "sensitive" stop reason from Anthropic API
- fix: normalize tool call IDs with special characters for Responses API
- fix: add overflow detection for Bedrock, MiniMax, Kimi providers
- fix: 429 status is rate limiting, not context overflow

packages/tui:
- fix: refactored autocomplete state tracking
- fix: file autocomplete should not trigger on empty text
- fix: configurable autocomplete max visible items
- fix: improved table column width calculation with word-aware wrapping

packages/coding-agent:
- fix: preserve external config.yml edits on save (#1046 by @nicobailonMD)
- fix: resolve macOS NFD and curly quote variants in file paths
2026-01-30 00:22:13 +01:00
can1357 fa68a6606b chore: bump version to 8.13.0 2026-01-29 23:35:38 +01:00
can1357 54697dbfaa fix(coding-agent/session): improved error handling and security in agent storage initialization
- Added error handling for database initialization failures with detailed diagnostics including directory existence and writability checks.
- Improved directory creation in ensureDir() with proper error handling for EEXIST conditions and post-creation verification.
- Set restrictive file permissions (0o700) on created agent storage directories for improved security.
- Optimized applyLineResets() in TUI to use in-place array modification instead of creating new array via map().
2026-01-29 22:33:27 +01:00
can1357 094e37b24d feat(tui): added /debug command with triage menu and image detection capabilities
- Added `/debug` slash command with interactive menu for bug report triage and system diagnostics.
- Added `containsImage()` method to `TerminalCapabilities` interface to detect image sequences in terminal output.
- Refactored terminal capability detection to use shared capability objects, reducing duplication and improving maintainability.
- Migrated `TUI.containsImage()` from instance method to static method delegating to capabilities detection.
2026-01-29 16:14:28 +01:00
can1357 d1be6e541b chore: bump version to 8.12.10 2026-01-29 15:43:01 +01:00
can1357 3f59a73b83 refactor: restructured TUI and file streaming APIs with WASM optimization
- Removed TUI layout engine exports from public API surface.
- Replaced Bun.file().stream() with fs/promises for manual buffer reading in file streaming.
- Added AbortSignal support to streamLinesFromFile for cancellation capability.
- Removed stdin monitoring feature that detected stalled input after 10 seconds.
- Removed cli-highlight and highlight.js dependencies from lock file.
- Rebuilt WASM module with reduced binary size (2.1% reduction).
2026-01-29 15:16:37 +01:00
can1357 e6e217c8f1 chore: bump version to 8.12.9 2026-01-29 11:33:27 +01:00
can1357 8169289941 feat(tui): added stdin monitoring to detect stalled input events and log warnings
- Added stdin monitoring to detect stalled input events and log warnings when no input is received for 10 seconds.
- Added private methods startStdinMonitor() and stopStdinMonitor() to manage stdin event monitoring lifecycle.
- Added lastStdinEvent and stdinMonitor instance variables to track stdin activity.
2026-01-29 11:33:17 +01:00
can1357 f45d894692 fix(tui): simplified terminal write error handling to mark terminal as dead on any write failure
- Simplified terminal write error handling to mark terminal as dead on any write failure instead of only on EIO errors.
2026-01-29 11:31:08 +01:00
can1357 6d23309f14 chore: bump version to 8.12.8 2026-01-29 11:19:52 +01:00
can1357 2aa046c053 chore: bump version to 8.12.7 2026-01-29 11:03:59 +01:00
can1357 32bc2b8d02 fix: fixed LSP server display, file streaming, and slash command autocomplete; reorganized npm scripts
- Fixed LSP servers showing as 'unknown' in status display when server warmup fails by using index-based lookup to correctly extract server name and file types.
- Fixed Read tool loading entire file into memory when offset/limit was specified by implementing streaming line-by-line processing that only collects requested range.
- Fixed slash command autocomplete applying stale completions when typing quickly by adding staleness check before applying completion on Enter/Return.
- Reorganized npm scripts to follow consistent naming pattern with separate TypeScript and Rust variants for check, lint, fmt, and fix operations.
- Updated release script to properly handle Rust workspace version updates in Cargo.toml files and regenerate lockfiles.
2026-01-29 10:57:20 +01:00
can1357 2abaddec84 chore: bump version to 8.12.6 2026-01-29 10:53:15 +01:00
can1357 8ef11355e7 perf(tui,natives): added native text utilities with JS fast path for short strings
- Added native text utilities in pi-natives (visible width, truncation, slicing, segment extraction)
- Wired pi-tui to use native implementations with short-string JS fast path
- Optimized key matching via cached parsed key ids
- Refactored visual truncation to reuse Text instances
- Reduced theme color lookups by switching from Map to plain records
- Regenerated WASM artifacts

Benchmarks (after vs before, lower is better):
- truncateToWidth/ansi: 20.37ms vs 38.13ms (2000 iters)
- sliceWithWidth/ansi: 5.12ms vs 20.39ms
- extractSegments/ansi: 8.92ms vs 27.60ms
- truncateToVisualLines: 3.51ms vs 411.55ms (500 iters)
- visibleWidth/ansi: 0.24ms vs 0.31ms
2026-01-29 10:47:55 +01:00
can1357 a7ad179356 chore: bump version to 8.12.5 2026-01-29 09:49:52 +01:00
can1357 aa156af6e1 chore: bump version to 8.12.4 2026-01-29 09:34:06 +01:00
can1357 669530fc41 chore: bump version to 8.12.3 2026-01-28 22:27:15 +01:00
can1357 38f0628496 chore: bump version to 8.12.2 2026-01-28 17:18:23 +01:00
can1357 306f380d0f chore: bump version to 8.12.1 2026-01-28 15:46:28 +01:00
can1357 3ffd817b61 chore: bump version to 8.12.0 2026-01-28 15:37:57 +01:00
can1357 41c852cbc8 chore: bump version to 8.11.14 2026-01-28 14:22:04 +01:00
can1357 8c007bfb95 chore: bump version to 8.10.13 2026-01-28 14:02:13 +01:00
can1357 df00e12be8 chore: bump version to 8.10.12 2026-01-28 13:51:40 +01:00
can1357 e94514e4f2 build(deps): updated dependencies across packages including protoc-gen-es, typebox, and other libraries
- Updated @bufbuild/protoc-gen-es from ^2.10.2 to ^2.11.0.
- Updated @types/bun from ^1.2.18 to ^1.3.7.
- Updated prettier from ^3.8.0 to ^3.8.1.
- Updated @sinclair/typebox from ^0.34.46 to ^0.34.48 across multiple packages.
- Updated @bufbuild/protobuf from ^2.10.2 to ^2.11.0 in packages/ai.
- Updated multiple dependencies including chalk, diff, file-type, zod, winston, recharts, and mime-types to their latest patch and minor versions.
2026-01-28 13:27:58 +01:00
can1357 0471a3fde7 chore: bump version to 8.10.11 2026-01-28 11:29:22 +01:00
can1357 59a3fdb1d1 build(deps): updated minimum Bun runtime requirement to >=1.3.7 across all packages
- Updated minimum Bun runtime requirement from >=1.0.0 to >=1.3.7 across all packages.
2026-01-28 04:12:18 +01:00
can1357 925491b79f chore: bump version to 8.9.10 2026-01-28 04:10:43 +01:00
can1357 1257dd8fac chore: bump version to 8.8.8 2026-01-28 04:01:10 +01:00
can1357 cc91f80e99 feat: added toolChoice support and optimized TUI
- Added ToolChoice type and toolChoice parameter support across all AI providers (OpenAI, Azure OpenAI, Anthropic, Google) enabling fine-grained control over tool/function selection during LLM calls.
- Added toolChoice override capability to Agent.prompt() method and session prompt options allowing callers to control tool selection behavior per request.
- Added provider-specific tool choice mapping functions (mapAnthropicToolChoice, mapGoogleToolChoice, mapOpenAiToolChoice) to normalize tool choice formats across different LLM APIs.
- Removed kernel heartbeat/ping mechanism from PythonKernel, simplifying health monitoring by relying on direct isAlive() checks instead of periodic HTTP requests.
2026-01-28 02:53:58 +01:00
can1357 938beca49e chore: bump version to 8.6.0 2026-01-27 23:26:38 +01:00
can1357 57a3650cc6 fix: backport fixes from pi-mono (3635e45f..9f3eef65f)
packages/ai:
- feat: HTTP proxy support via environment variables
- fix: correct provider error message typo
- fix: filter deprecated OpenCode models from generation

packages/tui:
- fix: scrollback overwrite when appending lines past viewport
- fix: keep overlays centered across resizes
- fix: handle multi-line text in insertTextAtCursor()

packages/coding-agent:
- fix: add /model instruction to no models warning
- fix: active path highlighting in HTML exports
2026-01-27 19:47:36 +01:00
can1357 d9a3291641 feat(deps): replaced external JSON/JSONL and text utilities with Bun built-in APIs
- Replaced external JSON/JSONL parsing libraries with Bun's built-in JSON5 and JSONL APIs across all packages.
- Removed dependencies: json5, ndjson, get-east-asian-width, json-stringify-safe, split2, through2, and @types/ndjson.
- Replaced custom text width and ANSI wrapping implementations with Bun.stringWidth() and Bun.wrapAnsi() APIs.
- Updated Bun type definitions from ^1.2.17 to ^1.2.18 and bun-types from ^1.3.5 to ^1.3.7.
- Refactored JSONL parsing throughout codebase to use Bun.JSONL.parse() and Bun.JSONL.parseChunk() with improved buffer management and error handling.
- Updated test assertions to use Bun.stringWidth() for dynamic width calculations instead of hardcoded values.
2026-01-27 19:18:58 +01:00
can1357 0c30ef4b9b chore: bump version to 8.5.0 2026-01-27 05:20:27 +01:00
can1357 6c1804e73b chore: bump version to 8.4.5 2026-01-26 15:12:13 +01:00
can1357 2d075c3059 chore: bump version to 8.4.3 2026-01-25 19:53:31 +01:00
can1357 2abe271d50 chore: bump version to 8.4.2 2026-01-25 19:41:24 +01:00
can1357 6ef1f4510b chore: bump version to 8.4.1 2026-01-25 19:35:49 +01:00
can1357 79079e6ecd feat(coding-agent): added plan mode with approval workflow and tool gating
- Plan mode provides structured workflow where agents propose plans for user approval before execution.
- Added plan:// internal URL protocol for accessing plan files and injecting plan-mode context into subagent prompts.
- Added plan mode toggle shortcut and paused status indicator in status line.
- Fixed plan reference injection to properly pass workflow state to plan-mode system prompts.
- Improved autocomplete fuzzy matching to support subsequence matching for skill suggestions.
2026-01-25 19:35:26 +01:00
can1357 d26f759b80 chore: bump version to 8.4.0 2026-01-25 14:13:26 +01:00
can1357 c8d0de0361 fix(tui): corrected editor end-of-line cursor rendering assertion
- Changed assertion to use includes() instead of endsWith() for cursor token validation.
2026-01-25 14:12:07 +01:00