Skip to content

v0.6.0 — Open from Session: Browse & Resume Past Conversations

Choose a tag to compare

@CuriousTank CuriousTank released this 20 Jul 08:00
· 5 commits to main since this release

What's New

✨ New Feature: Open from Session

Right-click any bulb → 📂 Open from Session to browse your recent opencode conversations.

  • Reads recent sessions directly from opencode's local SQLite database (~/.local/share/opencode/opencode.db)
  • Shows up to 10 most recent sessions with:
    • Color dot indicating active/dormant status (colored by current light state)
    • Project folder name (basename)
    • Session title
    • Full project path (shortened)
    • Relative time ("2 min ago", "1 hour ago", etc.)
  • Click any session to instantly resume it: opens a new terminal, cd to the project directory, and runs opencode -s <session_id> to restore the full conversation history
  • Async loading — panel appears instantly, sessions populate when the DB query completes

🐛 Bug Fixes

Session panel no longer overlaps bottom bulbs

  • Panel content is now constrained to panel_rect (window height minus bulb area)
  • Previously the Frame extended across the entire window, causing the bottom cards to be obscured by the bulb row

Card hover & click fixed

  • Hover highlight: removed painter.rect_filled() overlay that covered card text → now uses Frame fill color driven by per-card hover state tracking
  • Click detection: egui::Frame::show().response has no click sensing → added explicit ui.interact(rect, id, Sense::click())

🔧 Technical Details

  • New dependency: rusqlite = "0.31" with bundled feature (compiles SQLite C source, WAL-safe read-only access)
  • New module: src/sessions.rs — SessionInfo struct, load_recent_sessions(), relative_time(), shorten_path(), dir_basename()
  • spawn_opencode_terminal(directory, session_id) now accepts an optional session ID for opencode -s resume
  • Panel rendered via ui.new_child(UiBuilder::max_rect(panel_rect)) to stay within bounds

📦 Install

dpkg -i opencode-traffic-light_0.6.0_amd64.deb

Requires: libx11-6, libxcb1, libxi6, libxext6, libxdo3, libgtk-3-0, libappindicator3-1