workday-daemon 0.4.5 → 0.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 (39) hide show
  1. package/dist/cli.js +20 -33
  2. package/dist/cli.js.map +1 -1
  3. package/dist/collectors/churn-scanner.d.ts +19 -0
  4. package/dist/collectors/churn-scanner.js +80 -0
  5. package/dist/collectors/churn-scanner.js.map +1 -0
  6. package/dist/collectors/git-client.d.ts +12 -5
  7. package/dist/collectors/git-client.js +32 -16
  8. package/dist/collectors/git-client.js.map +1 -1
  9. package/dist/collectors/git-tracker.js +29 -10
  10. package/dist/collectors/git-tracker.js.map +1 -1
  11. package/dist/collectors/snapshot-parser.d.ts +30 -10
  12. package/dist/collectors/snapshot-parser.js +80 -19
  13. package/dist/collectors/snapshot-parser.js.map +1 -1
  14. package/dist/core/activity-evaluator.d.ts +46 -8
  15. package/dist/core/activity-evaluator.js +118 -32
  16. package/dist/core/activity-evaluator.js.map +1 -1
  17. package/dist/core/config.d.ts +1 -2
  18. package/dist/core/config.js +2 -4
  19. package/dist/core/config.js.map +1 -1
  20. package/dist/core/constants.d.ts +54 -22
  21. package/dist/core/constants.js +64 -12
  22. package/dist/core/constants.js.map +1 -1
  23. package/dist/core/session-tracker.d.ts +25 -27
  24. package/dist/core/session-tracker.js +86 -54
  25. package/dist/core/session-tracker.js.map +1 -1
  26. package/dist/core/status-renderer.js +8 -3
  27. package/dist/core/status-renderer.js.map +1 -1
  28. package/dist/core/types.d.ts +35 -5
  29. package/dist/core/types.js.map +1 -1
  30. package/dist/core/update-manager.d.ts +42 -0
  31. package/dist/core/update-manager.js +86 -0
  32. package/dist/core/update-manager.js.map +1 -0
  33. package/dist/daemon.d.ts +27 -1
  34. package/dist/daemon.js +120 -1
  35. package/dist/daemon.js.map +1 -1
  36. package/dist/http-server.d.ts +7 -1
  37. package/dist/http-server.js +23 -1
  38. package/dist/http-server.js.map +1 -1
  39. package/package.json +2 -1
@@ -1,9 +1,11 @@
1
- import type { RawGitOutput, GitSnapshot, GitDelta } from '../core/types.js';
1
+ import type { RawGitOutput, GitSnapshot, GitDelta, ChurnFile } from '../core/types.js';
2
2
  /**
3
3
  * Parses git diff --numstat and status --porcelain output into GitSnapshot.
4
4
  * Computes delta between consecutive snapshots.
5
5
  *
6
- * New logic (not in legacy) diff dynamics is the primary activity signal.
6
+ * Activity volume (delta.magnitude) is measured per file over the churn map,
7
+ * never over summed totals — totals net out cross-file movement and are blind
8
+ * to rewrites of already-modified lines and to untracked files.
7
9
  */
8
10
  export declare class SnapshotParser {
9
11
  /**
@@ -11,30 +13,48 @@ export declare class SnapshotParser {
11
13
  *
12
14
  * diff --numstat format: "added\tremoved\tfilename" per line
13
15
  * status --porcelain: "?? filename" for untracked files
16
+ * churnFiles: built by churn-scanner from the evidence diff + untracked files
14
17
  */
15
- static parseSnapshot(raw: RawGitOutput, timestamp: number): GitSnapshot;
18
+ static parseSnapshot(raw: RawGitOutput, timestamp: number, churnFiles?: ReadonlyMap<string, ChurnFile>): GitSnapshot;
16
19
  /**
17
20
  * Compute delta between previous and current snapshot.
18
- * Delta = change in tracked lines + change in untracked file count.
21
+ *
22
+ * addedDelta/removedDelta/untrackedDelta keep the worktree-totals semantics
23
+ * (used for signal logging). magnitude is the real churn estimate:
24
+ * - per-file |Δadded| + |Δremoved| across the churn map;
25
+ * - a file entering the map counts whole (new untracked file, first edit);
26
+ * - a file leaving counts its last known size (revert / re-anchor);
27
+ * - a flat file whose content hash changed counts IN_PLACE_CHURN_LINES.
19
28
  *
20
29
  * Returns null delta (hasDynamics=false) if previous is null (first tick after start).
21
30
  */
22
31
  static computeDelta(previous: GitSnapshot | null, current: GitSnapshot): GitDelta;
32
+ private static computeChurnMagnitude;
23
33
  /**
24
- * Public alias — used by GitTracker to parse a `diff <baseSha> --numstat`
25
- * output for the PR-equivalent evidence snapshot.
34
+ * Public alias — used by GitTracker to parse a `diff <base> --numstat`
35
+ * output for the PR-equivalent evidence snapshot and the churn file map.
26
36
  */
27
- static parseDiffNumstatTotals(text: string): {
28
- readonly added: number;
29
- readonly removed: number;
30
- readonly fileCount: number;
37
+ static parseDiffNumstatFiles(text: string): {
38
+ readonly totals: {
39
+ readonly added: number;
40
+ readonly removed: number;
41
+ readonly fileCount: number;
42
+ };
43
+ readonly files: ReadonlyMap<string, {
44
+ readonly added: number;
45
+ readonly removed: number;
46
+ }>;
31
47
  };
32
48
  /**
33
49
  * Parse "git diff --numstat" output.
34
50
  * Each line: "added\tremoved\tfilename"
35
51
  * Binary files show "-\t-\tfilename" → skip.
52
+ * Unusual paths come quoted from git — quotes are stripped (escapes kept:
53
+ * keys only need to be stable between ticks; fs reads on them just miss).
36
54
  */
37
55
  private static parseDiffNumstat;
56
+ /** Parse `git ls-files --others --exclude-standard` output into paths. */
57
+ static parseUntrackedList(text: string): string[];
38
58
  /**
39
59
  * Count untracked files from "git status --porcelain" output.
40
60
  * Untracked files start with "?? ".
@@ -1,8 +1,11 @@
1
+ import { IN_PLACE_CHURN_LINES } from '../core/constants.js';
1
2
  /**
2
3
  * Parses git diff --numstat and status --porcelain output into GitSnapshot.
3
4
  * Computes delta between consecutive snapshots.
4
5
  *
5
- * New logic (not in legacy) diff dynamics is the primary activity signal.
6
+ * Activity volume (delta.magnitude) is measured per file over the churn map,
7
+ * never over summed totals — totals net out cross-file movement and are blind
8
+ * to rewrites of already-modified lines and to untracked files.
6
9
  */
7
10
  export class SnapshotParser {
8
11
  /**
@@ -10,9 +13,10 @@ export class SnapshotParser {
10
13
  *
11
14
  * diff --numstat format: "added\tremoved\tfilename" per line
12
15
  * status --porcelain: "?? filename" for untracked files
16
+ * churnFiles: built by churn-scanner from the evidence diff + untracked files
13
17
  */
14
- static parseSnapshot(raw, timestamp) {
15
- const { added, removed, fileCount } = SnapshotParser.parseDiffNumstat(raw.diffNumstat);
18
+ static parseSnapshot(raw, timestamp, churnFiles = new Map()) {
19
+ const { added, removed, fileCount } = SnapshotParser.parseDiffNumstat(raw.diffNumstat).totals;
16
20
  const untrackedCount = SnapshotParser.parseUntrackedCount(raw.statusPorcelain);
17
21
  return {
18
22
  branch: raw.branch,
@@ -20,52 +24,109 @@ export class SnapshotParser {
20
24
  trackedFileCount: fileCount,
21
25
  untrackedCount,
22
26
  timestamp,
27
+ churnFiles,
23
28
  };
24
29
  }
25
30
  /**
26
31
  * Compute delta between previous and current snapshot.
27
- * Delta = change in tracked lines + change in untracked file count.
32
+ *
33
+ * addedDelta/removedDelta/untrackedDelta keep the worktree-totals semantics
34
+ * (used for signal logging). magnitude is the real churn estimate:
35
+ * - per-file |Δadded| + |Δremoved| across the churn map;
36
+ * - a file entering the map counts whole (new untracked file, first edit);
37
+ * - a file leaving counts its last known size (revert / re-anchor);
38
+ * - a flat file whose content hash changed counts IN_PLACE_CHURN_LINES.
28
39
  *
29
40
  * Returns null delta (hasDynamics=false) if previous is null (first tick after start).
30
41
  */
31
42
  static computeDelta(previous, current) {
32
43
  if (previous === null) {
33
44
  // First tick = baseline, no dynamics
34
- return { addedDelta: 0, removedDelta: 0, untrackedDelta: 0, hasDynamics: false };
45
+ return { addedDelta: 0, removedDelta: 0, untrackedDelta: 0, hasDynamics: false, magnitude: 0 };
35
46
  }
36
47
  const addedDelta = current.trackedLines.added - previous.trackedLines.added;
37
48
  const removedDelta = current.trackedLines.removed - previous.trackedLines.removed;
38
49
  const untrackedDelta = current.untrackedCount - previous.untrackedCount;
39
- const hasDynamics = addedDelta !== 0 || removedDelta !== 0 || untrackedDelta !== 0;
40
- return { addedDelta, removedDelta, untrackedDelta, hasDynamics };
50
+ const magnitude = SnapshotParser.computeChurnMagnitude(previous.churnFiles, current.churnFiles);
51
+ const hasDynamics = magnitude > 0 || addedDelta !== 0 || removedDelta !== 0 || untrackedDelta !== 0;
52
+ return { addedDelta, removedDelta, untrackedDelta, hasDynamics, magnitude };
53
+ }
54
+ static computeChurnMagnitude(prev, cur) {
55
+ let magnitude = 0;
56
+ for (const [path, c] of cur) {
57
+ const p = prev.get(path);
58
+ if (p === undefined) {
59
+ magnitude += c.added + c.removed;
60
+ continue;
61
+ }
62
+ const d = Math.abs(c.added - p.added) + Math.abs(c.removed - p.removed);
63
+ if (d > 0) {
64
+ magnitude += d;
65
+ }
66
+ else if (c.hash !== null && p.hash !== null && c.hash !== p.hash) {
67
+ magnitude += IN_PLACE_CHURN_LINES;
68
+ }
69
+ }
70
+ for (const [path, p] of prev) {
71
+ if (!cur.has(path)) {
72
+ magnitude += p.added + p.removed;
73
+ }
74
+ }
75
+ return magnitude;
41
76
  }
42
77
  /**
43
- * Public alias — used by GitTracker to parse a `diff <baseSha> --numstat`
44
- * output for the PR-equivalent evidence snapshot.
78
+ * Public alias — used by GitTracker to parse a `diff <base> --numstat`
79
+ * output for the PR-equivalent evidence snapshot and the churn file map.
45
80
  */
46
- static parseDiffNumstatTotals(text) {
81
+ static parseDiffNumstatFiles(text) {
47
82
  return SnapshotParser.parseDiffNumstat(text);
48
83
  }
49
84
  /**
50
85
  * Parse "git diff --numstat" output.
51
86
  * Each line: "added\tremoved\tfilename"
52
87
  * Binary files show "-\t-\tfilename" → skip.
88
+ * Unusual paths come quoted from git — quotes are stripped (escapes kept:
89
+ * keys only need to be stable between ticks; fs reads on them just miss).
53
90
  */
54
91
  static parseDiffNumstat(text) {
55
- if (!text)
56
- return { added: 0, removed: 0, fileCount: 0 };
92
+ const files = new Map();
57
93
  let added = 0;
58
94
  let removed = 0;
59
95
  let fileCount = 0;
96
+ if (text) {
97
+ for (const line of text.split('\n')) {
98
+ const match = line.match(/^(\d+)\t(\d+)\t(.+)$/);
99
+ if (!match)
100
+ continue; // skip binary files or empty lines
101
+ const a = parseInt(match[1], 10);
102
+ const r = parseInt(match[2], 10);
103
+ let path = match[3];
104
+ if (path.startsWith('"') && path.endsWith('"')) {
105
+ path = path.slice(1, -1);
106
+ }
107
+ added += a;
108
+ removed += r;
109
+ fileCount++;
110
+ files.set(path, { added: a, removed: r });
111
+ }
112
+ }
113
+ return { totals: { added, removed, fileCount }, files };
114
+ }
115
+ /** Parse `git ls-files --others --exclude-standard` output into paths. */
116
+ static parseUntrackedList(text) {
117
+ if (!text)
118
+ return [];
119
+ const paths = [];
60
120
  for (const line of text.split('\n')) {
61
- const match = line.match(/^(\d+)\t(\d+)\t/);
62
- if (!match)
63
- continue; // skip binary files or empty lines
64
- added += parseInt(match[1], 10);
65
- removed += parseInt(match[2], 10);
66
- fileCount++;
121
+ let path = line.trim();
122
+ if (!path)
123
+ continue;
124
+ if (path.startsWith('"') && path.endsWith('"')) {
125
+ path = path.slice(1, -1);
126
+ }
127
+ paths.push(path);
67
128
  }
68
- return { added, removed, fileCount };
129
+ return paths;
69
130
  }
70
131
  /**
71
132
  * Count untracked files from "git status --porcelain" output.
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-parser.js","sourceRoot":"","sources":["../../src/collectors/snapshot-parser.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IACzB;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,GAAiB,EAAE,SAAiB;QAC9D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvF,MAAM,cAAc,GAAG,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE/E,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;YAChC,gBAAgB,EAAE,SAAS;YAC3B,cAAc;YACd,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,YAAY,CAAC,QAA4B,EAAE,OAAoB;QAC3E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,qCAAqC;YACrC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACnF,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC;QAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;QAClF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QAExE,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC;QAEnF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;IACnE,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,sBAAsB,CAAC,IAAY;QAC/C,OAAO,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAEzD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK;gBAAE,SAAS,CAAC,mCAAmC;YACzD,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,CAAC;QACd,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACvC,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,mBAAmB,CAAC,IAAY;QAC7C,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAEpB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"snapshot-parser.js","sourceRoot":"","sources":["../../src/collectors/snapshot-parser.ts"],"names":[],"mappings":"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"}
@@ -3,28 +3,66 @@ import type { TickInput, EvaluatorResult } from './types.js';
3
3
  * Pure computational class — no I/O.
4
4
  * Maintains per-session activity score and EMA, determines cross-repo leadership.
5
5
  *
6
- * Per-session minTicks/maxTicks come from the caller (resolved from sensitivity).
6
+ * Per-session maxTicks comes from the caller (resolved from sensitivity); the
7
+ * touch floor is derived from it via STAMINA_FLOOR_RATIO.
7
8
  */
8
9
  export declare class ActivityEvaluator {
9
10
  private readonly emaAlpha;
11
+ private readonly attentionAlpha;
10
12
  private readonly commitBonus;
13
+ private readonly linesPerGainTick;
11
14
  private readonly state;
15
+ private lastLeaderId;
12
16
  constructor(diffPollSeconds: number);
13
17
  /**
14
18
  * Process one tick for all sessions. Returns scores and leader.
15
19
  * Manually paused sessions must NOT be included in ticks (caller responsibility).
16
20
  *
17
- * Scoring algorithm:
21
+ * Scoring algorithm ("stamina"):
18
22
  * 1. EMA — binary moving average of activity (1 if dynamics/commit, 0 otherwise)
19
- * 2. dynamicMaxScoreadaptive ceiling [minTicks..maxTicks], shrinks when EMA high
20
- * 3. Dynamics contribution ACTIVITY_RATIO * dynamicMaxScore * magnitude bonus
21
- * 4. Magnitude bonuslog2(1 + deltaMagnitude) / MAGNITUDE_SCALE, capped at MAGNITUDE_BONUS_MAX
23
+ * 2. Touch floor any active tick lifts score to STAMINA_FLOOR_RATIO * maxTicks.
24
+ * A single stray keystroke buys a small leash (Normal: ~7.5 min), nothing more.
25
+ * 3. Frequency gainema * FREQUENCY_GAIN_MAX per active tick. Only a sustained
26
+ * tick-after-tick stream of updates (EMA → 1) outpaces decay on its own.
27
+ * 4. Volume gain — deltaMagnitude / linesPerGainTick (STAMINA_LINES_PER_MINUTE,
28
+ * tick-normalized), capped at VOLUME_GAIN_MAX, so a bulk paste can't fill
29
+ * the bar in one tick.
22
30
  * 5. Commit bonus — instant COMMIT_BONUS_SECONDS / diffPollSeconds ticks
23
- * 6. Cap score at dynamicMaxScore, then decay by BASE_DECAY per tick
24
- * 7. score == 0 idle timeout eligible for auto-pause (unless ignoreIdleTimeout)
25
- * Leader = highest normalizedScore (score/maxScore) among sessions with score > 0
31
+ * 6. Cap score at maxTicks (fixed ceiling)
32
+ * 7. Decay BASE_DECAY on active ticks; on idle ticks BASE_DECAY +
33
+ * DECAY_BOOST × EMA (asymmetric fade: the denser the recent work, the
34
+ * faster the buffer cools once activity stops — a full Normal bar drains
35
+ * in ~15 min after an abrupt stop, not 45)
36
+ * 8. score == 0 → idle timeout → eligible for auto-pause (unless ignoreIdleTimeout)
37
+ *
38
+ * Leadership is driven by a separate short-window attention EMA (~2 min),
39
+ * not by the stamina score — see pickLeader. This keeps repo handover fast
40
+ * (~2 min) regardless of how full the bars are, while a single stray touch
41
+ * can never steal leadership.
42
+ *
43
+ * Net effect (30s ticks, Normal 15–45 min): light sporadic edits hover at the
44
+ * floor; a relentless every-tick stream saturates in ~40 min; ~10+ lines per
45
+ * tick saturates in ~15 min; reaching 100% is intentionally hard.
26
46
  */
27
47
  processAllTicks(ticks: readonly TickInput[]): EvaluatorResult;
48
+ /**
49
+ * Leadership by attention EMA with takeover hysteresis.
50
+ *
51
+ * Candidates: sessions with score > 0. The current leader keeps the lead
52
+ * until a challenger's attention exceeds it by more than attentionAlpha —
53
+ * one isolated touch's worth — so a stray save can never steal leadership
54
+ * by construction, while a genuine switch (old repo idle, new repo active
55
+ * tick after tick) hands over within ~2 minutes. Without a defending
56
+ * leader the most-attended candidate wins (normalizedScore as tiebreak).
57
+ */
58
+ private pickLeader;
59
+ /**
60
+ * Ticks until score hits 0 with no further activity. With asymmetric decay
61
+ * this is no longer score/BASE_DECAY — simulate the fade (EMA cools too,
62
+ * and the boost stops at the floor). Bounded by the score itself
63
+ * (decay ≥ 1), i.e. at most maxTicks iterations.
64
+ */
65
+ private estimateIdleTicks;
28
66
  /** Remove session state on close */
29
67
  removeSession(sessionId: string): void;
30
68
  /** Clear all state (day boundary, daemon stop) */
@@ -1,88 +1,174 @@
1
- import { EMA_WINDOW_MINUTES, ACTIVITY_RATIO, MAGNITUDE_SCALE, MAGNITUDE_BONUS_MAX, COMMIT_BONUS_SECONDS, BASE_DECAY, } from './constants.js';
1
+ import { EMA_WINDOW_MINUTES, ATTENTION_WINDOW_MINUTES, STAMINA_FLOOR_RATIO, FREQUENCY_GAIN_MAX, STAMINA_LINES_PER_MINUTE, VOLUME_GAIN_MAX, COMMIT_BONUS_SECONDS, BASE_DECAY, DECAY_BOOST, } from './constants.js';
2
2
  /**
3
3
  * Pure computational class — no I/O.
4
4
  * Maintains per-session activity score and EMA, determines cross-repo leadership.
5
5
  *
6
- * Per-session minTicks/maxTicks come from the caller (resolved from sensitivity).
6
+ * Per-session maxTicks comes from the caller (resolved from sensitivity); the
7
+ * touch floor is derived from it via STAMINA_FLOOR_RATIO.
7
8
  */
8
9
  export class ActivityEvaluator {
9
10
  emaAlpha;
11
+ attentionAlpha;
10
12
  commitBonus;
13
+ linesPerGainTick;
11
14
  state = new Map();
15
+ lastLeaderId = null;
12
16
  constructor(diffPollSeconds) {
13
17
  const emaWindowTicks = EMA_WINDOW_MINUTES * 60 / diffPollSeconds;
14
18
  this.emaAlpha = 1 / emaWindowTicks;
19
+ const attentionWindowTicks = ATTENTION_WINDOW_MINUTES * 60 / diffPollSeconds;
20
+ this.attentionAlpha = 1 / attentionWindowTicks;
15
21
  this.commitBonus = COMMIT_BONUS_SECONDS / diffPollSeconds;
22
+ this.linesPerGainTick = STAMINA_LINES_PER_MINUTE * diffPollSeconds / 60;
16
23
  }
17
24
  /**
18
25
  * Process one tick for all sessions. Returns scores and leader.
19
26
  * Manually paused sessions must NOT be included in ticks (caller responsibility).
20
27
  *
21
- * Scoring algorithm:
28
+ * Scoring algorithm ("stamina"):
22
29
  * 1. EMA — binary moving average of activity (1 if dynamics/commit, 0 otherwise)
23
- * 2. dynamicMaxScoreadaptive ceiling [minTicks..maxTicks], shrinks when EMA high
24
- * 3. Dynamics contribution ACTIVITY_RATIO * dynamicMaxScore * magnitude bonus
25
- * 4. Magnitude bonuslog2(1 + deltaMagnitude) / MAGNITUDE_SCALE, capped at MAGNITUDE_BONUS_MAX
30
+ * 2. Touch floor any active tick lifts score to STAMINA_FLOOR_RATIO * maxTicks.
31
+ * A single stray keystroke buys a small leash (Normal: ~7.5 min), nothing more.
32
+ * 3. Frequency gainema * FREQUENCY_GAIN_MAX per active tick. Only a sustained
33
+ * tick-after-tick stream of updates (EMA → 1) outpaces decay on its own.
34
+ * 4. Volume gain — deltaMagnitude / linesPerGainTick (STAMINA_LINES_PER_MINUTE,
35
+ * tick-normalized), capped at VOLUME_GAIN_MAX, so a bulk paste can't fill
36
+ * the bar in one tick.
26
37
  * 5. Commit bonus — instant COMMIT_BONUS_SECONDS / diffPollSeconds ticks
27
- * 6. Cap score at dynamicMaxScore, then decay by BASE_DECAY per tick
28
- * 7. score == 0 idle timeout eligible for auto-pause (unless ignoreIdleTimeout)
29
- * Leader = highest normalizedScore (score/maxScore) among sessions with score > 0
38
+ * 6. Cap score at maxTicks (fixed ceiling)
39
+ * 7. Decay BASE_DECAY on active ticks; on idle ticks BASE_DECAY +
40
+ * DECAY_BOOST × EMA (asymmetric fade: the denser the recent work, the
41
+ * faster the buffer cools once activity stops — a full Normal bar drains
42
+ * in ~15 min after an abrupt stop, not 45)
43
+ * 8. score == 0 → idle timeout → eligible for auto-pause (unless ignoreIdleTimeout)
44
+ *
45
+ * Leadership is driven by a separate short-window attention EMA (~2 min),
46
+ * not by the stamina score — see pickLeader. This keeps repo handover fast
47
+ * (~2 min) regardless of how full the bars are, while a single stray touch
48
+ * can never steal leadership.
49
+ *
50
+ * Net effect (30s ticks, Normal 15–45 min): light sporadic edits hover at the
51
+ * floor; a relentless every-tick stream saturates in ~40 min; ~10+ lines per
52
+ * tick saturates in ~15 min; reaching 100% is intentionally hard.
30
53
  */
31
54
  processAllTicks(ticks) {
32
55
  const scores = new Map();
33
56
  for (const tick of ticks) {
34
57
  const st = this.getOrCreateState(tick.sessionId);
35
58
  const hasActivity = tick.signals.hasDynamics || tick.signals.hasCommit;
36
- // 1. EMA update (binary input)
59
+ // 1. EMA updates (binary input): slow EMA = activity frequency for the
60
+ // stamina formula, fast attention EMA = leadership signal.
37
61
  st.ema = this.emaAlpha * (hasActivity ? 1 : 0) + (1 - this.emaAlpha) * st.ema;
38
- // 2. Adaptive max score (per-session min/max from sensitivity)
39
- const dynamicMaxScore = tick.maxTicks - (tick.maxTicks - tick.minTicks) * Math.min(1, st.ema);
40
- // 3. Activity points from dynamics
41
- if (tick.signals.hasDynamics) {
42
- const magnitudeBonus = 1 + Math.min(1, Math.log2(1 + tick.signals.deltaMagnitude) / MAGNITUDE_SCALE) * MAGNITUDE_BONUS_MAX;
43
- st.score += dynamicMaxScore * ACTIVITY_RATIO * magnitudeBonus;
62
+ st.attention = this.attentionAlpha * (hasActivity ? 1 : 0) + (1 - this.attentionAlpha) * st.attention;
63
+ if (hasActivity) {
64
+ // 2. Touch floor
65
+ st.score = Math.max(st.score, tick.maxTicks * STAMINA_FLOOR_RATIO);
66
+ // 3. Frequency gain
67
+ st.score += Math.min(1, st.ema) * FREQUENCY_GAIN_MAX;
68
+ // 4. Volume gain
69
+ st.score += Math.min(VOLUME_GAIN_MAX, tick.signals.deltaMagnitude / this.linesPerGainTick);
70
+ // 5. Commit bonus
71
+ if (tick.signals.hasCommit) {
72
+ st.score += this.commitBonus;
73
+ }
74
+ // 6. Cap at the sensitivity ceiling
75
+ st.score = Math.min(st.score, tick.maxTicks);
44
76
  }
45
- // 4. Commit bonus
46
- if (tick.signals.hasCommit) {
47
- st.score += this.commitBonus;
77
+ // 7. Decay — asymmetric: idle ticks after dense work drain faster, but
78
+ // the boost only eats the earned part above the floor. Below the
79
+ // floor the fade is always 1/tick, so the "any touch buys
80
+ // floor-minutes" guarantee holds at any EMA.
81
+ const floorTicks = tick.maxTicks * STAMINA_FLOOR_RATIO;
82
+ if (!hasActivity && st.score > floorTicks) {
83
+ const boosted = BASE_DECAY + DECAY_BOOST * Math.min(1, st.ema);
84
+ st.score = Math.max(floorTicks, st.score - boosted);
85
+ }
86
+ else {
87
+ st.score = Math.max(0, st.score - BASE_DECAY);
48
88
  }
49
- // 5. Cap at adaptive ceiling
50
- st.score = Math.min(st.score, dynamicMaxScore);
51
- // 6. Decay
52
- st.score = Math.max(0, st.score - BASE_DECAY);
53
89
  // Build result for this session
54
- const normalizedScore = dynamicMaxScore > 0 ? st.score / dynamicMaxScore : 0;
90
+ const normalizedScore = tick.maxTicks > 0 ? st.score / tick.maxTicks : 0;
55
91
  scores.set(tick.sessionId, {
56
92
  score: st.score,
57
- maxScore: dynamicMaxScore,
93
+ maxScore: tick.maxTicks,
58
94
  normalizedScore,
59
95
  ema: st.ema,
96
+ etaTicks: this.estimateIdleTicks(st, floorTicks),
60
97
  isIdleTimeout: st.score === 0 && !tick.ignoreIdleTimeout,
61
98
  });
62
99
  }
63
- // Determine leader: highest normalizedScore with score > 0
64
- let leaderId = null;
65
- let bestNorm = 0;
100
+ const leaderId = this.pickLeader(scores);
101
+ this.lastLeaderId = leaderId;
102
+ return { scores, leaderId };
103
+ }
104
+ /**
105
+ * Leadership by attention EMA with takeover hysteresis.
106
+ *
107
+ * Candidates: sessions with score > 0. The current leader keeps the lead
108
+ * until a challenger's attention exceeds it by more than attentionAlpha —
109
+ * one isolated touch's worth — so a stray save can never steal leadership
110
+ * by construction, while a genuine switch (old repo idle, new repo active
111
+ * tick after tick) hands over within ~2 minutes. Without a defending
112
+ * leader the most-attended candidate wins (normalizedScore as tiebreak).
113
+ */
114
+ pickLeader(scores) {
115
+ let best = null;
116
+ let bestAttention = -1;
117
+ let bestNorm = -1;
66
118
  for (const [sessionId, sessionScore] of scores) {
67
- if (sessionScore.score > 0 && sessionScore.normalizedScore > bestNorm) {
119
+ if (sessionScore.score <= 0)
120
+ continue;
121
+ const attention = this.state.get(sessionId)?.attention ?? 0;
122
+ if (attention > bestAttention || (attention === bestAttention && sessionScore.normalizedScore > bestNorm)) {
123
+ best = sessionId;
124
+ bestAttention = attention;
68
125
  bestNorm = sessionScore.normalizedScore;
69
- leaderId = sessionId;
70
126
  }
71
127
  }
72
- return { scores, leaderId };
128
+ const prev = this.lastLeaderId;
129
+ if (prev !== null && prev !== best && (scores.get(prev)?.score ?? 0) > 0) {
130
+ const prevAttention = this.state.get(prev)?.attention ?? 0;
131
+ if (bestAttention <= prevAttention + this.attentionAlpha) {
132
+ return prev;
133
+ }
134
+ }
135
+ return best;
136
+ }
137
+ /**
138
+ * Ticks until score hits 0 with no further activity. With asymmetric decay
139
+ * this is no longer score/BASE_DECAY — simulate the fade (EMA cools too,
140
+ * and the boost stops at the floor). Bounded by the score itself
141
+ * (decay ≥ 1), i.e. at most maxTicks iterations.
142
+ */
143
+ estimateIdleTicks(st, floorTicks) {
144
+ let score = st.score;
145
+ let ema = st.ema;
146
+ let ticks = 0;
147
+ while (score > 0) {
148
+ ema *= 1 - this.emaAlpha;
149
+ score = score > floorTicks
150
+ ? Math.max(floorTicks, score - (BASE_DECAY + DECAY_BOOST * Math.min(1, ema)))
151
+ : score - BASE_DECAY;
152
+ ticks++;
153
+ }
154
+ return ticks;
73
155
  }
74
156
  /** Remove session state on close */
75
157
  removeSession(sessionId) {
76
158
  this.state.delete(sessionId);
159
+ if (this.lastLeaderId === sessionId) {
160
+ this.lastLeaderId = null;
161
+ }
77
162
  }
78
163
  /** Clear all state (day boundary, daemon stop) */
79
164
  clear() {
80
165
  this.state.clear();
166
+ this.lastLeaderId = null;
81
167
  }
82
168
  getOrCreateState(sessionId) {
83
169
  let st = this.state.get(sessionId);
84
170
  if (!st) {
85
- st = { score: 0, ema: 0 };
171
+ st = { score: 0, ema: 0, attention: 0 };
86
172
  this.state.set(sessionId, st);
87
173
  }
88
174
  return st;
@@ -1 +1 @@
1
- {"version":3,"file":"activity-evaluator.js","sourceRoot":"","sources":["../../src/core/activity-evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-evaluator.js","sourceRoot":"","sources":["../../src/core/activity-evaluator.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,8 @@ export declare function getSensitivityForRepo(config: AppConfig, repo: string):
19
19
  * Returns undefined when nothing is configured; the caller takes over.
20
20
  */
21
21
  export declare function getConfiguredDefaultBranchName(config: AppConfig, repoPath: string): string | undefined;
22
- /** Resolve (minTicks, maxTicks, ignoreIdleTimeout) for evaluator from sensitivity. */
22
+ /** Resolve (maxTicks, ignoreIdleTimeout) for evaluator from sensitivity. */
23
23
  export declare function resolveSensitivityTicks(level: SensitivityLevel, pollSeconds: number): {
24
- minTicks: number;
25
24
  maxTicks: number;
26
25
  ignoreIdleTimeout: boolean;
27
26
  };
@@ -182,12 +182,10 @@ export function getConfiguredDefaultBranchName(config, repoPath) {
182
182
  ?? config.defaultBranches?.[repoPath]
183
183
  ?? config.defaultBranch;
184
184
  }
185
- /** Resolve (minTicks, maxTicks, ignoreIdleTimeout) for evaluator from sensitivity. */
185
+ /** Resolve (maxTicks, ignoreIdleTimeout) for evaluator from sensitivity. */
186
186
  export function resolveSensitivityTicks(level, pollSeconds) {
187
- const t = SENSITIVITY_TIMEOUTS[level];
188
187
  return {
189
- minTicks: t.min * 60 / pollSeconds,
190
- maxTicks: t.max * 60 / pollSeconds,
188
+ maxTicks: SENSITIVITY_TIMEOUTS[level] * 60 / pollSeconds,
191
189
  ignoreIdleTimeout: level === SensitivityLevel.AlwaysOn,
192
190
  };
193
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}