Commit Graph
9801 Commits
Author SHA1 Message Date
can1357 fd67003028 feat(coding-agent): added streaming persistence with backpressure control
- Added streaming NDJSON writer with backpressure handling for session persistence.
- Added SessionManager.flush() method for explicit write synchronization before session operations.
- Added content truncation for oversized blocks (500K char limit) to prevent memory exhaustion.
- Replaced synchronous file appends with streaming NDJSON writer in session persistence.
2026-01-05 02:23:36 +01:00
can1357 f693c285ef feat(coding-agent): added /exit command for interactive mode termination
- Added /exit slash command to exit the application from interactive mode.
2026-01-05 02:20:46 +01:00
can1357 af05f81bde feat(coding-agent/core): added fuzzy path suggestions to read tool
- Added fuzzy path matching suggestions when read tool encounters file-not-found errors, showing closest matches using Levenshtein distance.
- Changed read tool to automatically redirect to ls when given a directory path instead of a file.
- Implemented Levenshtein distance algorithm for computing path similarity scores.
- Added fd-based file candidate listing with gitignore support for fuzzy matching.
2026-01-05 02:18:38 +01:00
can1357 3aa17d9d1a docs(coding-agent/prompts): restructured tool docs for clarity and usability
- Rewrote tool documentation with structured sections and clearer usage guidelines.
- Added explicit guidance on when to use and avoid each tool.
- Simplified examples and removed implementation details from tool prompts.
- Added best practices for read, write, and bash tools.
2026-01-05 02:17:32 +01:00
can1357 71b59649b5 refactor(coding-agent): externalized tool prompts to markdown files
- Extracted tool description prompts from inline strings to external markdown files in src/prompts/tools/.
- Moved descriptions for 12 tools (ask, bash, edit, find, grep, lsp, output, read, web-fetch, web-search, write) to dedicated .md files.
- Updated tool implementations to import descriptions from external markdown files.
2026-01-05 01:50:35 +01:00
can1357 cd73708831 feat(coding-agent/core): added crates.io API handler with parallel fetching
- Added crates.io API handler for fetching Rust crate metadata, versions, and README content.
- Added weekly download statistics to npm package fetch results.
- Parallelized npm registry and download stats fetches for improved performance.
2026-01-05 01:46:38 +01:00
can1357 885f59c4a0 fix(coding-agent/core): resolved type narrowing by binding array items locally
- Bound array items to local variables to enable TypeScript union type narrowing in diagnostic rendering.
2026-01-05 01:37:29 +01:00
can1357 1bf6621b69 refactor(coding-agent/core): migrated Exa provider to REST API for simpler integration
- Migrated Exa web search provider from MCP protocol to direct REST API for simpler integration.
- Added defensive handling for malformed response data with fallback text display in web search rendering.
- Replaced SSE parsing and markdown response handling with direct JSON API responses.
- Added type guards and null coalescing throughout render.ts to prevent runtime errors on unexpected data.
- Normalized search type parameter to map deprecated 'keyword' to 'fast' for API compatibility.
2026-01-05 01:34:16 +01:00
can1357 dda587217d docs(coding-agent/prompts): expanded prompts for structured handoffs
- Enhanced compaction prompts to require structured handoff summaries with preserved tool outputs and repository state.
- Added core behavior guidelines and task completion reminder to system prompt.
- Expanded reviewer prompt with suggestion block formatting and evidence-backed finding requirements.
- Added runtime/tooling preferences section and formatting requirements to init prompt.
2026-01-05 01:33:50 +01:00
can1357 b18193e230 refactor(coding-agent): centralized prompts to src/prompts/ for maintainability
- Consolidated all prompt templates into centralized src/prompts/ directory.
- Extracted inline prompt constants to external markdown files for better maintainability.
- Refactored system-prompt.ts to use template string replacement with placeholders.
- Relocated bundled agent and command prompts from scattered directories to prompts/.
2026-01-05 01:25:20 +01:00
can1357 ce4703905f feat(coding-agent): introduced structured tree layouts for tool results
- Enhanced tool result renderers to use structured tree layouts with expand hints and truncation indicators.
- Added detailed metadata fields to grep, find, ls, and output tools for richer TUI display.
- Improved web-search renderer with section-based layout including Answer, Sources, Related, and Meta sections.
- Added helper functions for tree-style list formatting, diagnostics rendering, and diff preview truncation.
2026-01-05 01:13:44 +01:00
can1357 d2b3b870e9 fix(coding-agent): corrected extension status symbols for shadowed state
- Added status.shadowed symbol key to theme system for proper shadowed extension state display.
- Fixed extension list and inspector panel to use correct disabled and shadowed status symbols.
- Changed tree.hook symbol from └ to ⎿ in UNICODE_SYMBOLS.
2026-01-05 01:08:15 +01:00
can1357 db726287f8 fix(coding-agent): corrected token counting for mixed usage formats
- Fixed token counting for subagent progress to handle different usage object formats (camelCase and snake_case).
- Added getUsageTokens helper to normalize usage objects from different event formats.
2026-01-05 01:01:12 +01:00
can1357 9b7596c4aa feat(coding-agent): added theme system with 30+ presets and status line editor
- Added 30+ built-in color themes and comprehensive symbol customization via theme presets and overrides.
- Added status line segment editor with presets, separators, and customizable left/right segments.
- Added Biome CLI-based linter client as alternative to LSP for diagnostics and formatting.
- Added 20MB file size limit for image files to prevent memory issues during serialization.
- Replaced hardcoded Unicode symbols throughout codebase with theme-configurable symbol system.
2026-01-05 00:57:16 +01:00
can1357 8ef2697f21 feat(coding-agent): added usage statistics API to centralize tracking
- Added getUsageStatistics() method to SessionManager for tracking token usage and costs.
- Added UsageStatistics interface and type export for session usage tracking.
- Replaced inline token/cost calculation with centralized getUsageStatistics() method in status line.
- Added Pi segment and updated model icon in status line display.
2026-01-04 19:16:54 +01:00
can1357 b0ce4696ae fix(coding-agent): resolved status line not updating after new session
- Fixed status line not updating token counts and cost after starting a new session.
2026-01-04 16:12:01 +01:00
can1357 4811403bed feat(tui): changed cursor to thin blinking bar, updated status line icons 2026-01-04 15:48:46 +01:00
can1357 eba38cfa6e feat(coding-agent): introduced powerline status bar with git integration
- Replaced FooterComponent with new StatusLineComponent featuring powerline-style segments and Nerd Font icons.
- Added git branch detection with file watching and status tracking with 1-second TTL cache.
- Added setTopBorder() method to Editor component for custom status content in top border.
- Changed Editor component to use rounded box-drawing characters for borders.
- Renamed footer theme properties to statusLine prefix across dark and light themes.
2026-01-04 15:24:39 +01:00
can1357 ee187c3ef8 feat(coding-agent): disabled formatOnWrite by default to reduce friction
- Changed default for `lsp.formatOnWrite` setting from `true` to `false`.
- Reformatted settings-manager.ts with consistent indentation.
2026-01-04 15:18:13 +01:00
can1357 f3108ba51c fix(coding-agent): resolved stale diagnostics in LSP client after edits
- Fixed stale diagnostics persisting after file content changes in LSP client.
2026-01-04 14:59:26 +01:00
can1357 441d60f9dc fix(coding-agent): persisted session title to in-memory header before flush 2026-01-04 14:24:04 +01:00
can1357 c711092c6f feat(coding-agent): added auto-open browser for HTML export and Gist sharing
- Added automatic browser opening after exporting session to HTML.
- Added automatic browser opening after sharing session as a Gist.
- Extracted browser-opening logic into reusable openInBrowser method.
2026-01-04 14:20:47 +01:00
can1357 68ebf75622 refactor(coding-agent): simplified once import in lsp tool module
- Replaced utils.once import with direct once import from local utils module.
2026-01-04 14:19:01 +01:00
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 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 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 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 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 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 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