Repository navigation
CMDAI CODE: Timeline Navigation, Session Tabs & Full Persistence 🚀
This release introduces major TUI workflow enhancements designed to make multi-turn agent interactions faster, smoother, and completely resilient to state loss.
🌟 Highlights
⏱️ Interactive Timeline Navigation Rail
- Dedicated Navigation Rail: A clean, vertical timeline dock on the left side of the chat featuring interactive dots for every turn in the conversation.
- Instant Jump: Click any dot to smoothly scroll directly to that specific user prompt and agent response.
- Smart Hover Previews (Tooltips): Hovering over a dot reveals an informative preview tooltip showing the prompt summary, turn number, and exact timestamp.
- Zero Dot Overlap: Tooltips now anchor smartly to the right of the rail (
x=3into the chat area), so the hovered dot and all dots above and below remain 100% visible.
📑 Session Tabs Bar
- Browser-Style Tabs: A persistent tab bar at the top of the screen allows seamless switching between multiple active sessions with a single click.
- Tab Management: Easily open new sessions (
+) or close existing ones (×) without losing conversation history. - Smart Tab Replacement: Submitting a prompt from an empty initial session reuses the current tab instead of cluttering your workspace with duplicate empty sessions.
🛡️ Full Plan & Approval Persistence (Approval Bar & TODOs)
- No More Disappearing State: Fixed an issue where the file edit approval bar (
● EDIT: 2 files [Approve] [Remove]) and the TODO preview bar would vanish after 3 seconds upon session load. - Background Task Protection: Background task completions (e.g., long-running PowerShell commands) no longer dismiss the pending approval bar or prematurely trigger automatic generations.
- Instant
/diffInspection: Clickingclick to inspecton the approval bar opens the diff editor immediately, even right after reloading an archived session.
📅 Accurate Session Dates (No More False "Today")
- Introduced strict
last_written_tstracking. - A session is moved to "Today" only when you actually send a new message or the agent generates new code. Merely opening, viewing, or switching sessions preserves their original timestamps.
👁️ Dynamic Multimodal Detection (Vision & Screenshots)
- Dynamic detection replaces static model lists, automatically identifying vision capabilities across modern models
- The
<tool:vision>tool is enabled and guarded dynamically so text-only models won't attempt unhandled vision calls.
🛠️ Detailed Changelog
🚀 Features & Architecture
src/cmdai/tui/widgets.py: AddedTimelineRail,TimelineDot, andSessionTabsBarcomponents with click and hover interactions.src/cmdai/tui/styles.py: Added styling for the timeline rail, session tabs, and-timeline-tooltipoffset classes.src/cmdai/core/sessions.py: Extended session persistence withtodo_list,pending_approval, and non-bumping timestamp guards.
🐛 Bug Fixes & Improvements
src/cmdai/tui/app.py:- Positioned timeline tooltips to the right of the rail to prevent obstructing adjacent dots.
- Guarded
_tick_meta_spinneragainst clearing the approval bar while user action is pending. - Rebuilt
_replay_transcriptto reconstruct active TODO queues and code-mode turn edits on reload. - Added fallback file resolution in
_open_diff_windowfor pending approval targets.
src/cmdai/core/capabilities.py: Added dynamic multimodal detection heuristics for API and local LLM backends.