Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
0cb1905
docs: add design spec for Daily Activity Summaries feature
paump Apr 27, 2026
aed42f7
docs: add implementation plan for Daily Activity Summaries
paump Apr 27, 2026
fb50cc6
feat(scanner): add daily_summaries table for activity summaries
paump Apr 27, 2026
fae523b
feat(summarizer): add module skeleton and prompt_hash
paump Apr 27, 2026
8891f80
feat(summarizer): implement collect_prompts with noise filtering
paump Apr 27, 2026
805e76a
feat(summarizer): add rank_cells_by_cost with percentile + cap
paump Apr 27, 2026
ad46657
docs(summarizer): document rank_cells_by_cost percentile semantics
paump Apr 27, 2026
a1f9d19
feat(summarizer): add run_claude with structured output parsing
paump Apr 27, 2026
a2fb551
feat(summarizer): add summarize_cell orchestrator with cache
paump Apr 27, 2026
41a0936
chore(summarizer): clean up test imports and fix timestamp format
paump Apr 27, 2026
c620df7
feat(cli): run eager summarizer pass after scan in cmd_dashboard
paump Apr 27, 2026
55b971c
chore(cli): strengthen cmd_dashboard tests + clarify magic number
paump Apr 27, 2026
1a0824d
feat(dashboard): add /api/daily-summaries endpoint with lazy fetch
paump Apr 27, 2026
8986f4e
chore(dashboard): move cli import to function entry + cover invalid-d…
paump Apr 27, 2026
00a41fe
feat(dashboard): add Daily Activities section with lazy expand
paump Apr 27, 2026
6417aa9
fix(dashboard): clear day cache on re-render, escape error text, use …
paump Apr 27, 2026
63d8ce9
docs: update CHANGELOG for v0.3.0-launchmetrics.1
paump Apr 27, 2026
bf91b2f
fix(dashboard): guard daily_summaries query for pre-migration DBs
paump Apr 27, 2026
4b5af96
fix(summarizer): encode cwd dots and spaces as dashes
paump Apr 27, 2026
7b72fb8
fix(summarizer): filter slash-command and system noise from prompts
paump Apr 27, 2026
1ed66c8
fix(dashboard): stream daily summaries per-cell instead of blocking
paump Apr 27, 2026
13a222c
fix(summarizer): drop --json-schema, parse JSON from result string
paump Apr 27, 2026
1d9a9f5
fix: preserve open day rows during auto-refresh
paump Apr 27, 2026
91d8e2d
fix: align day-row cost with cell totals (turn-based)
paump Apr 27, 2026
3768885
refactor: drop eager pre-summarization pass
paump Apr 27, 2026
8eae4f5
feat: paginate Recent Sessions + click-to-expand session activities
paump Apr 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 2026-04-27

- Add Daily Activities view: per-day, per-project bulleted activity summaries inferred by Haiku via the local `claude` CLI
- Summaries are inferred lazily on demand: clicking a day fans out one `/api/cell-summary` request per project so they stream in parallel
- Cache invalidated by sha256 hash of the day's user prompts
- Day-row cost matches the sum of per-cell costs (turn-based attribution; sessions that span multiple days no longer pile onto their last day)
- Recent Sessions table now paginates the full filtered list (50 per page) instead of capping at 20
- Click a session row to expand inline activity bullets summarizing what happened in that session (cached via new `session_summaries` table)
- New env var: `SUMMARY_MODEL` (default: `haiku`)
- New `daily_summaries` and `session_summaries` tables (auto-created via `CREATE TABLE IF NOT EXISTS`)

## 2026-04-26

- Add "Setup for non-technical users (macOS)" section to README
Expand Down
4 changes: 2 additions & 2 deletions cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ def cmd_stats():
def cmd_dashboard(projects_dir=None, host=None, port=None):
import webbrowser
import threading
import time
import time as _time

print("Running scan first...")
cmd_scan(projects_dir=projects_dir)
Expand All @@ -402,7 +402,7 @@ def cmd_dashboard(projects_dir=None, host=None, port=None):
port = int(port or os.environ.get("PORT", "8080"))

def open_browser():
time.sleep(1.0)
_time.sleep(1.0)
webbrowser.open(f"http://{host}:{port}")

t = threading.Thread(target=open_browser, daemon=True)
Expand Down
545 changes: 541 additions & 4 deletions dashboard.py

Large diffs are not rendered by default.

Loading