Commit Graph
2717 Commits
Author SHA1 Message Date
Can BölükandGitHub fca00fc8fa Merge branch 'main' into feat/cosmetic-fixes 2026-02-20 14:00:56 +01:00
can1357 8a743de7a6 feat(coding-agent): bias browser tool towards observe over screenshot 2026-02-20 12:30:47 +01:00
can1357 94ee2f99ac fix(coding-agent): use ready-signal protocol for RPC client startup
Replace flaky time-based heuristic (sleep + 500ms race) with a proper
ready-signal protocol. The RPC server now emits {"type":"ready"} on
stdout when initialized, and the client waits for that signal instead
of guessing based on timing.

Fixes CI failure where the process took longer than 600ms to reach
provider validation (due to auth discovery + model registry refresh),
causing start() to resolve even when the process was about to exit.
2026-02-20 12:28:25 +01:00
can1357 35c90ed859 chore: bump version to 12.15.0 2026-02-20 12:01:52 +01:00
can1357 94ad716db2 wip: fixture metadata improvements 2026-02-20 12:01:30 +01:00
can1357 21c71cf755 chore(react-edit-benchmark): updated benchmark reports 2026-02-20 12:00:40 +01:00
can1357 b09ded42a0 feat(coding-agent): render traced intent in task progress/output 2026-02-20 11:05:19 +01:00
can1357 c8230be4a7 fix(coding-agent): fail fast when RPC startup exits early 2026-02-20 11:01:37 +01:00
can1357 6bf59bf89c feat(providers): implemented time-budget retry for Gemini 429 errors
- Added time-budget-based retry strategy for Google Gemini 429 rate limit errors with 5-minute window.
- Set default maxRetries to 5 for Anthropic, Azure OpenAI, and OpenAI clients.
- Implemented separate 429 rate limit handling with cumulative time budget tracking instead of bounded retry attempts.
2026-02-20 10:59:50 +01:00
can1357 634b61cc65 fix(ai): distinguish rate limits from usage limits, retry 429s with time budget
Split Codex error handling: usage_limit_reached/usage_not_included show
"usage limit" message, while rate_limit_exceeded/bare 429 show "rate
limit exceeded" — so transient throttling no longer looks like a
subscription cap.

Changed 429 retry strategy: when the server provides a retry delay
(retry-after header or body hint), use a 5-minute time budget instead
of the fixed 5-attempt cap. Transient rate limits now wait and retry
rather than giving up after a few seconds.
2026-02-20 10:52:59 +01:00
can1357 55cf4de4b2 fix(ai): corrected OAuth token refresh error handling with provider details
- Improved OAuth token refresh error messages to include provider-specific error details from API responses.
- Separated rate limit and usage limit error handling in OpenAI response handler with distinct error messages and retry timing.
- Enhanced error message propagation in OAuth refresh flow to preserve original error reasons for better debugging.
- Fixed regex pattern in auth storage to use word boundaries for accurate HTTP status code matching.
2026-02-20 10:51:03 +01:00
can1357 f4fd00700f feat(session): added soft-delete support for auth credentials with audit trail
- Added `includeDisabled` parameter to `listAuthCredentials()` to optionally retrieve disabled credentials.
- Added `disableAuthCredential()` method for soft-deleting auth credentials while preserving database records.
- Changed auth credential removal to use soft-delete (disable) instead of hard-delete when OAuth refresh fails, keeping credentials in database for audit purposes.
- Added `disabled` column to auth_credentials table schema with automatic migration from v3 to v4.
- Added prepared statements for querying active (non-disabled) credentials with optional provider filtering.
2026-02-20 10:46:31 +01:00
can1357 f53864fccc feat(coding-agent): enabled intent tracing by default
- Changed default value of `tools.intentTracing` setting from false to true.
2026-02-20 10:46:17 +01:00
can1357 09f0a46c6d fix(coding-agent): allow non-adjacent insert anchors 2026-02-20 10:38:37 +01:00
Emil Sitandcan1357 47b2664adc build(coding-agent): generate docs index as build artifact
- Add 'prepack' script so bun publish regenerates the index before packing
- Add root-level 'prepare' script so bun install regenerates after cloning
- Gitignore and untrack docs-index.generated.ts
- Remove 'docs' from package.json 'files'

fixes #116
2026-02-20 10:11:52 +01:00
Emil Sitandcan1357 c6f3eff8c4 fix(coding-agent): inline doc content in generated index instead of static imports
Static imports from '../../../../docs/' resolve correctly in the monorepo
but break when the package is installed from npm -- the docs/ directory
at the repo root is not included in the published tarball.

Switch the generator to read each file at build time and emit the content
as inlined string literals, eliminating all runtime file resolution.
2026-02-20 10:11:52 +01:00
can1357 bb1e581bbc chore: bump version to 12.14.2 2026-02-20 06:09:41 +01:00
can1357 cd5676a36d fix(coding-agent): inline embedded docs to avoid global install path breakage 2026-02-20 06:08:43 +01:00
DeprecatedLuke ae2721c4cd fix(coding-agent): cosmetic TUI fixes - spinner icons, bracket styling, status icon placement 2026-02-19 23:46:20 +00:00
can1357 880891b013 chore: bump version to 12.14.1 2026-02-19 22:33:02 +01:00
Can BölükandGitHub 6922119872 Merge branch 'main' into fix/stats-missing-build-files 2026-02-19 22:30:29 +01:00
Can BölükandGitHub afe6be6dc2 Merge pull request #115 from kenvunz/fix/screen-flickering
fix(coding-agent): stopped forced redraws on autocomplete updates
2026-02-19 22:29:06 +01:00
Can BölükandGitHub ab4382ee39 Merge pull request #112 from SHJordan/fix/nanogpt-login-model-not-included
fix(nanogpt): avoid false login failures when model is not included
2026-02-19 22:28:58 +01:00
can1357 c6012a5c8f chore: bump version to 12.14.0 2026-02-19 22:26:10 +01:00
can1357 963b417aa5 test(agent): removed incorrect assertion from agent loop test
- Removed incorrect assertion from agent loop test.
2026-02-19 22:25:51 +01:00
can1357 51ec9bd05d feat(coding-agent): enabled docs:// protocol and custom tool discovery from .omp/tools/
- Added docs:// internal URL protocol handler for accessing embedded markdown documentation files with path traversal validation.
- Added support for executable tool files (.ts, .js, .sh, .bash, .py) in custom tools discovery from .omp/tools/ and .claude/tools/ directories.
- Added generate-docs-index build script to automatically scan and embed markdown documentation files at build time.
- Updated system prompt to document docs:// protocol usage and identify agent as operating within Oh My Pi harness.
2026-02-19 22:19:00 +01:00
can1357 7ce3bb6906 feat(coding-agent): introduced hashline format v2 with colon separators and tag-based API
- Changed hashline format separator from pipe (|) to colon (:) for improved readability across all tools and output formats.
- Refactored hashline edit API with operation-based structure: renamed delete->rm, rename->mv, set->target/new_content, and added explicit op field for operation types.
- Updated hashline hash encoding from 4-character base36 to 2-character hexadecimal for more compact representation.
- Replaced anchor terminology with tags throughout hashline documentation and API for clearer semantics.
2026-02-19 22:04:18 +01:00
Ken Vu b0a6d710fb fix(coding-agent): stopped forced redraws on autocomplete updates
onAutocompleteUpdate was calling requestRender(true), which resets all
differential rendering state on every keystroke while the slash menu is
open (debounced at 100ms). This caused the TUI to perform a full screen
clear and repaint on each filter update, producing visible flicker when
the editor is pushed to the bottom of the terminal.

onAutocompleteCancel retains requestRender(true) since it fires only
once on dismissal and the forced redraw is needed to erase the stale
menu rows that the differential renderer would otherwise leave on screen.

onAutocompleteUpdate is changed to requestRender() (no force), letting
the differential renderer repaint only the changed lines within the
autocomplete area.
2026-02-20 09:25:41 +13:00
can1357 e7b01abf0c feat(ai): added gemini-3.1-pro and trinity models across multiple providers
- Added `gemini-3.1-pro` model to opencode provider with text and image input support.
- Added `trinity-large-preview-free` model to opencode provider.
- Added `google/gemini-3.1-pro-preview` model to nanogpt provider.
- Added `google/gemini-3.1-pro-preview` model to openrouter provider with text and image input support.
- Added `gemini-3.1-pro` model to cursor provider.
- Changed `big-pickle` and `minimax-m2.5-free` models from `openai-completions` to `anthropic-messages` API and updated baseUrl endpoints.
2026-02-19 18:05:59 +01:00
can1357 e59ef9b61c fix(ai): corrected tool argument validation to iteratively coerce nested JSON strings
- Fixed tool argument validation to iteratively coerce nested JSON strings across multiple passes, enabling proper handling of deeply nested JSON-serialized objects and arrays.
- Added MAX_TYPE_COERCION_PASSES constant to limit coercion iterations and prevent infinite loops.
- Added 2 test cases covering iterative coercion of nested JSON strings in root arguments and array items.
2026-02-19 18:05:45 +01:00
can1357 7f3079bf2f feat(coding-agent): added streamed tool intent display and hashline edit operations
- Added streamed tool intent display in working message to show real-time intent tracking during agent execution.
- Changed intent tracing field name from `$intent` to `_intent` across tool schemas and agent core for consistency.
- Added support for file deletion and renaming operations in hashline edit mode.
- Renamed hashline edit operation fields: `set` to `target`/`new_content`, `set_range` to `first`/`last`/`new_content`, `insert` to `inserted_lines`.
2026-02-19 18:05:35 +01:00
Colin Mason 676d299c2a docs(coding-agent): add changelog entry for stats package fix 2026-02-19 11:38:41 -05:00
Colin Mason 3d9a88c032 fix(stats): include build files in published package 2026-02-19 11:13:51 -05:00
can1357 a80d00abfe feat: added intent tracing to capture tool call metadata
- Added optional `intent` field to `ToolCall` interface for capturing harness-level intent metadata.
- Added `intentTracing` configuration option to enable intent goal extraction from tool calls with automatic `$intent` field injection and argument stripping.
- Implemented intent injection and extraction logic in agent-loop to populate tool call intent metadata when intentTracing is enabled.
- Added `tools.intentTracing` setting to coding-agent configuration schema with environment variable override support.
2026-02-19 17:06:38 +01:00
can1357 aea59fa3e5 style: formatting 2026-02-19 17:06:21 +01:00
can1357 d22fb5e878 feat(patch): added file deletion and rename operations to hashline edit mode
- Added file deletion and rename operations to hashline edit mode with atomic semantics.
- Renamed hashline edit operation keys and fields for clarity: set->target, set_range->first/last, insert->before/after, body->new_content/inserted_lines.
- Added optional content-replace edit variant in hashline mode via PI_HL_REPLACETXT environment variable.
- Enhanced edit validation with per-variant type checking and detailed error messages for malformed operations.
2026-02-19 17:00:45 +01:00
Jordan Humberto de Souza 65f34a80e8 fix(nanogpt): validate login key via models endpoint 2026-02-19 11:51:27 -03:00
can1357 c9c1077272 feat(tools/grep): added artifact:// URL resolution to grep tool for backing file search
- Added support for resolving internal artifact:// URLs in grep tool to search backing files.
- Fixed grep tool to properly handle internal URL resolution with validation for missing backing files.
- Added comprehensive test suite covering artifact URL resolution, regex patterns, and error handling.
- Optimized CI matrix to conditionally include platform variants based on git tag presence.
2026-02-19 15:47:15 +01:00
can1357 751de7b192 chore: bump version to 12.13.0 2026-02-19 15:03:42 +01:00
can1357 2bdcd618ad feat: introduced hashline API redesign with structured operations and LINE#ID format
- Redesigned hashline edit API with new operation names (set, set_range, insert) and structured body parameter accepting string arrays for multiline edits.
- Changed hashline reference format from LINE:HASH to LINE#ID throughout tools and documentation for improved clarity.
- Enhanced insert operation to support optional before/after anchors enabling flexible insertion positioning and boundary echo stripping.
- Made hashline autocorrect heuristics conditional on PI_HL_AUTOCORRECT environment variable for controlled behavior.
- Added benchmark reports for claude-haiku-4-5 and GPT-5.2-Codex models demonstrating hashline edit variant performance.
2026-02-19 15:02:59 +01:00
can1357 8c73c45ccc docs: document NanoGPT env var and login flow 2026-02-19 13:55:26 +01:00
can1357 6c884713af feat(ai,coding-agent): add NanoGPT provider and login flow
Fixes #111
2026-02-19 13:51:47 +01:00
can1357 edeb816624 feat(coding-agent): added output flush sync to bash-interactive component
- Added flushOutput() public method to bash-interactive component for synchronizing terminal output completion.
- Enhanced SSH host discovery to load from managed omp config paths (.omp/ssh.json and ~/.omp/agent/ssh.json) with deduplication.
- Improved terminal output handling in interactive bash sessions to ensure queued writes complete before processing pending chunks.
- Refactored write queue consumption in bash-interactive to use index-based tracking instead of array shift operations.
2026-02-19 13:07:24 +01:00
can1357 e41ebe61ec feat(coding-agent): added SSH host management with CLI and slash commands
- Added SSH host management feature with `ssh` CLI command and `/ssh` slash command for add, list, and remove operations.
- Added SSH configuration support at project (.omp/ssh.json) and user (~/.omp/agent/ssh.json) scopes with host discovery from project files.
- Added SSH host configuration flags: --host, --user, --port, --key, --desc, --compat, and --scope for flexible host setup.
- Removed automatic line relocation on stale hash references; now fails with error instead.
2026-02-19 12:52:43 +01:00
can1357 a9fb9c9791 feat(react-edit-benchmark): resolved hashline regression with strict validation
- Added provider failure detection and exponential backoff retry logic to handle authentication and authorization errors in benchmark tasks.
- Implemented HashlineMismatchError behavior in coding-agent to fail on stale hash references instead of silently relocating edits.
- Simplified hashline validation by removing automatic line relocation logic and hash tracking infrastructure.
- Added benchmark report for claude-sonnet-4-6 model showing 85% task success rate with detailed failure analysis and performance metrics.
2026-02-19 12:52:13 +01:00
can1357 ab1c78c750 fix(bash-interactive): corrected terminal output serialization to prevent data loss
- Fixed terminal output handling to properly queue and serialize writes, preventing dropped or corrupted output in interactive bash sessions.
- Implemented write queue with callback-based draining to ensure sequential terminal writes.
- Removed try-catch fallback in output handling, relying on queued serialization for correctness.
2026-02-19 08:29:06 +01:00
can1357 5145eab1ba chore: bump version to 12.12.3 2026-02-19 07:53:54 +01:00
can1357 f8a4c40216 fix(ai): corrected retry logic to detect connection failures consistently
- Added 'unable to connect' to transient error patterns in retry logic to properly handle connection failures.
- Updated retry error detection in coding-agent to match ai package pattern for consistency.
2026-02-19 07:20:19 +01:00
can1357 f935f45554 chore: bump version to 12.12.2 2026-02-19 06:18:44 +01:00
can1357 656f5024b4 style: reformat 2026-02-19 06:18:32 +01:00