Skip to content

Details dialog, compaction, and the same-engine sub-agent fix (0.4.0) - #5

Merged
charlesnutter merged 14 commits into
mainfrom
details-dialog
Sep 25, 2026
Merged

charlesnutter merged 14 commits into
mainfrom
details-dialog

Conversation

@charlesnutter

Copy link
Copy Markdown
Owner

The details dialog, compaction handling, and a fix for same-engine sub-agents on counter engines. Ships as 0.4.0.

Fixed

  • Same-engine sub-agent on a counter engine (Splash, llama.cpp, llamafile, the vLLM family): the parent turn always lost its engine figures. The sub-agent's own report moved the engine-wide starting reading to after itself, so the parent's window held only its last step and was declined as overlapping requests. Each turn now takes its own starting reading at session.execution.started, carried to the next reply in the same execution. Present in every 0.3.x release. Found by the new end-to-end suite.

Added

  • Details dialog (details ›, ctrl+shift+d, /headsup; esc or the same again closes). Last turn beside the session; one at a time below 110 columns, tab switches. Sidebar unchanged.
    • Last turn: where the time went (seconds and shares summing to the total; each moment counted once), steps with tool calls and times, tokens in five kinds and context, engine-only figures marked ◆ with per-step engine rates, retry reasons in full.
    • Session: speed/ttft spread, time split in seconds, tools by time, retries by reason, coverage (engine figures on N of M turns, and why not).
  • Compaction: tracked from session.compaction.*; its own share of the time, the step it delayed is marked; on counter engines its request is read before and after and taken out of the turn's window (counters.ts). Otherwise the reason reads compaction ran this turn.
  • End-to-end harness (test/e2e/): the real entry file against a fake OpenCode Context, a fake clock and a local fixture engine server. 10 scenarios, in npm test.

Verified

  • npm test (unit + e2e) and tsc --noEmit pass; npm pack --dry-run lists 21 files.
  • Live on OpenCode 2.0.12: dialog size (116 cells at xlarge), wheel/keys/tab/toggle/resize; turn detail split adds up exactly (788.75s, 479.02s); sub-agent tool name subagent.

Not yet verified live

Covered by the e2e suite only: engine-only section on MTPLX, the session column, compaction bracketing on Splash, and an accepted same-engine sub-agent window.

@charlesnutter
charlesnutter merged commit 1bda6fc into main Sep 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant