Skip to content

Releases: melagiri/code-insights

v4.10.4 — insights check: use configured LLM provider

06 May 02:22
8f7496b

Choose a tag to compare

[4.10.4] - 2026-05-06

Fixed

  • insights check now uses configured LLM providerinsights check
    and insights check --analyze were hardcoded to use the native Claude
    runner, ignoring the user's configured LLM provider. They now use
    ProviderRunner.fromConfig(), correctly respecting the configured
    provider (Anthropic, OpenAI, Ollama, llama.cpp, etc.). The dead
    --model flag on insights check has also been removed.

Full Changelog: v4.10.3...v4.10.4

v4.10.3 — Telemetry noise fix + LLM URL normalization

04 May 15:55
b67b38a

Choose a tag to compare

Fixed

  • Telemetry: stop reporting expected LLM failures as exceptionscaptureError
    (which emits PostHog $exception events) was incorrectly called for structured
    !result.success returns from analysis functions — e.g. "Ollama not running", API
    auth errors, model not found. These are handled, user-facing errors, not bugs.
    They now only emit the existing analysis_run event (with success: false), which
    already captures full context. PostHog $exception events are reserved for
    unexpected crashes. Fixes a property name collision (type vs analysis_type)
    that caused PostHog's cymbal exception processor to emit serde errors on every
    exception event.

  • Ollama and llama.cpp baseUrl normalization — Leading/trailing whitespace and
    trailing slashes in user-configured Ollama or llama.cpp base URLs are now stripped
    at all 8 call sites (createOllamaClient, discoverOllamaModels,
    createLlamaCppClient, discoverLlamaCppModels, makeOllamaChat,
    makeLlamaCppChat, and the two doctor reachability checks). Prevents the
    double-space in error messages (e.g. "Cannot connect to Ollama at http://...")
    and potential fetch failures when users type a leading space or trailing slash in
    their config.

Full Changelog: v4.10.2...v4.10.3

v4.10.2 — Doctor command docs

17 Apr 02:59
0293657

Choose a tag to compare

Improved

  • README: document doctor command — Added a dedicated Diagnostics section to cli/README.md covering all four flags (--fix, --verbose, --json) with usage guidance. Also added doctor to the quick-start individual commands list.

Full Changelog: v4.10.1...v4.10.2

v4.10.1 — Doctor Command

17 Apr 02:54
20a1103

Choose a tag to compare

Added

  • code-insights doctor command — A Flutter/Homebrew-style diagnostic command that checks your installation across 8 areas: environment, database, config, session sources, AI analysis, hooks, sync state, and dashboard. ~30 individual checks with actionable fix hints. Supports --fix (applies safe idempotent fixes automatically), --verbose (shows probed paths for skipped items), and --json (machine-readable output for sharing in bug reports). First-run mode shows a step-by-step setup guide when nothing is configured yet.

Improved

  • Hook utility extraction — Shared hook logic (HOOKS_FILE, CLI_ENTRY, hookAlreadyInstalled()) extracted from install-hook.ts into utils/hooks-utils.ts, making it reusable across commands.

Full Changelog: v4.10.0...v4.10.1

v4.10.0 — Source Tool Filtering

13 Apr 02:04
8f39cea

Choose a tag to compare

Added

  • Source tool filter across all dashboard pages — A new source tool selector (with color-coded dots for Claude Code, Cursor, Codex CLI, Copilot CLI, and Copilot) is now available on the Sessions, Insights, Analytics, and Knowledge Journal pages. Filter any view to a specific AI coding tool to see only its sessions and insights.

Fixed

  • Source filter empty state — The "no results" empty state on the Sessions page now correctly activates when only the source filter is set (previously it would not detect source as an active filter).

  • Insights and Journal session map limit — Session-to-source lookups on the Insights and Journal pages now fetch up to 500 sessions, consistent with Analytics. The previous server default of 50 would silently miss sessions for users with larger history.

Full Changelog: v4.9.7...v4.10.0

v4.9.7 — Cursor Message Parsing (Complete Fix)

10 Apr 10:16
d241ec9

Choose a tag to compare

Fixed

  • Cursor raw JSON in messages (complete fix) — The v4.9.6 fix correctly parsed Lexical JSON for new sessions, but existing sessions already stored in the database kept their raw JSON content because INSERT OR IGNORE never overwrites existing rows. --force sync now uses INSERT OR REPLACE for messages, so re-parsing overwrites stale content. Running code-insights sync --force will fix all affected sessions.

Full Changelog: v4.9.6...v4.9.7

v4.9.6 — Cursor Message Parsing Fix

10 Apr 09:41
c4f64a3

Choose a tag to compare

Fixed

  • Cursor raw JSON in messages — User messages in Cursor sessions were displaying raw Lexical editor JSON ({"root":{"children":[...) instead of the actual message text. Newer Cursor versions store the Lexical editor state in the text bubble field rather than richText. The parser now detects and unwraps Lexical JSON from either field.

Full Changelog: v4.9.5...v4.9.6

v4.9.5 — Cursor Session Parsing Accuracy

10 Apr 06:50
11b2800

Choose a tag to compare

Fixed

  • Cursor timestamps — All Cursor sessions previously showed epoch timestamps because bubble.createdAt does not exist in Cursor's storage format. Timestamps are now extracted from timingInfo.clientRpcSendTime on assistant bubbles (the actual Unix-ms wall clock). Sessions missing timing data fall back to composerData.createdAt/lastUpdatedAt, then epoch.

  • Cursor cost tracking — Cursor sessions were showing $0 in the cost dashboard. Session cost is now populated from composerData.usageData.default.costInCents.

  • Cursor token counts — Token usage is now aggregated from tokenCount.inputTokens / tokenCount.outputTokens across all assistant bubbles per session. Previously always null.

  • Cursor git branchgitBranch is now extracted from the gitStatusRaw field present on user bubbles (/^On branch (.+)/m). Previously hardcoded null.

  • messageCount consistency — All non-Claude-Code providers (Cursor, Codex, Copilot CLI, VS Code Copilot Chat) now compute messageCount as userMessageCount + assistantMessageCount, consistent with the Claude Code provider. System messages are excluded from the semantic count.

Full Changelog: v4.9.4...v4.9.5

v4.9.4 — Sync Output Polish

05 Apr 04:51
7f513a5

Choose a tag to compare

Improved

  • Cleaner sync output — Removed redundant discovery messages ("[claude-code] Discovered 598 JSONL files" and "total session files discovered"). The spinner is sufficient feedback during discovery.

  • Session counts in "up to date" status — Providers with nothing to sync now show ✔ Up to date (170 sessions) instead of just the provider name.

  • Condensed telemetry notice — Replaced the 7-line telemetry disclosure banner with a single dim line: Telemetry enabled · Disable: code-insights telemetry disable.

  • Suppressed internal housekeeping messages — The "Usage stats reconciled" message no longer appears after sync.

Full Changelog: v4.9.3...v4.9.4

v4.9.3 — Sync Performance & CLI Polish

05 Apr 03:57
8239a9e

Choose a tag to compare

Fixed

  • Empty files re-parsed on every sync — When provider.parse() returned null (empty or unsupported files), the file was not tracked in sync state. This caused those files to be re-discovered, re-stat'd, and re-parsed on every code-insights sync run. Now tracked with an '__empty__' sentinel in sync state, eliminating ~117 wasted file operations per sync for typical setups.

  • Telemetry banner shown on --version — Running code-insights --version displayed the verbose telemetry disclosure notice. Now skipped for --version, -V, --help, and -h flags.

Improved

  • Cleaner sync output — Replaced verbose per-provider file counts ("Found 379 files / 69 need syncing / 310 already synced / 69 empty") with concise status lines: "up to date" or "Synced 1 new, 1 updated (583 messages)".

Full Changelog: v4.9.2...v4.9.3