Skip to content

Clawd Insights v0.2.0

Choose a tag to compare

@yx0716 yx0716 released this 11 May 11:53
· 1424 commits to main since this release

v0.2.0 — Daily/Weekly AI Reports + Calendar View

Second release. Two big additions: AI-powered daily/weekly reports that summarize what you actually did across multiple sessions, and a Toggl-style calendar view alongside the existing swimlane timeline. Plus a custom AI provider registry, perf work that takes report generation from ~75s to ~30s on cache misses (and near-instant on warm cache), and parser hardening that fixes the recurring "unparseable JSON" warnings.

✨ New: AI Daily / Weekly Reports

Replaces the stats-only 日报 / 周报 buttons with full AI-generated cross-session synthesis. This is the signature addition for v0.2.0.

  • Date / week picker — clicking 日报 or 周报 now opens a popover listing the last 14 days (daily) or 8 weeks Mon–Sun (weekly), each row showing session count. Multi-select via checkboxes to combine arbitrary ranges (e.g. Mon + Tue + Fri)
  • Two-stage analysis — per-session brief summaries are looked up from cache first (already-analyzed sessions return instantly), then the AI synthesizes across sessions into a single markdown report (TL;DR + 主要工作 + 关键成果 + 时间分布)
  • Cross-day clipping — for cross-day sessions, only the portion within the picked window is fed to the AI so daily reports don't bleed into yesterday's content
  • Markdown rendering — reports render as styled HTML with headings, lists, blockquotes, and inline code; toggle "View source" to see the raw markdown. Copy button copies the source
  • Timing instrumentation — status bar shows total duration, stage 1 (briefs) vs stage 2 (aggregation) split, and cache-hit vs new-generation counts
  • Stats-only fallback — still available from the picker for users who want the original event-log aggregation without AI

📅 New: Calendar View

Toggl-style vertical week grid alongside the horizontal lane view, switched via tabs at the top of the timeline.

  • Mon–Sun 7-column grid — fixed columns regardless of how many days have data; navigate previous/next weeks with arrow buttons or 本周
  • Block height zoom + min-duration filter — both persisted across sessions
  • Smart merging — same-session sub-blocks within 15 minutes of idle time are merged to reduce stripe noise
  • Cluster-pack lanes — overlapping blocks pack side-by-side per overlap group; non-overlapping blocks keep full width
  • AI summary on blocks — block labels show the cached AI summary (3-line clamp) instead of just the project name
  • Conversation path display — blocks taller than ~6% show ~/.../basename of the session's cwd; full path on hover
  • Vertical drag panning — drag to pan the time axis; Ctrl/Cmd + wheel to zoom (anchored on cursor Y)

🤖 Custom AI Provider Registry

Migrated to a v3 provider registry so users can register multiple custom AI backends.

  • Provider registry — settings panel lets you register OpenAI-compatible / Claude / Ollama providers with custom name, base URL, model, and API key
  • v2 → v3 auto-migration — legacy flat fields (provider / apiKey / baseUrl / model) are migrated transparently; redundant "API Provider (Fallback)" section is removed
  • Unified surfacegetSessionOneLiner and analyzeKnowledgeCompound now go through the registry, matching the rest of the analysis pipeline

🚀 Performance

  • Parallel brief generation — stage 1 of report generation now runs up to 4 worker tasks in parallel (was serial). Five cache-miss sessions: ~75s → ~30s
  • Ref deduplication — sessions that span multiple picked ranges are now fetched and briefed once, not once per range
  • Cross-feature cache sharing — when the report scope fully covers a session's activity span, the brief is cached under the same key as the single-session analysis panel. Running a daily report instantly populates the per-session panel, and vice versa

🐛 Fixes

  • Timeline range semantics unified今天 / 3天 / 本周 are now strict rolling windows (1 / 3 / 7 days); cross-midnight blocks are bucketed by start day. Earlier the 本周 tab could show fewer days than 3天 early in the week
  • Lenient CLI JSON parsing — fixes the recurring claude-cli returned unparseable JSON warnings. New transforms: strip ```json ``` fence, drop trailing commas, escape raw newlines inside strings, repair truncated objects, sanitize smart quotes. Short / non-JSON responses are classified separately and marked transient (won't be cached, retries naturally)
  • Block summary persistence — clicking block A, then block B no longer hides A's summary on re-render. Lookup iterates the analysis cache by sessionId, preferring block-specific over full-session
  • Block scope correctness — multi-block sessions no longer leak one block's analysis onto sibling blocks. Strict block-scope matching for multi-block sessions; full-session fallback only kicks in for single-block sessions
  • Project palette overhaul — hue assignment uses hash(projectName) instead of insertion order (so the dominant project doesn't always land on slot 0); cooler palette (12 hues, only one warm slot); per-session lightness/saturation jitter so long stretches of one project don't read as a wall of identical color

📖 Docs

  • README rewrite — "About the Fork" → "Lineage & Credits"; leads with what Insights adds (the analytics layer) while still crediting the upstream pet. Both English and Chinese READMEs updated

Contributors

Thanks to everyone who shipped code for v0.2.0:

New Contributors

Known Limitations

  • CLI JSON parse failures still possible — v0.2.0 ships lenient parsing (fence-strip, trailing-comma fix, raw-newline escape, truncation repair, smart-quote sanitize). Most malformed outputs are now recovered, but the LLM can still emit shapes we don't anticipate. Failed parses are logged with a preview and marked transient (retries naturally on next click)
  • Windows support not fully validated — the Daily/Weekly report flow, calendar view, and picker UI were primarily exercised on macOS. The claude-cli .cmd shim path is handled (thanks to dopawei in v0.1.0), but parallel CLI worker spawn on Windows is untested. PRs welcome
  • Narrow AI backend support — out-of-the-box analyzers are Claude CLI and Codex CLI only. Everything else requires manually registering a provider via the settings panel (Claude API, OpenAI-compatible like Qwen/DeepSeek, or Ollama). No first-class support yet for Cursor AI, Copilot Chat, Gemini CLI, or other ecosystem CLIs

Full Changelog: v0.1.0...v0.2.0