workday-daemon 0.9.0 → 0.14.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 (43) hide show
  1. package/README.md +3 -1
  2. package/dist/cli.js +63 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/collectors/git-tracker.d.ts +6 -7
  5. package/dist/collectors/git-tracker.js +28 -39
  6. package/dist/collectors/git-tracker.js.map +1 -1
  7. package/dist/core/config.js +10 -1
  8. package/dist/core/config.js.map +1 -1
  9. package/dist/core/constants.d.ts +4 -1
  10. package/dist/core/constants.js +10 -2
  11. package/dist/core/constants.js.map +1 -1
  12. package/dist/core/daily-log.d.ts +16 -0
  13. package/dist/core/daily-log.js +37 -0
  14. package/dist/core/daily-log.js.map +1 -1
  15. package/dist/core/day-lifecycle.d.ts +10 -0
  16. package/dist/core/day-lifecycle.js +14 -0
  17. package/dist/core/day-lifecycle.js.map +1 -0
  18. package/dist/core/gap-detector.d.ts +20 -0
  19. package/dist/core/gap-detector.js +20 -0
  20. package/dist/core/gap-detector.js.map +1 -0
  21. package/dist/core/janitor.d.ts +32 -0
  22. package/dist/core/janitor.js +113 -0
  23. package/dist/core/janitor.js.map +1 -0
  24. package/dist/core/session-tracker.d.ts +76 -12
  25. package/dist/core/session-tracker.js +231 -53
  26. package/dist/core/session-tracker.js.map +1 -1
  27. package/dist/core/status-renderer.js +5 -3
  28. package/dist/core/status-renderer.js.map +1 -1
  29. package/dist/core/stop-marker.d.ts +3 -0
  30. package/dist/core/stop-marker.js +32 -0
  31. package/dist/core/stop-marker.js.map +1 -0
  32. package/dist/core/types.d.ts +17 -7
  33. package/dist/core/types.js +1 -7
  34. package/dist/core/types.js.map +1 -1
  35. package/dist/daemon.d.ts +21 -3
  36. package/dist/daemon.js +79 -38
  37. package/dist/daemon.js.map +1 -1
  38. package/dist/http-server.d.ts +11 -1
  39. package/dist/http-server.js +94 -4
  40. package/dist/http-server.js.map +1 -1
  41. package/dist/push/report-builder.js +21 -2
  42. package/dist/push/report-builder.js.map +1 -1
  43. package/package.json +2 -2
@@ -1,7 +1,8 @@
1
1
  import { basename } from 'node:path';
2
- import { SessionState, ClosedBy, SignalType, PauseSource } from './types.js';
2
+ import { SessionState, ClosedBy, DayStatus, SignalType, PauseSource } from './types.js';
3
3
  import { applyLedgerUpdate, countSessionCommits, createEmptyLedger } from './commit-ledger.js';
4
- import { generateSessionId, createEmptyEvidence, createEmptyLog, writeDailyLog, addSignal, addManualAdjustment, addManualEntry, editManualEntry, resolveSessionTarget, computeManualMinutes, getOpenPause, } from './daily-log.js';
4
+ import { isDayMaterialized } from './day-lifecycle.js';
5
+ import { generateSessionId, createEmptyEvidence, createEmptyLog, writeDailyLog, deleteDailyLog, addSignal, addManualAdjustment, addManualEntry, editManualEntry, resolveSessionTarget, computeManualMinutes, getOpenPause, trimTrailingPauses, } from './daily-log.js';
5
6
  import { computeWorkingDate, getSensitivityForRepo, resolveSensitivityTicks, writeConfig } from './config.js';
6
7
  /**
7
8
  * Manages session lifecycle within a DailyLog.
@@ -29,11 +30,20 @@ export class SessionTracker {
29
30
  dailyLog;
30
31
  config;
31
32
  lastEvaluatorResult = null;
33
+ // In-memory candidate sessions (born from activity, not yet confirmed
34
+ // facts) keyed by repo name. Promoted to dailyLog.sessions by the
35
+ // evaluator (score > 0 && leader); evaporate when the stamina score
36
+ // drains to zero, on checkout away, or at rollover.
37
+ candidates = new Map();
38
+ // Lazy-day gate: a day loaded from disk keeps being written; a fresh draft
39
+ // materializes only on the first confirmed fact (activation/manual entry).
40
+ loadedFromDisk;
32
41
  onSessionClosed = null;
33
42
  constructor(config, initialLog) {
34
43
  const today = computeWorkingDate(Date.now(), config.schedule.end, config.timezone);
35
44
  this.config = config;
36
45
  this.dailyLog = initialLog ?? createEmptyLog(today, config);
46
+ this.loadedFromDisk = initialLog !== undefined;
37
47
  // Normalize old logs that lack new fields
38
48
  if (this.dailyLog.dayStartedAt === undefined) {
39
49
  this.dailyLog.dayStartedAt = null;
@@ -74,19 +84,20 @@ export class SessionTracker {
74
84
  * Process one poll tick for a single repo.
75
85
  *
76
86
  * Flow:
77
- * 1. Credit reflog evidence to current open session (before any close)
78
- * 2. Log signals (dynamics, commits, checkouts)
79
- * 3. Handle session lifecycle (close/open/switch)
80
- * 4. Update session tick (lastSeenAt, evidence, promote PENDING→ACTIVE)
87
+ * 1. Log signals (dynamics, commits, checkouts) into the in-memory draft
88
+ * 2. Session lifecycle: open session → tick; task gone/changed → close
89
+ * session AND drop the candidate
90
+ * 3. No session: activity births a candidate (in-memory Session, honest
91
+ * startedAt = first signal); an existing candidate ticks like a session
81
92
  */
82
93
  processPollResult(result) {
83
94
  const now = new Date().toISOString();
84
95
  const repoName = basename(result.repoPath);
85
96
  let openSession = this.findOpenSession(repoName);
97
+ const hasActivity = result.delta.hasDynamics || result.newReflogEntries.some(e => e.type === 'commit');
86
98
  // Pause handling
87
99
  if (openSession && this.hasOpenPause(openSession)) {
88
100
  const pauseSource = this.getOpenPauseSource(openSession);
89
- const hasActivity = result.delta.hasDynamics || result.newReflogEntries.some(e => e.type === 'commit');
90
101
  if (pauseSource === PauseSource.Manual) {
91
102
  if (hasActivity) {
92
103
  // Auto-resume: developer forgot to resume, close pause and continue
@@ -102,24 +113,38 @@ export class SessionTracker {
102
113
  // 1. Log signals (reflog evidence is now derived from `git rev-list baseSha..HEAD`
103
114
  // each tick, not accumulated from reflog entries — see updateSessionTick).
104
115
  this.logSignals(repoName, result);
105
- // 3. Handle session lifecycle
116
+ // 2. Session lifecycle
106
117
  if (result.task === null) {
107
- // Not on developer's branch → close if open
118
+ // Not on developer's branch → close session, evaporate candidate
108
119
  if (openSession) {
109
120
  this.closeSession(openSession, ClosedBy.CheckoutOtherTask, now);
110
121
  }
122
+ this.dropCandidate(repoName);
111
123
  return;
112
124
  }
113
125
  if (openSession && openSession.task !== result.task) {
114
- // Task changed → close old, will open new below
126
+ // Task changed → close old; a new candidate may be born below
115
127
  this.closeSession(openSession, ClosedBy.CheckoutOtherTask, now);
116
128
  openSession = null;
117
129
  }
118
- if (!openSession) {
119
- openSession = this.openSession(repoName, result.task, result.branch, now);
130
+ if (openSession) {
131
+ this.updateSessionTick(openSession, result, now);
132
+ return;
133
+ }
134
+ // 3. Candidate lifecycle — sessions are born from activity, never from
135
+ // the mere presence of a task branch (checkout alone is not activity).
136
+ let candidate = this.candidates.get(repoName);
137
+ if (candidate && candidate.task !== result.task) {
138
+ this.dropCandidate(repoName);
139
+ candidate = undefined;
120
140
  }
121
- // 4. Update session with current tick data
122
- this.updateSessionTick(openSession, result, now);
141
+ if (!candidate) {
142
+ if (!hasActivity)
143
+ return; // watching — nothing exists yet
144
+ candidate = this.createSession(repoName, result.task, result.branch, now);
145
+ this.candidates.set(repoName, candidate);
146
+ }
147
+ this.updateSessionTick(candidate, result, now);
123
148
  }
124
149
  /**
125
150
  * Close orphaned sessions from a previous daemon crash.
@@ -129,7 +154,9 @@ export class SessionTracker {
129
154
  let count = 0;
130
155
  for (const session of this.dailyLog.sessions) {
131
156
  if (!session.closedBy) {
132
- this.closeOpenPause(session, session.lastSeenAt);
157
+ const trimmedEnd = trimTrailingPauses(session);
158
+ if (trimmedEnd)
159
+ session.lastSeenAt = trimmedEnd;
133
160
  session.closedBy = ClosedBy.DaemonCrash;
134
161
  count++;
135
162
  }
@@ -155,6 +182,7 @@ export class SessionTracker {
155
182
  this.closeSession(session, ClosedBy.ManualStop, now);
156
183
  }
157
184
  }
185
+ this.dropCandidate(repoName);
158
186
  this.pruneEmptySessions();
159
187
  }
160
188
  /**
@@ -177,16 +205,21 @@ export class SessionTracker {
177
205
  }
178
206
  }
179
207
  /**
180
- * Handle day boundary: close all sessions, return completed log, start fresh.
181
- * Caller should flush the returned log to disk.
208
+ * Handle day boundary: close all sessions, evaporate candidates, start a
209
+ * fresh in-memory draft. The caller writes the returned log to disk ONLY
210
+ * when it is materialized — an empty day leaves no file and no console
211
+ * noise (lazy day).
182
212
  */
183
213
  handleDayBoundary() {
184
214
  this.closeAllSessions(ClosedBy.DayBoundary);
185
215
  const completedLog = this.dailyLog;
216
+ const materialized = isDayMaterialized(completedLog, this.loadedFromDisk);
217
+ this.dropAllCandidates();
186
218
  const newDate = computeWorkingDate(Date.now(), this.config.schedule.end, this.config.timezone);
187
219
  this.dailyLog = createEmptyLog(newDate, this.config);
220
+ this.loadedFromDisk = false;
188
221
  this.lastEvaluatorResult = null;
189
- return completedLog;
222
+ return { oldLog: completedLog, materialized };
190
223
  }
191
224
  /** Set dayStartedAt (called by daemon on startup) */
192
225
  setDayStartedAt(timestamp) {
@@ -194,6 +227,35 @@ export class SessionTracker {
194
227
  this.dailyLog.dayStartedAt = timestamp;
195
228
  }
196
229
  }
230
+ /**
231
+ * Delete a session from today's log — a user decision at review time
232
+ * (junk from a stray touch), never automatic. The record is removed
233
+ * entirely; if the day loses its last confirmed fact the file goes too
234
+ * (storage invariant), unless the day was already pushed — then the file
235
+ * stays as the push marker and the status drops to Draft for re-sync.
236
+ * Deleting an open session is allowed: current activity simply re-births
237
+ * a fresh candidate on the next tick.
238
+ */
239
+ deleteSession(target) {
240
+ const session = resolveSessionTarget(this.dailyLog, target);
241
+ if (!session) {
242
+ return { ok: false, error: `Session not found: ${target}` };
243
+ }
244
+ this.dailyLog.sessions = this.dailyLog.sessions.filter(s => s !== session);
245
+ this.onSessionClosed?.(session.id);
246
+ if (this.dailyLog.sessions.length === 0
247
+ && (this.dailyLog.manualEntries ?? []).length === 0
248
+ && !this.dailyLog.pushedAt) {
249
+ deleteDailyLog(this.dailyLog.date);
250
+ this.loadedFromDisk = false; // day de-materializes back into a draft
251
+ return { ok: true, deleted: session, dayFileDeleted: true };
252
+ }
253
+ if (this.dailyLog.status !== DayStatus.Draft) {
254
+ this.dailyLog.status = DayStatus.Draft; // pushed day edited → re-sync on next push
255
+ }
256
+ this.flush();
257
+ return { ok: true, deleted: session, dayFileDeleted: false };
258
+ }
197
259
  /** Add manual time adjustment to a session */
198
260
  addAdjustment(target, minutes, reason) {
199
261
  const session = resolveSessionTarget(this.dailyLog, target);
@@ -232,8 +294,13 @@ export class SessionTracker {
232
294
  getManualMinutes(session) {
233
295
  return computeManualMinutes(session);
234
296
  }
235
- /** Write current daily log to disk (atomic) */
297
+ /**
298
+ * Write current daily log to disk (atomic). No-op until the day is
299
+ * materialized: file exists ⇔ a confirmed fact happened (lazy day).
300
+ */
236
301
  flush() {
302
+ if (!isDayMaterialized(this.dailyLog, this.loadedFromDisk))
303
+ return;
237
304
  writeDailyLog(this.dailyLog);
238
305
  }
239
306
  /** Get summary of open sessions (for status display) */
@@ -249,7 +316,7 @@ export class SessionTracker {
249
316
  const map = new Map();
250
317
  for (const repoPath of repoPaths) {
251
318
  const name = basename(repoPath);
252
- const session = this.dailyLog.sessions.find(s => !s.closedBy && s.repo === name);
319
+ const session = this.findOpenOrCandidateSession(name);
253
320
  map.set(repoPath, session?.baseSha ?? null);
254
321
  }
255
322
  return map;
@@ -264,7 +331,7 @@ export class SessionTracker {
264
331
  const map = new Map();
265
332
  for (const repoPath of repoPaths) {
266
333
  const name = basename(repoPath);
267
- const session = this.dailyLog.sessions.find(s => !s.closedBy && s.repo === name);
334
+ const session = this.findOpenOrCandidateSession(name);
268
335
  if (!session?.ledger) {
269
336
  map.set(repoPath, null);
270
337
  continue;
@@ -278,13 +345,15 @@ export class SessionTracker {
278
345
  return map;
279
346
  }
280
347
  // ─── Evaluator integration ────────────────────────────────────────────
281
- /** Build TickInput[] for all open sessions (except manually paused) */
348
+ /**
349
+ * Build TickInput[] for all open sessions (except manually paused) and
350
+ * all candidates — candidates compete for leadership like sessions do.
351
+ */
282
352
  buildTickInputs(pollResults) {
283
353
  const resultMap = new Map();
284
354
  for (const r of pollResults) {
285
355
  resultMap.set(basename(r.repoPath), r);
286
356
  }
287
- const pollSeconds = this.config.session.diffPollSeconds;
288
357
  const ticks = [];
289
358
  for (const session of this.dailyLog.sessions) {
290
359
  if (session.closedBy)
@@ -293,26 +362,27 @@ export class SessionTracker {
293
362
  if (this.hasOpenPause(session) && this.getOpenPauseSource(session) === PauseSource.Manual) {
294
363
  continue;
295
364
  }
296
- const poll = resultMap.get(session.repo);
297
- const signals = poll
298
- ? {
299
- hasDynamics: poll.delta.hasDynamics,
300
- hasCommit: poll.newReflogEntries.some(e => e.type === 'commit'),
301
- deltaMagnitude: poll.delta.magnitude,
302
- }
303
- : { hasDynamics: false, hasCommit: false, deltaMagnitude: 0 };
304
- const level = getSensitivityForRepo(this.config, session.repo);
305
- const { maxTicks, ignoreIdleTimeout } = resolveSensitivityTicks(level, pollSeconds);
306
- ticks.push({
307
- sessionId: session.id,
308
- signals,
309
- maxTicks,
310
- ignoreIdleTimeout,
311
- });
365
+ ticks.push(this.toTickInput(session, resultMap));
366
+ }
367
+ for (const session of this.candidates.values()) {
368
+ ticks.push(this.toTickInput(session, resultMap));
312
369
  }
313
370
  return ticks;
314
371
  }
315
- /** Apply evaluator results: auto-pause, auto-resume, Pending→Active promotion */
372
+ toTickInput(session, resultMap) {
373
+ const poll = resultMap.get(session.repo);
374
+ const signals = poll
375
+ ? {
376
+ hasDynamics: poll.delta.hasDynamics,
377
+ hasCommit: poll.newReflogEntries.some(e => e.type === 'commit'),
378
+ deltaMagnitude: poll.delta.magnitude,
379
+ }
380
+ : { hasDynamics: false, hasCommit: false, deltaMagnitude: 0 };
381
+ const level = getSensitivityForRepo(this.config, session.repo);
382
+ const { maxTicks, ignoreIdleTimeout } = resolveSensitivityTicks(level, this.config.session.diffPollSeconds);
383
+ return { sessionId: session.id, signals, maxTicks, ignoreIdleTimeout };
384
+ }
385
+ /** Apply evaluator results: auto-pause, auto-resume, candidate promotion */
316
386
  applyEvaluatorResult(result) {
317
387
  this.lastEvaluatorResult = result;
318
388
  const now = new Date().toISOString();
@@ -338,13 +408,38 @@ export class SessionTracker {
338
408
  }
339
409
  }
340
410
  else if (session.state === SessionState.Pending) {
341
- // Pending Active: score > 0 AND is leader
411
+ // Legacy PENDING sessions loaded from old logs: promote as before
342
412
  if (sessionScore.score > 0 && isLeader) {
343
413
  session.state = SessionState.Active;
344
414
  session.activatedAt = now;
345
415
  }
346
416
  }
347
417
  }
418
+ // Candidate lifecycle by evaluator score. Promotion: leadership (implies
419
+ // score > 0) — the first active tick when the repo leads; the session
420
+ // becomes a confirmed fact, pushed into the log and flushed immediately
421
+ // (the moment the day materializes). Fade-out: score drained to zero —
422
+ // the same decay that idle-pauses a session, but an unconfirmed fact has
423
+ // nothing to pause, so it evaporates. Raw score, not isIdleTimeout: an
424
+ // Always-on repo must not breed an immortal candidate.
425
+ let promoted = false;
426
+ for (const [repoName, session] of [...this.candidates]) {
427
+ const sessionScore = result.scores.get(session.id);
428
+ if (!sessionScore)
429
+ continue;
430
+ if (sessionScore.score === 0) {
431
+ this.dropCandidate(repoName);
432
+ }
433
+ else if (result.leaderId === session.id) {
434
+ session.state = SessionState.Active;
435
+ session.activatedAt = now;
436
+ this.dailyLog.sessions.push(session);
437
+ this.candidates.delete(repoName);
438
+ promoted = true;
439
+ }
440
+ }
441
+ if (promoted)
442
+ this.flush();
348
443
  }
349
444
  getLastEvaluatorResult() {
350
445
  return this.lastEvaluatorResult;
@@ -412,25 +507,97 @@ export class SessionTracker {
412
507
  hasOpenPause(session) {
413
508
  return getOpenPause(session) !== null;
414
509
  }
510
+ /**
511
+ * Idle auto-close (honest session end): a session sitting in an open
512
+ * IdleTimeout pause longer than session.idleCloseHours closes with a
513
+ * trimmed end (= where the pause chain began). Manual pauses are exempt —
514
+ * a frozen session waits for the user; Superseded transitions into
515
+ * IdleTimeout once the score drains, so it is covered transitively.
516
+ * Runs at the start of each daemon tick, so after a PC-sleep gap the
517
+ * stale session closes before wake-up activity births a new one.
518
+ */
519
+ closeIdleSessions(now) {
520
+ const thresholdMs = this.config.session.idleCloseHours * 3_600_000;
521
+ if (thresholdMs <= 0)
522
+ return;
523
+ const nowIso = new Date(now).toISOString();
524
+ for (const session of this.dailyLog.sessions) {
525
+ if (session.closedBy)
526
+ continue;
527
+ const pause = getOpenPause(session);
528
+ if (!pause || pause.source !== PauseSource.IdleTimeout)
529
+ continue;
530
+ if (now - Date.parse(pause.from) >= thresholdMs) {
531
+ this.closeSession(session, ClosedBy.IdleTimeout, nowIso);
532
+ }
533
+ }
534
+ }
535
+ /**
536
+ * Retroactive idle pause after an observation gap (PC sleep / hibernate,
537
+ * suspended process). Every open, unpaused session gets an IdleTimeout
538
+ * pause opened at its own pre-gap lastSeenAt — the last moment work was
539
+ * actually observed — so the gap never counts as work. Sessions already
540
+ * paused keep their pause (it spans the gap naturally; the chain trim
541
+ * yields the honest end either way). Returns the number paused.
542
+ */
543
+ applyGapPauses() {
544
+ let count = 0;
545
+ for (const session of this.dailyLog.sessions) {
546
+ if (session.closedBy)
547
+ continue;
548
+ if (this.hasOpenPause(session))
549
+ continue;
550
+ session.pauses.push({ from: session.lastSeenAt, to: null, source: PauseSource.IdleTimeout });
551
+ count++;
552
+ }
553
+ return count;
554
+ }
415
555
  /**
416
556
  * True when someone is plausibly mid-work: at least one open, unpaused
417
- * session. Used as the quiet-window gate for self-update restarts.
557
+ * session OR a candidate (a session mid-birth live by construction:
558
+ * a drained candidate evaporates on the same tick). Used as the
559
+ * quiet-window gate for self-update restarts.
418
560
  */
419
561
  hasActiveWork() {
420
- return this.getOpenSessions().some(s => !this.hasOpenPause(s));
562
+ return this.candidates.size > 0
563
+ || this.getOpenSessions().some(s => !this.hasOpenPause(s));
564
+ }
565
+ // ─── Candidates ──────────────────────────────────────────────────────
566
+ /** Candidate sessions (in-memory, not yet confirmed facts) in birth order. */
567
+ getCandidates() {
568
+ return [...this.candidates.values()];
569
+ }
570
+ dropCandidate(repoName) {
571
+ const session = this.candidates.get(repoName);
572
+ if (!session)
573
+ return;
574
+ this.candidates.delete(repoName);
575
+ this.onSessionClosed?.(session.id);
576
+ }
577
+ /** Evaporate every candidate (rollover, observation gap — state is stale). */
578
+ dropAllCandidates() {
579
+ for (const repoName of [...this.candidates.keys()]) {
580
+ this.dropCandidate(repoName);
581
+ }
421
582
  }
422
583
  // ─── Private: session lifecycle ────────────────────────────────────────
423
584
  findOpenSession(repo) {
424
585
  return this.dailyLog.sessions.find(s => s.repo === repo && !s.closedBy) ?? null;
425
586
  }
426
- openSession(repo, task, branch, now) {
587
+ /** Open session first, then candidate — for baseSha/ledger poll context. */
588
+ findOpenOrCandidateSession(repo) {
589
+ return this.findOpenSession(repo) ?? this.candidates.get(repo) ?? null;
590
+ }
591
+ createSession(repo, task, branch, now) {
427
592
  // Every session starts from a clean slate — nothing is inherited from
428
593
  // earlier sessions on the same repo+task. The counters are strictly
429
594
  // bounded by the session's lifetime: the first poll captures a fresh
430
595
  // line baseline and seeds the commit ledger with everything already on
431
596
  // the branch marked pre-session, so commits/lines produced while no
432
597
  // session was open (daemon down, session closed) are never counted.
433
- const session = {
598
+ // NOT pushed into dailyLog.sessions — the caller keeps it as a candidate
599
+ // until the evaluator promotes it.
600
+ return {
434
601
  id: generateSessionId(),
435
602
  repo,
436
603
  task,
@@ -449,16 +616,15 @@ export class SessionTracker {
449
616
  lastBranchCommits: null,
450
617
  ledger: null,
451
618
  };
452
- this.dailyLog.sessions.push(session);
453
- return session;
454
619
  }
455
620
  closeSession(session, reason, now) {
456
621
  if (session.closedBy)
457
622
  return; // already closed
458
- // Close any open pause before closing the session
459
- this.closeOpenPause(session, now);
623
+ // Honest end: an open trailing pause chain means work actually stopped
624
+ // where the chain began — trim it and end the session there.
625
+ const trimmedEnd = trimTrailingPauses(session);
460
626
  session.closedBy = reason;
461
- session.lastSeenAt = now;
627
+ session.lastSeenAt = trimmedEnd ?? now;
462
628
  // state stays as 'pending' or 'active' — preserved for reporting
463
629
  this.onSessionClosed?.(session.id);
464
630
  }
@@ -549,18 +715,30 @@ export class SessionTracker {
549
715
  * The baseline ratchets down when branch totals drop below it (own work
550
716
  * merged upstream, dropped commits) so evidence never goes negative and
551
717
  * subsequent work is counted from the new, lower base.
718
+ *
719
+ * First tick (baseline == null): seeded from the PREVIOUS tick's snapshot
720
+ * when available (A-3) — a candidate born from a burst would otherwise
721
+ * bake that burst into the baseline and lose it from the line counters.
722
+ * The prev snapshot is branch-guarded by GitTracker: null when the branch
723
+ * changed this tick, so edits carried over a checkout are never counted.
552
724
  */
553
725
  applyMergeBaseEvidence(session, snap, result) {
554
726
  // Commit ledger first: a seed also delivers the day-start line baseline.
555
727
  const ledgerActive = this.applyLedger(session, result);
556
728
  let base = session.evidenceBaseline;
557
729
  if (base === null) {
730
+ const seed = result.prevEvidenceSnapshot ?? snap;
558
731
  base = {
559
- linesAdded: snap.linesAdded,
560
- linesRemoved: snap.linesRemoved,
561
- filesChanged: snap.filesChanged,
732
+ linesAdded: seed.linesAdded,
733
+ linesRemoved: seed.linesRemoved,
734
+ filesChanged: seed.filesChanged,
562
735
  };
563
736
  session.evidenceBaseline = base;
737
+ // Ratchet against the current snapshot right away (prev may be higher
738
+ // after a revert between ticks — evidence must not go negative).
739
+ base.linesAdded = Math.min(base.linesAdded, snap.linesAdded);
740
+ base.linesRemoved = Math.min(base.linesRemoved, snap.linesRemoved);
741
+ base.filesChanged = Math.min(base.filesChanged, snap.filesChanged);
564
742
  }
565
743
  else {
566
744
  base.linesAdded = Math.min(base.linesAdded, snap.linesAdded);
@@ -1 +1 @@
1
- {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/core/session-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,CAAW;IACV,MAAM,CAAY;IAC3B,mBAAmB,GAA2B,IAAI,CAAC;IACpD,eAAe,GAAyC,IAAI,CAAC;IAEpE,YAAmB,MAAiB,EAAE,UAAqB;QACzD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE5D,0CAA0C;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAqB,CAAC,YAAY,GAAG,IAAI,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;QACnC,CAAC;QAED,8CAA8C;QAC9C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBAAE,OAAO,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC/D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;gBAAG,OAAmB,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/E,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/E,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;YACnF,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;YACnF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YACpE,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC5E,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS;gBAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1D,CAAC;IACH,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACI,iBAAiB,CAAC,MAAkB;QACzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEjD,iBAAiB;QACjB,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAEvG,IAAI,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvC,IAAI,WAAW,EAAE,CAAC;oBAChB,oEAAoE;oBACpE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,0CAA0C;oBAC1C,OAAO;gBACT,CAAC;YACH,CAAC;YACD,yEAAyE;QAC3E,CAAC;QAED,mFAAmF;QACnF,8EAA8E;QAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElC,8BAA8B;QAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,4CAA4C;YAC5C,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACpD,gDAAgD;YAChD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAChE,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACI,oBAAoB;QACzB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;gBACjD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACxC,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IACzC,gBAAgB,CAAC,MAAgB;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,+EAA+E;IACxE,oBAAoB,CAAC,QAAgB;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACK,kBAAkB;QACxB,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,qDAAqD;IAC9C,eAAe,CAAC,SAAiB;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;QACzC,CAAC;IACH,CAAC;IAED,8CAA8C;IACvC,aAAa,CAAC,MAAc,EAAE,OAAe,EAAE,MAAc;QAClE,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,MAAM,EAAE,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC;YACH,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;IAED,wCAAwC;IACjC,cAAc,CAAC,KAA+E;QACnG,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;IAED,yCAAyC;IAClC,eAAe,CAAC,EAAU,EAAE,KAAoE;QACrG,IAAI,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;IAED,uCAAuC;IAChC,gBAAgB,CAAC,OAAgB;QACtC,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,+CAA+C;IACxC,KAAK;QACV,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,wDAAwD;IACjD,eAAe;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,sBAAsB,CAAC,SAA4B;QACxD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACjF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,SAA4B;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;QAClD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACjF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC/B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,yEAAyE;IAEzE,uEAAuE;IAChE,eAAe,CAAC,WAAkC;QACvD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;QACxD,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAE/B,gEAAgE;YAChE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC1F,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,OAAO,GAAoB,IAAI;gBACnC,CAAC,CAAC;oBACE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;oBACnC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;oBAC/D,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;iBACrC;gBACH,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;YAEhE,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAEpF,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,OAAO;gBACP,QAAQ;gBACR,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iFAAiF;IAC1E,oBAAoB,CAAC,MAAuB;QACjD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAE/B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY;gBAAE,SAAS,CAAC,oCAAoC;YAEjE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YAEhD,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC1C,IAAI,QAAQ,EAAE,CAAC;oBACb,gCAAgC;oBAChC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;oBACtC,8EAA8E;oBAC9E,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACN,wCAAwC;oBACxC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBAClD,4CAA4C;gBAC5C,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACvC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;oBACpC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEM,sBAAsB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,wEAAwE;IAExE;;;;OAIG;IACI,cAAc,CAAC,KAAuB,EAAE,QAAiB;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1C,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzB,oEAAoE;QACpE,6DAA6D;QAC7D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,QAAQ;gBAAE,SAAS;YAC/B,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC5D,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IAC5D,cAAc,CAAC,QAAgB;QACpC,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,wEAAwE;IAExE,8BAA8B;IACvB,gBAAgB;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED,kFAAkF;IAC3E,gBAAgB,CAAC,QAAgB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IAC1B,iBAAiB;QACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IACtC,YAAY,CAAC,OAAgB;QAClC,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACxC,CAAC;IAED;;;OAGG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,0EAA0E;IAElE,eAAe,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CACpC,IAAI,IAAI,CAAC;IACZ,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,IAAmB,EAAE,MAAc,EAAE,GAAW;QAChF,sEAAsE;QACtE,oEAAoE;QACpE,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,oEAAoE;QACpE,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,iBAAiB,EAAE;YACvB,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,KAAK,EAAE,YAAY,CAAC,OAAO;YAC3B,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,mBAAmB,EAAE;YAC/B,MAAM,EAAE,EAAE;YACV,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,OAAgB,EAAE,MAAgB,EAAE,GAAW;QAClE,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,iBAAiB;QAE/C,kDAAkD;QAClD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAElC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC1B,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC;QACzB,iEAAiE;QAEjE,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,OAAgB,EAAE,GAAW;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAgB;QACzC,OAAO,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,kEAAkE;IAC1D,cAAc,CAAC,OAAgB,EAAE,MAAmB,EAAE,GAAW;QACvE,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,aAAa,KAAK,WAAW,CAAC,MAAM;YAAE,OAAO,CAAC,8BAA8B;QAChF,IAAI,aAAa,KAAK,MAAM;YAAE,OAAO,CAAC,kCAAkC;QACxE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,oDAAoD;YACpD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,8DAA8D;IACtD,cAAc,CAAC,OAAgB,EAAE,GAAW;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YACnG,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;QACjB,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E;;;;;;;;;;;;;;OAcG;IACK,iBAAiB,CAAC,OAAgB,EAAE,MAAkB,EAAE,GAAW;QACzE,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC;QAEzB,IAAI,MAAM,CAAC,aAAa,KAAK,YAAY,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9E,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC3D,wEAAwE;YACxE,8DAA8D;YAC9D,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACrC,sEAAsE;YACtE,kEAAkE;YAClE,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACxF,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACjE,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC;YACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC;YACrE,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACK,sBAAsB,CAAC,OAAgB,EAAE,IAAsB,EAAE,MAAkB;QACzF,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEvD,IAAI,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG;gBACL,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;YACF,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtE,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEtE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACpG,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC;QAEzC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC3C,kEAAkE;QAClE,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,WAAW,CAAC,OAAgB,EAAE,MAAkB;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;QAC3C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,sEAAsE;YACtE,2DAA2D;YAC3D,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC;YACzC,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACvC,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACrE,sEAAsE;YACtE,oEAAoE;YACpE,uEAAuE;YACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,qEAAqE;QACrE,oEAAoE;QACpE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,SAAS;YACpE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO;gBAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,eAAe,GAAG,CAAC,IAA4D,EAAW,EAAE,CAChG,IAAI,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjE,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,OAAgB;QACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,0EAA0E;IAElE,UAAU,CAAC,QAAgB,EAAE,MAAkB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC;QAE7D,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACvB,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,UAAU,CAAC,YAAY;gBAC7B,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;oBAC9B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;oBAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;iBACvC;aACF,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,UAAU,CAAC,QAAQ;oBACzB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/core/session-tracker.ts"],"names":[],"mappings":"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"}
@@ -42,8 +42,8 @@ export class StatusRenderer {
42
42
  const dayStartTime = dayStartIso ? formatTime(new Date(dayStartIso).getTime(), this.ctx.timezone) : '—';
43
43
  lines.push(` ${DIM}PID${RESET} ${process.pid} ${DIM}Date${RESET} ${this.ctx.currentDate} ${DIM}Start${RESET} ${dayStartTime} ${DIM}Up${RESET} ${uptime} ${DIM}(#${this.tickCount})${RESET}`);
44
44
  lines.push('');
45
- // Sessions
46
- const openSessions = log.sessions.filter(s => !s.closedBy);
45
+ // Sessions: confirmed open ones + in-memory candidates (shown as PENDING)
46
+ const openSessions = [...log.sessions.filter(s => !s.closedBy), ...tracker.getCandidates()];
47
47
  const closedSessions = log.sessions.filter(s => s.closedBy);
48
48
  const evalResult = tracker.getLastEvaluatorResult();
49
49
  if (openSessions.length === 0 && closedSessions.length === 0) {
@@ -56,7 +56,9 @@ export class StatusRenderer {
56
56
  lines.push(`${DIM}${'─'.repeat(LINE_WIDTH)}${RESET}`);
57
57
  for (let si = 0; si < openSessions.length; si++) {
58
58
  const session = openSessions[si];
59
+ // Candidates are not in the log — no CLI-addressable index yet.
59
60
  const globalIdx = log.sessions.indexOf(session) + 1;
61
+ const idxLabel = globalIdx > 0 ? `#${globalIdx}` : '#·';
60
62
  const sessionScore = evalResult?.scores.get(session.id);
61
63
  const isPaused = tracker.hasOpenPause(session);
62
64
  const openPause = getOpenPause(session);
@@ -80,7 +82,7 @@ export class StatusRenderer {
80
82
  const dot = (!isPaused && session.state === 'active') ? ` ${GREEN}●${RESET}` : '';
81
83
  const sens = ` ${DIM}[${tracker.getSensitivity(session.repo).toUpperCase()}]${RESET}`;
82
84
  const COL1 = 18; // first value column width
83
- lines.push(` ${DIM}#${globalIdx}${RESET} ${BOLD}${repoLabel}${RESET}${dot} ${badge}${sens}`);
85
+ lines.push(` ${DIM}${idxLabel}${RESET} ${BOLD}${repoLabel}${RESET}${dot} ${badge}${sens}`);
84
86
  const L = (label) => `${INDENT}${DIM}${label.padEnd(LABEL_WIDTH)}${RESET}`;
85
87
  const R = (label) => `${DIM}${label}${RESET} `;
86
88
  lines.push(`${L('Task')}${(session.task ?? '—').padEnd(COL1)}${R('branch')}${session.branch}`);