Commit Graph
11985 Commits
Author SHA1 Message Date
can1357 350b85e26c test(coding-agent): drop unrelated schema repro churn 2026-08-05 01:12:02 +02:00
can1357 94c838faea Merge PR #7539: fix(coding-agent): complete usage-aware fallback integration (@eggpeat) 2026-08-05 01:12:02 +02:00
can1357 6da9460dff Merge PR #7488: fix(task): bound abort cleanup and quarantine late jobs (@metaphorics) 2026-08-05 01:12:02 +02:00
can1357 ae1c9c981d test(coding-agent): make coalescing tests deterministic 2026-08-05 01:12:02 +02:00
can1357 783739e618 Merge PR #7542: fix(coding-agent): coalesce streaming message_update handler work per render window (#7443) (@szavadsky) 2026-08-05 01:12:01 +02:00
can1357 18e6df18a6 Merge PR #7621: fix(coding-agent/eval): remove per-call model override from agent() (@szavadsky) 2026-08-05 01:12:01 +02:00
can1357 d53d5c0035 fix(coding-agent): scope hindsight memory errors to caller 2026-08-05 01:12:01 +02:00
can1357 403535d2a9 Merge PR #7588: fix(coding-agent): corrective memory:// error under hindsight backend (@roboomp) 2026-08-05 01:12:01 +02:00
can1357 d48977f380 Merge PR #7570: fix(coding-agent/hindsight): route recall through single injection path (@roboomp) 2026-08-05 01:12:00 +02:00
can1357 975d0a2e9d Merge PR #7501: fix(agent): classify thinking-only unexpected stops (@roboomp) 2026-08-05 01:12:00 +02:00
can1357 0cf5d55ac0 Merge PR #7629: fix(coding-agent): retry buffered print streams (@roboomp) 2026-08-05 01:12:00 +02:00
can1357 43666b3b1a fix(cli): follow promise resolver convention 2026-08-05 01:11:59 +02:00
can1357 e4684325a3 Merge PR #7637: fix(cli): flush final json record before print-mode exit (@roboomp) 2026-08-05 01:11:59 +02:00
can1357 130d3318c8 test(coding-agent): update observer registry stubs 2026-08-05 01:11:59 +02:00
can1357 772fe8fa6e Merge PR #7500: perf(agent-hub): bound roster rendering to viewport (@hancens1024) 2026-08-05 01:11:59 +02:00
can1357 b0984cd25c Merge PR #7598: fix(coding-agent): split semicolon path lists that trip ENAMETOOLONG (@roboomp) 2026-08-05 01:11:59 +02:00
can1357 abc628b63c fix(read): expose artifact source line totals 2026-08-05 01:11:59 +02:00
can1357 a0f203bfd4 Merge PR #7592: fix(cursor): correct inline read range metadata (@roboomp) 2026-08-05 01:11:58 +02:00
can1357 a66805bd78 Merge PR #7634: fix(stats): restrict dashboard to loopback (@roboomp) 2026-08-05 01:11:58 +02:00
can1357 e50b989e45 Merge PR #7654: fix(mcp): propagate enabled flag from translated tool configs (@roboomp) 2026-08-05 01:11:57 +02:00
can1357 511b200bc5 Merge PR #7584: fix(config): read server input modalities in openai-models-list discovery (@roboomp) 2026-08-05 01:11:57 +02:00
can1357 4da44c5492 Merge PR #7604: fix(browser): honor explicit Chromium executable override (@roboomp) 2026-08-05 01:11:57 +02:00
can1357 c14bd77707 Merge PR #7611: fix(coding-agent): restore legacy convertToPng export (@roboomp) 2026-08-05 01:11:57 +02:00
can1357 46a0332614 docs(coding-agent): note Herdr launcher fix 2026-08-05 01:11:57 +02:00
can1357 0998f29da5 Merge PR #7554: fix(cli): preserve OMP identity inside Herdr (@jessemcnew) 2026-08-05 01:11:56 +02:00
can1357 2605243f38 fix: complete version comparator centralization 2026-08-05 01:11:56 +02:00
can1357 84fc295f0c Merge PR #7586: refactor: centralize version comparison in pi-utils (@metaphorics) 2026-08-05 01:11:56 +02:00
can1357 ca71858545 Merge PR #7497: fix(tool): exempt piped-stdin stages from bash interceptor (@roboomp) 2026-08-05 01:11:55 +02:00
can1357 13d9a09999 Merge PR #7612: chore(ts): enforce noImplicitOverride (@metaphorics) 2026-08-05 01:11:31 +02:00
Slava Zavadsky 326fb24367 fix(coding-agent): chain every queued dispatch onto the current tail
The previous #runSerialized waited on the shared #dispatchTail, then ran
unconditionally: when two or more events queued behind an in-flight run,
each resumed from the same settled await and started its own run in
parallel, defeating the ordering guarantee for a burst landing in one
coalescing window (message_end + agent_end behind a suspended flush).

Each waiter now chains its own link onto the current tail
(tail.then(run, run)), so queued runs start strictly one after another;
the idle path still runs synchronously, preserving the flush timing the
coalescing tests assert on. The in-flight flag clears only when the
settling link is still the tail, so a later chained link's settle does
not clear it early.

Regression test: two message_end events queued behind a suspended window
flush stay serialized (init call count steps 1 -> 2 -> 3 as each gate
opens); fails on the previous implementation.
2026-08-04 17:42:54 -04:00
Slava Zavadsky 72a6654572 Merge remote-tracking branch 'upstream/main' into fix/7443-streaming-message-update-coalesce 2026-08-04 17:41:15 -04:00
roboomp 9f92d36425 fix(mcp): ordered project entries before user in translated importers
The Claude/Cursor/Gemini/Windsurf importers appended user entries before
project entries, so a project `enabled: false` could not claim its dedupe key
ahead of a same-named user server and the disable was silently ignored. Load
project entries first, matching the native/Codex loaders, so a project disable
suppresses a same-named user server.

Updated docs/mcp-config.md to reflect the project-first precedence and added
compound regression coverage.

Fixes #7652
2026-08-04 21:14:11 +00:00
roboomp 172ce9bf6c revert(session): restored legacy project directory names
Reverted PR #7397 session directory hashing and automatic migration.

Restored existing script compatibility with the legacy cwd-derived naming scheme.

Fixes #7646
2026-08-04 21:10:54 +00:00
roboomp 73d3076d14 test(mcp): isolated translated importer home configs
Set HOME and os.homedir() to a dedicated temporary directory for each translated-provider fixture, then restore both after every test. This prevents real user MCP configs from shadowing the project fixture through capability deduplication.
2026-08-04 21:03:19 +00:00
Slava Zavadsky 76f04c4c77 fix(coding-agent/eval): reject legacy model kwarg in Julia agent() prelude
Python/Ruby raise on the removed keyword via their keyword-only
signatures; the Julia helper's kwargs... catch-all silently swallowed
agent("..."; model="default") and forwarded it to the bridge, where
the "+": "delete" strip discarded it. A caller could keep thinking a
model override was honored. Reject model loudly, matching the strict
removal decision on #7621.
2026-08-04 17:03:04 -04:00
roboomp b872e51e6f fix(mcp): propagate enabled flag from translated tool configs
The Claude Code, Cursor, Gemini CLI, Windsurf, and VS Code importers built
their canonical MCPServer object without mapping serverConfig.enabled, so a
server declared with "enabled": false stayed undefined and the central
suppressServer filter never fired. Only disabledServers masked the gap.

Map the field in each importer, mirroring opencode.ts and codex.ts, and add
a table-driven regression test across all five importers.

Fixes #7652
2026-08-04 20:57:47 +00:00
Slava Zavadsky 50ee839c51 fix(modes): serialize dispatch so a stream tail cannot overtake the coalesced flush
AgentSession.#emit fires listeners fire-and-forget, and the coalesced
message_update flush fires from its own 33ms timer — neither path awaited
the other. A rapid stream tail (message_update -> message_end ->
agent_end) could therefore run the end handlers while the flush was
suspended mid-await, agent_end removing streamingComponent before
#handleMessageEnd finalizes and records the final message (issue #7443
follow-up).

- #runSerialized chains listener dispatch and the timer flush through one
  promise chain; an in-flight run holds later events until it completes.
  Idle dispatch stays synchronous (no added microtask), preserving the
  timing the coalescing tests assert on.
- Regression test: a message_end landing while the window flush is
  suspended on init is queued behind it (initCalls 1 while suspended,
  then 2), where the pristine code ran both concurrently (2 while
  suspended). Fails without the fix.
2026-08-04 16:35:56 -04:00
Slava Zavadsky 305717b86a Merge remote-tracking branch 'upstream/main' into fix/7443-streaming-message-update-coalesce 2026-08-04 16:12:34 -04:00
Slava Zavadsky 1fb5972951 Merge remote-tracking branch 'upstream/main' into fix/6438-eval-agent-model-removal 2026-08-04 15:54:13 -04:00
metaphorics ee492dbe75 fix(ci): run the release version guard in CI
Wave-3 review finding on #7586:
- scripts/release.test.ts ran in neither CI nor the documented root
  command, so the release-version regression assertions guarded nothing
- add it to test:scripts and invoke that file from the workspace job
- the job deliberately does not run all of test:scripts: musl-release
  fails on main, so the whole group would red this job on an unrelated
  break
2026-08-05 02:51:03 +09:00
metaphorics 3802d2dd80 chore(ts): enforce noImplicitOverride 2026-08-05 02:49:01 +09:00
metaphorics 726698e2b0 fix(release): validate explicit versions and drop duplicate comparators
Review findings on #7586:
- validate an explicit release version before comparing; the shared
  comparator never throws, so 999.bad previously reached every manifest
- ci-release-notes imports the comparator by relative path: the
  release_github job runs without bun install
- route Bun cache pruning through compareVersions and delete
  compareSemverLikeVersions
- regression test for the release-version guard
2026-08-05 02:48:59 +09:00
metaphorics 954894f1d4 refactor: centralize version comparison in pi-utils 2026-08-05 02:48:59 +09:00
can1357 5af71dc9cf docs(coding-agent): added 17.2.8 changelog entry 2026-08-04 18:25:07 +02:00
roboomp 03d90bdd9f fix(cli): flush final json record before print-mode exit
Per-event stdout writes in --mode json (and text) were fire-and-forget
and relied on an empty-write flush barrier before dispose/exit. The
barrier awaited its own callback, not the preceding large write, so a
big final agent_end could be truncated when the process exited before
the pipe drained -- while still exiting 0.

Serialize every print-mode stdout write on its own completion callback
(honoring backpressure) and block shutdown on the tail so the terminal
record is delivered in full.

Fixes #7635
2026-08-04 16:21:29 +00:00
roboomp 951051086d fix(stats): opened dashboard on bound hostname
Threaded the loopback hostname returned by startServer through the omp stats CLI and /stats slash command so the browser and logged URL target the actual listener instead of localhost.

Fixes #7633
2026-08-04 15:34:09 +00:00
roboomp fe6e9c28ab test(coding-agent): stub setTextOutputCommitted in print mocks
Added the no-op setter to lightweight print-mode session mocks so text-mode runs without a submitted prompt no longer throw at the final commit call.

Fixes #7625
2026-08-04 13:57:04 +00:00
roboomp 929ab1a20f fix(coding-agent): allowed retries for buffered print output
Made text replay safety depend on whether the active output sink has committed streamed text.

Kept tool calls, images, and server tools replay-unsafe while covering text and JSON print policies plus a transient socket-close recovery.

Fixes #7625
2026-08-04 13:50:09 +00:00
Slava Zavadsky b8779dae63 fix(coding-agent/eval): remove per-call model override from agent() (#6438)
Completes the maintainer's removal of per-call model selection from
subagent spawns (9f8aa87dbf removed it from the task tool and the
model-facing agent() docs/prompt, but the eval agent() runtime and all
four preludes still accepted and forwarded a per-call model).

Subagents now always resolve through the selected agent's frontmatter
model and settings, so an explicit model: "default" can no longer
silently route children onto the parent session model.

- agent-bridge: drops "model?" from agentArgsSchema and the request
  forward; adds "+": "delete" so a legacy model argument is stripped
  (same contract as the task wire schemas).
- JS/Python/Ruby/Julia preludes: remove the model parameter from
  agent(); completion()'s tier selector is unchanged.
- docs (tools/eval.md, python-repl.md) updated to the removed surface.

Refs #6438
2026-08-04 08:35:01 -04:00
Slava Zavadsky 84922eca22 Merge remote-tracking branch 'upstream/main' into fix/7443-streaming-message-update-coalesce 2026-08-04 07:29:25 -04:00