Commit Graph

6794 Commits

Author SHA1 Message Date
can1357 2ecb5fd9fa chore: reformat 2026-06-02 08:43:23 +02:00
can1357 0bc9bc25b4 fix(agent): gated tool_arg harmony detection on trailing-garbage T co-signal
- Added T co-signal requirement for tool_arg surface so legitimate edits carrying the marker are never hard-aborted.
- Extended detectHarmonyLeakInAssistantMessage with optional toolArgParseEnd resolver; agent loop omits it, keeping tool_arg inert.
- Updated tests to inject a boundary-at-0 helper for corpus cases and added T-gate unit tests.
2026-06-02 08:42:52 +02:00
can1357 7b5517b255 fix(open): fixed WSL local file opening via wslpath and wslview
- Converted existing local paths to Windows paths via `wslpath -w` before opening.
- Used `wslview` directly in WSL environments, bypassing `xdg-open`'s broken file-handler translation.
- Fell back to `xdg-open` for URLs or when `wslview` is unavailable.
- Added unit tests covering WSL file, URL, and fallback scenarios.
2026-06-02 08:42:44 +02:00
can1357 05d44836dd chore: typo 2026-06-02 08:42:43 +02:00
Can Bölük 30ab3b9db9 Merge pull request #1660 from DarkPhilosophy/fix/harmony-final-response-retry
Engage harmony leak detection on the committed assistant message
2026-06-02 09:42:37 +03:00
Can Bölük e5109e6c92 Merge pull request #1318 from ogormans-deptstack/feat/1313-hide-thinking-flag
feat: add --hide-thinking CLI flag to suppress thinking blocks in TUI
2026-06-02 09:31:49 +03:00
Can Bölük be2719f03d Merge pull request #1371 from can1357/farm/b73cb08b/acp-background-opt-in
fix(acp): preserve background job opt-ins
2026-06-02 09:31:06 +03:00
Can Bölük 20bcea6830 Merge branch 'main' into farm/b73cb08b/acp-background-opt-in 2026-06-02 09:30:07 +03:00
Can Bölük ad8017cb5a Merge pull request #1673 from can1357/farm/6d6ea973/document-system-md-templating-contract
docs: documented SYSTEM.md / APPEND_SYSTEM.md customization contract
2026-06-02 09:28:34 +03:00
Can Bölük 4a21d39e61 Merge pull request #1272 from thismat/main
feat(web-search): Added Kagi V1 API Provider
2026-06-02 09:28:17 +03:00
Can Bölük 9488cb52fe Merge branch 'main' into main 2026-06-02 09:28:09 +03:00
can1357 77c2b0bd8f chore: minor fixes 2026-06-02 08:27:04 +02:00
can1357 1a1c473e7f refactor(web-search): fold Kagi V1 into the kagi provider
Replace the sunset V0 Search API with V1 (POST /api/v1/search) under the
existing `kagi` provider id instead of shipping a parallel `kagi-v1`
provider. Credentials still resolve through the shared AuthStorage broker
(Bearer token, KAGI_API_KEY, /login kagi), and recency now maps to a
UTC-deterministic filters.after date.

- Merge V1 client into src/web/kagi.ts (categorized result buckets, direct
  answer, related/adjacent questions)
- Keep classifyProviderHttpError mapping for auth/quota signals
- Drop the kagi-v1 entries from the provider registry, order, type union,
  and settings schema
- Consolidate tests into web-search-kagi.test.ts
2026-06-02 08:26:55 +02:00
can1357 b503f7d86b feat(robomp): added incoming PR review feature with classify and submit
- Added `review_pr` task that checks out PR head in a detached worktree, classifies rank/type/area, and posts a batched GitHub review as `event=COMMENT`.
- Added four new host tools: `fetch_pr`, `classify_pr`, `pr_review_comment`, and `submit_pr_review`; review tools self-gate on `review_mode`, push/open-PR tools refuse when `review_mode` is set.
- Added sqlite staging table `pr_review_comments` with `stage_review_comment`, `list_staged_review_comments`, and `clear_staged_review_comments` DAOs.
- Routed `pull_request.opened/reopened/ready_for_review` to `review_pr` and extended `pull_request.closed` cleanup to any tracked PR regardless of author.
2026-06-02 08:23:09 +02:00
can1357 04cc014c16 fix(tui): deferred eager scrollback rebuild on ED3-risk POSIX terminals
- Added `terminalHasEagerEraseScrollbackRisk` to detect WezTerm, kitty, ghostty, and alacritty on POSIX, where xterm ED3 (`CSI 3 J`) can snap scrolled-up readers back to the tail during streaming.
- Kept direct user-input and checkpoint rebuilds unaffected by the deferral.
- Added regression tests covering the deferred and non-deferred paths (issue #1682).
2026-06-02 08:23:09 +02:00
Can Bölük 3c024aa5ce Merge pull request #1687 from can1357/farm/802d1a6a/update-bypass-bun-manifest-cache
fix(update): bypass bun manifest cache so omp update sees fresh releases
2026-06-02 09:22:33 +03:00
roboomp a3fbeb4a0a style: bun run fix 2026-06-02 06:19:00 +00:00
roboomp 9abce6e974 fix(update): pinned npm registry and bypassed bun cache for omp update
omp resolves the update target by querying https://registry.npmjs.org/ directly, but `bun install -g pkg@<version>` would then consult bun's on-disk manifest snapshot AND honour the user's npm-mirror configuration (corporate proxy, Taobao, …). Either source can lag the upstream registry by minutes-to-hours, in which case bun rejects the version with `No version matching "X" found for specifier "@oh-my-pi/pi-coding-agent" (but package exists)` even though the registry omp just queried is serving it.

The bun install step now runs with both `--no-cache` (skip the manifest snapshot) and `--registry=https://registry.npmjs.org/` (pin the official catalog regardless of bunfig/.npmrc) so the install observes the same registry state the version check used. The registry URL is centralised in an `NPM_REGISTRY` constant shared by `getLatestRelease` and `buildBunInstallArgs`.

Fixes #1686
2026-06-02 06:18:54 +00:00
Can Bölük 7b20de4ef1 Merge pull request #1587 from devxplay-forks/feat/raw-paste
feat(clipboard): add raw text paste functionality with keyboard shortcut
2026-06-02 09:18:16 +03:00
Can Bölük 38360c0c3c Merge pull request #1311 from jiwangyihao/acp-terminal-release-content
fix(acp): show live execute tool details
2026-06-02 09:17:58 +03:00
Can Bölük f7d1ed868b Merge pull request #1679 from JacobZyy/fix/xiaomi-tp-cn-validation
fix(ai): add CN token-plan host to Xiaomi MiMo login validation
2026-06-02 09:14:26 +03:00
Can Bölük c394822423 Merge pull request #1667 from can1357/farm/032afa26/fix-edit-collision-duplicates
fix(hashline): repair duplicated edit boundary echoes
2026-06-02 09:12:42 +03:00
Can Bölük 12970e2412 Merge pull request #1646 from can1357/farm/2a94e89d/honor-todo-clear-delay
fix(tui): honor todo auto-clear delay
2026-06-02 09:11:07 +03:00
Can Bölük 2935627d7e Merge pull request #1662 from can1357/farm/b88f2093/fix-opencode-qwen37
fix(ai): use bearer auth for OpenCode Anthropic models
2026-06-02 09:00:19 +03:00
Can Bölük c9e2e89f7c Merge pull request #1312 from basedcorp99/fix/cursor-last-user-message
Fix Cursor request user message selection
2026-06-02 08:55:35 +03:00
Can Bölük ea05ed8345 Merge pull request #1621 from can1357/farm/3a53b91e/fix-exit-cursor-position
Fix shell prompt placement after quitting TUI
2026-06-02 08:55:10 +03:00
Can Bölük 94177c2ab0 Merge branch 'main' into farm/3a53b91e/fix-exit-cursor-position 2026-06-02 08:55:01 +03:00
Can Bölük d9960f1142 Merge pull request #1659 from can1357/farm/d05e786c/cannot-log-out-opencode
fix(auth): limit logout to stored credentials
2026-06-02 08:53:17 +03:00
Can Bölük 2909b068d1 Merge branch 'main' into farm/d05e786c/cannot-log-out-opencode 2026-06-02 08:52:53 +03:00
Can Bölük 858b758ee3 Merge pull request #1669 from can1357/farm/cc346f1b/fix-resume-decline-fork-exit
fix(coding-agent): exited cleanly when declining cross-project resume fork
2026-06-02 08:52:05 +03:00
Can Bölük 1f0e0a490b Merge branch 'main' into farm/cc346f1b/fix-resume-decline-fork-exit 2026-06-02 08:49:46 +03:00
can1357 384a206737 refactor(task): replaced numeric-prefix ids with name-first agent output ids
- Changed `AgentOutputManager` to use requested names verbatim, adding `-2`/`-3` suffixes only on repeats (e.g. `Anna`, `Anna-2`).
- Renamed main agent id from `0-Main` to `Main`; nested ids now use dot notation without numeric prefix (e.g. `Parent.Child`).
- Updated task widget to render dotted hierarchy as `Parent>Child` breadcrumb without leading index.
- Resume scan now tracks seen names instead of a counter to avoid clobbering prior outputs.
2026-06-02 06:50:03 +02:00
can1357 c4e157590e feat(eval): replaced fixed concurrency cap with task.maxConcurrency bridge
- Removed the `concurrency` argument from `parallel()` and `pipeline()` in both JS and Python runtimes.
- Added `__concurrency__` bridge to resolve the pool ceiling live from `task.maxConcurrency` (default 32; 0 = unbounded).
- Eval fan-outs now run as wide as a `task` tool batch instead of being capped at 16.
2026-06-02 06:49:15 +02:00
can1357 a25b4dc2cc docs(coding-agent/prompts): added shared executor reuse guidance to eval tool
- Encouraged staging helpers, datasets, and clients once, then fanning out subagents that call them directly.
- Clarified that re-importing, re-fetching, or serializing across the task boundary is unnecessary.
2026-06-02 06:43:58 +02:00
can1357 a4dc8b597d docs(coding-agent/prompts): reworked orchestrator prompt for trivial inline edits and batching
- Updated the role contract to allow direct trivial edits while reserving substantial work for subagents.
- Reinforced that parallel work must be fanned out broadly and that one-off task dispatches are disallowed.
- Clarified that subagents make edits only, while the orchestrator runs verification for changed files.
2026-06-02 06:33:30 +02:00
can1357 1fcb49601a fix(coding-agent): synchronized preview diff updates to settle before rendering
- Tracked the latest in-flight preview diff recompute in ToolExecutionComponent and exposed it through a new whenPreviewSettled method.
- Updated component paths that trigger preview recomputation to retain the returned promise instead of fire-and-forget calls.
- Updated the streaming preview height test to await settled diff recomputation before assertions, eliminating requestRender race-based flakes.
2026-06-02 06:27:09 +02:00
can1357 5caed570ce fix(settings): added reloadForCwd to re-scope project settings on cwd change
- Added `Settings.reloadForCwd` to mutate the live instance in place, so `/move` and cross-project resume pick up the destination project's `.claude/settings.yml` and path-scoped `enabledModels`/`disabledProviders`.
- Wired `reloadForCwd` into `applyCwdChange` (interactive mode) and the `--resume` startup path so settings always follow the active working directory.
- Added tests covering path-scoped re-resolution, no-op on same directory, and disk-backed project layer load/drop.
2026-06-02 06:00:45 +02:00
can1357 7b3ea248d4 feat(coding-agent): enabled cross-project resume with folder/all scope fallback
- Enabled resume picker to preload sessions and toggle folder/all scope with Tab.
- Enabled resume flow to fall back to all-project sessions and switch cwd on resume.
- Added centralized applyCwdChange to refresh caches, commands, and UI after cwd updates.
- Updated session restoration to adopt restored session cwd and sessionDir when present.
2026-06-02 05:53:57 +02:00
can1357 b522fde56d perf(sqlite-reader): replaced full COUNT(*) scan with bounded row probing
- Added ROW_COUNT_PROBE_CAP to limit rows scanned when counting tables, preventing JS thread freezes on large databases.
- Used sqlite_stat1 estimates for tables exceeding the cap; exact counts only for provably small tables.
- Introduced TableRowCount type with exact/estimate/atLeast variants reflected in rendered output.
2026-06-02 05:24:21 +02:00
can1357 783971f575 fix(history-storage): restored session_id column and prompt-history ranking
- Fixed `session_id` never being created or populated; every history row had `NULL` for session.
- Added schema migration (`ALTER TABLE history ADD COLUMN session_id`) for pre-existing databases.
- Wired interactive mode to call `setSessionResolver(...)` so prompts are stamped with the active session at submission time.
- Re-enabled session ranking in `--resume` and in-session pickers via `matchingSessionIds()`, merging fuzzy and prompt-history signals.
2026-06-02 05:15:56 +02:00
roboomp 21264b6d6a docs: clarified skills with custom system prompts
- Added guidance that generated skills/rules/tool inventory live in prompt block 0.
- Documented APPEND_SYSTEM.md as the supported way to customize while preserving automatic skill discovery.
- Noted that SYSTEM.md users must hard-code skill instructions if they replace block 0.

Fixes #1671
2026-06-02 02:41:32 +00:00
can1357 c1f1e8022d fix(tui): excluded 4-digit hash colors from inline swatch parsing
- Updated hex color validation to accept only 3-, 6-, and 8-digit forms as swatchable.
- Adjusted strict prose filtering to gate only 3-digit values without hex letters.
- Added a regression test confirming 4-digit #TAG snapshot tags do not render swatches in prose or code spans.
2026-06-02 04:39:12 +02:00
can1357 8cd8fd9b70 fix(coding-agent/tools): aligned screenshot file extensions with saved buffer format
- Computed screenshot destination extensions from the MIME type of bytes being written.
- Updated auto-generated paths in screenshot and temp directories to use the matching extension.
2026-06-02 04:36:21 +02:00
JacobZyy 5b6335ca4f fix(ai): add CN token-plan host to Xiaomi MiMo login validation
tp- keys scoped to the CN cluster were rejected during login because
validateXiaomiApiKey only tried SGP and AMS. The runtime model-discovery
path (xiaomiModelManagerOptions) already included CN, so the two code
paths were out of sync.

Add token-plan-cn.xiaomimimo.com as the third fallback endpoint so
login validation tries SGP → AMS → CN, matching model discovery.
2026-06-02 10:20:41 +08:00
roboomp 8ae2a47165 docs: corrected SYSTEM.md discovery: no ancestor walk-up
- Removed the (walk-up) annotation on project SYSTEM.md lookup.
- Documented that findConfigFile only checks <cwd>/.omp etc., not ancestors.
- Clarified that the capability-layer walk-up exists but its output is never rendered by the default template under normal CLI startup.

Fixes #1671
2026-06-02 00:51:13 +00:00
roboomp 111c466382 docs: corrected SYSTEM.md prompt block semantics
- Documented that CLI SYSTEM.md replaces only prompt block 0 and keeps defaultPrompt.slice(1).
- Clarified append prompt ordering with and without a custom system prompt.
- Corrected deduplication wording to distinguish CLI block replacement from internal buildSystemPrompt dedupe.

Fixes #1671
2026-06-02 00:48:52 +00:00
roboomp a20c4efb7c docs: documented SYSTEM.md / APPEND_SYSTEM.md customization contract
- Added docs/system-prompt-customization.md covering precedence,
  replace-vs-append semantics, the verbatim insertion rule for
  template syntax, deduplication, and discovery behavior across
  the primary findConfigFile path and the capability layer.
- Linked the new doc from docs/config-usage.md so the existing
  SYSTEM.md reference points at the full contract.

Fixes #1671
2026-06-02 00:41:40 +00:00
roboomp aeea2c8a8a fix(coding-agent): preserved noninteractive cross-project resume failures
Separated the fork prompt result into accepted, declined, and unavailable states.
Interactive declines now return cleanly through runRootCommand, while non-TTY
invocations continue to fail with a diagnostic instead of silently exiting 0.

Updated regression coverage for both branches.

Fixes #1668
2026-06-01 22:36:10 +00:00
roboomp cea19b6ebf fix(coding-agent): exited cleanly when declining cross-project resume fork
createSessionManager threw `Session "X" is in another project (Y).` when
the user answered "n" to the fork prompt, and runRootCommand never caught
it. The throw bubbled up as an Uncaught Exception with a stack trace.

Return undefined from the decline branch instead, and treat
`typeof parsed.resume === "string" && !sessionManager` in runRootCommand
as a user cancellation: print a dimmed "Resume cancelled" message and
return cleanly (exit 0), mirroring how the picker UI handles
"No session selected".

Fixes #1668
2026-06-01 22:31:26 +00:00
roboomp d6749b49a7 fix(hashline): bailed boundary repair on ambiguous full-echo payloads
Used the leading/trailing maxima directly and skipped repair when their sum covers the whole payload, so multi-line boundary echoes can no longer trim explicit replacement content.

Added regression coverage for the A,B,old,C,D → A,B,C,D scenario.
2026-06-01 21:56:04 +00:00