@code-insights/cli 3.6.1 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +40 -4
  3. package/dashboard-dist/assets/index-D1JDyyu5.js +660 -0
  4. package/dashboard-dist/assets/index-kwbCW1n2.css +1 -0
  5. package/dashboard-dist/index.html +2 -2
  6. package/dist/commands/reflect.d.ts +3 -0
  7. package/dist/commands/reflect.d.ts.map +1 -0
  8. package/dist/commands/reflect.js +457 -0
  9. package/dist/commands/reflect.js.map +1 -0
  10. package/dist/commands/reset.d.ts.map +1 -1
  11. package/dist/commands/reset.js +3 -1
  12. package/dist/commands/reset.js.map +1 -1
  13. package/dist/commands/stats/actions/patterns.d.ts +3 -0
  14. package/dist/commands/stats/actions/patterns.d.ts.map +1 -0
  15. package/dist/commands/stats/actions/patterns.js +140 -0
  16. package/dist/commands/stats/actions/patterns.js.map +1 -0
  17. package/dist/commands/stats/data/aggregation-helpers.d.ts +23 -0
  18. package/dist/commands/stats/data/aggregation-helpers.d.ts.map +1 -0
  19. package/dist/commands/stats/data/aggregation-helpers.js +128 -0
  20. package/dist/commands/stats/data/aggregation-helpers.js.map +1 -0
  21. package/dist/commands/stats/data/aggregation.d.ts +3 -35
  22. package/dist/commands/stats/data/aggregation.d.ts.map +1 -1
  23. package/dist/commands/stats/data/aggregation.js +8 -290
  24. package/dist/commands/stats/data/aggregation.js.map +1 -1
  25. package/dist/commands/stats/data/time-series.d.ts +24 -0
  26. package/dist/commands/stats/data/time-series.d.ts.map +1 -0
  27. package/dist/commands/stats/data/time-series.js +162 -0
  28. package/dist/commands/stats/data/time-series.js.map +1 -0
  29. package/dist/commands/stats/index.d.ts.map +1 -1
  30. package/dist/commands/stats/index.js +7 -1
  31. package/dist/commands/stats/index.js.map +1 -1
  32. package/dist/commands/sync.d.ts +19 -0
  33. package/dist/commands/sync.d.ts.map +1 -1
  34. package/dist/commands/sync.js +67 -1
  35. package/dist/commands/sync.js.map +1 -1
  36. package/dist/constants/llm-providers.js +1 -1
  37. package/dist/constants/llm-providers.js.map +1 -1
  38. package/dist/db/client.d.ts +7 -0
  39. package/dist/db/client.d.ts.map +1 -1
  40. package/dist/db/client.js +11 -1
  41. package/dist/db/client.js.map +1 -1
  42. package/dist/db/migrate.d.ts +10 -1
  43. package/dist/db/migrate.d.ts.map +1 -1
  44. package/dist/db/migrate.js +96 -0
  45. package/dist/db/migrate.js.map +1 -1
  46. package/dist/db/read.d.ts +5 -0
  47. package/dist/db/read.d.ts.map +1 -1
  48. package/dist/db/read.js +20 -3
  49. package/dist/db/read.js.map +1 -1
  50. package/dist/db/schema.d.ts +1 -1
  51. package/dist/db/schema.js +2 -2
  52. package/dist/db/schema.js.map +1 -1
  53. package/dist/db/write.d.ts.map +1 -1
  54. package/dist/db/write.js +8 -2
  55. package/dist/db/write.js.map +1 -1
  56. package/dist/index.js +39 -3
  57. package/dist/index.js.map +1 -1
  58. package/dist/parser/jsonl.d.ts +19 -1
  59. package/dist/parser/jsonl.d.ts.map +1 -1
  60. package/dist/parser/jsonl.js +109 -3
  61. package/dist/parser/jsonl.js.map +1 -1
  62. package/dist/providers/codex.js +4 -1
  63. package/dist/providers/codex.js.map +1 -1
  64. package/dist/providers/copilot-cli.js +3 -0
  65. package/dist/providers/copilot-cli.js.map +1 -1
  66. package/dist/providers/copilot.js +3 -0
  67. package/dist/providers/copilot.js.map +1 -1
  68. package/dist/providers/cursor.js +3 -0
  69. package/dist/providers/cursor.js.map +1 -1
  70. package/dist/types.d.ts +109 -0
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/utils/date-utils.d.ts +6 -0
  73. package/dist/utils/date-utils.d.ts.map +1 -0
  74. package/dist/utils/date-utils.js +26 -0
  75. package/dist/utils/date-utils.js.map +1 -0
  76. package/dist/utils/telemetry.d.ts +1 -1
  77. package/dist/utils/telemetry.d.ts.map +1 -1
  78. package/dist/utils/telemetry.js +1 -1
  79. package/dist/utils/telemetry.js.map +1 -1
  80. package/package.json +2 -1
  81. package/server-dist/export/agent-rules.d.ts.map +1 -1
  82. package/server-dist/export/agent-rules.js +15 -4
  83. package/server-dist/export/agent-rules.js.map +1 -1
  84. package/server-dist/export/knowledge-base.d.ts.map +1 -1
  85. package/server-dist/export/knowledge-base.js +30 -4
  86. package/server-dist/export/knowledge-base.js.map +1 -1
  87. package/server-dist/index.d.ts.map +1 -1
  88. package/server-dist/index.js +4 -0
  89. package/server-dist/index.js.map +1 -1
  90. package/server-dist/llm/analysis-db.d.ts +51 -0
  91. package/server-dist/llm/analysis-db.d.ts.map +1 -0
  92. package/server-dist/llm/analysis-db.js +208 -0
  93. package/server-dist/llm/analysis-db.js.map +1 -0
  94. package/server-dist/llm/analysis-internal.d.ts +36 -0
  95. package/server-dist/llm/analysis-internal.d.ts.map +1 -0
  96. package/server-dist/llm/analysis-internal.js +23 -0
  97. package/server-dist/llm/analysis-internal.js.map +1 -0
  98. package/server-dist/llm/analysis-pricing.d.ts +25 -0
  99. package/server-dist/llm/analysis-pricing.d.ts.map +1 -0
  100. package/server-dist/llm/analysis-pricing.js +74 -0
  101. package/server-dist/llm/analysis-pricing.js.map +1 -0
  102. package/server-dist/llm/analysis-usage-db.d.ts +45 -0
  103. package/server-dist/llm/analysis-usage-db.d.ts.map +1 -0
  104. package/server-dist/llm/analysis-usage-db.js +35 -0
  105. package/server-dist/llm/analysis-usage-db.js.map +1 -0
  106. package/server-dist/llm/analysis.d.ts +9 -79
  107. package/server-dist/llm/analysis.d.ts.map +1 -1
  108. package/server-dist/llm/analysis.js +119 -375
  109. package/server-dist/llm/analysis.js.map +1 -1
  110. package/server-dist/llm/facet-extraction.d.ts +14 -0
  111. package/server-dist/llm/facet-extraction.d.ts.map +1 -0
  112. package/server-dist/llm/facet-extraction.js +91 -0
  113. package/server-dist/llm/facet-extraction.js.map +1 -0
  114. package/server-dist/llm/friction-normalize.d.ts +16 -0
  115. package/server-dist/llm/friction-normalize.d.ts.map +1 -0
  116. package/server-dist/llm/friction-normalize.js +54 -0
  117. package/server-dist/llm/friction-normalize.js.map +1 -0
  118. package/server-dist/llm/index.d.ts +3 -2
  119. package/server-dist/llm/index.d.ts.map +1 -1
  120. package/server-dist/llm/index.js +1 -1
  121. package/server-dist/llm/index.js.map +1 -1
  122. package/server-dist/llm/message-format.d.ts +32 -0
  123. package/server-dist/llm/message-format.d.ts.map +1 -0
  124. package/server-dist/llm/message-format.js +129 -0
  125. package/server-dist/llm/message-format.js.map +1 -0
  126. package/server-dist/llm/normalize-utils.d.ts +22 -0
  127. package/server-dist/llm/normalize-utils.d.ts.map +1 -0
  128. package/server-dist/llm/normalize-utils.js +71 -0
  129. package/server-dist/llm/normalize-utils.js.map +1 -0
  130. package/server-dist/llm/pattern-normalize.d.ts +19 -0
  131. package/server-dist/llm/pattern-normalize.d.ts.map +1 -0
  132. package/server-dist/llm/pattern-normalize.js +90 -0
  133. package/server-dist/llm/pattern-normalize.js.map +1 -0
  134. package/server-dist/llm/prompt-constants.d.ts +9 -0
  135. package/server-dist/llm/prompt-constants.d.ts.map +1 -0
  136. package/server-dist/llm/prompt-constants.js +169 -0
  137. package/server-dist/llm/prompt-constants.js.map +1 -0
  138. package/server-dist/llm/prompt-quality-analysis.d.ts +8 -0
  139. package/server-dist/llm/prompt-quality-analysis.d.ts.map +1 -0
  140. package/server-dist/llm/prompt-quality-analysis.js +133 -0
  141. package/server-dist/llm/prompt-quality-analysis.js.map +1 -0
  142. package/server-dist/llm/prompt-quality-normalize.d.ts +26 -0
  143. package/server-dist/llm/prompt-quality-normalize.d.ts.map +1 -0
  144. package/server-dist/llm/prompt-quality-normalize.js +116 -0
  145. package/server-dist/llm/prompt-quality-normalize.js.map +1 -0
  146. package/server-dist/llm/prompt-types.d.ts +124 -0
  147. package/server-dist/llm/prompt-types.d.ts.map +1 -0
  148. package/server-dist/llm/prompt-types.js +4 -0
  149. package/server-dist/llm/prompt-types.js.map +1 -0
  150. package/server-dist/llm/prompts.d.ts +57 -100
  151. package/server-dist/llm/prompts.d.ts.map +1 -1
  152. package/server-dist/llm/prompts.js +606 -232
  153. package/server-dist/llm/prompts.js.map +1 -1
  154. package/server-dist/llm/providers/anthropic.d.ts.map +1 -1
  155. package/server-dist/llm/providers/anthropic.js +12 -0
  156. package/server-dist/llm/providers/anthropic.js.map +1 -1
  157. package/server-dist/llm/providers/gemini.d.ts.map +1 -1
  158. package/server-dist/llm/providers/gemini.js +10 -2
  159. package/server-dist/llm/providers/gemini.js.map +1 -1
  160. package/server-dist/llm/providers/ollama.d.ts.map +1 -1
  161. package/server-dist/llm/providers/ollama.js +3 -1
  162. package/server-dist/llm/providers/ollama.js.map +1 -1
  163. package/server-dist/llm/providers/openai.d.ts.map +1 -1
  164. package/server-dist/llm/providers/openai.js +4 -1
  165. package/server-dist/llm/providers/openai.js.map +1 -1
  166. package/server-dist/llm/recurring-insights.d.ts +26 -0
  167. package/server-dist/llm/recurring-insights.d.ts.map +1 -0
  168. package/server-dist/llm/recurring-insights.js +119 -0
  169. package/server-dist/llm/recurring-insights.js.map +1 -0
  170. package/server-dist/llm/reflect-prompts.d.ts +55 -0
  171. package/server-dist/llm/reflect-prompts.d.ts.map +1 -0
  172. package/server-dist/llm/reflect-prompts.js +151 -0
  173. package/server-dist/llm/reflect-prompts.js.map +1 -0
  174. package/server-dist/llm/response-parsers.d.ts +8 -0
  175. package/server-dist/llm/response-parsers.d.ts.map +1 -0
  176. package/server-dist/llm/response-parsers.js +151 -0
  177. package/server-dist/llm/response-parsers.js.map +1 -0
  178. package/server-dist/llm/types.d.ts +23 -1
  179. package/server-dist/llm/types.d.ts.map +1 -1
  180. package/server-dist/llm/types.js +10 -1
  181. package/server-dist/llm/types.js.map +1 -1
  182. package/server-dist/routes/analysis.d.ts.map +1 -1
  183. package/server-dist/routes/analysis.js +107 -282
  184. package/server-dist/routes/analysis.js.map +1 -1
  185. package/server-dist/routes/analytics.d.ts.map +1 -1
  186. package/server-dist/routes/analytics.js +3 -1
  187. package/server-dist/routes/analytics.js.map +1 -1
  188. package/server-dist/routes/export.d.ts.map +1 -1
  189. package/server-dist/routes/export.js +19 -27
  190. package/server-dist/routes/export.js.map +1 -1
  191. package/server-dist/routes/facets.d.ts +4 -0
  192. package/server-dist/routes/facets.d.ts.map +1 -0
  193. package/server-dist/routes/facets.js +208 -0
  194. package/server-dist/routes/facets.js.map +1 -0
  195. package/server-dist/routes/insights.d.ts.map +1 -1
  196. package/server-dist/routes/insights.js +12 -11
  197. package/server-dist/routes/insights.js.map +1 -1
  198. package/server-dist/routes/reflect.d.ts +4 -0
  199. package/server-dist/routes/reflect.d.ts.map +1 -0
  200. package/server-dist/routes/reflect.js +332 -0
  201. package/server-dist/routes/reflect.js.map +1 -0
  202. package/server-dist/routes/route-helpers.d.ts +124 -0
  203. package/server-dist/routes/route-helpers.d.ts.map +1 -0
  204. package/server-dist/routes/route-helpers.js +242 -0
  205. package/server-dist/routes/route-helpers.js.map +1 -0
  206. package/server-dist/routes/sessions.d.ts.map +1 -1
  207. package/server-dist/routes/sessions.js +29 -5
  208. package/server-dist/routes/sessions.js.map +1 -1
  209. package/server-dist/routes/shared-aggregation.d.ts +82 -0
  210. package/server-dist/routes/shared-aggregation.d.ts.map +1 -0
  211. package/server-dist/routes/shared-aggregation.js +384 -0
  212. package/server-dist/routes/shared-aggregation.js.map +1 -0
  213. package/dashboard-dist/assets/index-BaKju1iW.js +0 -607
  214. package/dashboard-dist/assets/index-_SWpRg6C.css +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,58 @@
2
2
 
3
3
  All notable changes to `@code-insights/cli` will be documented in this file.
4
4
 
5
+ ## [4.0.1] - 2026-03-16
6
+
7
+ ### Fixed
8
+
9
+ - **Reflect snapshot timestamp** — The "Generated Xd ago" label on the Patterns page showed the ISO week end date instead of when the reflection was actually generated. Fixed positional parameter mismatch in snapshot INSERT that set `generated_at` to `window_end`.
10
+
11
+ ## [4.0.0] - 2026-03-16
12
+
13
+ ### Added
14
+
15
+ - **Reflect & Patterns** — Cross-session pattern detection and synthesis via LLM. New `reflect` CLI command generates weekly insights: friction points, effective patterns, prompt quality analysis, and working style rules. New `stats patterns` subcommand shows patterns in the terminal. New Patterns dashboard page with weekly report card layout and ISO week navigation.
16
+ - **Session facets** — Each analyzed session now produces structured facets (outcome, workflow, friction, effective patterns, course corrections) stored in a dedicated `session_facets` table. Facets power Reflect aggregation.
17
+ - **Friction taxonomy** — 9 canonical friction categories (wrong-approach, knowledge-gap, stale-assumptions, incomplete-requirements, context-loss, scope-creep, repeated-mistakes, documentation-gap, tooling-limitation) with attribution model (user-actionable, AI capability, environmental) and CoT reasoning.
18
+ - **Effective pattern taxonomy** — 8 canonical pattern categories (structured-planning, incremental-implementation, verification-workflow, systematic-debugging, self-correction, context-gathering, domain-expertise, effective-tooling) with driver classification (user-driven, AI-driven, collaborative).
19
+ - **Prompt quality taxonomy** — 7 deficit + 3 strength categories replacing efficiency scores. Two-layer output: user-facing takeaways (before/after) and categorized findings for Reflect aggregation. 5 dimension scores (context_provision, request_specificity, scope_management, information_timing, correction_quality).
20
+ - **ISO week navigation** — `reflect --week 2026-W11` replaces sliding `--period` windows. Dashboard WeekSelector with session counts and snapshot status per week.
21
+ - **Reflect backfill** — `reflect backfill` extracts facets for sessions synced before Reflect existed. Handles both missing and outdated sessions in one pass. `--prompt-quality` flag for PQ-specific backfill.
22
+ - **Reflect snapshots** — Cross-session synthesis results are cached in `reflect_snapshots` table with staleness detection and auto-load.
23
+ - **LLM prompt caching** — Shared cacheable conversation prefix for Anthropic (prompt-caching beta) and OpenAI (automatic prefix caching). Estimated ~32% input token savings on Anthropic.
24
+ - **LLM cost tracking** — New `analysis_usage` table tracks per-session analysis cost with provider, model, token counts, and duration. Dashboard cost UI on session detail page.
25
+ - **Soft-delete sessions** — `sync prune` with preview+confirm UX. Trash button in dashboard. Deleted sessions filtered from all API endpoints.
26
+ - **Chat view system events** — Context break dividers, inline command chips for slash commands, protocol noise hidden. Raw message toggle for full conversation view.
27
+ - **VS Code Copilot Chat support** — Added to supported tools table and provider documentation (provider existed since v2.1.0 but was undocumented in READMEs).
28
+ - **Message classification V6** — `compact_count`, `auto_compact_count`, `slash_commands` columns. V6 prompt context signals for better LLM analysis. Auto force-sync and stale insight advisory on V6 migration.
29
+ - **PQ signals in Reflect** — Prompt quality category aggregation wired into friction-wins synthesis for richer weekly reports.
30
+
31
+ ### Changed
32
+
33
+ - **SQLite Schema V5** — `deleted_at` column for soft-delete support.
34
+ - **SQLite Schema V6** — `compact_count`, `auto_compact_count`, `slash_commands` columns on sessions.
35
+ - **SQLite Schema V7** — `analysis_usage` table with composite PK `(session_id, analysis_type)`.
36
+ - **`reflect --period` → `reflect --week`** — CLI flag replaced. Use ISO week format `YYYY-WNN` (default: current week).
37
+ - **Prompt quality metadata shape** — Dimension scores replace efficiency score. Dashboard handles both new and legacy formats via dual-read.
38
+ - **Friction display** — Bar chart replaced with category+description list matching effective patterns layout.
39
+ - **Patterns page** — Multiple redesigns: 2-tab→3-tab layout, hero card, weekly report card, data-driven week navigation.
40
+ - **Session analysis prompt** — Restructured for better facet quality with auto-applied LLM-suggested titles.
41
+ - **Actor-neutral classification** — Friction/pattern prompts use neutral category definitions with evidence-based attribution decision trees.
42
+
43
+ ### Fixed
44
+
45
+ - **Inflated user_message_count** — Claude Code JSONL parser now correctly counts user messages.
46
+ - **Gemini JSON response mode** — Enabled JSON response mode to prevent malformed LLM output.
47
+ - **Insights API default limit** — Raised from 100 to 5000 to prevent truncated results.
48
+ - **Week range generation** — Monday milliseconds normalized to UTC midnight; correct Monday bucketing in GROUP BY queries.
49
+ - **PostHog telemetry routing** — CLI and dashboard telemetry routed through correct endpoints.
50
+
51
+ ### Improved
52
+
53
+ - **Test coverage** — Expanded to 80%+ across CLI and server packages. Added migration idempotency tests, V6 classification tests, shared-aggregation coverage.
54
+ - **Code organization** — Major refactoring: split monolithic `analysis.ts` and `prompts.ts` into focused modules, shared normalizer infrastructure, route helpers (`trackAnalysisResult`, `streamSessionAnalysis`, `streamBatchBackfill`), dashboard component decomposition.
55
+ - **Normalizer infrastructure** — Shared `normalizeCategory()` used by friction, pattern, and prompt quality normalizers.
56
+
5
57
  ## [3.6.1] - 2026-03-04
6
58
 
7
59
  ### Changed
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  <h1 align="center">Code Insights CLI</h1>
6
6
 
7
- Analyze AI coding sessions from the terminal. Parses session history from Claude Code, Cursor, Codex CLI, and Copilot CLI — stores everything in a local SQLite database — and serves a built-in browser dashboard.
7
+ Analyze AI coding sessions from the terminal. Parses session history from Claude Code, Cursor, Codex CLI, Copilot CLI, and VS Code Copilot Chat — stores everything in a local SQLite database — and serves a built-in browser dashboard with cross-session pattern detection.
8
8
 
9
9
  **Local-first. No accounts. No cloud. No data leaves your machine.**
10
10
 
@@ -51,6 +51,7 @@ The dashboard opens at `http://localhost:7890` and shows your sessions, analytic
51
51
  | **Cursor** | Workspace storage SQLite (macOS, Linux, Windows) |
52
52
  | **Codex CLI** | `~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl` |
53
53
  | **Copilot CLI** | `~/.copilot/session-state/{id}/events.jsonl` |
54
+ | **VS Code Copilot Chat** | Platform-specific Copilot Chat storage |
54
55
 
55
56
  Sessions from all tools are discovered automatically during sync.
56
57
 
@@ -62,9 +63,11 @@ code-insights dashboard
62
63
 
63
64
  Opens the built-in React dashboard at `http://localhost:7890`. The dashboard provides:
64
65
 
65
- - **Session Browser** — search, filter, and view full session details
66
+ - **Session Browser** — search, filter, soft-delete, and view full session details with chat view
66
67
  - **Analytics** — usage patterns, cost trends, activity charts
67
- - **LLM Insights** — AI-generated summaries, decisions (with reasoning and trade-offs), learnings (with root cause analysis), prompt quality scoring with session traits
68
+ - **LLM Insights** — AI-generated summaries, decisions, learnings, and prompt quality analysis (7 deficit + 3 strength categories with dimension scores)
69
+ - **Patterns** — weekly cross-session synthesis: friction points (with attribution), effective patterns (with driver classification), working style rules
70
+ - **Export** — LLM-powered cross-session synthesis in 4 formats (Agent Rules, Knowledge Brief, Obsidian, Notion)
68
71
  - **Settings** — configure your LLM provider for analysis
69
72
 
70
73
  <p align="center">
@@ -135,6 +138,9 @@ code-insights sync --verbose
135
138
 
136
139
  # Regenerate titles for all sessions
137
140
  code-insights sync --regenerate-titles
141
+
142
+ # Soft-delete sessions (preview + confirm)
143
+ code-insights sync prune
138
144
  ```
139
145
 
140
146
  ### Terminal Analytics
@@ -154,6 +160,9 @@ code-insights stats today
154
160
 
155
161
  # Model usage distribution and cost chart
156
162
  code-insights stats models
163
+
164
+ # Cross-session patterns summary
165
+ code-insights stats patterns
157
166
  ```
158
167
 
159
168
  <p align="center">
@@ -169,6 +178,33 @@ code-insights stats models
169
178
  | `--source <tool>` | Filter by source tool |
170
179
  | `--no-sync` | Skip auto-sync before displaying stats |
171
180
 
181
+ ### Reflect & Patterns
182
+
183
+ Cross-session pattern detection and synthesis. Requires an LLM provider to be configured.
184
+
185
+ ```bash
186
+ # Generate weekly cross-session synthesis (current week)
187
+ code-insights reflect
188
+
189
+ # Reflect on a specific ISO week
190
+ code-insights reflect --week 2026-W11
191
+
192
+ # Scope to a specific project
193
+ code-insights reflect --project "my-project"
194
+
195
+ # Backfill facets for sessions that were synced before Reflect existed
196
+ code-insights reflect backfill
197
+
198
+ # Backfill prompt quality analysis
199
+ code-insights reflect backfill --prompt-quality
200
+ ```
201
+
202
+ The Reflect feature analyzes your sessions to surface:
203
+ - **Friction points** — recurring obstacles classified into 9 categories with attribution (user-actionable, AI capability, environmental)
204
+ - **Effective patterns** — working strategies across 8 categories with driver classification (user-driven, AI-driven, collaborative)
205
+ - **Prompt quality** — how well you communicate with AI tools (7 deficit + 3 strength categories)
206
+ - **Working style** — rules and skills derived from your sessions
207
+
172
208
  ### Status & Maintenance
173
209
 
174
210
  ```bash
@@ -211,7 +247,7 @@ CODE_INSIGHTS_TELEMETRY_DISABLED=1 code-insights sync
211
247
 
212
248
  ## LLM Configuration
213
249
 
214
- Session analysis (summaries, decisions, learnings) requires an LLM provider. Configure it via CLI or the dashboard Settings page.
250
+ Session analysis (summaries, decisions, learnings, facets) and Reflect synthesis require an LLM provider. Configure it via CLI or the dashboard Settings page.
215
251
 
216
252
  ```bash
217
253
  code-insights config llm