CodeNomad/dev-docs
Pascal André f3c0fe671e
fix(timeline): stop adding an empty agent marker after every tool step (#1058)
fix(timeline): stop adding an empty agent marker after every tool step

In OpenCode V2 each agent step is its own assistant message, and most steps only call tools. The timeline's structural index for history knew an assistant message's tool and reasoning counts but not whether it had text, so the projection drew a tool marker followed by an agent marker for every step. For tool-only and reasoning-only steps that agent marker was empty: no hover preview, and clicking it reached a message showing nothing but its tools, or nothing when tools are hidden in Message content. Resident (loaded) messages already dropped such markers.

The outline index now also counts an assistant message's non-blank text parts that are neither synthetic nor ignored, the same text the hover preview shows. The projection draws an assistant marker only when that count (or the resident segments) shows visible text, so a tool-only step keeps its tool marker alone and a reasoning-only step has none. The count is optional in the contract: an older plugin copy still loaded by the daemon reports no count, and its markers stay as before. Persisted indexes saved without the count display immediately and then revalidate every checkpoint once, like the representative tool names. The unused message-timeline-group-* classes, which no stylesheet or test referenced, are removed; the group spacing that still uses tool membership is kept.

Validation: navigation.test covers text counts for text, tool-only and blank/synthetic/ignored/reasoning-only steps; session-outline-projection covers tool-only, reasoning-only, text, unknown-count, shell and resident cases; session-outline-persistence covers validation and the one-time refresh of indexes without counts; the native navigation script now asserts the counts on real native storage (CI). history-navigation, timeline-tool-filters, system-messages and render-cost browser tests, the session-outline tests and the UI typecheck pass.
2026-10-21 01:49:40 +02:00
..
architecture.md fix(sessions): wire finish, retry and usage signals to OpenCode V2 events (#1033) 2026-10-20 15:51:48 +02:00
BROWSER_AUTOMATION.md refactor(automation): unify native browser previews on the shared page engine (#1020) 2026-10-19 09:27:58 +02:00
BROWSER_DEVICE_EMULATION.md fix(layout): make desktop minimums zoom-aware and compact headers at 420px (#817) 2026-10-01 12:44:01 +02:00
CACHE_REFRESH_CONVENTIONS.md fix(stats): restore cached totals and refresh only while visible (#1041) 2026-10-20 19:49:45 +02:00
DESKTOP_DATA_PROFILES.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
DEVELOPER_MODE.md feat(remote-control): add Remote Control over OpenTunnel alongside direct access (#668) 2026-10-09 12:43:25 +02:00
FILES_PANEL.md fix(files): refresh Workspace with scoped, rate-limited invalidations (#1030) 2026-10-20 00:17:40 +02:00
HOTKEYS.md feat(timeline): follow Message content tool visibility (#1049) 2026-10-20 23:11:08 +02:00
INDEX.md docs(help): multilingual help site with in-app Help menu and palette entry (#859) 2026-10-14 22:44:56 +02:00
MISSIONS.md feat(missions): add a "Compare two models" Mission template (#1026) 2026-10-20 13:55:12 +02:00
MISSIONS_AUTONOMOUS_PLUGIN_REQUIREMENTS.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_CONTINUITY_CONTRACT.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_ENVIRONMENT_ADMISSION.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_FAMILY_AUTHORITY.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_HUMAN_ANSWER_RECEIPTS.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_NATIVE_PRODUCT_ACCEPTANCE.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_RECURRING_SIMPLE.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_RECURRING_SIMPLE_QUALIFICATION.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_REFACTOR_VALIDATION.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_SESSION_RECOVERY.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
MISSIONS_WATCHED_SOURCES.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
NATIVE_INTERRUPTION_UX.md fix(chat): keep request icons and show complete red badges (#871) 2026-10-07 14:22:55 +02:00
OPENCODE_V2_COMPATIBILITY.md chore(opencode): qualify and recommend runtime 2.1.1 (#1055) 2026-10-21 01:16:19 +02:00
OPENCODE_V2_POST_BETA.md fix(settings): show OpenCode version first and drop the Runtime header (#1052) 2026-10-21 00:31:25 +02:00
PALETTE_SOURCES.md V2(ui): progressively harmonize the CodeNomad interface (#667) 2026-09-15 14:17:30 +01:00
PANEL_EXTENSIONS.md feat(ui): assign backgrounds by surface role and harmonize menus (#914) 2026-10-12 11:12:37 +02:00
PLUGIN_ACTIVATION_CONTROLS.md feat(plugins): add scoped V2 plugin activation controls (#726) 2026-09-25 01:29:14 +02:00
PROVIDER_ACCOUNTS_UX_PLAN.md fix(usage): explain the ChatGPT token-sharing quota limitation (#999) 2026-10-18 04:27:19 +02:00
REMOTE_CONTROL.md feat(remote-servers): pair a desktop window through a Remote Control link (#928) 2026-10-13 02:20:37 +02:00
RUNTIME_MAINTENANCE.md ci: refresh actions and monitor the bundled Node/npm runtime 2026-10-14 10:36:24 +02:00
SESSION_ENVIRONMENT.md feat(missions): native project coordination, briefings and tracking (#866) 2026-10-11 14:55:49 +02:00
SESSION_HISTORY_NAVIGATION.md fix(timeline): stop adding an empty agent marker after every tool step (#1058) 2026-10-21 01:49:40 +02:00
SESSION_HISTORY_QUERIES.md feat(history): name the conversation and worktree of workspace search results (#993) 2026-10-17 16:02:16 +02:00
SESSION_PRUNING_RPC.md docs: prune obsolete specifications and development readouts 2026-10-08 00:42:53 +02:00
SESSION_PRUNING_SAFETY.md feat(pruning): restore opt-in selective deletion through native plugin RPC (#686) 2026-09-10 13:31:40 +02:00
solidjs-llms.txt update blank session cleanup code for now session store logic 2025-11-27 20:18:22 -05:00
TAURI_UPDATER.md build: ship the Linux deb from Electron and the Windows installer without a ZIP (#955) 2026-10-14 16:45:49 +02:00
TAURI_WINDOWS_RUNNER_REFCOUNT.md fix(tauri): prevent Windows event-loop refcount corruption (#996) 2026-10-18 02:07:17 +02:00
TEXT_DISPLAY_BOUNDS.md fix(transcript): reveal display-truncated text in place instead of a copy-only suffix (#1000) 2026-10-18 05:01:03 +02:00
USER_HELP.md docs(help): multilingual help site with in-app Help menu and palette entry (#859) 2026-10-14 22:44:56 +02:00
WORKTREE_SESSION_PLACEMENT.md docs: prune obsolete specifications and development readouts 2026-10-08 00:42:53 +02:00