Commit Graph

1532 Commits

Author SHA1 Message Date
can1357 754da171a4 feat: added interactive /review command with multi-mode selection
- Added interactive /review command with mode selection for base
branch, uncommitted changes, specific commit, or custom
instructions.
- Added subprocess tool registry for extracting and rendering tool
data from subprocess agents.
- Added combined review result rendering with verdict and findings
tree structure.
- Changed bundled commands to be overridable by user/project
commands with same name.
- Removed findings_count parameter from submit_review tool in
favor of automatic counting.
- Added fix npm script for auto-fixable lint issues with unsafe
fixes.
2026-01-03 06:39:04 +01:00
can1357 1d31054be9 docs(coding-agent): added changelog entry for task abort status fix 2026-01-03 06:26:12 +01:00
can1357 93f091d32f fix(coding-agent): Task tool subprocess now uses agent's configured model
The --model CLI flag now accepts provider/model format directly,
eliminating the need for a separate --provider flag. The Task tool's
model-resolver returns provider/model format, which the subprocess
CLI correctly parses.

Previously, subprocesses were passed --model gpt-5.2 without --provider,
causing the CLI to ignore the model and fall back to settings default.
2026-01-03 06:25:58 +01:00
can1357 353aa85c42 fix(coding-agent): show aborted status for task tool
When a task is aborted, now shows "⊘ agent: aborted" instead of
"✓ agent: done". Summary line also shows "N aborted" count.
2026-01-03 06:13:03 +01:00
can1357 9f9d5b1e76 feat(coding-agent): added auto-read for @filepath mentions in prompts
Files referenced with @path/to/file.ext syntax are automatically read
and injected as synthetic Read tool calls before the agent responds,
eliminating the need for manual file reads.
2026-01-03 05:52:40 +01:00
can1357 f07b7cd190 feat(coding-agent): stream Task tool artifacts in real-time
- Write input file (.in.md) before spawning subprocess
- Use subtask-specific session file so pi writes jsonl in real-time
- Output file (.out.md) still written at completion (summary)

Enables observing/debugging running subagents via their session files.
2026-01-03 05:34:47 +01:00
can1357 8aaeaadcdc fix(coding-agent): fixed Task tool output duplication from streaming events
message_update events contain full accumulated text, not deltas.
Previously appending them caused repeated content in artifacts and
progress display. Now message_update only updates progress display
(replacing, not accumulating) and message_end handles final output.
2026-01-03 05:30:37 +01:00
can1357 50ab6b8b1b style: removed .js extension from imports and added node: prefix to builtins 2026-01-03 05:12:25 +01:00
can1357 3d53aa181f feat(coding-agent): added review tools and /review command
- Added report_finding and submit_review built-in tools (hidden by default)
- Added hidden field to AgentTool interface for tools that require explicit opt-in
- Added /review bundled command to launch reviewer agent
- Updated bundled reviewer agent with comprehensive code review guidelines
2026-01-03 05:10:53 +01:00
can1357 c70303ade9 feat(coding-agent): added structured code review with hidden tools and explicit opt-in
- Added hidden property for custom tools to exclude them from default tool list unless explicitly requested.
- Added explicitTools option to createAgentSession for enabling hidden tools by name.
- Added example review tools (report_finding, submit_review) with structured findings accumulation and verdict rendering.
- Added /review command for interactive code review with branch comparison, uncommitted changes, and commit review modes.
- Updated bundled reviewer agent to use structured review tools with priority-based findings (P0-P3) and formal verdict submission.
2026-01-03 05:08:20 +01:00
can1357 83809771d9 fix(coding-agent): passed commands settings to slash command discovery
commands.enableClaudeUser and commands.enableClaudeProject settings
were not being used - fixed by passing settingsManager.getCommandsSettings()
to discoverSlashCommands in createAgentSession.
2026-01-03 04:49:05 +01:00
can1357 a099076a99 feat(coding-agent): added custom slash command loading from user and project directories
- Added custom TypeScript slash commands loaded from ~/.pi/commands/ and .pi/commands/ directories.
- Added support for loading markdown slash commands from Claude's ~/.claude/commands/ and .claude/commands/ directories.
- Added commands.enableClaudeUser and commands.enableClaudeProject settings to control Claude command directory loading.
- Implemented CustomCommandAPI with exec, typebox, and pi module injection for command execution context.
- Integrated custom commands into autocomplete provider for interactive mode discovery.
2026-01-03 04:31:07 +01:00
can1357 a67dae275a chore: add release command for claude 2026-01-03 04:11:48 +01:00
can1357 ac051daf90 feat(coding-agent): added clipboard export option to /export command 2026-01-03 04:05:00 +01:00
can1357 776ab5eb24 chore: bump version to 1.341.0 2026-01-03 04:00:16 +01:00
can1357 015f2c7e54 feat(agent): added interruptMode to control queued message timing
- Added interruptMode option to control when queued messages interrupt tool execution.
- Implemented "immediate" mode (default) to check queue after each tool and interrupt remaining tools.
- Implemented "wait" mode to defer queue processing until the entire turn completes.
- Exposed interruptMode configuration in interactive settings UI with immediate/wait options.
- Wired interrupt mode through AgentSession and SDK to enable runtime configuration and persistence.
2026-01-03 03:56:13 +01:00
can1357 4f8df6b79f refactor(coding-agent): renamed small to smol consistently
- Renamed SMALL_MODEL_PRIORITY to SMOL_MODEL_PRIORITY
- Renamed findSmallModel to findSmolModel
- Updated all role strings from 'small' to 'smol'
- Updated UI labels and comments
2026-01-03 03:46:45 +01:00
can1357 60f39f8382 feat(coding-agent): added CLI args and env vars for model role overrides
- Added --smol and --slow CLI args for ephemeral model role overrides
- Added PI_SMOL_MODEL and PI_SLOW_MODEL env var support
- Overrides are applied at runtime without persisting to settings.json
2026-01-03 03:40:24 +01:00
can1357 4b73cb6a54 feat(coding-agent): added slow model role for comprehensive reasoning
- Added pi/smol alias for explore agent (fast/cheap model)
- Added pi/slow alias for reviewer agent (reasoning/codex model)
- Added L key binding in model selector to set slow model
- Added 🧠 marker for slow model in selector
- Slow model priority chain: gpt-5.2-codex > codex > gpt > opus > pro
2026-01-03 03:36:51 +01:00
can1357 003a19bdaa feat(coding-agent): added model roles for default and small model configuration
- Settings now use modelRoles map (e.g., { default: 'anthropic/claude-sonnet-4-5', small: 'anthropic/claude-haiku-4-5' })
- Session persistence uses 'provider/modelId' string format with optional role field
- Model selector: Enter sets default, S sets small, Escape closes
- Added role markers in selector: checkmark for default, lightning bolt for small
- Task tool supports pi/<role> aliases (e.g., model: pi/small, haiku, flash, mini)
- Title generation uses configured small model with auto-discovery fallback
- Explore agent now uses pi/small as primary model preference
2026-01-03 03:33:02 +01:00
can1357 206b7b06fd fix(coding-agent): made LSP idle timeout configurable and disabled by default 2026-01-03 03:12:13 +01:00
can1357 ebcdf50e48 feat(coding-agent): added auto session titles for better identification
- Added automatic session title generation using small models (Haiku/GPT-4o-mini/Flash) to improve session identification.
- Implemented terminal window title updates to display current session context.
- Updated session selector to show title with dimmed first message preview for better session browsing.
- Extended SessionInfo and SessionHeader interfaces to persist and display generated titles.
- Added title model preference hierarchy with fallback to any available model for reliability.
2026-01-03 03:07:03 +01:00
can1357 ccc0a8b6c8 feat(coding-agent): added LSP format-on-write with server warmup
- Added LSP format on write to automatically format code files using language server formatters after writing.
- Implemented LSP server warmup at startup to avoid cold-start delays when first writing files.
- Added LSP server status display in welcome banner to show which language servers are active and ready.
- Fixed recent sessions display in welcome banner which was never wired up.
- Improved grep tool description to document pagination options and clarify recursive search behavior.
2026-01-03 02:58:30 +01:00
can1357 9262bbe9eb feat(coding-agent): added LSP configs for 40+ languages and edit fuzzy matching
- Added edit fuzzy match setting to allow users to control whitespace/indentation tolerance in the edit tool.
- Added comprehensive LSP server configurations for 40+ languages including Rust, Go, Python, Java, Kotlin, Scala, Haskell, OCaml, Elixir, Ruby, PHP, C#, Lua, Nix, and more.
- Extended LSP config file search paths to include lsp.json, .lsp.json in project root, .pi/ subdirectory, and user-level configs in ~/.pi/ and home directory.
- Increased LSP diagnostics timeout from 2000ms to 5000ms to accommodate slower language servers.
2026-01-03 02:51:21 +01:00
can1357 45df371fdc feat(coding-agent): added LSP diagnostics on write for immediate feedback
- Added LSP diagnostics integration to write tool for immediate feedback on syntax errors and type issues after writing code files.
- Implemented multi-server LSP diagnostics to query all applicable language servers (e.g., TypeScript + Biome) and merge results for comprehensive error reporting.
- Added Biome language server configuration to enable combined type-checking and linting diagnostics for TypeScript/JavaScript projects.
- Introduced lsp.diagnosticsOnWrite setting to allow users to control automatic diagnostics behavior.
- Enhanced TUI tool execution component to display LSP diagnostics with color-coded severity indicators.
2026-01-03 02:44:16 +01:00
can1357 2b3fff9e9e chore: bump version to 1.340.0 and update changelogs 2026-01-03 01:34:58 +01:00
can1357 ed03480309 refactor(coding-agent): replaced vendored highlight.js with CDN to reduce bundle size
- Replaced vendored highlight.js with CDN-hosted version to reduce bundle size by ~1200 lines.
- Added CSS, JS, and HTML minification functions to reduce exported file size.
- Implemented caching for minified template and JS assets to avoid redundant processing.
- Updated share preview URL to use gistpreview.github.io for session sharing.
2026-01-03 01:31:15 +01:00
can1357 9debb0f8c6 feat(coding-agent): add MCP project config setting and Exa auto-filtering 2026-01-03 01:04:55 +01:00
can1357 2ee73541e0 chore: add [Unreleased] section for next cycle 2026-01-03 00:31:51 +01:00
can1357 720aae421f chore: bump version to 1.338.0 and update changelogs 2026-01-03 00:30:33 +01:00
can1357 ee28916b57 feat(coding-agent): add bash interceptor setting and refactor settings UI
- Add bash interceptor setting (disabled by default) to block shell commands
  that have dedicated tools (grep, cat, find, etc.)
- Refactor settings UI to declarative definitions in settings-defs.ts
- Shell detection now respects $SHELL env var before falling back to bash/sh
- Tool binary detection uses Bun.which() instead of spawning processes
- Fix CLI help text to accurately list all default tools
2026-01-03 00:29:28 +01:00
can1357 7db3b35dc4 refactor(coding-agent): extracted settings defs for single source
- Introduced declarative settings definitions to eliminate duplicated setting logic across UI and handlers.
- Extracted settings configuration into settings-defs.ts for single-source-of-truth maintenance.
- Simplified SettingsSelectorComponent to generate UI from definitions rather than hardcoded items.
- Added bash interceptor toggle to allow users to control shell command interception behavior.
- Updated CLI help text to reflect all available tools with accurate default states.
- Consolidated settings change handling into unified handler dispatching by setting ID.
2026-01-03 00:28:51 +01:00
can1357 7cc69d5d3e refactor(coding-agent): simplified shell and tool detection with Bun APIs
- Replaced hardcoded shell path detection with user's $SHELL preference for better environment compatibility.
- Simplified commandExists function to use Bun.which instead of spawning processes for faster tool detection.
- Updated getToolPath to return full binary path from Bun.which for more reliable tool resolution.
2026-01-03 00:16:25 +01:00
can1357 73efb9b520 chore: bump version to 1.337.1 and update changelogs 2026-01-02 23:05:37 +01:00
can1357 fbfb24ed45 fix(web-ui): added repository field for npm provenance 2026-01-02 23:00:31 +01:00
can1357 6e33259b5b chore: removed obsolete todo.md tracking completed export tasks
- Removed obsolete todo.md file tracking completed export HTML tasks.
2026-01-02 22:59:25 +01:00
can1357 084de48d4b fix: updated CI workflows and TypeBox validation for build compatibility
- Updated CI workflows to include explicit coding-agent build step for proper binary compilation.
- Changed TypeBox validation from ts-expect-error to explicit any cast to resolve CJS/ESM type mismatch.
2026-01-02 22:55:00 +01:00
can1357 2665c03402 fix: corrected test expectations and template string interpolation 2026-01-02 22:52:27 +01:00
can1357 8f24c93b59 ci: added imagemagick for tests 2026-01-02 22:49:03 +01:00
can1357 ddc240592f ci(workflows): consolidated release automation into unified publish workflow
- Replaced build-binaries workflow with unified publish workflow to consolidate release automation.
- Added matrix-based parallel binary builds across platforms for faster release cycles.
- Simplified CI workflow by removing concurrency settings and adding CLI smoke tests.
- Added npm publish step with provenance support for secure package distribution.
- Introduced skip_npm input to allow binary-only releases when needed.
2026-01-02 22:40:25 +01:00
can1357 26fd43d999 refactor(coding-agent): improved process cleanup with tree kill
- Replaced process group kill with descendant-aware tree traversal to handle non-leader processes.
- Added pgrep-based child discovery with /proc fallback for broader Linux compatibility.
- Introduced optional grace period parameter to allow SIGTERM before SIGKILL for graceful shutdown.
- Simplified focus return value in interactive mode for consistency.
2026-01-02 22:33:26 +01:00
can1357 e43e6bc236 feat(tui): added TabBar component for horizontal tab navigation
- Added TabBar component to enable horizontal tab navigation with keyboard support.
- Refactored settings selector to use tabbed interface for better organization of Config, Exa, and Plugins sections.
- Added Shift+Space handling via Kitty protocol to fix space insertion in editor.
- Removed redundant LSP explanation text from system prompt for conciseness.
2026-01-02 22:31:27 +01:00
can1357 cfb99df249 feat(coding-agent): added specialized Exa tools with granular toggles
- Added specialized Exa web search tools for deep search, code context, URL crawling, LinkedIn, and company research.
- Implemented settings UI for granular control over Exa tool availability with per-feature toggles.
- Changed Exa addon defaults to disabled to prevent unexpected API usage for LinkedIn, company, researcher, and websets features.
- Added settings manager methods to persist individual Exa feature preferences.
2026-01-02 22:26:21 +01:00
can1357 afcae56269 build(deps): added tsgo for faster type checking across packages
- Added @typescript/native-preview dependency to enable faster type checking with tsgo.
- Updated check scripts across packages to use tsgo instead of tsc for improved performance.
- Extended root check script to include coding-agent package type checking.
2026-01-02 22:18:45 +01:00
can1357 fbae5cbb0d refactor(coding-agent): simplified toolset and enhanced navigation
- Removed ast and replace tools to simplify toolset and reduce maintenance overhead.
- Added LSP call hierarchy support (incoming_calls, outgoing_calls) for better code navigation.
- Added Exa as web search provider alongside Anthropic and Perplexity for broader search options.
- Enhanced tool descriptions with detailed usage guidelines to improve agent tool selection.
- Simplified task tool by removing single-mode execution and agentScope parameter.
- Added GitHub tree rendering and improved web-fetch documentation for better URL handling.
2026-01-02 22:13:05 +01:00
can1357 8ca26c58a1 feat(coding-agent): added bash interception to guide tool selection
- Added bash interception layer to redirect shell patterns like grep/cat/find to specialized tools for better results.
- Introduced anti-bash rules in system prompt to guide LLM toward preferred tool hierarchy (lsp > ast > grep > find > read > edit > bash).
- Enhanced LSP tool description to emphasize semantic code queries over text-based grep searches.
- Simplified edit tool by enabling fuzzy matching by default to reduce friction from whitespace mismatches.
- Updated error messages to provide context-aware guidance based on fuzzy matching state.
2026-01-02 21:44:49 +01:00
can1357 eac529bc30 feat(coding-agent): added fuzzy matching to handle indentation variance
- Added fuzzy matching with Levenshtein distance to handle whitespace and indentation differences in edit operations.
- Implemented configurable similarity threshold (default 95%) to balance precision with flexibility.
- Added detailed error messages showing closest match location and similarity percentage to aid debugging.
- Updated edit tool schema to expose fuzzy parameter for user control over matching behavior.
2026-01-02 21:07:11 +01:00
can1357 2be354322d chore: renamed package scope to @oh-my-pi for consistent branding
- Renamed npm package scope from @mariozechner to @oh-my-pi across all packages for consistent branding.
- Removed packages/pods directory and all related pod management functionality.
- Updated import paths and module declarations throughout codebase to reflect new package names.
- Reformatted code with consistent trailing comma removal and ternary operator alignment.
2026-01-02 18:08:23 +01:00
can1357 560c9670a8 feat: added MCP support and plugin system for external tool integration
- Added MCP (Model Context Protocol) support with stdio and HTTP transports for external tool integration.
- Implemented plugin system with install, enable, configure, and doctor commands for extensibility.
- Added 22 Exa MCP tools for web search, LinkedIn, company research, and websets operations.
- Introduced LSP tool with rust-analyzer support for code intelligence (diagnostics, hover, references, code actions).
- Added task tool for delegating work to specialized subagents with parallel execution support.
- Implemented web_search and web_fetch tools with Anthropic and Perplexity provider support.
2026-01-02 17:54:42 +01:00
can1357 aa37aafde8 build: added dev:install script to streamline workspace setup
- Added dev:install script to streamline local development setup across all workspace packages.
2026-01-02 15:13:27 +01:00