Commit Graph
4375 Commits
Author SHA1 Message Date
can1357 caef52f5e2 fix(coding-agent/session): switched session listing to async glob scanning
- Updated SessionManager.listAll to retrieve session files with Bun.Glob.scan instead of scanSync.
- Awaited the async glob scan results via Array.fromAsync before collecting session metadata.
2026-04-24 13:50:51 +02:00
can1357 e4ee83000c refactor(pi-natives/chunk): replaced unstable suffix trimming in chunk node kind sanitization
- Replaced the `sanitize_node_kind` suffix-removal chain with a `strip_suffix` loop to drop unsupported legacy helper usage.
- Removed the crate-level `#![feature(trim_prefix_suffix)]` gate and the `specialization` feature from the smallvec dependency configuration.
2026-04-24 13:48:33 +02:00
can1357 c61a5b9a56 feat(config): added minimizer output fields and compact shell summaries
- Added minimizer API fields (`MinimizerResult.text`, `settingsHash`) and shell options for minimized output behavior.
- Changed bash execution to print minimized text output and append artifact footers only after minimized output is saved.
- Added UTF-8-safe shell streaming with `on_chunk` callback routing and `replace()` output sink updates.
- Added core filter enhancements for git, cargo, go, and listing/python outputs to produce compact summaries.
- Added RTK command filters and fixtures to strip noise, truncate output, and normalize success fallbacks.
2026-04-24 11:13:43 +02:00
can1357 57b5a7e8cb fix(coding-agent/modes): used expanded editor text for input handling when available
- Updated input handling to call getExpandedText when available and fall back to getText.
2026-04-24 09:54:10 +02:00
can1357 18231ce151 fix: resolved command completion marker and exit-code handling
- Added command-marker metadata and lifecycle in process execution, including completion markers and exit-code writes.
- Refactored minimization to support `MarkedCommands` mode, token-based detection, and marker-aware stripping.
- Added `onMinimizedSave` and `saveBashOriginalArtifact` to persist full bash-original output artifacts.
- Expanded public exports and marker hooks so external command launch metadata can be controlled by consumers.
2026-04-24 09:51:00 +02:00
can1357 992924ba58 refactor(pi-natives/shell): simplified shell minimizer command planning
- Simplified shell minimizer control flow in command planning and pipeline handling using cleaner `let else` and `if let` patterns.
- Marked checksum and plan-classification helpers and the minimizer transformed-output constructor as `const fn` to enable compile-time use.
- Retained existing minimizer output semantics while adjusting generated filter docs and build-time concatenation writing style.
- Use.
2026-04-24 09:37:11 +02:00
can1357 163eca4cb7 style: biome-format bash-executor jsdoc and minimizer sink line 2026-04-24 09:32:06 +02:00
can1357 de67835e68 chore: reformat 2026-04-24 09:28:35 +02:00
can1357 78b02385ec refactor(natives): removed PI_DEV native diagnostics and dev-mode documentation
- Removed `process.env.PI_DEV` checks from `packages/natives/native/index.js`, dropping per-candidate debug load logging and load-error reporting from the native addon loader.
- Pruned `PI_DEV` and `--dev` usage from native build/run and runtime docs, including setup, variant, and troubleshooting guidance.
- Updated `packages/natives/CHANGELOG.md` to note removal of the `PI_DEV` loader diagnostic environment variable and associated console logging.
2026-04-24 09:27:37 +02:00
can1357 e905898ae3 fix(pi-natives-chunk): patched apply-edits to stop batch on checksum fail
- Prevalidated each operation in `apply_edits` via `schedule_edit_operation` before execution.
- Aborted the entire batch immediately when initial checksum validation failed for an operation.
- Replaced touched-path CRC auto-acceptance with checksum-based lookup in `unique_current_chunk_by_initial_checksum`.
2026-04-24 09:27:20 +02:00
can1357 084ffd2058 feat(cross-cutting): added shell minimizer planning from AST command parsing
- Added AST-based minimizer planning with brush-parser to classify commands before minimization.
- Added original text capture and byte-metric `minimized` telemetry to shell execution results.
- Added minimizer configuration controls, including trust-gated loading via `settingsHash` and limits.
- Added `onMinimizedSave` callback wiring to persist minimized outputs and annotate Bash sinks with artifact IDs.
2026-04-24 09:15:18 +02:00
can1357 151934e9a1 feat(minimizer): added builtin minimizer defs and compact output tests
- Added built-in minimizer definition files for many CLI tools with corresponding tests for compact output behavior.
- Added build-time generation of combined `builtin_filters.toml` and sorted minimizer definition loading.
- Added minimizer config/pipeline schema handling with `settings_hash` gating, `user_pipelines`, and mismatch fallback behavior.
- Implemented compiled pipeline engine with regex validation, match/output/exit controls, and overlay execution.
- Extended `MinimizerOutput` with input/output byte metrics and updated filters to pass input size into transformed outputs.
2026-04-24 08:55:00 +02:00
can1357 21d50d5703 feat(coding-agent): added mode-aware streaming preview for edit outputs
- Added mode-aware streaming mode resolution and strategy registration in tool execution flow.
- Changed edit rendering to propagate mode and file-scoped diff previews across edit/vim tool outputs.
- Added chunk-mode streaming helpers (`loadChunkSource`, `computeChunkDiff`, `dropIncompleteLastEdit`) with abort-aware error fallbacks.
- Added strategy-specific streaming preview support for replace, patch, hashline, apply_patch, and vim modes.
- Fixed streaming previews by dropping incomplete trailing edits and handling invalid chunk or aborted inputs.
- Expanded streaming and chunk-diff tests for partial JSON, open edits, empty paths, abort signals, and file loading checks.
2026-04-24 08:24:30 +02:00
can1357 781c2f40fa fix(pi-natives/shell): corrected minimizer non-zero exit passthrough
- Added passthrough handling for non-zero exits and raw/metadata outputs in docker, helm, cloud, listing, and system filters.
- Expanded minimizer routing to support bun run/exec, gt status/diff, npx extras, and pnpm-dlx handling.
- Updated git, go, and cargo handling to preserve important outputs (status trees, show/stash cases, tool subcommands, metadata).
- Improved pkg and python filters to keep security/audit and pytest summaries, including location-followup lines.
- Added Ruby RSpec JSON parsing to emit condensed summaries, example sections, and exception context.
- Refined chunk selector/edit tests by asserting CRC flags directly and adjusting selector/CRC error message formatting.
2026-04-24 08:22:31 +02:00
can1357 20ccf49044 fix(chunk): resolved chunk selector multi-CRC ancestor matching
- Captured inline per-segment checksums in selector parsing and preserved trailing-CRC semantics.
- Allowed multi-CRC edits to resolve when any provided checksum matched an ancestor chunk checksum.
- Added tests for multi-CRC selector parsing and ancestor-match acceptance/rejection.
2026-04-24 08:01:02 +02:00
can1357 4940961e01 feat: added shell minimizer settings and dispatch by program
- Added configurable minimizer settings to native and coding-agent APIs, including shellMinimizer options.
- Added minimizer execution plumbing through shell config, session-key generation, and buffered output capture.
- Added command identity detection and dispatching by program/subcommand with safe fallback to passthrough output.
- Added filter suites for git, docker, go, bun, cloud, and system commands to strip ANSI and compact noisy output.
- Added unit tests for detection and minimizer behavior across command support, failures, and passthrough paths.
2026-04-24 08:00:04 +02:00
Can BölükandGitHub 77bf79e79a Merge pull request #509 from apoc/fix/mcp-manager-propagation
fix(mcp): propagate mcpManager to nested subagent sessions
2026-04-24 07:37:44 +02:00
Can BölükandGitHub 8a3b7ff1a5 Merge pull request #728 from azais-corentin/feat/726-opus-4.7-support
feat(ai): support Claude Opus 4.7
2026-04-24 07:35:17 +02:00
Can BölükandGitHub 6c676d54cc Merge pull request #720 from makoMakoGo/fix/codex-search-catalog
fix(coding-agent): align Codex web search with catalog
2026-04-24 07:34:57 +02:00
makoMakoGo 311608eff3 fix(coding-agent/codex-search): force web_search tool_choice and add citation fallback
When the Codex Responses API synthesizes an answer without emitting
url_citation annotations, previously-empty sources made cited results
look ungrounded. Add:

- tool_choice: { type: "web_search" } so Codex must call the tool
- markdown-link + bare-URL extraction from the answer as a fallback
  that only runs when no structured citations were returned

The model-resolution path is unchanged; getBundledModels already
returns a usable Codex catalog on main.

Closes #724
2026-04-24 07:34:15 +02:00
Corentin AZAISandcan1357 cc33fe5366 test(ai): add Opus 4.7 catalog and alignment coverage
- Register claude-opus-4-7 model entry in models.json
- Cover adaptive thinking/sampling payload shape in anthropic-alignment test
- Assert Opus 4.7 surfaces in ModelRegistry available models
2026-04-24 07:29:48 +02:00
Corentin AZAISandcan1357 4ca54fd3f3 feat(ai): support Claude Opus 4.7
- Upgrade @anthropic-ai/sdk to ^0.90 for Opus 4.7 types
- Strip sampling parameters (temperature/top_p/top_k) for Opus 4.7+
  which rejects them with 400 error
- Add display: summarized to adaptive thinking for Opus 4.7+ which
  omits thinking content by default
- Regenerate models.json catalog

fixes #726
2026-04-24 07:28:19 +02:00
Can BölükandGitHub 182fba4653 Merge pull request #736 from shaun0927/fix/sqlite-where-pagination-bypass
fix(coding-agent): keep sqlite where filters inside the paginated helper
2026-04-24 07:25:32 +02:00
JunghwanNAandcan1357 0d6968f7a6 Keep sqlite where filters inside the paginated helper
The SQLite read helper is documented as a structured selector path
with explicit pagination, while raw SQL already has a separate
q=SELECT escape hatch. This change rejects SQL control syntax outside
quoted strings so helper filters cannot override LIMIT/OFFSET, while
still allowing semicolons inside quoted literals such as LIKE '%;%'.

Constraint: Preserve the documented q=SELECT raw SQL path unchanged
Rejected: Replace where= with a new filter DSL | too broad for a regression fix
Confidence: high
Scope-risk: narrow
Directive: Keep table?where=... as a structured helper; if broader SQL is needed, route it through q=SELECT instead
Tested: bun --cwd=packages/natives run build; bun --cwd=packages/coding-agent run check; bun --cwd=packages/coding-agent test test/tools/sqlite.test.ts
Not-tested: Manual interactive omp read invocation against a live SQLite file
2026-04-24 07:25:09 +02:00
can1357 143cf7ee45 refactor(stats/client): typed bar label plugin with explicit bar plugin type
- Added an explicit `Plugin` type import to the cost chart component.
- Updated `makeBarLabelPlugin` to return `Plugin<"bar">` for clearer Chart.js typing.
2026-04-24 07:22:24 +02:00
can1357 f5e69ea37f chore: reformat 2026-04-24 07:18:17 +02:00
Can BölükandGitHub daa3f6237d Merge pull request #715 from willzhqiang/fix/hashline-anchor-corruption
fix(coding-agent): handle truncation markers and nested anchors in hashline stripping
2026-04-24 07:11:39 +02:00
can1357 b0eb26e315 fix(pi-natives/shell): translated MSYS PATH segments into Windows-style paths
- Added detection of Git install roots from registry and where-lookup results to resolve MSYS-style path segments.
- Rebuilt PATH normalization to translate existing and added Git paths, deduplicate normalized entries, and preserve Windows entries.
- Removed the old path membership helper and added tests for MSYS translation and Windows-path handling behaviors.

Fixes #608.
2026-04-24 07:10:31 +02:00
can1357 754cc089dd chore: reformat 2026-04-24 06:57:36 +02:00
Can BölükandGitHub 54c29424e3 Merge pull request #635 from itertea/fix/auto-handoff-autocontinue
fix(coding-agent): continue after auto-handoff compaction
2026-04-24 06:54:26 +02:00
Can BölükandGitHub 7f03266897 Merge pull request #693 from cgrossde/feat/stats-cost-chart
feat(stats): add daily cost chart tab to omp stats dashboard
2026-04-24 06:52:21 +02:00
Christoph Grossandcan1357 cfb5d40f6f feat(stats): add daily cost chart tab to omp stats dashboard
- New Costs tab with bar chart (All Models) and line chart (By Model)
- Toggle between 14d / 30d / 90d time ranges, filtered client-side
- Bar chart shows cost value on top of each bar
- Line chart uses straight lines with always-visible data points
- Summary cards: total 30d cost, avg/day, top model, trend vs prior period
- Backend: getCostTimeSeries() query grouped by day x model x provider
- All cost values displayed as whole dollar amounts (Math.round)
2026-04-24 06:51:23 +02:00
Can BölükandGitHub 7aac1a429e Merge pull request #652 from daandden/fix/mermaid-markdown-rendering
Fix Mermaid markdown rendering on non-image terminals
2026-04-24 06:48:40 +02:00
Vu Anh Nguyenandcan1357 12c666f4c0 Fix mermaid markdown test expectations 2026-04-24 06:47:56 +02:00
Vu Anh Nguyenandcan1357 a7845b3b86 Fix mermaid assistant test settings init 2026-04-24 06:47:56 +02:00
Vu Anh Nguyenandcan1357 81fd90ecc0 Fix Mermaid markdown rendering on non-image terminals 2026-04-24 06:47:56 +02:00
Can BölükandGitHub 516c43fa13 Merge pull request #737 from turbomolli/fix/cursor-root-prompt-messages-history
fix(cursor): populate rootPromptMessagesJson with prior turns so follow-up prompts see history
2026-04-24 06:44:25 +02:00
can1357 340864b6ed Merge remote-tracking branch 'origin/main' into pr-737
# Conflicts:
#	packages/ai/CHANGELOG.md
#	packages/ai/src/providers/cursor.ts
2026-04-24 06:44:10 +02:00
Can BölükandGitHub fd10e51b64 Merge pull request #682 from cgrossde/fix/657_pi-protocol-sourcePath
fix: grep tool silently mangles pi:// URLs and produces misleading Path not found error
2026-04-24 06:36:12 +02:00
can1357 8429f4700e fix(ai/ollama): discover native context length from /api/show
Previously, Ollama model discovery hardcoded contextWindow=128000 and
maxTokens=8192 regardless of the model's actual capacity. That caused
OMP's planner and overflow detector to disagree with Ollama — e.g. a
4k-context model would be planned against 128k, and a 32k-context model
would be silently clamped by OMP.

For each entry returned by /api/tags, POST /api/show and read the
first '<arch>.context_length' field from 'model_info' to pick up the
model's native context window. Fall back to Ollama's default 4096
when the endpoint or field is missing so discovery still works against
older builds. maxTokens is left at 8192 to match the existing default.

Fixes #760
2026-04-24 06:33:20 +02:00
can1357 6cfca06d8e fix(edit): mark stale-hash rejections as 'Edit rejected' instead of an info-shaped message
The previous mismatch text ('1 line has changed since last read. Use
the updated LINE#ID references shown below.') reads like a successful
edit followed by an informational note. Providers whose tool-result
plumbing does not surface `isError: true` to the model (e.g. Qwen via
the OpenAI-completions shim, where mitmproxy traces show the model only
receives the content text) treat the response as a success and proceed
with stale state.

Reword the message to start with 'Edit rejected:' and explicitly state
'The edit was NOT applied' so the failure is unambiguous in plaintext.
The structural payload (>>> markers, updated LINE#IDs) is unchanged.

Fixes #742
2026-04-24 06:33:20 +02:00
can1357 7f81179b40 feat(config): add commands.enableOpencode{User,Project} settings
Mirror the existing `commands.enableClaudeUser`/`commands.enableClaudeProject`
schema entries so the OpenCode discovery provider exposes the same
user/project toggle surface as Claude. Default remains true to preserve
current behavior.

Fixes #661
2026-04-24 06:33:20 +02:00
can1357 cafa86a6cf fix(tools/sqlite): reject comments, terminators, and pagination keywords in where=
The structured SQLite helper interpolates `where=` directly into SQL.
A crafted clause like `where=1=1 LIMIT 1000000 --` could comment out
the helper's bound `LIMIT ? OFFSET ?`, returning the full table in
violation of the documented pagination contract.

Validate where= at the selector boundary and reject SQL comments,
statement terminators, and pagination/attach/pragma keywords. Raw SQL
remains available via ?q=SELECT... for callers that need it.

Fixes #735
2026-04-24 06:33:20 +02:00
Can BölükandGitHub 98df8b72c7 Merge pull request #668 from robinmordasiewicz/fix/lsp-startup-noise
fix(lsp): filter informational log lines from LSP startup warnings
2026-04-24 06:31:53 +02:00
Can BölükandGitHub 84f6dc30f1 Merge pull request #740 from kagura-agent/fix/tools-equals-syntax
fix(cli): support --flag=value equals syntax for all CLI flags
2026-04-24 06:11:50 +02:00
can1357 bd07ebed53 fix(coding-agent/vim): force-emit kbd steps so pendingInput streams reliably 2026-04-24 06:10:01 +02:00
can1357 1fb22e1e9a chore: bump version to 14.2.1 2026-04-24 05:55:59 +02:00
can1357 727090e72c chore: reformat 2026-04-24 05:55:44 +02:00
can1357 661449df09 test(coding-agent/core): removed stale chunk-tree test suite from core
- Removed stale test suite file `packages/coding-agent/test/core/chunk-tree.test.ts`.
2026-04-24 05:54:10 +02:00
can1357 cb134f6446 refactor(find): consolidate path relativization and drop gitignore fallback
Extracts a single `formatMatchPath` helper used by both the
fast-glob/native code paths and the streaming onMatch callback so
relative paths, trailing-slash handling, and directory markers are
produced consistently. Also drops the retry-without-gitignore fallback
when the gitignored pass returns zero matches, so a broad hidden-file
pattern that is fully ignored stays fully ignored instead of silently
flipping gitignore off on the second attempt.
2026-04-24 05:49:16 +02:00