Cleaner agent workflows and recovery
This release makes agent activity less noisy, recovers threads when their checkout folder is deleted, improves right-panel and sidebar behavior, and adds a cross-machine usage dashboard.
Subagent work moves out of the chat and into the Agents panel
Subagent streaming no longer floods the inline chat. Running agents appear in the right-side Agents rail with live status and per-agent file-change counts, promoted background runs show as agents, and agent rows persist across reconnects so transcripts and stop controls stay available.
Prevent leaked subagent output and settle orphaned agent rows
Subagent output no longer leaks into the main chat and rows that outlive their provider process are settled as interrupted when a session restarts, so long-running or crashed providers no longer leave forever-running rows.
Recover deleted checkouts and avoid broken threads
If a thread's checkout folder is removed, Threadlines detects the missing worktree before starting work, records the issue, and offers to move the thread to the project root or recreate the worktree; drafts no longer inherit missing paths and the UI shows recovery actions when relevant.
Cross-machine usage and clearer charts
Usage now aggregates provider transcripts from every connected machine into one price-equivalent dashboard, with a daily chart that aligns hover tracking to days and supports touch scrubbing, plus a sidebar meter for today's total.
Also improved
- Drag to reorder right-panel tabs and preserve per-thread panel state, so the right rail reflects the order you set and remembers which tab was open per thread.
- Pinned threads now keep their place in the live list and are not auto-filed under Done, so items you pin stay immediately reachable.
- Safer desktop startup and backend checks: the app refuses duplicate instances and re-verifies backend ports on restart to avoid attaching to unrelated or stale servers.
- Warn before quitting when sessions are active, so accidental quits are prevented when work is running.
- Pending user input requests expire when a turn is interrupted, preventing stray prompts from blocking the conversation after an interruption.
- Plugin and extension calls respect the selected machine scope, and the project picker shows projects across machines, so installs target the machine you picked.