Commit Graph

1618 Commits

Author SHA1 Message Date
can1357 1217c55562 refactor(coding-agent/task): extracted truncateOutput function to shared tools module as truncateTail
- Extracted truncateOutput function to shared tools module as truncateTail.
- Updated executor to import and use truncateTail from tools module instead of local implementation.
2026-02-04 09:44:32 +01:00
can1357 f3cff9d1b9 feat(tools): enhanced browser viewport and WebGL stealth configuration for high-DPI displays
- Added device scale factor (1.25x) to browser viewport configuration for improved rendering on high-DPI displays.
- Enhanced device pixel ratio detection to use actual window.devicePixelRatio when available instead of hardcoded value.
- Improved WebGL stealth by masking additional WebGL parameter queries (VENDOR and RENDERER) beyond unmasked variants.
2026-02-04 09:28:00 +01:00
can1357 67cd1509c6 chore(deps): updated SDK dependencies and added Puppeteer tool with stealth modules
- Updated @anthropic-ai/sdk from ^0.71.2 to ^0.72.1 in packages/ai.
- Updated @aws-sdk/client-bedrock-runtime from ^3.975.0 to ^3.982.0 in packages/ai.
- Updated @google/genai from ^1.38.0 to ^1.39.0 in packages/ai.
- Updated @smithy/node-http-handler from ^4.4.8 to ^4.4.9 in packages/ai.
- Updated openai from ^6.16.0 to ^6.17.0 in packages/ai.
- Removed proxy-agent and undici dependencies from packages/ai.
2026-02-04 09:25:45 +01:00
can1357 c95f502464 docs(coding-agent/prompts): updated system prompt to reduce round-trips and strengthen ask tool guidance
- Updated system prompt guidance to state assumptions and proceed without asking for confirmation, reducing unnecessary round-trips.
- Tightened ask tool conditions to require multiple approaches with significantly different tradeoffs before prompting user.
- Strengthened ask tool guidance to default to action and only ask when genuinely blocked by decisions with materially different outcomes.
- Changed refactor workflow to automatically remove now-unused elements and note removals instead of asking for confirmation.
2026-02-04 08:25:45 +01:00
can1357 9a942ed227 feat(coding-agent): added exclusive concurrency mode enforcement to file-modifying tools
- Added exclusive concurrency mode enforcement to file-modifying tools (edit, write, bash, python, ssh, todo-write) by introducing a new public `concurrency` property set to "exclusive" on each tool class.
- Updated CHANGELOG.md to document the enforcement of exclusive concurrency mode for file-modifying tools.
- Cleaned up imports in tool-execution.ts by removing unused Theme type import and reordering imports for better organization.
2026-02-04 08:25:22 +01:00
can1357 dcb8d10a72 refactor(coding-agent/extensibility): extracted tool proxy logic into reusable applyToolProxy utility function
- Extracted tool property proxying logic into a new applyToolProxy utility function to reduce duplication across wrapper classes.
- Simplified wrapper class implementations by replacing manual property assignments with declarative property forwarding via applyToolProxy.
- Converted explicit property declarations to declare statements and lazy getters that delegate to the underlying tool object.
- Removed renderCall and renderResult method declarations from wrapper classes, consolidating rendering logic handling in the tool-proxy module.
2026-02-04 07:06:21 +01:00
can1357 2f4743e912 refactor(coding-agent): extracted JSON tree rendering utilities into dedicated module for reuse
- Extracted JSON tree rendering utilities into dedicated module for reuse across tool renderers.
- Moved formatArgsInline, renderJsonTreeLines, and related constants from mcp/render.ts to tools/json-tree.ts.
- Updated tool-execution.ts to import and use shared JSON tree rendering functions.
2026-02-04 07:04:04 +01:00
can1357 fac1bf28f8 docs(coding-agent/prompts): added critical instruction to system prompt emphasizing task completion
- Added critical instruction to system prompt emphasizing task completion and preventing premature stopping.
2026-02-04 06:51:59 +01:00
can1357 2721f7c962 feat(coding-agent/tools): refactored ask tool to require questions array parameter
- Changed `ask` tool to require `questions` array parameter; single-question mode with `question`, `options`, `multi`, and `recommended` parameters is no longer supported.
- Updated `ask` tool guidance to prioritize proactive problem-solving and default to action, asking only when truly blocked by decisions that materially change scope or behavior.
- Refactored ask tool implementation to consolidate single and multi-question logic paths.
2026-02-04 05:45:39 +01:00
can1357 f41705ce3a feat(coding-agent): improved Python startup performance with prelude caching and shared gateway mode
- Added Python prelude caching to improve startup performance by caching helper functions and module discovery results.
- Added OMP_DEBUG_STARTUP environment variable for detailed startup stage tracing across initialization pipeline.
- Changed Python kernel initialization to require shared gateway mode, removing support for local kernel gateway startup.
- Improved error handling in shared gateway acquisition with automatic retries on 5xx status codes.
- Added repro-stuck.ts script for reproducing and debugging rare CLI hang issues with Chrome DevTools integration.
- Added trace-loader.ts preload script for tracing module resolution during startup diagnostics.
2026-02-04 05:02:28 +01:00
can1357 395a606167 fix(coding-agent/session): fixed title not being generated on /new route
- Initialized sessionName to undefined on /new to ensure title is properly generated.
2026-02-04 04:08:49 +01:00
can1357 11b1cc09ea fix(coding-agent/tools): fixed glob search returning no results when all files are ignored by gitignore
- Fixed glob search returning no results when all files are ignored by gitignore by automatically retrying without gitignore filtering.
2026-02-04 02:14:16 +01:00
can1357 46d20268e6 chore: bump version to 10.3.2 2026-02-03 22:01:04 +01:00
can1357 315cd35958 feat(coding-agent/mcp): added TUI rendering for MCP tool calls and results with JSON tree display
- Added renderCall and renderResult methods to MCPTool and DeferredMCPTool classes for TUI rendering of tool calls and results.
- Created new mcp/render.ts module providing JSON tree rendering functionality with configurable depth and line limits for terminal display.
- Updated renderResult signature in custom tool and extension types to accept optional args parameter for accessing original tool arguments during result rendering.
- Fixed method binding in extension and hook tool wrappers by applying .bind(tool) to renderCall and renderResult methods to preserve correct 'this' context.
- Added filter to skip .git directories in fuzzy_find_sync function to improve search performance.
2026-02-03 21:59:54 +01:00
can1357 8d68b678cc chore: bump version to 10.3.1 2026-02-03 17:47:32 +01:00
can1357 a857ae4d70 fix(coding-agent): fixed LSP timeout handling and externalized subagent reminder prompt
- Fixed timeout handling in LSP write-through operations to properly clear formatter and diagnostics results when operations exceed the 10-second timeout threshold.
- Added timeout detection mechanism in LSP index that sets a flag when the timeout signal is aborted.
- Added nonAbortable property to EditTool and WriteTool classes to prevent these operations from being aborted during execution.
- Externalized subagent submit reminder prompt to a separate template file for improved maintainability and dynamic retry tracking.
2026-02-03 17:46:13 +01:00
can1357 8fde0c2431 chore: bump version to 10.3.0 2026-02-03 13:10:11 +01:00
can1357 4e8c0121a7 docs(coding-agent/prompts): applied semantic compression to system prompt and skill documentation
- Applied semantic compression rules to system prompt and skill documentation, removing grammatical scaffolding while preserving meaning-carrying content.
- Updated semantic-compression skill documentation with more aggressive compression stance, expanded deletion tiers, and clarified preservation rules.
- Refactored system prompt for brevity using fragments, label:value pairs, and direct phrasing without sacrificing clarity or instruction fidelity.
2026-02-03 12:57:22 +01:00
can1357 3580beeb6a docs(skills/semantic-compression): added semantic-compression skill docs and enhanced system prompt guidance
- Added semantic-compression skill documentation with deletion tiers, preservation rules, and compression examples.
- Enhanced system prompt with explicit assumption-stating guidance, pre-finishing checklist, and conflict resolution procedures.
- Added verification guidance for test-first approach and naive-before-optimizing pattern for algorithmic work.
- Clarified commitment to high-reliability contexts and user stamina constraints in stakes section.
2026-02-03 12:29:17 +01:00
can1357 c837a5a5eb feat(coding-agent/config): removed shellForceBasic and bash.persistentShell settings
- Removed 'shellForceBasic' setting that forced bash/sh shell selection regardless of default shell configuration.
- Removed 'bash.persistentShell' experimental setting for shell session reuse across commands.
- Simplified shell configuration logic by removing conditional branching in getShellConfig() method.
2026-02-03 11:53:08 +01:00
can1357 799095bea5 chore: bump version to 10.2.3 2026-02-02 15:18:12 +01:00
can1357 84e1636ad3 docs(coding-agent/prompts): updated patch tool documentation to clarify formatter usage and whitespace handling
- Updated patch tool documentation to clarify formatter usage and whitespace handling guidance.
2026-02-02 15:17:48 +01:00
can1357 ca1d26e205 feat(coding-agent): consolidated LSP operations and removed Rust-analyzer specific functionality
- Consolidated LSP actions by merging workspace_symbols into symbols operation and workspace_diagnostics into diagnostics operation.
- Removed Rust-analyzer specific LSP operations: flycheck, expand_macro, ssr, runnables, related_tests, and reload_workspace.
- Removed LSP actions: workspace_diagnostics, workspace_symbols, actions, incoming_calls, and outgoing_calls in favor of consolidated operations.
- Removed LSP tool parameters: replacement, kind, action_index, end_line, and end_character.
- Removed Python prelude helper functions: pwd(), mkdir(), ls(), head(), tail(), sh(), cat(), touch(), wc(), basenames(), and batch().
- Simplified LSP tool documentation and system prompts to reflect consolidated operations and removed functionality.
2026-02-02 15:13:13 +01:00
can1357 73a24048a7 feat(coding-agent): reorganized settings tabs from 8 to 10 with improved categorization and visual icons
- Reorganized settings tabs from 8 to 10 tabs with improved categorization: Display, Agent, Input, Tools, Config, Services, Bash, LSP, TTSR, and Status.
- Moved behavior-related settings (thinking level, steering mode, retry attempts) from Behavior tab to new Agent tab.
- Moved input/interaction settings (escape action, collapse changelog, notifications) to new Input tab.
- Moved tool configuration settings (line numbers, fuzzy matching, patch mode) from Tools tab to new Config tab.
- Moved provider and external service settings (web, image, exa) to new Services tab.
- Removed type guard functions (isBashToolResult, isReadToolResult, isEditToolResult, isWriteToolResult, isGrepToolResult, isFindToolResult, isLsToolResult) from public API exports.
2026-02-02 14:56:53 +01:00
can1357 a94510109d docs(coding-agent/prompts): removed ls tool references from system prompt tool precedence and critical sections
- Removed `ls` tool references from system prompt tool precedence and critical sections.
2026-02-02 14:56:25 +01:00
can1357 e66d71f6b9 refactor(tools): consolidated directory listing functionality from ls tool into read tool
- Consolidated directory listing functionality from dedicated `ls` tool into the `read` tool.
- Removed the `ls` tool and all related exports, types, and configurations from the public API.
- Updated `read` tool to return formatted directory listings with modification times instead of redirecting to `ls` tool.
- Removed `bashInterceptor.simpleLs` setting and related interception logic from bash tool.
- Removed `ls.enabled` setting and related tool registration logic.
- Removed test cases for the `ls` tool and updated tool type definitions to remove `LsToolResultEvent`.
2026-02-02 14:55:48 +01:00
can1357 5926226e5c feat(coding-agent): added enable/disable settings for specialized tools with conditional documentation
- Added enable/disable settings for specialized tools (find, grep, ls, notebook, fetch, web_search, lsp, calc) allowing fine-grained control over tool availability.
- Implemented conditional tool documentation in system prompt that dynamically lists only enabled specialized tools based on configuration.
- Updated tool filtering logic to respect enable/disable settings, preventing unavailable tools from being exposed to the agent.
2026-02-02 14:41:51 +01:00
can1357 e5e45d0280 refactor(coding-agent): reorganized todo settings namespace and refactored tool availability checks
- Reorganized todo-related settings from `todoCompletion.*` namespace to `todo.*` namespace with separate `todo.enabled` and `todo.reminders.*` properties.
- Updated settings access pattern in agent session from grouped settings object to flat dot-notation keys for improved consistency.
- Refactored todo_write tool availability check to independently gate on both `todo.enabled` setting and absence of submit_result.
2026-02-02 14:34:34 +01:00
can1357 d0a47416ef fix(coding-agent): removed unused project tree scanning and fixed tool parameter schema display
- Fixed tool parameter schemas displaying internal TypeBox metadata fields in system prompt.
- Removed project tree snapshot generation from system prompt as unused feature.
- Removed unused imports and constants related to project tree scanning functionality.
2026-02-02 14:29:41 +01:00
can1357 877f4aead7 style(coding-agent/prompts): condensed prompt documentation for improved clarity and conciseness
- Condensed prompt documentation throughout by removing articles, auxiliary verbs, and redundant explanations for improved clarity and conciseness.
- Simplified system prompts by replacing multi-line explanations with terse, semicolon-separated fragments and removing verbose motivational language.
- Reformatted tool documentation to use abbreviated language, removing 'the', 'a', and 'is' throughout for more direct technical writing.
- Removed blank lines and consolidated spacing in prompt files to reduce vertical whitespace and improve document density.
2026-02-02 14:29:21 +01:00
can1357 beed5fa905 docs(coding-agent/task): updated quick_task agent description to clarify low-reasoning purpose
- Updated quick_task agent description to clarify its purpose as a low-reasoning agent for mechanical updates and data collection.
2026-02-02 13:48:19 +01:00
can1357 118d0218f4 chore: bump version to 10.2.2 2026-02-02 13:40:00 +01:00
can1357 85d2984184 Merge remote-tracking branch 'origin/main' 2026-02-02 13:39:48 +01:00
can1357 7e64c4b6d8 feat(natives): exported getWorkProfile function and WorkProfile type from main package index
- Exported getWorkProfile function and WorkProfile type from main package index for work profiling capabilities.
- Updated coding-agent debug module imports to use new main package exports instead of subpath imports.
2026-02-02 13:39:00 +01:00
Can Bölük 9cb9621fdb Merge pull request #3 from juztim/fix/plan-mode-uses-plan-role
Fix plan mode to use plan role model
2026-02-02 12:58:44 +01:00
can1357 d17873dfd4 chore: bump version to 10.2.1 2026-02-02 03:47:25 +01:00
can1357 0c92a0ba35 feat(coding-agent): removed strippedRedirect field and stderr redirection handling from bash normalization
- Removed 'strippedRedirect' field from NormalizedCommand interface returned by normalizeBashCommand().
- Removed automatic stripping of '2>&1' stderr redirections from bash command normalization.
- Updated bash-normalize function to only extract head/tail patterns and no longer process stderr redirection.
- Removed test cases for 2>&1 stripping and combined pattern handling in bash-normalize tests.
2026-02-02 03:47:08 +01:00
can1357 8373127bfe chore: bump version to 10.2.0 2026-02-02 03:27:05 +01:00
can1357 41e4d5a0b1 feat(task-scheduling): refactored task scheduling with CancelToken, renamed find() to glob(), and unified async cancellation
- Introduced new task scheduling system with CancelToken for cooperative cancellation, replacing Rayon-based work scheduling with libuv thread pool integration.
- Added Cancellable interface with timeoutMs and signal properties for unified timeout and abort signal handling across all async operations.
- Converted async functions (clipboard, html, image, shell, grep, glob) to synchronous functions returning task::Async wrappers for consistent cancellation semantics.
- Removed abortShellExecution() function and executionId tracking in favor of centralized CancelToken-based cancellation.
- Simplified htmlToMarkdown() signature by removing RequestOptions parameter and delegating cancellation to Cancellable interface.
2026-02-02 03:26:36 +01:00
can1357 d6f6989c64 chore: bump version to 10.1.0 2026-02-01 22:16:34 +01:00
can1357 68992fbbf3 perf(pi-natives): optimized memory allocations by replacing Vec with SmallVec across modules
- Replaced heap-allocated Vec with stack-allocated SmallVec in grep module for context lines and type filters to reduce allocations.
- Optimized process tree data structure in ps module from Vec to SmallVec with capacity 4 for typical process child counts.
- Changed shell module to use SmallVec for process IDs collection, reducing heap allocations in abort operations.
- Refactored text module to use SmallVec for token and line collections, avoiding heap allocations for typical text wrapping scenarios.
- Increased work profiler stack capacity from 2 to 4 elements and optimized stack collection using iterator copy.
- Added work profile capture to debug report bundle for improved profiling insights.
2026-02-01 22:08:02 +01:00
can1357 951fc48eba feat(work): added work scheduling profiler with circular buffer sampling and flamegraph visualization
- Added work scheduling profiler with always-on circular buffer sampling to track CPU scheduling patterns and task execution times.
- Added `getWorkProfile()` native function to retrieve profiling data including folded stacks, markdown summary, SVG flamegraph, and metrics for the last N seconds.
- Added work profile debug menu item to visualize CPU scheduling patterns via flamegraph in the coding agent.
- Added work profile support to report bundles with folded stacks, summary, and flamegraph visualization.
- Updated `launch_blocking()` and `launch_async()` functions to accept task name tags for profiling instrumentation.
- Added dependencies on inferno, smallvec, and heapless crates for profiling infrastructure.
2026-02-01 22:04:15 +01:00
Tim Wüstenhagen 47d2315e26 Fix plan mode to use plan role model 2026-02-01 21:54:32 +01:00
can1357 c8d5ada528 chore: bump version to 10.0.0 2026-02-01 19:38:28 +01:00
can1357 dbf4eeaf97 test(coding-agent): added test cases verifying spawned processes are properly killed on timeout and abort signals
- Added test cases verifying that spawned processes are properly killed on timeout and abort signals instead of being orphaned.
2026-02-01 19:28:21 +01:00
can1357 592e5e2191 feat(shell): added interactive shell console and cancellation token support to CLI
- Added interactive shell console subcommand to coding-agent CLI with support for working directory, timeout, and snapshot configuration.
- Added cancellation token support to ExecutionContext and ExecutionParameters for graceful shell execution interruption.
- Implemented cancellation checks throughout AST execution pipeline (Program, CompoundList, AndOrList, Pipeline, and all command types) to enable responsive interruption.
- Replaced process tracking mechanism with tokio_util CancellationToken for improved async cancellation handling.
- Added tokio-util 0.7.16 dependency to pi-natives crate for cancellation token support.
2026-02-01 19:16:57 +01:00
can1357 49a24cf27b build(deps): vendored brush-core crate locally for development and patching
- Vendored brush-core crate locally to enable local development and patching.
- Added patch.crates-io section in Cargo.toml to redirect brush-core dependency to vendored version at crates/brush-core-vendored.
- Updated pi-natives Cargo.toml to use local path dependency for brush-core instead of external crate version.
2026-02-01 19:04:16 +01:00
can1357 f38e0628ab fix(coding-agent/tools): fixed find tool to handle file paths and added glob pattern detection
- Fixed `find` tool to return a single match when given a file path instead of failing with 'not a directory' error.
- Added `hasGlobChars` helper function to detect glob patterns and distinguish file paths from glob patterns.
- Extended `FindOperations` interface with optional `stat` method for distinguishing files from directories.
- Added test case verifying that `find` tool correctly returns a single file when given a file path.
2026-02-01 17:37:22 +01:00
can1357 f517b22f73 chore: bump version to 9.8.0 2026-02-01 17:18:08 +01:00
can1357 2a131d201e feat(natives): fixed binary installs with embedded native addon extraction
- Added automatic extraction of embedded native addon payload to ~/.omp/natives/<version> on first run of compiled binaries.
- Added embed:native build script for generating platform-specific native addon payloads embedded in compiled binaries.
- Enhanced native addon loading to prioritize extracted embedded addon over downloaded versions.
- Improved error messages with platform-specific guidance for compiled vs npm-installed binaries.
- Refactored CI workflow to use reusable build_binary() function for cross-platform binary compilation.
2026-02-01 17:16:53 +01:00