@boshu2/vibe-check 1.4.0 → 1.6.0

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 (188) hide show
  1. package/.agents/bundles/insight-mining-dashboard-research-2025-11-30.md +400 -0
  2. package/.agents/bundles/storage-enhancement-research-2025-11-30.md +292 -0
  3. package/.agents/bundles/timeline-feature-research-complete-2025-11-30.md +301 -0
  4. package/.agents/plans/insight-dashboard-plan-2025-11-30.md +1130 -0
  5. package/.agents/plans/json-storage-enhancement-plan.md +717 -0
  6. package/.agents/plans/storage-hardening-and-cache-plan.md +592 -0
  7. package/.agents/plans/test-coverage-gaps-plan.md +1117 -0
  8. package/.agents/plans/timeline-feature-plan.md +193 -0
  9. package/.agents/plans/vibe_timeline_research_findings.md +553 -0
  10. package/.claude/settings.local.json +1 -0
  11. package/.vibe-check/.gitignore +6 -0
  12. package/CHANGELOG.md +46 -0
  13. package/CLAUDE.md +24 -0
  14. package/CONTRIBUTING.md +227 -0
  15. package/README.md +200 -143
  16. package/claude-progress.json +200 -12
  17. package/claude-progress.txt +310 -0
  18. package/dashboard/app.js +75 -2
  19. package/dashboard/dashboard-data.json +653 -0
  20. package/dashboard/index.html +13 -0
  21. package/dashboard/styles.css +61 -0
  22. package/dist/analysis/cross-session-analysis.d.ts +68 -0
  23. package/dist/analysis/cross-session-analysis.d.ts.map +1 -0
  24. package/dist/analysis/cross-session-analysis.js +174 -0
  25. package/dist/analysis/cross-session-analysis.js.map +1 -0
  26. package/dist/analysis/index.d.ts +2 -0
  27. package/dist/analysis/index.d.ts.map +1 -0
  28. package/dist/analysis/index.js +12 -0
  29. package/dist/analysis/index.js.map +1 -0
  30. package/dist/cli.js +10 -1
  31. package/dist/cli.js.map +1 -1
  32. package/dist/commands/analyze.d.ts +2 -0
  33. package/dist/commands/analyze.d.ts.map +1 -1
  34. package/dist/commands/analyze.js +105 -2
  35. package/dist/commands/analyze.js.map +1 -1
  36. package/dist/commands/cache.d.ts +6 -0
  37. package/dist/commands/cache.d.ts.map +1 -0
  38. package/dist/commands/cache.js +168 -0
  39. package/dist/commands/cache.js.map +1 -0
  40. package/dist/commands/dashboard.d.ts +8 -0
  41. package/dist/commands/dashboard.d.ts.map +1 -0
  42. package/dist/commands/dashboard.js +109 -0
  43. package/dist/commands/dashboard.js.map +1 -0
  44. package/dist/commands/index.d.ts +3 -0
  45. package/dist/commands/index.d.ts.map +1 -1
  46. package/dist/commands/index.js +8 -1
  47. package/dist/commands/index.js.map +1 -1
  48. package/dist/commands/profile.d.ts.map +1 -1
  49. package/dist/commands/profile.js +140 -31
  50. package/dist/commands/profile.js.map +1 -1
  51. package/dist/commands/timeline.d.ts +14 -0
  52. package/dist/commands/timeline.d.ts.map +1 -0
  53. package/dist/commands/timeline.js +462 -0
  54. package/dist/commands/timeline.js.map +1 -0
  55. package/dist/gamification/badges.d.ts +29 -0
  56. package/dist/gamification/badges.d.ts.map +1 -0
  57. package/dist/gamification/badges.js +114 -0
  58. package/dist/gamification/badges.js.map +1 -0
  59. package/dist/gamification/challenges.d.ts +42 -0
  60. package/dist/gamification/challenges.d.ts.map +1 -0
  61. package/dist/gamification/challenges.js +184 -0
  62. package/dist/gamification/challenges.js.map +1 -0
  63. package/dist/gamification/hall-of-fame.d.ts +17 -0
  64. package/dist/gamification/hall-of-fame.d.ts.map +1 -0
  65. package/dist/gamification/hall-of-fame.js +64 -0
  66. package/dist/gamification/hall-of-fame.js.map +1 -0
  67. package/dist/gamification/leaderboards.d.ts +49 -0
  68. package/dist/gamification/leaderboards.d.ts.map +1 -0
  69. package/dist/gamification/leaderboards.js +179 -0
  70. package/dist/gamification/leaderboards.js.map +1 -0
  71. package/dist/gamification/share.d.ts +29 -0
  72. package/dist/gamification/share.d.ts.map +1 -0
  73. package/dist/gamification/share.js +57 -0
  74. package/dist/gamification/share.js.map +1 -0
  75. package/dist/gamification/stats.d.ts +34 -0
  76. package/dist/gamification/stats.d.ts.map +1 -0
  77. package/dist/gamification/stats.js +91 -0
  78. package/dist/gamification/stats.js.map +1 -0
  79. package/dist/gamification/streaks.d.ts +9 -1
  80. package/dist/gamification/streaks.d.ts.map +1 -1
  81. package/dist/gamification/streaks.js +37 -4
  82. package/dist/gamification/streaks.js.map +1 -1
  83. package/dist/gamification/types.d.ts +35 -0
  84. package/dist/gamification/types.d.ts.map +1 -1
  85. package/dist/gamification/types.js +11 -3
  86. package/dist/gamification/types.js.map +1 -1
  87. package/dist/gamification/xp.d.ts +6 -2
  88. package/dist/gamification/xp.d.ts.map +1 -1
  89. package/dist/gamification/xp.js +27 -5
  90. package/dist/gamification/xp.js.map +1 -1
  91. package/dist/git.d.ts +24 -0
  92. package/dist/git.d.ts.map +1 -1
  93. package/dist/git.js +94 -0
  94. package/dist/git.js.map +1 -1
  95. package/dist/insights/generators.d.ts +44 -0
  96. package/dist/insights/generators.d.ts.map +1 -0
  97. package/dist/insights/generators.js +289 -0
  98. package/dist/insights/generators.js.map +1 -0
  99. package/dist/insights/index.d.ts +16 -0
  100. package/dist/insights/index.d.ts.map +1 -0
  101. package/dist/insights/index.js +171 -0
  102. package/dist/insights/index.js.map +1 -0
  103. package/dist/insights/types.d.ts +93 -0
  104. package/dist/insights/types.d.ts.map +1 -0
  105. package/dist/insights/types.js +6 -0
  106. package/dist/insights/types.js.map +1 -0
  107. package/dist/output/terminal.d.ts.map +1 -1
  108. package/dist/output/terminal.js +39 -0
  109. package/dist/output/terminal.js.map +1 -1
  110. package/dist/output/timeline-html.d.ts +6 -0
  111. package/dist/output/timeline-html.d.ts.map +1 -0
  112. package/dist/output/timeline-html.js +389 -0
  113. package/dist/output/timeline-html.js.map +1 -0
  114. package/dist/output/timeline-markdown.d.ts +6 -0
  115. package/dist/output/timeline-markdown.d.ts.map +1 -0
  116. package/dist/output/timeline-markdown.js +167 -0
  117. package/dist/output/timeline-markdown.js.map +1 -0
  118. package/dist/output/timeline.d.ts +9 -0
  119. package/dist/output/timeline.d.ts.map +1 -0
  120. package/dist/output/timeline.js +318 -0
  121. package/dist/output/timeline.js.map +1 -0
  122. package/dist/patterns/detour.d.ts +32 -0
  123. package/dist/patterns/detour.d.ts.map +1 -0
  124. package/dist/patterns/detour.js +137 -0
  125. package/dist/patterns/detour.js.map +1 -0
  126. package/dist/patterns/flow-state.d.ts +16 -0
  127. package/dist/patterns/flow-state.d.ts.map +1 -0
  128. package/dist/patterns/flow-state.js +40 -0
  129. package/dist/patterns/flow-state.js.map +1 -0
  130. package/dist/patterns/index.d.ts +8 -0
  131. package/dist/patterns/index.d.ts.map +1 -0
  132. package/dist/patterns/index.js +22 -0
  133. package/dist/patterns/index.js.map +1 -0
  134. package/dist/patterns/intervention-effectiveness.d.ts +42 -0
  135. package/dist/patterns/intervention-effectiveness.d.ts.map +1 -0
  136. package/dist/patterns/intervention-effectiveness.js +196 -0
  137. package/dist/patterns/intervention-effectiveness.js.map +1 -0
  138. package/dist/patterns/late-night.d.ts +30 -0
  139. package/dist/patterns/late-night.d.ts.map +1 -0
  140. package/dist/patterns/late-night.js +141 -0
  141. package/dist/patterns/late-night.js.map +1 -0
  142. package/dist/patterns/post-delete-sprint.d.ts +28 -0
  143. package/dist/patterns/post-delete-sprint.d.ts.map +1 -0
  144. package/dist/patterns/post-delete-sprint.js +85 -0
  145. package/dist/patterns/post-delete-sprint.js.map +1 -0
  146. package/dist/patterns/spiral-regression.d.ts +49 -0
  147. package/dist/patterns/spiral-regression.d.ts.map +1 -0
  148. package/dist/patterns/spiral-regression.js +219 -0
  149. package/dist/patterns/spiral-regression.js.map +1 -0
  150. package/dist/patterns/thrashing.d.ts +25 -0
  151. package/dist/patterns/thrashing.d.ts.map +1 -0
  152. package/dist/patterns/thrashing.js +111 -0
  153. package/dist/patterns/thrashing.js.map +1 -0
  154. package/dist/storage/atomic.d.ts +40 -0
  155. package/dist/storage/atomic.d.ts.map +1 -0
  156. package/dist/storage/atomic.js +155 -0
  157. package/dist/storage/atomic.js.map +1 -0
  158. package/dist/storage/commit-log.d.ts +35 -0
  159. package/dist/storage/commit-log.d.ts.map +1 -0
  160. package/dist/storage/commit-log.js +128 -0
  161. package/dist/storage/commit-log.js.map +1 -0
  162. package/dist/storage/index.d.ts +5 -0
  163. package/dist/storage/index.d.ts.map +1 -0
  164. package/dist/storage/index.js +33 -0
  165. package/dist/storage/index.js.map +1 -0
  166. package/dist/storage/schema.d.ts +32 -0
  167. package/dist/storage/schema.d.ts.map +1 -0
  168. package/dist/storage/schema.js +37 -0
  169. package/dist/storage/schema.js.map +1 -0
  170. package/dist/storage/timeline-store.d.ts +117 -0
  171. package/dist/storage/timeline-store.d.ts.map +1 -0
  172. package/dist/storage/timeline-store.js +438 -0
  173. package/dist/storage/timeline-store.js.map +1 -0
  174. package/dist/types.d.ts +96 -0
  175. package/dist/types.d.ts.map +1 -1
  176. package/docs/ARCHITECTURE.md +458 -0
  177. package/docs/DATA-ARCHITECTURE.md +565 -0
  178. package/docs/GAMIFICATION.md +564 -0
  179. package/docs/JSON-STORAGE-PATTERNS.md +512 -0
  180. package/docs/METRICS-EXPLAINED.md +394 -0
  181. package/docs/UNIFIED-ECOSYSTEM.md +560 -0
  182. package/docs/VIBE-ECOSYSTEM.md +406 -0
  183. package/feature-list.json +103 -1
  184. package/package.json +2 -1
  185. package/vitest.config.ts +1 -5
  186. package/.vibe-check/calibration.json +0 -38
  187. package/.vibe-check/latest.json +0 -114
  188. package/.vibe-check/sessions.json +0 -34
@@ -0,0 +1,438 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getStoreDir = getStoreDir;
37
+ exports.getStorePath = getStorePath;
38
+ exports.createInitialStore = createInitialStore;
39
+ exports.loadStore = loadStore;
40
+ exports.saveStore = saveStore;
41
+ exports.getLastCommitHash = getLastCommitHash;
42
+ exports.sessionExists = sessionExists;
43
+ exports.sessionToStored = sessionToStored;
44
+ exports.updateStore = updateStore;
45
+ const path = __importStar(require("path"));
46
+ const atomic_1 = require("./atomic");
47
+ const schema_1 = require("./schema");
48
+ const STORE_DIR = '.vibe-check';
49
+ const TIMELINE_FILE = 'timeline.json';
50
+ /**
51
+ * Get store directory path (repo-local)
52
+ */
53
+ function getStoreDir(repoPath = process.cwd()) {
54
+ return path.join(repoPath, STORE_DIR);
55
+ }
56
+ /**
57
+ * Get timeline store file path
58
+ */
59
+ function getStorePath(repoPath = process.cwd()) {
60
+ return path.join(getStoreDir(repoPath), TIMELINE_FILE);
61
+ }
62
+ /**
63
+ * Create initial empty store
64
+ */
65
+ function createInitialStore() {
66
+ return {
67
+ version: schema_1.CURRENT_SCHEMA_VERSION,
68
+ lastUpdated: new Date().toISOString(),
69
+ lastCommitHash: '',
70
+ sessions: [],
71
+ insights: [],
72
+ patterns: {
73
+ totalFlowStates: 0,
74
+ avgFlowDuration: 0,
75
+ peakFlowHour: 12,
76
+ totalSpirals: 0,
77
+ avgSpiralDuration: 0,
78
+ spiralsByComponent: {},
79
+ spiralsByHour: {},
80
+ lateNightSessions: 0,
81
+ lateNightAvgDuration: 0,
82
+ totalDetours: 0,
83
+ totalTimeLostToDetours: 0,
84
+ postDeleteSprints: 0,
85
+ avgVelocityIncrease: 0,
86
+ },
87
+ trends: {
88
+ weekly: [],
89
+ monthly: [],
90
+ improvements: [],
91
+ },
92
+ };
93
+ }
94
+ /**
95
+ * Load timeline store from disk
96
+ */
97
+ function loadStore(repoPath = process.cwd()) {
98
+ const filePath = getStorePath(repoPath);
99
+ const initialStore = createInitialStore();
100
+ const store = (0, atomic_1.safeReadJsonSync)(filePath, initialStore);
101
+ // Always migrate (handles both old versions and fresh stores)
102
+ return migrateTimelineStore(store);
103
+ }
104
+ /**
105
+ * Save timeline store to disk
106
+ */
107
+ function saveStore(store, repoPath = process.cwd()) {
108
+ const filePath = getStorePath(repoPath);
109
+ store.lastUpdated = new Date().toISOString();
110
+ // Use atomic write to prevent corruption
111
+ (0, atomic_1.atomicWriteSync)(filePath, JSON.stringify(store, null, 2));
112
+ }
113
+ /**
114
+ * Get last known commit hash for incremental sync
115
+ */
116
+ function getLastCommitHash(repoPath = process.cwd()) {
117
+ const store = loadStore(repoPath);
118
+ return store.lastCommitHash;
119
+ }
120
+ /**
121
+ * Check if a session already exists (by commit hashes)
122
+ */
123
+ function sessionExists(store, commitHashes) {
124
+ const hashSet = new Set(commitHashes);
125
+ for (const session of store.sessions) {
126
+ // Check for significant overlap (>80% of commits match)
127
+ const matchCount = session.commitHashes.filter(h => hashSet.has(h)).length;
128
+ const overlapRatio = matchCount / Math.max(session.commitHashes.length, commitHashes.length);
129
+ if (overlapRatio > 0.8) {
130
+ return true;
131
+ }
132
+ }
133
+ return false;
134
+ }
135
+ /**
136
+ * Convert TimelineSession to StoredSession for persistence
137
+ */
138
+ function sessionToStored(session) {
139
+ return {
140
+ id: session.id,
141
+ date: session.start.toISOString().split('T')[0],
142
+ start: session.start.toISOString(),
143
+ end: session.end.toISOString(),
144
+ duration: session.duration,
145
+ commitCount: session.commits.length,
146
+ commitHashes: session.commits.map(c => c.hash),
147
+ overall: session.overall,
148
+ trustPassRate: session.trustPassRate,
149
+ reworkRatio: session.reworkRatio,
150
+ xpEarned: session.xpEarned,
151
+ flowState: session.flowState,
152
+ spiralCount: session.spirals.length,
153
+ spiralComponents: session.spirals.map(s => s.component),
154
+ };
155
+ }
156
+ /**
157
+ * Update store with new timeline data
158
+ */
159
+ function updateStore(store, timeline, lastCommitHash) {
160
+ // Add new sessions (skip duplicates)
161
+ for (const session of timeline.sessions) {
162
+ const commitHashes = session.commits.map(c => c.hash);
163
+ if (!sessionExists(store, commitHashes)) {
164
+ store.sessions.push(sessionToStored(session));
165
+ }
166
+ }
167
+ // Update pattern stats
168
+ updatePatternStats(store, timeline);
169
+ // Update trends
170
+ updateTrends(store);
171
+ // Generate new insights
172
+ generateInsights(store, timeline);
173
+ // Update last commit hash
174
+ store.lastCommitHash = lastCommitHash;
175
+ // Keep only last 500 sessions (roughly 1 year of daily coding)
176
+ if (store.sessions.length > 500) {
177
+ store.sessions = store.sessions.slice(-500);
178
+ }
179
+ return store;
180
+ }
181
+ /**
182
+ * Update pattern statistics from new timeline data
183
+ */
184
+ function updatePatternStats(store, timeline) {
185
+ const stats = store.patterns;
186
+ // Flow states
187
+ const flowSessions = timeline.sessions.filter(s => s.flowState);
188
+ if (flowSessions.length > 0) {
189
+ stats.totalFlowStates += flowSessions.length;
190
+ const totalFlowDuration = flowSessions.reduce((sum, s) => sum + s.duration, 0);
191
+ stats.avgFlowDuration = Math.round((stats.avgFlowDuration * (stats.totalFlowStates - flowSessions.length) + totalFlowDuration) /
192
+ stats.totalFlowStates);
193
+ // Calculate peak flow hour
194
+ const hourCounts = {};
195
+ for (const session of flowSessions) {
196
+ const hour = session.start.getHours();
197
+ hourCounts[hour] = (hourCounts[hour] || 0) + 1;
198
+ }
199
+ const peakHour = Object.entries(hourCounts)
200
+ .sort((a, b) => b[1] - a[1])[0];
201
+ if (peakHour) {
202
+ stats.peakFlowHour = parseInt(peakHour[0]);
203
+ }
204
+ }
205
+ // Spirals
206
+ const spiralCount = timeline.totalSpirals;
207
+ if (spiralCount > 0) {
208
+ stats.totalSpirals += spiralCount;
209
+ // Track spirals by component and hour
210
+ for (const session of timeline.sessions) {
211
+ for (const spiral of session.spirals) {
212
+ stats.spiralsByComponent[spiral.component] =
213
+ (stats.spiralsByComponent[spiral.component] || 0) + 1;
214
+ const hour = session.start.getHours();
215
+ stats.spiralsByHour[hour] = (stats.spiralsByHour[hour] || 0) + 1;
216
+ }
217
+ }
218
+ }
219
+ // Late night sessions
220
+ if (timeline.lateNightSpirals?.detected) {
221
+ stats.lateNightSessions += timeline.lateNightSpirals.spirals.length;
222
+ if (timeline.lateNightSpirals.totalDuration > 0) {
223
+ stats.lateNightAvgDuration = Math.round((stats.lateNightAvgDuration * (stats.lateNightSessions - timeline.lateNightSpirals.spirals.length) +
224
+ timeline.lateNightSpirals.totalDuration) / stats.lateNightSessions);
225
+ }
226
+ }
227
+ // Detours
228
+ if (timeline.detours?.detected) {
229
+ stats.totalDetours += timeline.detours.detours.length;
230
+ stats.totalTimeLostToDetours += timeline.detours.totalTimeLost;
231
+ }
232
+ // Post-delete sprints
233
+ if (timeline.postDeleteSprint?.detected) {
234
+ stats.postDeleteSprints += 1;
235
+ stats.avgVelocityIncrease = Math.round((stats.avgVelocityIncrease * (stats.postDeleteSprints - 1) +
236
+ timeline.postDeleteSprint.velocityIncrease) / stats.postDeleteSprints * 10) / 10;
237
+ }
238
+ }
239
+ /**
240
+ * Update weekly and monthly trends
241
+ */
242
+ function updateTrends(store) {
243
+ const sessions = store.sessions;
244
+ if (sessions.length === 0)
245
+ return;
246
+ // Group sessions by week
247
+ const weeklyMap = new Map();
248
+ const monthlyMap = new Map();
249
+ for (const session of sessions) {
250
+ const date = new Date(session.start);
251
+ // Week key (Monday of that week)
252
+ const weekStart = new Date(date);
253
+ weekStart.setDate(date.getDate() - date.getDay() + 1);
254
+ const weekKey = weekStart.toISOString().split('T')[0];
255
+ if (!weeklyMap.has(weekKey))
256
+ weeklyMap.set(weekKey, []);
257
+ weeklyMap.get(weekKey).push(session);
258
+ // Month key
259
+ const monthKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}`;
260
+ if (!monthlyMap.has(monthKey))
261
+ monthlyMap.set(monthKey, []);
262
+ monthlyMap.get(monthKey).push(session);
263
+ }
264
+ // Convert to trend arrays (last 12 weeks)
265
+ store.trends.weekly = Array.from(weeklyMap.entries())
266
+ .sort((a, b) => b[0].localeCompare(a[0]))
267
+ .slice(0, 12)
268
+ .map(([weekStart, weekSessions]) => ({
269
+ weekStart,
270
+ sessions: weekSessions.length,
271
+ commits: weekSessions.reduce((sum, s) => sum + s.commitCount, 0),
272
+ flowStates: weekSessions.filter(s => s.flowState).length,
273
+ spirals: weekSessions.reduce((sum, s) => sum + s.spiralCount, 0),
274
+ avgScore: Math.round(weekSessions.reduce((sum, s) => sum + s.trustPassRate, 0) / weekSessions.length),
275
+ activeMinutes: weekSessions.reduce((sum, s) => sum + s.duration, 0),
276
+ }))
277
+ .reverse();
278
+ // Convert to monthly trends (last 6 months)
279
+ store.trends.monthly = Array.from(monthlyMap.entries())
280
+ .sort((a, b) => b[0].localeCompare(a[0]))
281
+ .slice(0, 6)
282
+ .map(([month, monthSessions]) => ({
283
+ month,
284
+ sessions: monthSessions.length,
285
+ commits: monthSessions.reduce((sum, s) => sum + s.commitCount, 0),
286
+ flowStates: monthSessions.filter(s => s.flowState).length,
287
+ spirals: monthSessions.reduce((sum, s) => sum + s.spiralCount, 0),
288
+ avgScore: Math.round(monthSessions.reduce((sum, s) => sum + s.trustPassRate, 0) / monthSessions.length),
289
+ activeMinutes: monthSessions.reduce((sum, s) => sum + s.duration, 0),
290
+ }))
291
+ .reverse();
292
+ // Calculate improvements (compare last 2 weeks)
293
+ if (store.trends.weekly.length >= 2) {
294
+ const recent = store.trends.weekly[store.trends.weekly.length - 1];
295
+ const previous = store.trends.weekly[store.trends.weekly.length - 2];
296
+ store.trends.improvements = [];
297
+ // Flow states improvement
298
+ if (previous.flowStates > 0) {
299
+ const change = ((recent.flowStates - previous.flowStates) / previous.flowStates) * 100;
300
+ store.trends.improvements.push({
301
+ metric: 'flowStates',
302
+ direction: change > 5 ? 'up' : change < -5 ? 'down' : 'stable',
303
+ change: Math.round(change),
304
+ period: 'week',
305
+ });
306
+ }
307
+ // Spirals improvement (lower is better)
308
+ if (previous.spirals > 0) {
309
+ const change = ((recent.spirals - previous.spirals) / previous.spirals) * 100;
310
+ store.trends.improvements.push({
311
+ metric: 'spirals',
312
+ direction: change < -5 ? 'up' : change > 5 ? 'down' : 'stable', // Inverted
313
+ change: Math.round(-change), // Positive = fewer spirals
314
+ period: 'week',
315
+ });
316
+ }
317
+ }
318
+ }
319
+ /**
320
+ * Generate compounding insights from accumulated data
321
+ */
322
+ function generateInsights(store, timeline) {
323
+ const stats = store.patterns;
324
+ const now = new Date().toISOString();
325
+ // Late night insight
326
+ if (stats.lateNightSessions >= 3) {
327
+ const existingInsight = store.insights.find(i => i.id === 'late-night-pattern');
328
+ if (existingInsight) {
329
+ existingInsight.lastSeen = now;
330
+ existingInsight.occurrences = stats.lateNightSessions;
331
+ existingInsight.message = `You've had ${stats.lateNightSessions} late-night spirals, averaging ${stats.lateNightAvgDuration}m each. Fresh eyes typically resolve these faster.`;
332
+ }
333
+ else {
334
+ store.insights.push({
335
+ id: 'late-night-pattern',
336
+ type: 'pattern',
337
+ category: 'timing',
338
+ message: `You've had ${stats.lateNightSessions} late-night spirals, averaging ${stats.lateNightAvgDuration}m each. Fresh eyes typically resolve these faster.`,
339
+ firstSeen: now,
340
+ lastSeen: now,
341
+ occurrences: stats.lateNightSessions,
342
+ });
343
+ }
344
+ }
345
+ // Peak flow hour insight
346
+ if (stats.totalFlowStates >= 5) {
347
+ const hour = stats.peakFlowHour;
348
+ const hourStr = hour < 12 ? `${hour}am` : hour === 12 ? '12pm' : `${hour - 12}pm`;
349
+ const existingInsight = store.insights.find(i => i.id === 'peak-flow-hour');
350
+ if (existingInsight) {
351
+ existingInsight.lastSeen = now;
352
+ existingInsight.occurrences = stats.totalFlowStates;
353
+ existingInsight.message = `Your flow states peak around ${hourStr}. Protect this time for deep work.`;
354
+ }
355
+ else {
356
+ store.insights.push({
357
+ id: 'peak-flow-hour',
358
+ type: 'recommendation',
359
+ category: 'timing',
360
+ message: `Your flow states peak around ${hourStr}. Protect this time for deep work.`,
361
+ firstSeen: now,
362
+ lastSeen: now,
363
+ occurrences: stats.totalFlowStates,
364
+ metadata: { peakHour: hour },
365
+ });
366
+ }
367
+ }
368
+ // Component spiral pattern
369
+ const topSpiralComponent = Object.entries(stats.spiralsByComponent)
370
+ .sort((a, b) => b[1] - a[1])[0];
371
+ if (topSpiralComponent && topSpiralComponent[1] >= 3) {
372
+ const [component, count] = topSpiralComponent;
373
+ const existingInsight = store.insights.find(i => i.id === `spiral-component-${component}`);
374
+ if (existingInsight) {
375
+ existingInsight.lastSeen = now;
376
+ existingInsight.occurrences = count;
377
+ }
378
+ else {
379
+ store.insights.push({
380
+ id: `spiral-component-${component}`,
381
+ type: 'pattern',
382
+ category: 'component',
383
+ message: `"${component}" has caused ${count} debug spirals. Consider adding tracer tests.`,
384
+ firstSeen: now,
385
+ lastSeen: now,
386
+ occurrences: count,
387
+ metadata: { component },
388
+ });
389
+ }
390
+ }
391
+ // Post-delete velocity insight
392
+ if (stats.postDeleteSprints >= 2 && stats.avgVelocityIncrease > 1.5) {
393
+ const existingInsight = store.insights.find(i => i.id === 'post-delete-velocity');
394
+ if (existingInsight) {
395
+ existingInsight.lastSeen = now;
396
+ existingInsight.occurrences = stats.postDeleteSprints;
397
+ existingInsight.message = `Deleting code has boosted your velocity ${stats.avgVelocityIncrease}x on average (${stats.postDeleteSprints} times). Trust simplification.`;
398
+ }
399
+ else {
400
+ store.insights.push({
401
+ id: 'post-delete-velocity',
402
+ type: 'pattern',
403
+ category: 'velocity',
404
+ message: `Deleting code has boosted your velocity ${stats.avgVelocityIncrease}x on average (${stats.postDeleteSprints} times). Trust simplification.`,
405
+ firstSeen: now,
406
+ lastSeen: now,
407
+ occurrences: stats.postDeleteSprints,
408
+ });
409
+ }
410
+ }
411
+ // Keep only 20 most recent/relevant insights
412
+ store.insights = store.insights
413
+ .sort((a, b) => new Date(b.lastSeen).getTime() - new Date(a.lastSeen).getTime())
414
+ .slice(0, 20);
415
+ }
416
+ /**
417
+ * Migrate old store versions
418
+ */
419
+ function migrateTimelineStore(store) {
420
+ // Handle missing or old versions
421
+ if (!store.version || store.version === '1.0.0') {
422
+ // Migrate from 1.0.0 to current
423
+ store.version = schema_1.CURRENT_SCHEMA_VERSION;
424
+ }
425
+ if (!store.insights) {
426
+ store.insights = [];
427
+ }
428
+ if (!store.patterns) {
429
+ store.patterns = createInitialStore().patterns;
430
+ }
431
+ if (!store.trends) {
432
+ store.trends = createInitialStore().trends;
433
+ }
434
+ // Ensure version is current after all migrations
435
+ store.version = schema_1.CURRENT_SCHEMA_VERSION;
436
+ return store;
437
+ }
438
+ //# sourceMappingURL=timeline-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-store.js","sourceRoot":"","sources":["../../src/storage/timeline-store.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -110,4 +110,100 @@ export interface VibeCheckResultV2 extends VibeCheckResult {
110
110
  codeStability: CodeStabilityResult;
111
111
  };
112
112
  }
113
+ export interface TimelineEvent {
114
+ hash: string;
115
+ timestamp: Date;
116
+ author: string;
117
+ subject: string;
118
+ type: Commit['type'];
119
+ scope: string | null;
120
+ sessionId: string;
121
+ sessionPosition: number;
122
+ gapMinutes: number;
123
+ isRefactor: boolean;
124
+ spiralDepth: number;
125
+ }
126
+ export interface TimelineSession {
127
+ id: string;
128
+ start: Date;
129
+ end: Date;
130
+ duration: number;
131
+ commits: TimelineEvent[];
132
+ vibeScore: number | null;
133
+ overall: OverallRating;
134
+ trustPassRate: number;
135
+ reworkRatio: number;
136
+ flowState: boolean;
137
+ spirals: FixChain[];
138
+ xpEarned: number;
139
+ }
140
+ export interface TimelineDay {
141
+ date: string;
142
+ displayDate: string;
143
+ sessions: TimelineSession[];
144
+ dayScore: number | null;
145
+ dayRating: OverallRating;
146
+ totalCommits: number;
147
+ totalDuration: number;
148
+ totalXp: number;
149
+ spiralCount: number;
150
+ }
151
+ export interface PostDeleteSprintInfo {
152
+ detected: boolean;
153
+ linesDeleted: number;
154
+ velocityIncrease: number;
155
+ message: string;
156
+ }
157
+ export interface ThrashingInfo {
158
+ detected: boolean;
159
+ files: {
160
+ path: string;
161
+ touchCount: number;
162
+ efficiency: number;
163
+ }[];
164
+ message: string;
165
+ }
166
+ export interface DetourInfo {
167
+ detected: boolean;
168
+ detours: {
169
+ scope: string;
170
+ filesAffected: string[];
171
+ linesAdded: number;
172
+ linesDeleted: number;
173
+ duration: number;
174
+ }[];
175
+ totalTimeLost: number;
176
+ message: string;
177
+ }
178
+ export interface LateNightSpiralInfo {
179
+ detected: boolean;
180
+ spirals: {
181
+ component: string;
182
+ duration: number;
183
+ fixCount: number;
184
+ resolved: boolean;
185
+ }[];
186
+ totalDuration: number;
187
+ message: string;
188
+ }
189
+ export interface TimelineResult {
190
+ from: Date;
191
+ to: Date;
192
+ activeDays: number;
193
+ totalDays: number;
194
+ days: TimelineDay[];
195
+ sessions: TimelineSession[];
196
+ totalCommits: number;
197
+ totalActiveMinutes: number;
198
+ totalFeatures: number;
199
+ totalFixes: number;
200
+ totalSpirals: number;
201
+ flowStates: number;
202
+ postDeleteSprint: PostDeleteSprintInfo | null;
203
+ thrashing: ThrashingInfo | null;
204
+ detours: DetourInfo | null;
205
+ lateNightSpirals: LateNightSpiralInfo | null;
206
+ totalXp: number;
207
+ trend: (number | null)[];
208
+ }
113
209
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}