Commit Graph

4590 Commits

Author SHA1 Message Date
roboomp d3f4830ceb fix(tui): deferred command output during streaming
- Queued transcript command panels until the active agent turn ends.

- Added regression coverage for slash-command output mounting exactly once.

Fixes #4806
2026-07-14 16:35:18 +00:00
Brit 298908fc46 perf(coding-agent): memoize non-message token totals
computeNonMessageTokens / computeNonMessageBreakdown re-tokenize the system
prompt and every tool's wire schema (per-tool JSON.stringify) on each call,
but the per-turn compaction and context-threshold paths call them several
times (getContextBreakdown twice, #estimateStoredContextTokens once) over
inputs that change at most once per turn. Memoize on the identity of
(systemPrompt, tools, skills) -- the same stable refs the StatusLineComponent
cache already trusts -- so the expensive parts run at most once per input
change instead of per call.
2026-07-07 11:10:52 +02:00
can1357 c0fa625e0d Merge remote-tracking branch 'origin/farm/fb68fabe/detect-local-vision-model' 2026-07-06 17:40:08 +02:00
can1357 04783381b4 feat(coding-agent): transitioned session title generation to xml markers
- Replaced tool-based `set_title` invocation with XML-style `<title>` marker tags for session title discovery.
- Implemented robust JSON-unwrapping logic to handle and sanitize title generation outputs.
- Updated model registry in catalog with new model support, provider prefixes, and metadata adjustments.
- Synchronized system prompt documentation and test suites to reflect the new marker-based generation flow.
2026-07-06 17:38:00 +02:00
roboomp 90aabbac9c fix(coding-agent): detected llama.cpp model vision metadata
- Honored per-model architecture.input_modalities from llama.cpp /v1/models during discovery and selected model refresh.
- Added regression coverage for full refresh and cached selected-model metadata refresh.
- Updated the coding-agent changelog.

Fixes #4719
2026-07-06 14:25:59 +00:00
can1357 f75b758c61 test(coding-agent): flushed coalesced observer sync before todo assertion
- Subagent lifecycle reconciliation now runs behind the 100ms observer UI
  coalescing timer; the test advances fake timers instead of asserting
  synchronously after emit.
2026-07-06 09:34:57 +02:00
can1357 0006252d6e test(utils): validated tool error handling and cleanup signal propagation
- Added comprehensive test suite for `postmortem` utility error handling, covering cleanup symbol marking, cause chain depth validation, and process exception suppression.
- Added tests for `browser-run-cancellation` ensuring proper `unhandledRejection` suppression and correct `ToolAbortError` propagation during teardown.
- Implemented `collectUnhandledRejections` helper to verify silence of process-level rejections during async race conditions in browser runs.
- Added integration-style probe tests for `postmortem` to verify that marked cleanup errors allow process survival while unmarked ones remain fatal.
2026-07-06 08:07:25 +02:00
can1357 dd5c329bc3 fix(coding-agent): resolved browser teardown crashes by tracking expected abort errors
- Added `markHandled` helper to prevent unhandled promise rejections in fire-and-forget browser tasks.
- Integrated `postmortem.markExpectedCleanupError` to distinguish between expected teardown aborts and actual runtime failures.
- Updated `runCmuxCode` and `WorkerCore` to propagate abort reasons via `ToolAbortError` cause chains.
- Modified `tab-protocol` and supervisor logic to signal expected cleanup states during tab release.
- Added test coverage for `ToolAbortError` wrapping and cause preservation.
2026-07-06 08:07:24 +02:00
can1357 af985eb511 Merge remote-tracking branch 'origin/farm/12bd9282/local-model-vision-detection' 2026-07-06 07:39:11 +02:00
can1357 ccf8789693 Merge remote-tracking branch 'origin/farm/f45f9d5d/get-session-stats-context-usage' 2026-07-06 07:39:07 +02:00
can1357 f572841c60 Merge remote-tracking branch 'origin/farm/4a9a5787/fix-irc-between-wait-replies' 2026-07-06 07:38:42 +02:00
can1357 dbc4e9c7c0 Merge remote-tracking branch 'origin/farm/ae58e93f/reset-irc-wake-yield-flag' 2026-07-06 07:38:27 +02:00
can1357 00e96db590 feat(coding-agent): throttled and constrained agent hud updates
- Added throttling and debouncing to HUD data rendering and observer UI synchronization to coalesce update bursts.
- Constrained the subagent HUD display to a maximum of 8 rows with a truncation notice for hidden sessions.
- Enhanced the session observer registry to categorize update types, enabling more granular UI reconciliation.
- Verified render coalescing and display truncation behavior with comprehensive integration tests using fake timers.
2026-07-06 07:38:08 +02:00
roboomp 17080bef3c fix(agent): refreshed startup llama.cpp vision metadata
Refresh cached llama.cpp runtime metadata before exposing the initial session model so local vision defaults are not treated as text-only.

Fixes #4670
2026-07-06 04:03:00 +00:00
roboomp 5f44151903 fix(rpc): included context usage in session stats
Added contextUsage to SessionStats so get_session_stats mirrors the existing getContextUsage data used by state responses.

Fixes #4668
2026-07-06 03:16:13 +00:00
roboomp 06f6762103 fix(agent): surfaced pending irc replies to wait
Drained pending IRC asides before parking irc wait so replies that arrive between wait calls are returned instead of being treated only as queued interrupts.

Added regression coverage for the already-aborted queued-IRC signal path and documented the fix in the coding-agent changelog.

Fixes #4657
2026-07-06 02:36:35 +00:00
roboomp 3a962c54c7 fix(agent): reset IRC wake maintenance state
Reset per-turn maintenance counters before IRC wake prompts so yielded subagents do not carry stale yield termination into later wake turns.

Add regression coverage for empty-stop retry after an IRC wake following a yielded run.

Fixes #4658
2026-07-06 02:34:23 +00:00
can1357 6e95ace3a7 Merge remote-tracking branch 'origin/farm/8b99fd4b/enabled-skill-provider-fallback' 2026-07-06 04:16:54 +02:00
can1357 f75b9514f1 Merge remote-tracking branch 'origin/farm/21632629/fix-split-commit-lock-file-validation' 2026-07-06 04:16:21 +02:00
can1357 9be287516f Merge remote-tracking branch 'origin/farm/91f334f7/detect-local-vision-model' 2026-07-06 04:16:06 +02:00
can1357 79ca069d9c feat(coding-agent): supported streaming TTS for long text inputs
- Implemented streaming synthesis in the `say` command to allow processing of arbitrarily long text without hitting model phoneme limits.
- Added file input support via the `--file` flag and updated the CLI to prevent conflicting arguments.
- Refined `SpeakableStream` segmentation logic to prioritize valid sentence and clause breaks within the maximum segment length when processing large text buffers.
- Added comprehensive tests for stream segmentation behavior under long-form input.
2026-07-06 04:12:39 +02:00
roboomp 306bde3b7e fix(coding-agent): refreshed llama vision input metadata
- Propagated llama.cpp /props input modalities through selected-model runtime refresh.
- Added a regression test for cached text-only local vision models becoming image-capable after refresh.
- Updated the coding-agent changelog for the local vision detection fix.

Fixes #4654
2026-07-06 02:00:20 +00:00
roboomp 914dc9551a fix(coding-agent): kept claude home skills user-scoped
Skipped the home directory during Claude project skill walk-up so disabling Claude user skills cannot reload the same files as project skills.

Added regression coverage for the home-skill duplicate path with an enabled agents fallback.

Fixes #4648
2026-07-06 01:06:48 +00:00
roboomp dd3375981f fix(coding-agent): preserved enabled duplicate skills
Applied source toggles before skill-name dedup so disabled higher-priority providers no longer hide enabled lower-priority authored skills.

Added regression coverage for disabled claude versus enabled agents duplicate names and managed dead-last behavior.

Fixes #4648
2026-07-06 00:51:24 +00:00
roboomp 7945c1e8eb fix(commit): pair staged lock files with the split-plan commit that owns them
git_overview hides EXCLUDED_LOCK_FILES from the model so lock files never drive
split decisions, but runSplitCommit then re-fetched the raw staged set and
rejected any plan that failed to enumerate them, aborting `omp commit` with
"Split commit plan missing staged files: <lockfile>". Skipping the validator
would have masked a real drop — the executor resets the index and only
re-stages files listed in each commit group.

Introduce packages/coding-agent/src/commit/agentic/lock-files.ts with a
LOCK_FILE_MANIFESTS map and an assignLockFilesToPlan helper that attaches each
orphaned lock file to (1) the commit group touching a sibling manifest in the
same directory, (2) any commit group touching a matching manifest, or (3) the
last commit group. git-overview.ts imports EXCLUDED_LOCK_FILES from the shared
module so the filter and the pairing table stay in sync.

Fixes #4632
2026-07-05 21:21:41 +00:00
can1357 b914f552f6 test(coding-agent): pinned plan-reference compaction window to 200k
claude-sonnet-4-5's bundled context window grew to 1M in the catalog regen, so the fixed 191k high-usage turn no longer crossed the ~85% auto-compaction threshold. The auto-continuation never fired and the three re-injection tests hung to their 5s timeout, failing the coding-agent runtime/session CI bucket and blocking the release.

Pin the harness model to a 200k window (mirrors agent-session-eager-compaction / -auto-compaction-queue), keeping the trigger stable across future catalog regenerations.
2026-07-05 17:47:07 +02:00
can1357 3458b037ae chore: update tests 2026-07-05 16:53:07 +02:00
can1357 302f1c3beb test(coding-agent): implemented verification for sdk model selection logic
- Updated event controller fixture to include requestComponentRender mock.
- Added test case for resolving deferred role-alias model patterns.
- Added test case for parsing and falling back comma-delimited model patterns.
2026-07-05 15:57:24 +02:00
can1357 34303db1ce test(session): assert persistence-key cache avoids branch walks 2026-07-05 13:39:11 +02:00
can1357 b3c661f164 Merge PR #4272: perf(session): cache persisted-message keys, invalidate on branch change (@metaphorics) 2026-07-05 13:39:11 +02:00
can1357 d06fe496eb test: cover runtime dynamic model fetch timeout 2026-07-05 13:39:10 +02:00
can1357 e4f05ae182 Merge PR #4266: fix(config): cache failed !command resolutions, bound dynamic fetch timeout (@metaphorics) 2026-07-05 13:39:10 +02:00
can1357 f3e372e7bf fix(tui): preserve agent hub persisted gating 2026-07-05 13:39:10 +02:00
can1357 507e0fae4d Merge PR #4268: perf(tui): load persisted subagents asynchronously (@metaphorics) 2026-07-05 13:39:10 +02:00
can1357 46e0cdd4b6 test(coding-agent): cover copy selector cache invalidation 2026-07-05 13:39:10 +02:00
can1357 76e21e9364 test(eval): cover JS worker exits 2026-07-05 13:39:09 +02:00
can1357 336e1529dc Merge PR #4271: fix(task): abort underlying MCP call when proxy tool timeout fires (@metaphorics) 2026-07-05 13:39:09 +02:00
can1357 91db5eb661 Merge PR #4265: fix(bash): delete pre-created snapshot file on creation failure (@metaphorics) 2026-07-05 13:39:08 +02:00
can1357 00076fd9b3 test(coding-agent): covered docs.rs gunzip cap via extracted seam
- Extracted gunzipRustdocJson() with overridable maxOutputLength so the cap contract is testable with real gzip payloads instead of the banned mock.module().
2026-07-05 13:31:22 +02:00
can1357 d00308b912 test: removed docs.rs gunzip cap test relying on banned mock.module 2026-07-05 13:27:49 +02:00
can1357 8b22556143 style: removed unused imports after dead helper cleanup 2026-07-05 13:27:13 +02:00
can1357 59976e7d82 style: removed dead test helpers and formatted merged tests 2026-07-05 13:26:57 +02:00
metaphorics a82bbd89d7 fix(tui): keep queued-message rows out of scrollback
Op: correct

Restores: spec: queued-message live rows must not be committed to native scrollback
2026-07-05 13:25:36 +02:00
can1357 734aed4c03 Merge PR #4382: fix(compaction): keep plan-mode guidance off the session_before_compact hook (@roboomp) 2026-07-05 13:25:28 +02:00
can1357 36c3e26fee Merge PR #4381: fix(coding-agent): queue approved plan behind turns flushed by compaction (@roboomp) 2026-07-05 13:25:27 +02:00
can1357 be5bb7c937 test(coding-agent): assert scoped tool spinner renders 2026-07-05 13:25:27 +02:00
can1357 a8528540cf Merge PR #4383: perf(coding-agent/tui): scoped renders + shimmer band fast-path (@roboomp) 2026-07-05 13:25:27 +02:00
can1357 4d8f3f5c62 test(coding-agent): cover docs.rs gunzip cap 2026-07-05 13:25:26 +02:00
can1357 d1aca2a338 fix collab reconnect backpressure drain 2026-07-05 13:25:26 +02:00
can1357 007a0108b9 test(coding-agent): cover reasoning-safe helper budgets 2026-07-05 13:25:25 +02:00