Commit Graph

1884 Commits

Author SHA1 Message Date
can1357 e01d08be07 chore: bump version to 6.7.0 2026-01-19 16:33:17 +01:00
can1357 440ac33dbf style: reformatted TypeScript code formatting and added benchmark reports
- Reformatted code indentation and spacing across multiple TypeScript files.
- Standardized export statements to single-line format in various modules.
- Fixed async/await precedence and corrected indentation in benchmark files.
- Added benchmark report files for GPT-5.1-codex-mini model performance.
2026-01-19 16:22:47 +01:00
can1357 f06d289338 feat(coding-agent): added normative patch generation for edit tool canonicalization
- Added normative patch generation for canonicalizing edit tool output.
- Implemented tool call argument rewriting for session history persistence.
- Enhanced patch applicator to support normalized patch input processing.
- Updated agent and AI types to include normative input parameters.
- Removed tar-stream dependency and replaced with Bun.Archive for benchmark package.
2026-01-19 16:16:55 +01:00
can1357 5ae70ed2dd feat: enhanced patch applicator with fallback variants and fuzzy matching
- Enhanced patch applicator with fallback variant generation and improved fuzzy matching.
- Added support for ellipsis placeholders, top-of-file anchors, and comment-prefix normalization.
- Renamed operation and moveTo parameters to op and rename across patch tool interfaces.
- Added batch processing system to benchmark runner for parallel task execution.
- Added comprehensive benchmark reports for Claude Haiku and GPT-5.1-codex-mini models.
2026-01-19 16:16:55 +01:00
can1357 7a081e1c7c feat: added React mutation testing package and coding-agent improvements
- Added new @oh-my-pi/react-edit-benchmark package for React source code mutation testing.
- Added --no-title flag to disable automatic session title generation in coding-agent.
- Changed default behavior of read tool to omit line numbers by default.
- Added environment variable support for edit tool configuration and fuzzy matching.
- Updated test files to use import.meta.dir for ES module compatibility.
- Added Prettier configuration and CI improvements for private package handling.
2026-01-19 16:16:55 +01:00
can1357 5f8b80c5a8 fix(coding-agent): flushed lsp batch on delete 2026-01-19 16:16:55 +01:00
can1357 50e3d73b65 feat(coding-agent): added allowFuzzy option to control patch matching behavior
- Added allowFuzzy option to control fuzzy matching behavior in patch operations.
- Added validation for line numbers to ensure they are >= 1 in patch headers and hints.
- Enhanced fuzzy matching algorithms to respect the allowFuzzy setting for precise control.
- Fixed patch application to prefer actual diff over cached preview when displaying results.
2026-01-19 16:16:55 +01:00
can1357 e22d74b8bb fix(coding-agent/patch): accept unique substring matches regardless of line length ratio
Previously, substring context matching required the pattern to be at least
30% of the line length to prevent ambiguous matches. This caused failures
when matching short identifiers like 'class EditTool' against long export
lines with generics and implements clauses.

Now, if exactly one substring match exists in the file, it is accepted
regardless of the ratio threshold - uniqueness alone is sufficient for
disambiguation. The ratio filter is only applied when multiple substring
matches exist.

Added regression tests for model edit attempts from session analysis.
2026-01-19 16:16:54 +01:00
can1357 df2745e6f5 feat(coding-agent): added OMP_NO_PATCH env var and simplified diff formatting
- Added OMP_NO_PATCH environment variable to control patch mode behavior.
- Simplified function call formatting in diff rendering.
2026-01-19 16:16:54 +01:00
can1357 2b103bf9ad feat(coding-agent/core): added nested @@ context anchors and hierarchical matching
- Added support for nested @@ context anchors and hierarchical context matching.
- Enhanced patch parser to handle @@ line N syntax and multiple context accumulation.
- Improved diff rendering and error messages with hierarchical context display.
- Added comprehensive regression tests for model-generated patch formats.
2026-01-19 16:16:54 +01:00
can1357 fc1ae8dc72 refactor(coding-agent): migrated to class-based architecture for tool implementations
- Refactored output sanitization logic into centralized streaming-output module.
- Converted tool implementations from factory functions to class-based architecture.
- Updated SSH executor to use shared output streaming infrastructure.
- Moved voice recording logic from function to class-based implementation.
2026-01-19 16:16:54 +01:00
can1357 76c5ac23b9 feat(coding-agent/core): changed default edit tool to apply-patch format
- Changed default edit tool mode to use apply-patch format instead of oldText/newText.
2026-01-19 16:16:54 +01:00
can1357 fa2261002d refactor(coding-agent/core): migrated tool implementations from factory functions to class-based architecture
- Converted all tool implementations from factory functions to class-based architecture.
- Updated SDK exports to expose tool classes instead of create*Tool factory functions.
- Refactored tool instantiation patterns across all built-in tools and test files.
- Added proper TypeScript typing with AgentToolResult and AgentToolUpdateCallback interfaces.
2026-01-19 16:16:54 +01:00
can1357 a3ef35d83e feat(coding-agent/core): added configurable fuzzy matching and binary file support to patch operations
- Added configurable fuzzy matching threshold for edit operations with 0.85-0.98 range.
- Added binary file reading support for improved BOM detection in patch operations.
- Enhanced patch application with better ambiguity detection and clearer error messages.
- Improved diff truncation algorithm to preserve context around changes more intelligently.
- Fixed BOM detection to check binary content when text-based detection fails.
2026-01-19 16:16:53 +01:00
can1357 f8787648c1 feat(coding-agent/core): added comprehensive apply-patch mode with create/update/delete/rename operations
- Added comprehensive apply-patch mode for edit tool with create, update, delete, rename operations.
- Converted edit tool from factory function to class-based implementation with improved API.
- Enhanced patch application with ambiguity detection, fuzzy matching, and better error handling.
- Added line ending preservation, BOM handling, and trailing newline policy for file formatting.
- Added validation for empty oldText and multi-file patch rejection to improve reliability.
2026-01-19 16:16:53 +01:00
can1357 c014c309d6 refactor(coding-agent/core): restructured edit tool into modular patch architecture
- Refactored edit tool implementation with modular patch architecture.
- Moved edit tool implementation from edit/ to patch/ module.
- Updated import paths for EditToolDetails across core modules.
- Enhanced patch parsing with unified diff and Codex-style patch support.
- Improved fuzzy matching algorithms for more robust text location.
2026-01-19 16:16:53 +01:00
can1357 436a0065df fix(coding-agent): corrected tool completion logic to prevent premature marking
- Fixed tool completion logic to only mark tools as complete when streaming is not aborted or in error state.
2026-01-19 16:16:53 +01:00
can1357 232dbc1ea7 feat(coding-agent): added apply-patch mode to edit tool with create update delete rename operations
- Added comprehensive apply-patch mode for edit tool with create, update, delete, rename operations.
- Added MCP tool caching and deferred loading for faster startup performance.
- Improved edit tool architecture with modular diff and apply-patch implementations.
- Enhanced MCP connection handling with waitForConnection for better reliability.
- Fixed MCP tool path formatting to correctly display provider information.
2026-01-19 16:16:53 +01:00
Can Bölük acb70f3545 fix: simplify binary installation in install.ps1
- Removed architecture suffix handling for binary installation.
2026-01-19 15:16:35 +01:00
can1357 44a32e6031 chore: bump version to 6.2.0 2026-01-19 05:29:37 +01:00
can1357 5e2d1fa603 feat(coding-agent): added ToolCallContext interface for batch execution metadata
- Added ToolCallContext interface with batch execution metadata including batchId, index, and total.
- Enhanced getToolContext() to accept optional ToolCallContext parameter for batch-aware tool execution.
- Implemented LSP batching support to coalesce formatting and diagnostics operations on parallel edits.
- Added comprehensive tests for tool call batch context and LSP writethrough batching functionality.
2026-01-19 05:28:28 +01:00
can1357 8fc853a5c2 chore: bump version to 6.1.0 2026-01-19 04:33:27 +01:00
can1357 a605108d14 feat(coding-agent/core): added lspmux integration for LSP server multiplexing
- Added lspmux integration for LSP server multiplexing to reduce startup time and memory usage.
- Added LSP tool proxy support for subagent workers with async request handling.
- Updated LSP status command to show lspmux connection state and availability.
- Simplified rust-analyzer default configuration by removing custom initOptions and settings.
2026-01-19 04:32:37 +01:00
can1357 53541b110b feat(coding-agent/core): added depth-controlled search and path utilities
- Added maxdepth and mindepth parameters to find function for depth-controlled file search.
- Added counter function to count occurrences and sort by frequency.
- Added basenames function to extract base names from paths.
- Fixed biome.json configuration to remove invalid double negation pattern.
2026-01-19 03:20:22 +01:00
can1357 34f2fc0854 chore: bump version to 6.0.0 2026-01-19 01:38:04 +01:00
can1357 e496de869a feat(coding-agent): added support for new providers and updated keyboard shortcuts
- Updated keyboard shortcuts: Ctrl+P/Shift+Ctrl+P now cycle role models instead of models.
- Changed Ctrl+T to toggle todo list expansion instead of thinking block.
- Added support for openai-codex-responses, google-vertex, cursor providers.
- Updated settings structure to use modelRoles object and removed deprecated options.
- Removed WASM base64 generation script and simplified postinstall process.
- Updated SDK documentation to reflect async auth/model discovery and new auth storage path.
2026-01-19 01:32:04 +01:00
can1357 5a601bb0c0 feat: added Windows ARM64 support and streaming WASM loading with base64 fallback
- Added Windows ARM64 binary support and architecture detection in installers.
- Updated WASM loading to use streaming with base64 fallback for binary compatibility.
- Moved TTSR settings to dedicated tab and expanded abbreviation to Time Traveling Stream Rules.
- Added comprehensive install testing infrastructure with Docker validation.
- Updated package name from @oh-my-pi/omp-coding-agent to @oh-my-pi/pi-coding-agent.
2026-01-19 01:23:27 +01:00
can1357 9b3cf35630 docs(readme): added docs for Python tool, Todo tool, CLI subcommands, and Bedrock provider
- Added documentation for Python tool with IPython kernel integration.
- Added documentation for Todo tool with task tracking capabilities.
- Added documentation for new CLI subcommands (config, setup) and xhigh thinking level.
- Updated AI package description to include Bedrock provider.
2026-01-19 00:17:11 +01:00
can1357 92ec2550d2 refactor(coding-agent): reorganized test files to proper test directory structure
- Moved test files from src/core to test/core directory.
- Moved test files from src/core/tools to test/tools directory.
- Moved test files from src/discovery to test/discovery directory.
- Updated import paths to reflect new test file locations.
2026-01-19 00:07:23 +01:00
can1357 ffe79ab5b9 chore: bump version to 5.7.67 2026-01-19 00:04:19 +01:00
can1357 03cfbd81d4 feat(coding-agent): added vendored photon WASM for image processing
- Replaced external photon-node dependency with vendored WebAssembly implementation.
- Added local photon library with 200+ image processing functions and WASM bindings.
- Updated image conversion and resize utilities to use local photon implementation.
- Added error handling for unknown OAuth providers in AI package.
2026-01-19 00:02:12 +01:00
can1357 768c0afcb2 chore: bump version to 5.6.77 2026-01-18 22:24:40 +01:00
can1357 4c72f1d316 fix(ai): corrected duplicate tool results for errored or aborted messages
- Prevented duplicate tool results for errored or aborted messages when results already exist.
- Added comprehensive test coverage for duplicate tool results edge cases.
2026-01-18 22:24:25 +01:00
can1357 7469166ad1 chore: cleaned historical changelog entries and added validation to release script
- Removed historical version entries from multiple package CHANGELOG files.
- Added changelog validation functions to release script.
- Prevented creation of empty version entries in changelog generation.
2026-01-18 21:50:00 +01:00
can1357 0c86c38d4d chore: bump version to 5.6.70 2026-01-18 21:37:18 +01:00
can1357 53e75e33c5 feat(coding-agent/core): loaded Python modules from user and project directories with priority
- Added Python prelude extension module loading from user and project directories.
- Implemented automatic discovery of Python modules from `.omp/modules` and `.pi/modules` directories.
- Added prioritized module loading with project-level modules overriding user-level modules.
- Updated kernel initialization methods to load Python modules during startup.
2026-01-18 21:36:44 +01:00
can1357 a9ca7365ac chore: bump version to 5.6.7 2026-01-18 21:11:16 +01:00
can1357 aac8187e05 feat(coding-agent): implemented shared Python gateway for efficient kernel reuse
- Added Python shared gateway setting for resource-efficient kernel reuse across sessions.
- Enhanced Python tool with session-scoped kernel isolation and workdir-aware session IDs.
- Added Python tool cancellation support with timeout handling and proper cleanup.
- Expanded Python prelude with enhanced file operations, git utilities, and improved output handling.
- Fixed AI provider message transformation for proper tool call handling and error recovery.
2026-01-18 21:07:02 +01:00
can1357 b40d2db72e feat(coding-agent/core): added structured status events for Python prelude with TUI rendering
- Added structured status events for Python prelude functions with TUI rendering.
- Implemented status event parsing and display system with operation icons.
- Enhanced Python tool renderer to display status events alongside output.
- Added support for rich output using IPython.display.display() in Python tool.
2026-01-18 20:17:37 +01:00
can1357 545af24717 fix(agent): added proper tool result messages for aborted or failed tool calls
- Added proper tool result messages for tool calls that are aborted or error out.
- Ensured tool_use/tool_result pairing is maintained when tool execution fails.
2026-01-18 20:09:05 +01:00
can1357 27a64294b1 fix(coding-agent/core): fixed Python prelude sh() and cleaned up shell output 2026-01-18 20:07:01 +01:00
can1357 7781bdc014 feat(coding-agent/cli): added setup subcommand for optional feature dependencies
- Added setup subcommand for installing optional feature dependencies.
- Implemented Python component setup with Jupyter kernel package installation.
- Added component status checking via --check flag with JSON output support.
- Created package installation logic using uv (preferred) or pip package managers.
2026-01-18 20:00:39 +01:00
can1357 d620f07c1e feat(coding-agent/core): added Python gateway coordinator with shared resource management
- Added shared Python gateway coordinator with file locking and automatic resource management.
- Added comprehensive Git helpers and line-based operations to Python prelude.
- Enhanced /status command to display Python gateway, LSP servers, and MCP connections.
- Changed default Python tool mode from ipy-only to both for shell execution support.
- Fixed Python tool proxy execution and signal handling in worker processes.
2026-01-18 19:54:35 +01:00
can1357 feaa35a97b feat(coding-agent/core): added shared Python gateway coordinator for resource-efficient kernel management
- Added shared Python gateway coordinator for resource-efficient kernel management.
- Implemented automatic idle shutdown for shared Python gateway after 30 seconds.
- Added environment filtering for shared Python gateway to exclude API keys.
- Updated Python kernel startup to use shared gateway by default with fallback support.
- Fixed Python tool session requirement for proxy executor in workers.
2026-01-18 19:37:11 +01:00
can1357 1d414c1383 feat: added IPython-backed Python tool with streaming output and Jupyter integration
- Added IPython-backed Python tool with streaming output and image/JSON rendering.
- Implemented Jupyter kernel gateway integration with WebSocket communication.
- Added Python prelude with 30+ shell-like utility functions for file operations.
- Migrated environment variables from PI_ to OMP_ prefix with automatic migration.
- Added streaming output system with automatic spill-to-disk for large outputs.
- Reorganized settings interface into behavior, tools, display, voice, status, lsp, and exa tabs.
2026-01-18 19:32:27 +01:00
can1357 6dff3daa14 feat(coding-agent/modes): added TabBar component to model selector for provider navigation
- Updated model selector to use TabBar component for provider navigation.
- Added support for /models command alias in addition to /model command.
- Changed role badges to inverted style with colored backgrounds.
- Enhanced TabBar component with text wrapping for overflow content.
2026-01-18 18:07:51 +01:00
can1357 ac151519c1 feat: port upstream changes from pi-mono (72047c05..55769e75)
AI provider fixes:
- Fixed Claude tool prefix matching and Gemini 3 unsigned tool handling
- Added Bedrock thinking budget guardrails and tool id sanitization
- Added tool argument coercion and Codex response retry logic

TUI improvements:
- Improved Kitty key handling and editor behavior (scrolling, padding, kill ring)

Coding agent changes:
- Added extension input interception, compaction helpers, and UI updates
- Added session forking prompt for cross-project sessions
- Added APPEND_SYSTEM discovery, piped stdin print mode, and key hint exports

Docs:
- Updated pi-mono sync point
2026-01-18 17:52:58 +01:00
can1357 f1d71fbd9d feat: implemented Emacs-style kill ring with Alt+D and Ctrl+Y bindings
- Added automatic retry logic for OpenAI Codex responses with configurable delay and max retries.
- Added input event handlers for extensions to intercept user input and argument completion support.
- Added Emacs-style kill ring for text deletion operations with Alt+D and Ctrl+Y keybindings.
- Added configurable editor padding via editorPaddingX theme option and setMaxHeight() method.
- Fixed tool prefix handling in Claude provider to use case-insensitive comparison.
- Enhanced Kitty keyboard protocol support for better key detection and shifted symbol handling.
2026-01-18 17:12:18 +01:00
can1357 095d01a8ac chore: bump version to 5.5.0 2026-01-18 04:59:28 +01:00
can1357 f9ababd17b refactor(ai): updated User-Agent header to 'pi' and simplified Codex prompts
- Updated User-Agent header from 'opencode' to 'pi' for OpenAI Codex requests.
- Simplified Codex system prompt instructions and removed bridge text override.
- Removed bridge text parameter from buildCodexSystemPrompt function.
- Updated task execution guidelines with parallelization instructions.
2026-01-18 04:54:15 +01:00