Commit Graph
1422 Commits
Author SHA1 Message Date
Can Bölükandcan1357 284f80995e fix(coding-agent): guarded fork during streaming
- Blocked /fork while streaming to avoid split session logs.

- Preserved queued and next-turn messages when forking.
2026-01-28 01:47:02 +01:00
can1357 b135c4567d feat(coding-agent): added /fork command to duplicate current session
Creates a new session file with the exact same state as the current session,
including all entries (messages, model changes, compactions, etc.) and
artifacts. The new session's parentSession field links to the original.

- Added fork() method to SessionManager that creates new session file with copied entries
- Added fork() method to AgentSession that handles artifact directory copying
- Added /fork command handler in input-controller and command-controller
- Extended session switch event reason type to include 'fork'
2026-01-28 01:17:58 +01:00
can1357 938beca49e chore: bump version to 8.6.0 2026-01-27 23:26:38 +01:00
can1357 799a990ade refactor(coding-agent): extracted type guard functions for improved type safety and reusability
- Extracted type guard functions for improved type safety and code reusability across RPC and migration modules.
- Centralized AgentEvent type validation into a dedicated Set constant and type guard function in rpc-client.
- Replaced inline type assertions with type guard functions in RPC response and event handling logic.
- Refactored test utilities to use parseSessionEntries helper and type guard functions for cleaner test code.
- Added reasoning content configuration properties to OpenAI compatibility settings.
2026-01-27 23:21:38 +01:00
can1357 57a3650cc6 fix: backport fixes from pi-mono (3635e45f..9f3eef65f)
packages/ai:
- feat: HTTP proxy support via environment variables
- fix: correct provider error message typo
- fix: filter deprecated OpenCode models from generation

packages/tui:
- fix: scrollback overwrite when appending lines past viewport
- fix: keep overlays centered across resizes
- fix: handle multi-line text in insertTextAtCursor()

packages/coding-agent:
- fix: add /model instruction to no models warning
- fix: active path highlighting in HTML exports
2026-01-27 19:47:36 +01:00
can1357 d9a3291641 feat(deps): replaced external JSON/JSONL and text utilities with Bun built-in APIs
- Replaced external JSON/JSONL parsing libraries with Bun's built-in JSON5 and JSONL APIs across all packages.
- Removed dependencies: json5, ndjson, get-east-asian-width, json-stringify-safe, split2, through2, and @types/ndjson.
- Replaced custom text width and ANSI wrapping implementations with Bun.stringWidth() and Bun.wrapAnsi() APIs.
- Updated Bun type definitions from ^1.2.17 to ^1.2.18 and bun-types from ^1.3.5 to ^1.3.7.
- Refactored JSONL parsing throughout codebase to use Bun.JSONL.parse() and Bun.JSONL.parseChunk() with improved buffer management and error handling.
- Updated test assertions to use Bun.stringWidth() for dynamic width calculations instead of hardcoded values.
2026-01-27 19:18:58 +01:00
can1357 91da560cc7 refactor(coding-agent/task): moved subagents in-process
- run subagent execution in-process and drop worker protocol

- align tool settings manager typing and docs

- queue skill follow-ups, dedupe review findings, restore MCP timeouts
2026-01-27 07:38:55 +01:00
can1357 a0b26fc1aa feat(coding-agent): added plan model role with parallel task execution and improved todo validation
- Added 'plan' model role option to support architectural planning with dedicated model selection via CLI argument (--plan), environment variable (OMP_PLAN_MODEL), and UI menu action.
- Updated model selector to display 'PLAN' badge for plan models and prioritize them in the model sorting order.
- Relaxed task management constraints to allow multiple tasks to be in_progress simultaneously, enabling parallel task execution instead of enforcing single-task-at-a-time workflow.
- Improved todo validation to check for blocking pending tasks before allowing a todo to be marked in_progress, with more specific error messages indicating which earlier tasks are blocking progress.
2026-01-27 06:35:33 +01:00
can1357 0c30ef4b9b chore: bump version to 8.5.0 2026-01-27 05:20:27 +01:00
can1357 34f03bc7fb feat(coding-agent): added subagent skill preloads
- Inline preloaded skill contents in system prompts and allow task-level skill selection.
- Record session init entries with system prompt, task, tools, and output schema.
- Fix session persistence to keep pre-assistant entries in subagent logs.
2026-01-27 05:18:30 +01:00
can1357 0f4829376f refactor(coding-agent/tools): removed enter-plan-mode tool
- Removed the enter-plan-mode tool, associated prompt, and all event handling code.
2026-01-27 04:15:32 +01:00
can1357 a8743c1f91 fix(coding-agent/task): reduced subagent progress overhead
- Throttled subagent progress emissions with a coalescing window and terminal flushes.
- Switched message_update handling to append text deltas into a bounded tail buffer for recent output.
- Removed deep cloning from TaskTool progress updates to keep progress rendering cheap.
2026-01-27 03:03:05 +01:00
can1357 6c1804e73b chore: bump version to 8.4.5 2026-01-26 15:12:13 +01:00
can1357 8351ccd74a fix(coding-agent/tools): fixed .gitignore rule handling in find tool glob filtering
- Refactored glob pattern handling to create Bun.Glob matcher inline for cleaner implementation.
- Improved empty result detection to return early with appropriate message when no files match.
2026-01-26 15:11:35 +01:00
can1357 db8089cc23 refactor(coding-agent/tools): standardized search tool parameters across find and grep
- Renamed `head_limit` to `limit` in grep and find tools for consistency.
- Added `context` as optional alias for the `c` parameter in grep.
- Made hidden files inclusion configurable in find with `hidden` parameter.
- Integrated .gitignore and .ignore file support in find tool.
- Updated plan mode documentation for self-contained plan files.
2026-01-25 22:38:06 +01:00
can1357 d606ce3a1a refactor(coding-agent): use rg everywhere 2026-01-25 21:59:36 +01:00
can1357 3078a412e5 feat(coding-agent): implemented model usage tracking and sorting
- Added model_usage table to persist most-recently-used model timestamps across sessions.
- Model selector now sorts fuzzy-matched results by usage recency.
- Schema version bumped to 3 for model_usage table.
- Removed unused currentModel field from ModelSelectorComponent.
2026-01-25 21:06:08 +01:00
can1357 2d075c3059 chore: bump version to 8.4.3 2026-01-25 19:53:31 +01:00
can1357 6b595a1cad fix(coding-agent): exports 2026-01-25 19:53:14 +01:00
can1357 2abe271d50 chore: bump version to 8.4.2 2026-01-25 19:41:24 +01:00
can1357 4dd3e17c5a docs(coding-agent/prompts): clarified and condensed plan mode prompts
- Refined descriptions to be more concise and focused.
- Restructured content for improved clarity and consistency across all plan mode prompts.
- Tightened critical sections with more direct language.
- Improved plan mode prompt clarity and organization.
2026-01-25 19:41:14 +01:00
can1357 6ef1f4510b chore: bump version to 8.4.1 2026-01-25 19:35:49 +01:00
can1357 79079e6ecd feat(coding-agent): added plan mode with approval workflow and tool gating
- Plan mode provides structured workflow where agents propose plans for user approval before execution.
- Added plan:// internal URL protocol for accessing plan files and injecting plan-mode context into subagent prompts.
- Added plan mode toggle shortcut and paused status indicator in status line.
- Fixed plan reference injection to properly pass workflow state to plan-mode system prompts.
- Improved autocomplete fuzzy matching to support subsequence matching for skill suggestions.
2026-01-25 19:35:26 +01:00
can1357 d26f759b80 chore: bump version to 8.4.0 2026-01-25 14:13:26 +01:00
can1357 7745206ebc feat(coding-agent/task): added support for comma-separated model lists
- Model field now accepts string arrays for fallback model prioritization.
- Extracted model list parsing into dedicated parseModelList helper function.
- Extended default model alias detection to validate all entries in comma-separated lists.
2026-01-25 14:05:45 +01:00
can1357 b9dfcb2890 refactor(coding-agent/modes): consolidated color conversion logic in theme module
- Removed duplicate hexToRgb and rgbToAnsi functions that were only used in foreground color conversion.
- Reused colorToAnsi for background colors by applying ANSI code substitution instead of reimplementing the full logic.
2026-01-25 14:01:45 +01:00
can1357 7bb2e1aa58 feat(port): ported pi-mono improvements + worker & patch improvements
- added Azure OpenAI Responses support and OpenRouter routing compat
- improved patch applicator diagnostics and subagent context propagation
- updated editor cursor handling, keybindings, and working message API
- refreshed porting sync metadata
2026-01-25 13:50:08 +01:00
can1357 551e4521af chore: bump version to 8.3.0 2026-01-25 10:37:56 +01:00
can1357 d1832246a1 feat(coding-agent): exposed tool rendering options and added timeout validation
- Exposed mergeCallAndResult and inline rendering options from tools to their wrappers.
- Added normalizeTimeoutSeconds helper to validate and clamp timeout values with flexible unit support.
- Updated buildRenderContext JSDoc to include python tool in list requiring extra state.
2026-01-25 10:37:45 +01:00
can1357 c96481b446 refactor(coding-agent): enhanced tool rendering and patch application
- Added request parameter tracking to LSP tool rendering for better diagnostics visibility.
- Enhanced tool execution rendering with async diff computation and Kitty protocol support.
- Refactored patch applicator with 7-pass fuzzy matching and indentation adjustment.
- Added inline rendering flag to bash and fetch tool renderers.
- Fixed output block border rendering and added background control parameter.
- Extracted constants for preview formatting to improve maintainability.
2026-01-25 06:52:16 +01:00
can1357 c482d74f63 chore: bump version to 8.2.2 2026-01-24 04:54:14 +01:00
can1357 6afa313d35 chore(coding-agent/ipy): removed git utility functions from prelude
- Removed 7 git utility functions and internal _git() wrapper from IPython prelude.
2026-01-24 04:52:09 +01:00
can1357 ddbc46482e chore: bump version to 8.2.1 2026-01-24 04:35:34 +01:00
can1357 bdeefa6caa chore: bump version to 8.2.0 2026-01-24 04:29:25 +01:00
can1357 779ca4872b style(deps): migrated from Prettier to Biome and updated formatting rules
- Removed Prettier configuration files (.prettierignore and .prettierrc) and migrated formatting to Biome.
- Updated Biome configuration from version 2.3.11 to 2.3.12 and changed arrowParentheses rule from 'always' to 'asNeeded'.
- Pinned @biomejs/biome dependency to exact version 2.3.12 in package.json and bun.lock.
- Applied consistent arrow function formatting across 489 files by removing unnecessary parentheses around single parameters.
- Removed blank lines after comment blocks and reorganized imports for consistency across the codebase.
2026-01-24 04:20:19 +01:00
can1357 f901befd19 refactor(model-discovery): converted model discovery to synchronous file operations
- Changed loadCustomModels from async to sync using fs.readFileSync for immediate resolution.
- Updated discoverModels to return synchronously, removing await from main.ts, pipeline.ts, and commit index.ts.
- Migrated sdk.ts to use node:fs instead of node:fs/promises for synchronous operations.
- Refactored scanDirectoryForSkills to use recursive traversal instead of batch Promise.all.
- Added tarball Dockerfile for testing npm publish/install flow with verdaccio registry.
2026-01-24 04:00:12 +01:00
can1357 51d39e7eea refactor(imports): migrated node module imports to namespace imports
- Converted named imports from node modules (fs, path, os) to namespace imports across all packages.
- Extended extension loader error handling with isEacces and hasFsCode type guards.
2026-01-24 03:37:59 +01:00
can1357 fc3dd7e569 fix(tui): fixed race conditions and null reference errors
- Fixed autocomplete race condition in editor by tracking request ID to discard stale results.
- Added guard clause in plugin-settings to prevent null reference when settings list is undefined.
- Added branch change callbacks in footer to update state after git head resolution.
- Added timing instrumentation to Python kernel startup and gateway acquisition.
- Improved error logging in settings manager for config file access failures.
- Fixed model discovery to re-check file existence after JSON to YAML migration and improved file access error handling.
2026-01-24 03:23:02 +01:00
can1357 e22d123009 refactor(fs): migrated remaining sync file operations to async
- Converted readdirSync, readFileSync, and statSync to async readdir, readFile, stat across skills and agent discovery.
- Made scanDirectoryForSkills async and refactored custom directory scanning to use Promise.all for concurrent processing.
- Updated agent discovery to use fs/promises for async file reading and refactored helper patterns.
- Added AgentParsingError exception class for better error handling during agent parsing.
- Added filesystem error type guards (isEnoent, isEacces, isPerm, etc.) to pi-utils for safe error checking.
- Added color manipulation utilities to pi-utils for accessibility features.
- Added color-blind mode setting to settings manager.
- Migrated plugins, settings, and config modules from sync to async file operations.
- Updated error handling to use new pi-utils type guards for type-safe checking.
2026-01-24 03:18:03 +01:00
can1357 f66e5dba9b build(config): refactored build and TypeScript configuration with Bun loaders
- Removed WASM generation script; use Bun `wasm?raw` loader for imports.
- Added bunfig.toml with loaders for `.md`, `.py`, and `.wasm?raw` text imports.
- Added types/assets/index.d.ts for global TypeScript module declarations.
- Unified TypeScript configuration with tsgo-based checking across monorepo.
- Removed build and WASM steps from install and publish pipelines.
2026-01-24 00:03:52 +01:00
can1357 237b8f8c99 feat(coding-agent/web): upgraded Perplexity search model to sonar-pro with high context size
- Upgraded Perplexity search model from 'sonar' to 'sonar-pro' for improved search quality.
- Added 'high' search context size configuration to Perplexity API requests for enhanced context awareness.
2026-01-23 22:50:51 +01:00
can1357 fcbfab765b refactor: consolidated module import paths
- Removed custom TypeScript path aliases and the associated transformation script.
- Replaced aliased imports with direct `@oh-my-pi` package imports for improved clarity.
- Simplified internal module references by removing explicit `/index` suffixes.
2026-01-23 21:01:13 +01:00
can1357 0cab1fbce9 fix(ai/providers): fixed orphaned tool result handling in message conversion
- Track skipped tool call IDs to prevent dangling tool results when assistant messages are omitted.
- Fixed indentation in Python tool output renderer.
2026-01-23 12:48:06 +00:00
can1357 0fe761dc4b build(deps): refactored TypeScript and package configuration across monorepo
- Added tsconfig.publish.json files to all packages with optimized publish-time configuration.
- Updated all package.json scripts with prepublishOnly hooks for correct type checking during publish.
- Added @oh-my-pi/omp-stats path mappings to root tsconfig.json for consistent imports.
- Added WASM generation script for photon module and integrated into install:dev script.
2026-01-23 13:46:06 +01:00
can1357 d672458138 feat(coding-agent): added mermaid rendering and Python kernel session pooling
- Added mermaid rendering with terminal graphics for markdown output in iTerm2 and Kitty terminals.
- Implemented two-level mermaid caching with deduplication by content hash.
- Added background mermaid pre-rendering in assistant messages for responsive display.
- Implemented Python kernel session pooling with MAX_KERNEL_SESSIONS limit and idle cleanup timer.
- Refactored commit agent to remove unused FileObservation type and improve prompts.
- Updated test utilities to use AuthStorage.create() async factory method.
2026-01-23 13:46:06 +01:00
can1357 ef4077c597 feat(coding-agent/commit): added existing changelog entries display and optional analyze_files
- Added ExistingChangelogEntries interface to pass existing unreleased changelog entries for deletion support.
- Agent prompts now display existing unreleased changelog entries organized by path for potential removal.
- Made analyze_files tool conditional on enableAnalyzeFiles flag when pre-computed observations are available.
- Fixed changelog application to process proposals with only deletions without new entries.
2026-01-23 13:46:06 +01:00
can1357 d78c18d755 feat(coding-agent/commit): added robust fallback and performance optimizations to commit agent
- Added fallback commit generation using file pattern analysis when agentic mode fails, enabling graceful degradation.
- Added trivial change detection to automatically classify whitespace-only and import-reorganization commits.
- Added support for pre-computed file observations to skip redundant agent analysis calls.
- Added diff caching with file prioritization to optimize token usage and respect budget limits in large changesets.
- Added changelog deletion support for removing outdated entries via the proposal interface.
- Optimized git-file-diff and git-overview tools with prioritization logic and smart truncation.
2026-01-23 13:46:06 +01:00
can1357 682308cc56 fix(coding-agent/tui): added nullish coalescing for undefined code parameter
- Prevents errors when code is not provided to the code cell renderer.
2026-01-23 13:46:06 +01:00
can1357 357df166ae style(coding-agent): normalized code formatting across tool renderers
- Fixed indentation and line breaks in nested code blocks (lsp/render.ts, patch/shared.ts).
- Collapsed overlong function arguments and ternary expressions to standard line length.
- Reorganized import statements for consistency (ask.ts).
- Improved readability of conditional expressions (output-block.ts, web/search/render.ts, python.ts).
2026-01-23 13:46:06 +01:00
can1357 cf25fc5398 refactor(coding-agent/commit): resolved smaller model for commit agent execution
- Resolved a dedicated smaller model for the commit agent instead of reusing the primary model.
- Exit commit command with code 0 on successful completion.
2026-01-23 13:46:06 +01:00