Commit Graph

6254 Commits

Author SHA1 Message Date
can1357 77ea88e436 fix(coding-agent): fixed crashes when system prompts were provided as strings
- Normalized agent `setSystemPrompt` to wrap string inputs into one-item arrays.
- Updated session creation to accept string `systemPrompt` values and normalize callback or direct results to string arrays.
- Adjusted extension result handling and test fixtures to accept string `systemPrompt` and missing `assistant_message` fields without crashing.
2026-06-14 21:53:24 +02:00
can1357 572b06f406 fix(coding-agent/modes): fixed collapsed streaming tool previews from dropping head rows
- Updated ToolExecutionComponent.isTranscriptBlockCommitStable to return true when a tool result exists, so streaming results are treated as commit-stable.
- Limited provisionalPendingPreview handling to the pending call phase so only pre-result previews remain non-committed, preventing collapsed streams from dropping their top rows.
2026-06-14 21:43:42 +02:00
can1357 afc93111a8 test: ditto 2026-06-14 21:13:17 +02:00
can1357 00739815cf test: ditto 2026-06-14 21:07:18 +02:00
can1357 b235382edf test: f it 2026-06-14 20:55:43 +02:00
can1357 30ce98a8b4 test(coding-agent): cap test parallelism to 2 workers
Confirmed root cause of the CI test hang: bun --parallel spawns one isolated
worker per core, and each worker loads the 116MB pi-natives addon plus a large
JS heap. On the 16GB hosted runner that exceeds memory, triggering swap thrash
(100s+ event-loop stalls, transient file-read failures) that looks like a hang.
Capping to 2 workers keeps per-file memory recycling (isolation) while halving
peak memory so it fits the runner.
2026-06-14 20:45:37 +02:00
can1357 8d9878161f chore: update changelogs 2026-06-14 20:44:56 +02:00
roboomp 1d931506d6 fix(changelog): preserved released sections during auto-fix
Restored the released coding-agent changelog sections that the previous pre-publish fix run flattened into Unreleased. The local checkout only had tags through v15.5.15, so fix-changelogs compared against an old tag and promoted entire newly-added release sections.

- Kept newly-added release-section hunks out of collectPromotableAddedItemLines so the fixer still promotes individual new items added under an existing released section, but does not rewrite whole release blocks.
- Added regression coverage for the release-section case.
- Restored the coding-agent changelog history and kept only the #2582 entry under Unreleased.

Fixes #2582
2026-06-14 20:44:45 +02:00
can1357 afc4f3c1fe Merge pull request #2581 from camopy/codex/avoid-placeholder-crash-before-theme-init
fix(coding-agent): avoid placeholder crash before theme init

Resolved CHANGELOG conflict: 15.13.0 was re-opened into [Unreleased] on
main, so the fix entry goes under the existing [Unreleased] Fixed section
rather than resurrecting the released 15.13.0 heading.
2026-06-14 20:44:03 +02:00
can1357 5da4ab6085 Merge remote-tracking branch 'origin/farm/ed9bea08/isolate-settings-parallel-tests' 2026-06-14 20:35:38 +02:00
roboomp d142652fbe style: bun run fix 2026-06-14 18:26:27 +00:00
roboomp 805fbfbad8 fix(coding-agent): isolated parallel-test races on the Settings singleton
Two CustomEditor/streaming-preview tests timed out under bun test --parallel
because they reset+reinitialised the process-global Settings singleton in
beforeEach. 50+ other test files do the same dance, so under parallelism the
proxy points at whichever instance won the latest race rather than the one
under test (issue #2582).

- Added CustomEditor#magicKeywordsEnabledOverride: an instance-level test/host
  injection that short-circuits the global lookup at the read site.
  Production wiring still reads from Settings.
- Switched the magic-keyword shimmer-disabled test to set
  magicKeywordsEnabledOverride directly instead of mutating the singleton.
- Removed the gratuitous reset+init from the 'streaming tool call preview
  height (bounded across renderers)' describe -- bash/ssh/eval pending
  previews never read settings.*; only initTheme() (idempotent) is kept.

Fixes #2582
2026-06-14 18:26:20 +00:00
can1357 687487385b test(coding-agent): drop tts/stt worker tests; harden timing-bound tests
The tts/stt suite spawns sherpa-onnx worker subprocesses that hang on the
headless CI runner (zero-output stall → SIGTERM), and the resulting event-loop
starvation tipped real-time TUI tests (streaming-preview, custom-editor shimmer,
ask timeouts) past bun's 5s default. Remove the tts/stt tests and give the
timing-sensitive tests an explicit 30s timeout.
2026-06-14 20:18:09 +02:00
Paulo Camopy bf345d9920 fix(coding-agent): avoid placeholder crash before theme init 2026-06-14 14:45:25 -03:00
can1357 c362976ac5 test(coding-agent/core): consolidated python executor session lifecycle tests
- Added a lifecycle test case verifying executePython retries execution with a fresh kernel when the prior session kernel dies during run.
- Removed the now-redundant python-executor-session.test.ts file that defined session lifecycle tests.
2026-06-14 19:04:18 +02:00
can1357 6325de72f8 test(coding-agent): drop flaky task pending preview height test 2026-06-14 19:03:29 +02:00
can1357 7e8122000a chore: bump version to 15.13.0 2026-06-14 18:21:59 +02:00
can1357 2b436f222a chore: update changelogs 2026-06-14 18:21:35 +02:00
Can Bölük 6eb57448c5 Merge pull request #2444 from 381181295/extension-approval-lifecycle
feat(coding-agent): emit tool approval lifecycle events
2026-06-14 18:16:36 +02:00
can1357 9e18d3fbb0 Merge branch 'main' into farm/a4aed75b/npm-plugin-load-deps 2026-06-14 18:13:29 +02:00
can1357 fd4bdf77fc docs(agent): updated AGENTS.md changelog review guidance wording
- Updated AGENTS.md to state that changelog section order and formatting should not be flagged in reviews or PRs.

Closes #2377
Closes #2379
Closes #2380
Closes #2381
Closes #2382
Closes #2383
Closes #2384
Closes #2410
Closes #2432
Closes #2449
Closes #2451
Closes #2452
Closes #2456
Closes #2457
Closes #2466
Closes #2487
2026-06-14 17:57:10 +02:00
can1357 3709ae0ca9 Merge PR #2451: fix(coding-agent): preserve discovered context windows 2026-06-14 17:54:50 +02:00
can1357 e28269c235 docs(changelog): move vLLM discovery entries to [Unreleased]
Rebasing onto current main landed both the coding-agent and catalog
vLLM entries under the released [15.12.6] section. Per AGENTS.md, new
entries go under [Unreleased] and released sections are immutable, so
the release tooling would otherwise miss them.

Addresses review feedback on #2451.
2026-06-14 17:50:16 +02:00
Gerben Meijer 4a6eec624b fix(coding-agent): preserve vLLM discovered context windows
Read vLLM max_model_len and OpenAI-compatible context_length metadata during model discovery, route providers.vllm.baseUrl into built-in discovery before cached models exist, and avoid sending local placeholder bearer tokens.

Scope the vLLM model cache to the discovery base URL so endpoint changes refetch immediately, and add focused regression coverage for configured and built-in vLLM discovery.
2026-06-14 17:50:16 +02:00
can1357 80c2004ac9 Merge PR #2466: fix(config): prefer context_length from API in model discovery 2026-06-14 17:44:57 +02:00
can1357 da26651129 Merge PR #2432: fix(coding-agent): report local rpc prompt completion 2026-06-14 17:44:29 +02:00
can1357 091c452dd1 Merge PR #2377: fix(coding-agent): derive bundled self root from dist path 2026-06-14 17:44:28 +02:00
can1357 ae0898e3a5 Merge PR #2456: fix(coding-agent): attach clipboard image on stale screenshot paste path 2026-06-14 17:44:28 +02:00
can1357 884cfefe9c Merge PR #2449: fix(discovery): follow symlinked extension packages 2026-06-14 17:44:28 +02:00
can1357 b0ab7ed28c Merge PR #2410: feat(extensions): expose model resolve() and family() via ctx.models 2026-06-14 17:44:28 +02:00
can1357 edb1fc206b fix(coding-agent): keep single Unreleased changelog entry after rebase
Rebasing onto main replayed the branch's changelog history across main's
diverged changelog, duplicating the RPC prompt-completion note and
injecting stray entries/headers into the released [15.12.4] section.
Reset the changelog to main's content with exactly one entry under
[Unreleased] -> Added, per AGENTS.md (released sections are immutable).

Addresses review feedback on #2432.
2026-06-14 17:37:00 +02:00
can1357 8bad22bd9d docs(coding-agent): move Win+Shift+S paste entry under [Unreleased]
The rebase landed the changelog entry inside the already-released
[15.12.4] section because its #2429 anchor was moved there when that
release was cut. Relocate it to [Unreleased] -> Fixed per changelog
convention.

Addresses review feedback on #2456.
2026-06-14 17:36:27 +02:00
art-wiedzmin 53a7253fbb docs(coding-agent): add CHANGELOG entry for Win+Shift+S clipboard paste fallback 2026-06-14 17:33:17 +02:00
art-wiedzmin e31926e698 fix(coding-agent/modes): fall back to clipboard image when pasted screenshot path is missing 2026-06-14 17:33:17 +02:00
can1357 8e7a2fac97 chore: update changelogs 2026-06-14 17:32:28 +02:00
Kormákur b7e8599ef8 Move RPC changelog note to Unreleased 2026-06-14 17:30:38 +02:00
Kormákur c805514c75 fix(coding-agent): gate rpc extension turn tracking on send success 2026-06-14 17:30:37 +02:00
Kormákur 1b7fd189bb fix(coding-agent): trim rpc prompt completion scope 2026-06-14 17:30:37 +02:00
Kormákur e2cd316f33 fix(coding-agent): complete local rpc prompts 2026-06-14 17:30:37 +02:00
Kormákur b59ea8e344 fix(coding-agent): handle queued rpc extension messages 2026-06-14 17:30:37 +02:00
Kormákur 27105c99a9 fix(coding-agent): track extension-triggered rpc turns 2026-06-14 17:30:37 +02:00
Kormákur a19d5a35fc fix(coding-agent): mark rpc skill prompts as agent work 2026-06-14 17:30:37 +02:00
Kormákur d418467715 fix(coding-agent): report local rpc prompt completion 2026-06-14 17:30:36 +02:00
can1357 bcde055998 test(config): cover non-positive context_length fallback and satisfy formatter
Add a proxy-discovery regression: a `context_length: 0` upstream value
must be rejected by `toPositiveNumberOrUndefined` and fall back to the
default window. Raw `??` would have pinned it at 0 (nullish coalescing
does not skip 0), so this guards the should-fix the helper was added for.

Also apply biome formatting to the discovery change (collapse the
multiline `contextWindow:` expression, drop a trailing space) and the new
tests so `biome check` passes — the PR as submitted failed the formatter.

Addresses review feedback on #2466.
2026-06-14 17:30:20 +02:00
can1357 20c4052996 fix(config): relocate context_length changelog entry to coding-agent package
The PR added its `### Fixed` entry to packages/agent/CHANGELOG.md
(@oh-my-pi/pi-agent-core), but the change lives in the coding-agent
package (packages/coding-agent/src/config/model-discovery.ts). Per
AGENTS.md the changelog entry belongs in the touched package under
`## [Unreleased]`; the rebase also wedged the misplaced entry inside the
already-released `## [15.12.6]` section. Move it to
packages/coding-agent/CHANGELOG.md and restore packages/agent unchanged.

Addresses review feedback on #2466.
2026-06-14 17:30:20 +02:00
Nicolas Lorin 87c9e77dbe fix(config): prefer context_length from API in model discovery
Updated model discovery to use `context_length` reported by the API when available, falling back to bundled reference data and default. Added `context_length` field to parsed model response and modified context window assignment logic.
2026-06-14 17:30:20 +02:00
can1357 f4734e1940 Merge PR #2487: fix(coding-agent): route MCP connecting banner through the render tree 2026-06-14 17:29:38 +02:00
can1357 c8541c5bec fix(coding-agent): move bundled-self-root changelog entry to [Unreleased]
The rebase replayed the entry against its old context anchor, which has
since shipped in the released [15.11.7] section, so the new line landed
inside published release history. Relocate it under [Unreleased] / Fixed
per the changelog convention.

Addresses review feedback on #2377.
2026-06-14 17:26:24 +02:00
SUPREME 1f17347b31 test(discovery): cover linked index entrypoints 2026-06-14 17:25:54 +02:00
SUPREME 12ef9b11a9 fix(discovery): follow symlinked extension packages 2026-06-14 17:25:53 +02:00