Skip to content

Releases: mdemirhan/codetrail

v0.12.0

26 Mar 13:27

Choose a tag to compare

Full Changelog: v0.11.0...v0.12.0

Keyboard-Driven Pane Focus

The biggest change in this release is a completely reworked focus management system. Code Trail now properly tracks which pane — Projects, Sessions, or Messages — is active, and preserves your focus context as you navigate through the app.

  • Click anywhere in a pane header or background to activate that pane — no need to click a specific element
  • Focus is restored when leaving views — pressing Escape from Search, Help, or Settings returns you to exactly the pane you were working in
  • Overlays preserve focus — opening menus, dialogs, or context menus and then closing them returns focus to where it was, even with nested overlays
  • Visual focus indicator now tracks the active pane reliably, independent of browser focus quirks
  • Tab cycles between panes in the history layout, skipping collapsed panes
  • PageUp/PageDown scrolls the focused pane — if you're focused on the project list, page keys scroll projects, not messages
  • Arrow shortcuts work when Sessions pane is hidden — session navigation shortcuts (Option+Arrow) fall back to project navigation in tree view with the sessions pane hidden

Reveal in Project

  • New "Reveal in Project" button on message cards lets you jump directly to the project-wide all-sessions view for any message
  • Redundant reveal buttons are hidden — "Reveal in Session" is hidden when you're already viewing a session, and "Reveal in Project" is hidden in the project-all view

Smarter Search Navigation

  • Clicking a search result now opens the project-wide "All Sessions" view instead of narrowing to a single session, so you see the full context around your match

Compact Number Formatting

  • Large counts now display as compact values (e.g. "18.5K") in session counts, project tree badges, and category filter pills
  • Exact counts are preserved in tooltips and screen reader labels

Windows Support (Experimental)

  • Windows ARM builds are now available
  • Fixed several Windows-specific build issues
  • Case-insensitive file discovery — mixed-case transcript files (.JSONL, .Json, etc.) are now found correctly on all platforms

Stability & Auto-Refresh

  • File watcher is now race-condition-free — the watcher correctly handles overlapping start/stop calls during app transitions
  • Session and project lists stay stable during auto-refresh — items no longer jump around when new data arrives; lists only resort on manual refresh
  • Default theme changed to dark

Under the Hood

  • End-to-end test suite with Playwright for core workflows
  • Improved test isolation across the entire test suite

v0.11.0

24 Mar 23:10

Choose a tag to compare

Full Changelog: v0.10.0...v0.11.0

Live Session Tracking

Code Trail can now show you active Claude and Codex sessions as they happen. You'll see a live timer in the message pane while a session is in progress, and the session list updates automatically as new activity comes in. Head to Settings to turn live watch on or off and manage Claude hook integration.

Git Worktree support

Sessions created inside Git worktrees are now grouped under their parent project instead of appearing as separate entries.

Auto-Refresh That Stays Out of Your Way

The app now refreshes data in the background on a smart schedule — it only reloads what's actually changed, and it won't interrupt your reading. If you're scrolled to the latest messages, new ones flow in automatically. If you've scrolled back to review older content, the view stays put.

Native Menu Bar

All major actions are now available from the macOS menu bar: refresh, zoom, toggle panes, search, settings, and more. Keyboard shortcuts are shown next to each menu item. A separate Developer menu appears in development builds for reload and devtools access.

Improved Pagination

The footer has been redesigned with first/last page buttons, a page number field you can type into directly (press Enter to jump), and a per-page size selector right where you need it — no more digging through Settings to change how many messages you see.

Easier Message Expansion Controls

Each message category filter now has a small toggle to control whether that category starts expanded or collapsed. Cmd+click on any message header expands or collapses all messages of the same type on the page. Cmd+E toggles everything at once.

Keyboard Navigation Stays Connected

After clicking any toolbar button, pagination control, or message action (copy, bookmark, expand), focus returns to the message list automatically so you can keep navigating with the keyboard without clicking back into the pane.

Reveal in Session

When viewing bookmarks or all-project messages, "Reveal in session" now opens the correct project in the sidebar, scrolls to the session, and expands the tree — even if the sidebar was collapsed.

Cleaner Tooltips

All tooltips now show short labels with standard macOS symbols (⌘⇧⌥) instead of verbose descriptions.


Under the Hood

  • Richer session metadata — More details are captured from each provider, including client type, session kind, git commit, and lineage information.
  • Filtered vs. total counts — The status bar now shows "N of M messages" so you can tell how many messages match your filters out of the total.

Bug Fixes

  • Fixed theme dropdown menu not responding correctly when switching between mouse and keyboard
  • Fixed a potential crash in the diff viewer when scrolling past certain boundary positions
  • Prevented path traversal in file path normalization
  • Fixed pane layout state not being saved when closing Settings

v0.10.0

23 Mar 19:14

Choose a tag to compare

Full Changelog: v0.9.5...v0.10.0

Syntax Highlighting Themes

Code viewers now use editor-grade syntax highlighting. There are 60+ themes available, including Dracula, Catppuccin, Nord, Gruvbox, One Dark Pro, and GitHub themes. The theme picker is in Settings → Appearance and filters to themes that match your current light or dark mode.

Diff Viewer Improvements

  • Character-level highlights — within changed lines, the specific added and removed text is highlighted rather than the whole line.
  • Progressive loading — the first 200 lines render immediately. A "Show More" button loads the rest.
  • Split and unified views — switch between side-by-side and unified layouts. The preference is saved.
  • Line wrapping — toggle wrapping on or off per viewer.

Open in Editor

Code blocks, diffs, and files can be opened directly in your editor from the message viewer. Code Trail detects installed editors and shows an Open button on code blocks and diffs. For VS Code and Cursor, diffs open in a native side-by-side comparison. When a code block references a project file, Reveal in Finder and Open at Line are also available.

Supported editors: VS Code, Cursor, Zed, Sublime Text, Neovim, and TextEdit. Custom editors and diff tools can be added in Settings → External Tools.

Redesigned Message Cards

Message cards have a cleaner layout. Collapsed cards now show a type label and content preview. Bookmark indicators appear on the card itself. The expand/collapse click area no longer overlaps with action buttons.

Settings

New options in Settings:

  • External Tools — configure editors, diff tools, and terminal. Installed apps are detected automatically. Custom tools with configurable command and arguments are supported.
  • Theme picker — themes grouped by light and dark with preview.
  • Messages per page — set how many messages load per page.
  • Viewer defaults — default wrap mode and diff view layout.
  • Auto-hide — control whether message and viewer action buttons are always visible or shown on hover.

Performance

  • Project list loads faster — stats are precomputed instead of recalculated on every load.
  • Session list no longer waits for bookmark data before displaying.
  • Syntax highlighting only processes lines currently visible on screen.
  • Off-screen list items, tree rows, and message cards are excluded from layout until scrolled into view.
  • Several queries have been combined or batched to reduce round-trips between the UI and the database.

Search & Indexing

  • Search results can be filtered by provider (Claude, Codex, Cursor, etc.).
  • Pagination is supported when viewing all messages across a project.
  • Duplicate sessions from streamed transcripts are resolved more reliably during indexing.

Internal

The history controller has been split into smaller, focused modules. No user-facing changes, but it improves maintainability for future work.

Bug Fixes

  • Fixed a focus handling issue in the project sidebar.
  • Databases from older versions are upgraded automatically on launch.

v0.9.5

22 Mar 07:40

Choose a tag to compare

Full Changelog: v0.9.0...v0.9.5

Keyboard Navigation

  • Arrowing through projects and sessions is now instant. The highlight moves immediately while data loads in the background, instead of fetching on every keystroke.
  • Enter, Escape, and Tab now move focus from search boxes into the adjacent list.

Bug Fixes

  • Search filtering by provider now returns correct results.
  • Fixed Gemini sessions appearing under a / project name.
  • Fixed the Escape key in confirmation dialogs targeting the wrong element.
  • Fixed a page loading issue when a session has no messages.

Performance

  • Bookmark counts for project and session lists are now fetched in a single query instead of one per row.
  • Three separate polling intervals consolidated into one.
  • Markdown rendering and file hashing are now cached and reuse memory more efficiently.

Internal

  • Refactored provider handling and history export into cleaner shared structures.
  • Removed unused code and tightened callback dependencies.

v0.9.0

21 Mar 21:40

Choose a tag to compare

Full Changelog: v0.8.0...v0.9.0

Project Tree View

The Projects pane now groups projects by directory in a collapsible folder tree. Folders show aggregated update badges and maintain stable ordering during refresh. Projects can be expanded inline to reveal their sessions (loaded on demand), and bookmark counts appear as badges on each row.

Sorting by last active or name is available in the toolbar. Single-click expand/collapse behavior for folders and projects can be configured through the overflow menu. These preferences are saved across sessions.

Large Session Handling

Sessions with very large transcript lines are no longer silently skipped during indexing. Lines exceeding the primary size limit are now recovered by stripping inline base64 media (images, PDFs) and replacing them with compact placeholders. Transcript files above 32 MB are indexed as placeholder entries with a diagnostic notice instead of crashing the indexer.

Delete Indexed History

Projects and individual sessions can now be deleted from the index via toolbar buttons and right-click menus. Deleted history stays suppressed across incremental refreshes, while a force reindex restores it from disk. The delete dialog includes provider-specific guidance.

Redesigned Search

The search view has a new single-panel layout with collapsible filter controls, scrollable result cards, and a sticky pagination footer. The project filter is now a custom dropdown, and category shortcuts (Cmd+1–7) work in both history and search views.

Redesigned Settings

Settings has a new layout with toggle switches, compact provider lists, and can be opened directly with Cmd+,.

Keyboard Navigation

Arrow keys and Enter navigate the project tree, including inline session rows. PageUp/PageDown scrolls the focused pane. Ctrl+U/D pages through messages from the search input. Tab cycles between search controls.

UI Changes

  • Bookmark counts shown in project and session lists with an open/close toggle in the detail header.
  • Collapsed panes are narrower and no longer show quick-switch buttons.
  • "Off" refresh label renamed to "Manual".
  • Sidebar rows no longer allow text selection.

Bug Fixes

  • Fixed timestamp parsing where consecutive messages could receive the same timestamp instead of their actual values.

v0.8.0

19 Mar 14:21

Choose a tag to compare

Full Changelog: v0.7.5...v0.8.0

VS Code Copilot Support

VS Code Copilot chat sessions are now fully supported — discovery, parsing, and indexing on par with Claude, Codex, Gemini, and Cursor.

Provider Enable/Disable

Individual providers can be toggled on or off in Settings. Disabled providers are excluded from discovery and indexing. Confirmation dialogs are shown before clearing indexed data.

Export to Markdown

Session messages can now be exported to Markdown from the toolbar. Choose between the current page or all visible pages — a progress dialog shows real-time status. Exports preserve message structure including tool use, edits, results, thinking blocks, and prose sections with timestamps and durations.

Project Update Badges

Projects that receive new messages during auto-refresh show a "+N" badge with a brief blue accent. Badges clear after 8 seconds. Project ordering remains stable during refresh — items no longer jump positions when new activity arrives.

Keyboard Shortcuts

  • Category expand shortcuts (Cmd+1–7) added to the history view with badge indicators on each filter button.

Bug Fixes

  • Fixed a checkpoint bug where the indexer advanced past incomplete trailing lines in actively-written session files, causing messages to be permanently skipped.
  • Fixed unknown providers (including Copilot) being silently mapped to Claude.
  • Added support for Gemini's alternate history directory location.

Performance

  • Byte offset lookups and session title extraction are now significantly faster for large files.
  • Message filtering uses a shared filter builder, removing duplicated logic.

v0.7.5

15 Mar 15:28

Choose a tag to compare

Full Changelog: v0.7.0...v0.7.5

Themes

The light/dark toggle has been replaced with a 13-theme picker — 8 dark themes (Obsidian, Graphite, Midnight, Onyx, and others) and 5 light themes (Clean White, Warm Paper, Stone, Sand, and others). Themes are available in the toolbar and in Settings, and persist across sessions.

Zoom

Zoom is now percentage-based (60–175%) instead of using browser zoom levels. The zoom value in the toolbar can be edited directly, and Cmd+= / Cmd+- adjust in 10% steps.

Pane Focus & Keyboard Navigation

  • Tab / Shift+Tab cycles focus between the project, session, and message panes (collapsed panes are skipped).
  • Arrow keys navigate items within the focused pane without needing modifier keys.
  • A top-border highlight indicates which pane has keyboard focus.
  • Ctrl+U / Ctrl+D added as page up/down alternatives.

File Watcher

Switched to the kqueue backend on macOS for reliable detection of append-style writes to session files, with automatic fallback on other platforms. The default auto-refresh strategy is now Watch with a 1-second debounce.

v0.7.0

14 Mar 20:24

Choose a tag to compare

Full Changelog: v0.6.0...v0.7.0

File Watching

Auto-refresh can now use filesystem event monitoring instead of periodic polling. When Watch mode is active, the app detects changes to session files and indexes only the affected files rather than scanning the full directory. A configurable debounce (1s / 3s / 5s) batches rapid writes, and deleted files are cleaned up automatically.

Auto-Refresh Options

The toolbar dropdown now offers Watch modes (with debounce) and Scan modes (5-second to 5-minute intervals). A badge shows the number of pending files and current processing state. Manual mode disables auto-refresh entirely.

Scroll Preservation

Scroll position is now handled automatically during refresh:

  • If you're viewing the latest messages, refresh navigates to the newest page and keeps you at that position.
  • If you've scrolled back, refresh reloads the same page and anchors to the nearest message to minimize drift.

Scroll context resets when you change filters, sort order, or search queries.

Reindex Confirmation

A confirmation dialog now appears before a full reindex to prevent accidental triggers.

Bug Fixes

  • Fixed macOS packaging issues with Electron Forge integration.

v0.6.0

08 Mar 23:42

Choose a tag to compare

Full Changelog: v0.5.0...v0.6.0

Incremental Indexing

Session files are now indexed incrementally. The indexer tracks its position in each file and resumes from where it left off instead of re-reading the entire file. This significantly improves performance for large, actively-written sessions.

Indexing Status

The toolbar now shows live indexing status — current job state, queued file count, and a running/queued badge. Refresh and reindex controls are disabled while indexing is in progress.

On macOS with Electron 35+, the app automatically falls back to a child-process indexer to avoid a platform-specific crash in worker threads.

Diagnostic Logging

Indexing events — content truncations, parsing issues, and data trimming decisions — are now captured with structured codes and severities, and written to a rotating debug log (10 MB cap, 5 archives).

Content stored in the database is subject to size limits to keep the index manageable:

Content Limit
Message content 256 KB
Full-text search content 32 KB
Tool call JSON payload 64 KB

v0.5.0

06 Mar 20:32

Choose a tag to compare

Full Changelog: v0.4.0...v0.5.0

Search Highlighting in Code Blocks

Search terms are now highlighted inside code blocks, JSON output, and diff blocks, not just in regular text. Highlighting works consistently across all message types.

Bug Fixes

  • Fixed markdown headings (h4/h5/h6) all rendering at the same size.
  • Fixed arrays being fully rejected when a single value was invalid.
  • Fixed session list refreshing unnecessarily during bookmark searches.
  • Fixed indexing errors being silently ignored.
  • Fixed a database initialization issue with duplicate table creation.

Performance

  • Faster rendering of code blocks and timestamps by reusing internal caches.
  • Keyboard shortcut handling no longer re-initializes on every render.
  • Bookmark counting for projects is now more efficient.

Internal

The main application file has been split into focused modules. No user-facing changes, but it improves maintainability.