Commit Graph

1014 Commits

Author SHA1 Message Date
can1357 b2f577f49d refactor(coding-agent/core): migrated to async streams with ScopeSignal
- Added ScopeSignal class for composable cancellation with AbortSignal and timeout support.
- Refactored bash-executor to use async/await with stream pipelines and ScopeSignal utility.
- Replaced manual abort handling with untilAborted wrapper across find, ls, notebook, and read tools.
- Simplified error handling by removing manual abort signal listener setup and cleanup logic.
2026-01-04 04:26:33 +01:00
can1357 47837a0fa7 feat(coding-agent): introduced LSP writethrough for unified file operations
- Added createLspWritethrough factory for unified LSP-aware file write operations with formatting and diagnostics.
- Added syncContent and notifySaved LSP client methods for in-memory content synchronization.
- Added EditMatchError class and utils module with once and untilAborted helper functions.
- Changed FileDiagnosticsResult interface: renamed diagnostics->messages, hasErrors->errored, serverName->server.
- Changed session title generation to trigger before first message instead of after agent work begins.
- Simplified edit and write tools by delegating to writethrough callback and removing manual abort handling.
2026-01-04 02:23:00 +01:00
can1357 f676ef0521 refactor(coding-agent): moved title generation to turn start for earlier feedback
- Moved session title generation to trigger at turn start instead of turn end for earlier feedback.
2026-01-03 23:37:39 +01:00
can1357 0e9bf88e4d chore: bump version to 3.6.1337 2026-01-03 23:30:22 +01:00
can1357 7904c7d33e perf(coding-agent): ~500x faster session parsing
- Replaced crypto.randomUUID() with nanoid() for ID generation across session-manager and rpc-mode.
- Added RecentSessionInfo class with lazy getters for fullName, name, and timeAgo properties.
- Simplified session retrieval by consolidating isValidSessionFile() into getSortedSessions() helper.
- Added nanoid ^5.1.6 dependency and removed duplicate safe-buffer entries from lockfile.
2026-01-03 23:24:59 +01:00
can1357 67ad18c4af chore: bump version to 3.5.1337 2026-01-03 21:53:56 +01:00
can1357 44ccf7c1cb feat(coding-agent): replaced 3-column layout with tabbed interface
- Redesigned Extension Control Center from 3-column layout to tabbed interface with provider tabs.
- Replaced sidebar tree navigation with horizontal tab bar supporting TAB/Shift+TAB cycling.
- Added session header/footer output in text mode showing version, model, provider, and thinking level.
- Removed HolyGrailLayout and SidebarTree components in favor of TwoColumnBody with tabs.
2026-01-03 21:53:01 +01:00
can1357 b7cf5a0296 feat(coding-agent): introduced extension control dashboard with search
- Added Extension Control Center dashboard with three-column layout, fuzzy search, and keyboard navigation.
- Added extension enable/disable functionality with persistent settings via SettingsManager.
- Renamed /status command to /extensions with /status as alias.
- Removed dynamic discovery settings from settings selector in favor of new extension dashboard.
2026-01-03 21:25:29 +01:00
can1357 d61a196864 fix: resolved title generation flag reset on new session start
- Fixed title generation flag reset when starting new sessions.
- Added localhost URL detection for OpenAI-compatible provider auto-configuration.
- Changed terminal title prefix from 'pi:' to 'omp:'.
- Added debug logging for title generation model lookup, API key retrieval, and request/response handling.
- Removed title length validation that rejected titles over 60 characters.
2026-01-03 21:04:13 +01:00
can1357 bb7ec343d9 feat(coding-agent): added rulebook tool for runtime rule access
- Added rulebook tool for agents to fetch rule content by name during execution.
- Added rulebook rules filtering to exclude TTSR, always-apply, and description-less rules.
- Added XML-formatted rulebook rules to system prompt generation.
- Exported rulebook utilities including createRulebookTool, filterRulebookRules, and formatRulesForPrompt.
2026-01-03 20:01:11 +01:00
can1357 6c00216aa8 chore: bump version to 3.4.1337 2026-01-03 19:44:11 +01:00
can1357 13f3eae8c0 feat: introduced TTSR for real-time pattern matching during streaming
- Added Time Traveling Streamed Rules (TTSR) feature for real-time pattern matching and rule injection during streaming.
- Added TtsrManager with configurable settings for context mode, repeat mode, and repeat gap.
- Added TTSR trigger support across all rule discovery sources (builtin, cline, cursor, windsurf).
- Added abort signal handling in agent loop to support stream interruption for TTSR.
- Added TtsrNotificationComponent for displaying rule violation notifications in interactive mode.
2026-01-03 19:43:17 +01:00
can1357 f8e642adce fix(coding-agent): added git status cache to prevent excessive spawns
- Added 1-second TTL cache for git status to prevent excessive subprocess spawns in footer component.
2026-01-03 19:13:22 +01:00
can1357 0e7092c21c chore: bump version to 3.3.1337 2026-01-03 18:39:47 +01:00
can1357 0654e5e477 fix(coding-agent): corrected /status column alignment across all sections
- Fixed /status command output to use consistent column alignment across all sections.
- Refactored status rendering to collect all line sections before calculating max width.
- Renamed dev:install script to install:dev for consistency.
2026-01-03 18:38:33 +01:00
can1357 f9f0e6385b docs(coding-agent): renamed CLI references from 'pi' to 'omp'
- Renamed CLI command references from 'pi' to 'omp' throughout documentation.
- Updated version update notification to suggest 'omp update' instead of npm install.
- Updated SDK and extension loading documentation with new command naming.
2026-01-03 18:37:07 +01:00
can1357 a135b65fe8 chore: bump version to 3.1.1337 2026-01-03 18:33:15 +01:00
can1357 91a066a1bd fix(coding-agent): fixed duplicate skill loading in recursive scan 2026-01-03 18:31:53 +01:00
can1357 386aef827f feat(coding-agent): added spawns field to control sub-agent access
- Added spawns frontmatter field to agent definitions supporting wildcard or comma-separated agent names.
- Added spawn restriction enforcement to block disallowed sub-agent spawns from parent agents.
- Fixed duplicate skill loading when skills exist in multiple paths.
- Refactored skill loading to use shared addSkill helper with deduplication via seenPaths Set.
2026-01-03 18:31:32 +01:00
can1357 bfb5cb13b7 chore: bump version to 3.0.1337 2026-01-03 18:27:32 +01:00
can1357 0438f01fd5 feat(coding-agent): added multi-tool config discovery across 8 AI IDEs
- Added unified capability-based discovery system for loading configuration from 8 AI coding tools (Cursor, Windsurf, Cline, GitHub Copilot, Gemini, Codex, Claude, VS Code).
- Added Discovery settings tab in interactive mode for enabling/disabling configuration providers.
- Added provider source attribution showing which tool contributed each configuration item.
- Added support for tool-specific rule formats including Cursor MDC, Windsurf global_rules, and Cline .clinerules.
- Changed MCP tool name parsing to use last underscore separator for improved server name handling.
- Refactored core loaders (skills, hooks, custom tools, slash commands) to use capability API instead of manual directory scanning.
2026-01-03 18:26:07 +01:00
can1357 790a5370bb feat: renamed binary from pi to omp with config migration support
- Renamed CLI binary and package from 'pi' to 'omp' across all platforms and installers.
- Changed environment variable prefix from PI_* to OMP_* with automatic migration support.
- Changed configuration directory from ~/.pi/ to ~/.omp/ with multi-path fallback discovery.
- Added getConfigDirPaths(), findConfigFile(), and readConfigFile() functions for config resolution across .omp, .pi, and .claude directories.
2026-01-03 15:54:45 +01:00
can1357 a8fa0db830 chore: bump version to 2.3.1337 2026-01-03 14:53:38 +01:00
can1357 b3e7e52e6c chore: bump version to 2.2.1337 2026-01-03 14:43:33 +01:00
can1357 937646d0e1 chore: bump version to 2.1.1337 2026-01-03 14:24:01 +01:00
can1357 a42061d9ee feat(coding-agent): added self-update command with bundled templates
- Added `pi update` command for checking and installing CLI updates from GitHub releases or bun.
- Added cross-platform installer scripts (shell and PowerShell) with automatic PATH configuration.
- Changed HTML export to use compile-time bundled templates via Bun macros.
- Changed `exportToHtml` and `exportFromFile` functions to async operations.
2026-01-03 14:17:28 +01:00
can1357 a6715fb8f0 build(coding-agent): embedded assets into binary to eliminate runtime reads
- Embedded assets (themes, templates, agents, commands) directly into binary at compile time using Bun imports.
- Removed runtime filesystem reads for bundled assets in favor of static build-time imports.
- Simplified build scripts by removing copy-assets steps and compiling directly from TypeScript source.
- Updated publish workflow to use bun publish with NPM_CONFIG_TOKEN environment variable.
- Added TypeScript declarations for importing .md, .css, .html, and .js files as text strings.
2026-01-03 13:48:40 +01:00
can1357 d657e2cf04 chore: bump version to 2.0.1337 2026-01-03 11:10:57 +01:00
can1357 c8585eae9e chore: bump version to 1.5.1 2026-01-03 11:07:54 +01:00
can1357 31cd0cebf9 refactor(coding-agent): extracted bash execution into dedicated executor
- Extracted bash execution logic from bash tool into dedicated BashExecutor with configurable cwd and timeout options.
- Added timeout handling with automatic process termination and timeout-specific result tracking.
- Simplified streaming output handling by replacing rolling buffer with string concatenation.
- Reformatted indentation from spaces to tabs across shell utility files.
2026-01-03 11:07:03 +01:00
can1357 f3a36eb433 feat(coding-agent): added shell environment snapshot to preserve user config
- Added shell environment snapshot feature to preserve user aliases, functions, and shell options across command executions.
- Added zsh support alongside bash for shell detection and configuration.
- Added PI_BASH_NO_CI, PI_BASH_NO_LOGIN, and PI_SHELL_PREFIX environment variables for shell customization.
- Changed Edit tool to reject .ipynb files with guidance to use NotebookEdit tool instead.
- Added shell-snapshot.ts module with snapshot caching, cleanup handlers, and source command generation.
2026-01-03 10:59:26 +01:00
can1357 257e165aea chore: bump version to 1.5.0 2026-01-03 10:25:51 +01:00
can1357 33469f2028 fix(coding-agent): updated Exa MCP tool names to match current API
Exa changed their MCP tool names: web_search→web_search_exa,
crawling_exa→crawling, linkedin_search_exa→linkedin_search,
company_research_exa→company_research. Also fixed num_results→numResults
param and removed deep_search_exa (now uses web_search_exa with type:deep).
2026-01-03 09:24:29 +01:00
can1357 43f427fecf feat(coding-agent): added provider filtering and LSP diagnostics
- Added provider tab bar for filtering models by provider with Tab/Arrow key navigation.
- Replaced single-key shortcuts (S/L) with context menu for model role assignment.
- Added LSP diagnostics display in tool execution results with error/warning indicators.
- Improved model list sorting to include secondary sort by model ID.
- Refactored role markers to use badge-style labels (DEFAULT, SMOL, SLOW).
2026-01-03 08:59:26 +01:00
can1357 4aaebfe5a8 fix: resolved race conditions and resource leaks with mutex locks
- Added mutex-based synchronization to prevent race conditions in LSP client, session context, and RPC mode.
- Fixed resource leaks by ensuring stream reader locks are released in try/finally blocks.
- Fixed duplicate processing issues by tracking in-flight operations in runner creation and message writes.
- Fixed event listener mutation during iteration by copying array before emitting.
- Added abort controller cleanup to prevent memory leaks in auto-compaction and retry logic.
2026-01-03 08:00:55 +01:00
can1357 0836b6d12d feat: added centralized winston logger with daily rotation for debugging
- Added centralized file logger with winston and daily rotation to ~/.pi/logs/ directory.
- Exposed logger property to hook and custom tool APIs for extension logging.
- Replaced silent error suppression with debug/warning logging across 20+ catch blocks.
- Removed separate Exa error logger in favor of centralized logging system.
2026-01-03 07:45:23 +01:00
can1357 e86e4fc8e9 feat(coding-agent): added agent index to task progress for output tool routing
- Added agent index to Task tool progress display for Output tool ID derivation.
- Added conditional file path inclusion in Task tool output when Output tool is unavailable.
- Added availableTools option to CodingToolsOptions interface for tool availability detection.
2026-01-03 07:26:34 +01:00
can1357 98ebc6d8c4 feat(coding-agent): added output tool for reading task results by ID
- Added new `output` tool for reading full agent/task outputs by ID with ANSI stripping.
- Added output metadata (line count, char count) to Task tool result summaries.
- Changed Task output path format to use simpler `${agent}_${index}` ID format.
- Added OutputToolDetails interface and output tool renderer for CLI display.
2026-01-03 06:54:17 +01:00
can1357 4032f57d02 feat(coding-agent): enabled parallel exploration in reviewer agent
- Added task tool to reviewer agent enabling parallel codebase exploration during reviews.
- Changed subagent recursion prevention from blanket blocking to same-agent blocking.
- Added self-recursion detection with user-facing message for blocked recursive calls.
- Renamed PI_NO_SUBAGENTS_ENV to PI_BLOCKED_AGENT_ENV with backwards compatibility.
2026-01-03 06:45:49 +01:00
can1357 86bfa2dd9c fix(hooks): use lint-staged to avoid index.lock race condition 2026-01-03 06:43:10 +01:00
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