@hydranium/core 1.0.0-next.270 → 1.0.0-next.271

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/lib/langium/document-builder/build-session.d.ts +6 -5
  2. package/lib/langium/document-builder/build-session.d.ts.map +1 -1
  3. package/lib/langium/document-builder/build-session.js +5 -5
  4. package/lib/langium/document-builder/build-session.js.map +1 -1
  5. package/lib/langium/document-builder/document-builder.d.ts +3 -2
  6. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  7. package/lib/langium/document-builder/document-builder.js +10 -11
  8. package/lib/langium/document-builder/document-builder.js.map +1 -1
  9. package/lib/langium/integrity/integrity-service.js +2 -2
  10. package/lib/langium/integrity/integrity-service.js.map +1 -1
  11. package/lib/langium/workspace/self-save-registry.d.ts +6 -8
  12. package/lib/langium/workspace/self-save-registry.d.ts.map +1 -1
  13. package/lib/langium/workspace/self-save-registry.js +8 -10
  14. package/lib/langium/workspace/self-save-registry.js.map +1 -1
  15. package/lib/node/measure-memory.d.ts.map +1 -1
  16. package/lib/node/measure-memory.js +4 -4
  17. package/lib/node/measure-memory.js.map +1 -1
  18. package/lib/node/memory-monitor.d.ts.map +1 -1
  19. package/lib/node/memory-monitor.js +6 -5
  20. package/lib/node/memory-monitor.js.map +1 -1
  21. package/lib/node/profile-capture.d.ts +4 -2
  22. package/lib/node/profile-capture.d.ts.map +1 -1
  23. package/lib/node/profile-capture.js +7 -5
  24. package/lib/node/profile-capture.js.map +1 -1
  25. package/lib/node/server-state-snapshot.js +4 -4
  26. package/lib/node/server-state-snapshot.js.map +1 -1
  27. package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
  28. package/lib/testing/stub-writable-file-system.js +2 -1
  29. package/lib/testing/stub-writable-file-system.js.map +1 -1
  30. package/package.json +5 -5
  31. package/src/langium/document-builder/build-session.ts +4 -3
  32. package/src/langium/document-builder/document-builder.ts +11 -11
  33. package/src/langium/integrity/integrity-service.ts +2 -2
  34. package/src/langium/workspace/self-save-registry.ts +10 -12
  35. package/src/node/measure-memory.ts +4 -4
  36. package/src/node/memory-monitor.ts +6 -5
  37. package/src/node/profile-capture.ts +7 -12
  38. package/src/node/server-state-snapshot.ts +5 -5
  39. package/src/testing/stub-writable-file-system.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"measure-memory.js","sourceRoot":"","sources":["../../src/node/measure-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measure-memory.js","sourceRoot":"","sources":["../../src/node/measure-memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory-monitor.d.ts","sourceRoot":"","sources":["../../src/node/memory-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAEjF,mFAAmF;AACnF,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAClD,+EAA+E;AAC/E,eAAO,MAAM,iCAAiC,OAAO,CAAC;AACtD,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAC1C,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAIhD,MAAM,WAAW,oBAAoB;IAClC,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kIAAkI;IAClI,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,IAAI,CAqDtH"}
1
+ {"version":3,"file":"memory-monitor.d.ts","sourceRoot":"","sources":["../../src/node/memory-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAEjF,mFAAmF;AACnF,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAClD,+EAA+E;AAC/E,eAAO,MAAM,iCAAiC,OAAO,CAAC;AACtD,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAC1C,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAIhD,MAAM,WAAW,oBAAoB;IAClC,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kIAAkI;IAClI,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,IAAI,CAsDtH"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { Format } from '@hydranium/protocol';
9
+ import { Format, SystemClock } from '@hydranium/protocol';
10
10
  import * as v8 from 'node:v8';
11
11
  /** Heap usage ratio (heapUsed / heap_size_limit) above which we emit a warning. */
12
12
  export const DEFAULT_MEMORY_WARN_THRESHOLD = 0.85;
@@ -33,8 +33,10 @@ export function startMemoryMonitor(shared, options = {}) {
33
33
  const criticalThreshold = options.criticalThreshold ?? DEFAULT_MEMORY_CRITICAL_THRESHOLD;
34
34
  const intervalMs = options.intervalMs ?? DEFAULT_MEMORY_INTERVAL_MS;
35
35
  const cooldownMs = options.cooldownMs ?? DEFAULT_COOLDOWN_MS;
36
+ // Not `shared.Clock`, which a test may fake: the samples come on a real interval, so the cooldown runs on real time too.
37
+ const clock = new SystemClock();
36
38
  let lastSeverity = 'ok';
37
- let lastEmittedAt = 0;
39
+ let sinceEmitted;
38
40
  const severityFor = (ratio) => {
39
41
  if (ratio >= criticalThreshold) {
40
42
  return 'critical';
@@ -52,8 +54,7 @@ export function startMemoryMonitor(shared, options = {}) {
52
54
  if (severity === 'ok' && lastSeverity === 'ok') {
53
55
  return;
54
56
  }
55
- const now = Date.now();
56
- const shouldEmit = severity !== lastSeverity || now - lastEmittedAt >= cooldownMs;
57
+ const shouldEmit = severity !== lastSeverity || sinceEmitted === undefined || sinceEmitted.elapsedMs >= cooldownMs;
57
58
  if (!shouldEmit) {
58
59
  return;
59
60
  }
@@ -72,7 +73,7 @@ export function startMemoryMonitor(shared, options = {}) {
72
73
  logger.info(message);
73
74
  }
74
75
  lastSeverity = severity;
75
- lastEmittedAt = now;
76
+ sinceEmitted = clock.stopwatch();
76
77
  };
77
78
  const interval = setInterval(check, intervalMs);
78
79
  interval.unref?.();
@@ -1 +1 @@
1
- {"version":3,"file":"memory-monitor.js","sourceRoot":"","sources":["../../src/node/memory-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-monitor.js","sourceRoot":"","sources":["../../src/node/memory-monitor.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { type ProfileCaptureOptions } from '@hydranium/protocol';
9
+ import { type Clock, type ProfileCaptureOptions, type Stopwatch } from '@hydranium/protocol';
10
10
  import { PerformanceObserver, type IntervalHistogram } from 'node:perf_hooks';
11
11
  export declare const DEFAULT_CPU_INTERVAL_MICROS = 1000;
12
12
  export declare const DEFAULT_ALLOCATION_INTERVAL_BYTES = 32768;
@@ -88,7 +88,9 @@ export interface InspectorSessionLike {
88
88
  */
89
89
  export declare class ProfileCapture {
90
90
  protected readonly options: ProfileCaptureOptions;
91
- protected startedAt: number;
91
+ /** Times the window: real time, since what it frames is real CPU and memory. */
92
+ protected readonly clock: Clock;
93
+ protected sinceStart: Stopwatch;
92
94
  protected startCpu: NodeJS.CpuUsage;
93
95
  protected startMem: NodeJS.MemoryUsage;
94
96
  protected session?: InspectorSessionLike;
@@ -1 +1 @@
1
- {"version":3,"file":"profile-capture.d.ts","sourceRoot":"","sources":["../../src/node/profile-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-capture.d.ts","sourceRoot":"","sources":["../../src/node/profile-capture.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,10 @@
15
15
  * The mechanical, process-level counterpart to the protocol's in-code
16
16
  * `ProfileSession` (aggregate self-time spans).
17
17
  */
18
- import { Format } from '@hydranium/protocol';
18
+ import { Format, SystemClock } from '@hydranium/protocol';
19
19
  import * as fs from 'node:fs';
20
20
  import { Session } from 'node:inspector';
21
- import { constants, monitorEventLoopDelay, PerformanceObserver, performance } from 'node:perf_hooks';
21
+ import { constants, monitorEventLoopDelay, PerformanceObserver } from 'node:perf_hooks';
22
22
  import { snapshotFilePath, writeHeapSnapshotToDir } from '@hydranium/protocol/node';
23
23
  export const DEFAULT_CPU_INTERVAL_MICROS = 1000;
24
24
  export const DEFAULT_ALLOCATION_INTERVAL_BYTES = 32768;
@@ -117,7 +117,9 @@ let active;
117
117
  */
118
118
  export class ProfileCapture {
119
119
  options;
120
- startedAt = 0;
120
+ /** Times the window: real time, since what it frames is real CPU and memory. */
121
+ clock = new SystemClock();
122
+ sinceStart = this.clock.stopwatch();
121
123
  startCpu = { user: 0, system: 0 };
122
124
  startMem = process.memoryUsage();
123
125
  session;
@@ -149,7 +151,7 @@ export class ProfileCapture {
149
151
  return capture;
150
152
  }
151
153
  async begin() {
152
- this.startedAt = performance.now();
154
+ this.sinceStart = this.clock.stopwatch();
153
155
  this.startCpu = process.cpuUsage();
154
156
  this.startMem = process.memoryUsage();
155
157
  if (this.options.cpu || this.options.allocation) {
@@ -188,7 +190,7 @@ export class ProfileCapture {
188
190
  if (active !== this) {
189
191
  throw new Error('ProfileCapture.stop called on an inactive capture.');
190
192
  }
191
- const durationMs = performance.now() - this.startedAt;
193
+ const durationMs = this.sinceStart.elapsedMs;
192
194
  // Sample cpu + memory at the workload boundary (alongside durationMs), NOT
193
195
  // after teardown: the synchronous profile write inflates RSS and the heap
194
196
  // snapshot forces a full GC, so a post-teardown read would fold the
@@ -1 +1 @@
1
- {"version":3,"file":"profile-capture.js","sourceRoot":"","sources":["../../src/node/profile-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-capture.js","sourceRoot":"","sources":["../../src/node/profile-capture.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { Format } from '@hydranium/protocol';
9
+ import { Format, SystemClock } from '@hydranium/protocol';
10
10
  import { DocumentState } from '@hydranium/langium';
11
11
  import { isCstShed } from '../langium/residency/cst-residency-service.js';
12
12
  import { performance } from 'node:perf_hooks';
@@ -23,7 +23,7 @@ export const DEFAULT_OPEN_DOCUMENTS_LIST_CAP = 25;
23
23
  * requested via `options` ({@link ServerStateSnapshotOptions}).
24
24
  */
25
25
  export function formatServerState(documents, label, options) {
26
- const now = performance.now();
26
+ const sinceSample = new SystemClock().stopwatch();
27
27
  const mem = process.memoryUsage();
28
28
  const heap = v8.getHeapStatistics();
29
29
  const cpu = process.cpuUsage();
@@ -41,7 +41,7 @@ export function formatServerState(documents, label, options) {
41
41
  lines.push(` v8 malloced ${Format.bytes(heap.malloced_memory)}, peak ${Format.bytes(heap.peak_malloced_memory)}, ` +
42
42
  `native contexts ${heap.number_of_native_contexts}, detached contexts ${heap.number_of_detached_contexts}`);
43
43
  if (lastSample) {
44
- const wallMs = now - lastSample.atMs;
44
+ const wallMs = lastSample.sinceSample.elapsedMs;
45
45
  const userMs = (cpu.user - lastSample.cpu.user) / 1000;
46
46
  const systemMs = (cpu.system - lastSample.cpu.system) / 1000;
47
47
  const cpuPct = wallMs > 0 ? Math.round(((userMs + systemMs) / wallMs) * 100) : 0;
@@ -86,7 +86,7 @@ export function formatServerState(documents, label, options) {
86
86
  lines.push(` … and ${openDocuments.length - listCap} more`);
87
87
  }
88
88
  }
89
- lastSample = { atMs: now, cpu, elu };
89
+ lastSample = { sinceSample, cpu, elu };
90
90
  return lines.join('\n');
91
91
  }
92
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server-state-snapshot.js","sourceRoot":"","sources":["../../src/node/server-state-snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-state-snapshot.js","sourceRoot":"","sources":["../../src/node/server-state-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stub-writable-file-system.d.ts","sourceRoot":"","sources":["../../src/testing/stub-writable-file-system.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,eAAe,GAAG,WAAW,CAAC;IACzH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,KAAK,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,0BAA0B,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,sBAAsB,CAgB1G"}
1
+ {"version":3,"file":"stub-writable-file-system.d.ts","sourceRoot":"","sources":["../../src/testing/stub-writable-file-system.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,eAAe,GAAG,WAAW,CAAC;IACzH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,KAAK,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,0BAA0B,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,sBAAsB,CAgB1G"}
@@ -6,6 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
+ import { SystemClock } from '@hydranium/protocol';
9
10
  export function makeStubWritableFileSystem(selfSaveRegistry) {
10
11
  const writes = [];
11
12
  return {
@@ -16,7 +17,7 @@ export function makeStubWritableFileSystem(selfSaveRegistry) {
16
17
  readDirectory: async () => [],
17
18
  async writeFile(uri, content) {
18
19
  writes.push({ uri: uri.toString(), content });
19
- selfSaveRegistry?.register(uri.fsPath, Date.now());
20
+ selfSaveRegistry?.register(uri.fsPath, new SystemClock().now());
20
21
  },
21
22
  reset() {
22
23
  writes.length = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"stub-writable-file-system.js","sourceRoot":"","sources":["../../src/testing/stub-writable-file-system.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAkClF,MAAM,UAAU,0BAA0B,CAAC,gBAAuC;IAC/E,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,OAAO;QACJ,IAAI,MAAM;YACP,OAAO,MAAM,CAAC;QACjB,CAAC;QACD,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACxB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC7B,KAAK,CAAC,SAAS,CAAC,GAAQ,EAAE,OAAe;YACtC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,KAAK;YACF,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;KACH,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"stub-writable-file-system.js","sourceRoot":"","sources":["../../src/testing/stub-writable-file-system.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAGlF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgClD,MAAM,UAAU,0BAA0B,CAAC,gBAAuC;IAC/E,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,OAAO;QACJ,IAAI,MAAM;YACP,OAAO,MAAM,CAAC;QACjB,CAAC;QACD,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACxB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC7B,KAAK,CAAC,SAAS,CAAC,GAAQ,EAAE,OAAe;YACtC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,KAAK;YACF,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;KACH,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/core",
3
- "version": "1.0.0-next.270",
3
+ "version": "1.0.0-next.271",
4
4
  "description": "Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, @hydranium/glsp-server).",
5
5
  "keywords": [
6
6
  "ast",
@@ -83,8 +83,8 @@
83
83
  "diff": "^5.2.0"
84
84
  },
85
85
  "devDependencies": {
86
- "@hydranium/langium": "1.0.0-next.270",
87
- "@hydranium/protocol": "1.0.0-next.270",
86
+ "@hydranium/langium": "1.0.0-next.271",
87
+ "@hydranium/protocol": "1.0.0-next.271",
88
88
  "@playwright/test": "^1.40.0",
89
89
  "@types/diff": "^5.2.0",
90
90
  "rimraf": "^5.0.0",
@@ -96,8 +96,8 @@
96
96
  "vscode-languageserver-types": "^3.17.5"
97
97
  },
98
98
  "peerDependencies": {
99
- "@hydranium/langium": "1.0.0-next.270",
100
- "@hydranium/protocol": "1.0.0-next.270",
99
+ "@hydranium/langium": "1.0.0-next.271",
100
+ "@hydranium/protocol": "1.0.0-next.271",
101
101
  "@playwright/test": "^1.40.0",
102
102
  "vscode-jsonrpc": "^9.0.0",
103
103
  "vscode-languageserver": "~10.0.1",
@@ -8,6 +8,7 @@
8
8
  ********************************************************************************/
9
9
 
10
10
  import { type URI } from '@hydranium/langium';
11
+ import { type Stopwatch } from '@hydranium/protocol';
11
12
 
12
13
  /** What a build is about, handed to `HydraniumDocumentBuilder.createBuildSession`. */
13
14
  export interface BuildSessionContext {
@@ -59,14 +60,14 @@ export class BuildSession {
59
60
  traceId?: number;
60
61
  /** Set when the build ended in `OperationCancelled`, so the successor can tag itself "cancels #N". */
61
62
  cancelled = false;
62
- /** Phase-reached lines produced so far; the first one measures from {@link startMs} rather than from the previous phase. */
63
+ /** Phase-reached lines produced so far; the first one measures from {@link sinceStart} rather than from the previous phase. */
63
64
  phasesLogged = 0;
64
65
  /** Lines held back by {@link detailThresholdMs}; flushed or dropped when the build ends. */
65
66
  readonly bufferedLines: string[] = [];
66
67
 
67
68
  constructor(
68
- /** Millisecond timestamp the build started at, on the same clock as `performance.now()`. */
69
- readonly startMs: number,
69
+ /** Running since the build started. */
70
+ readonly sinceStart: Stopwatch,
70
71
  /** What caused this build — a formatted URI, a count summary, or an adopter label. */
71
72
  readonly trigger: string,
72
73
  /** True when {@link trigger} already states the document count, so a phase line must not repeat it. */
@@ -9,6 +9,7 @@
9
9
 
10
10
  import {
11
11
  type Clock,
12
+ type Stopwatch,
12
13
  type LogThreshold,
13
14
  type MaybeObservableValue,
14
15
  ObservableValue,
@@ -254,7 +255,8 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
254
255
  protected languageFileExtensions: string[] = [];
255
256
  /** {@link ExtendedServiceRegistry.registrations} {@link languageFileExtensions} was built at; `-1` until first built. */
256
257
  protected cachedRegistrations = -1;
257
- protected lastPhaseMs = 0;
258
+ /** Running since the last phase was reached, or since the active build started. */
259
+ protected sinceLastPhase?: Stopwatch;
258
260
  /** Resolved from {@link DocumentBuilderOptions.refreshCrossDocumentComputedScopes}. */
259
261
  protected readonly refreshCrossDocumentComputedScopes: boolean;
260
262
  /** LSP event name (e.g. `'didChangeWatchedFiles'`) staged for the next `update()` call. */
@@ -384,7 +386,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
384
386
  // the document is keyed by its real path.
385
387
  const doc = this.langiumDocuments.getDocument(UriUtils.toUri(this.uriPolicy.canonicalUri(uri)));
386
388
  const docState = doc ? DocumentState[doc.state] : 'unknown (document not loaded)';
387
- const lastPhase = this.lastPhaseMs > 0 ? `${Math.round(performance.now() - this.lastPhaseMs)}ms ago` : 'no phase observed';
389
+ const lastPhase = this.sinceLastPhase ? `${Math.round(this.sinceLastPhase.elapsedMs)}ms ago` : 'no phase observed';
388
390
  return `current state: '${docState}', last phase: ${lastPhase}, active build: ${this.formatSession(this.activeSession)}`;
389
391
  }
390
392
 
@@ -407,7 +409,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
407
409
  return 'none';
408
410
  }
409
411
  const id = session.traceId !== undefined ? `#${session.traceId}` : 'untimed';
410
- return `${id} (${session.trigger}, ${Math.round(performance.now() - session.startMs)}ms in)`;
412
+ return `${id} (${session.trigger}, ${Math.round(session.sinceStart.elapsedMs)}ms in)`;
411
413
  }
412
414
 
413
415
  // ============================================================
@@ -1217,7 +1219,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
1217
1219
  this.activeSession = session;
1218
1220
  // A phase's "since previous phase" must measure from the build's start,
1219
1221
  // not from whenever the last build's final phase happened to land.
1220
- this.lastPhaseMs = session.startMs;
1222
+ this.sinceLastPhase = session.sinceStart;
1221
1223
  return this.tracer.time(
1222
1224
  label,
1223
1225
  async () => {
@@ -1252,7 +1254,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
1252
1254
  * throughout it.
1253
1255
  */
1254
1256
  protected createBuildSession(context: BuildSessionContext): BuildSession {
1255
- return new BuildSession(performance.now(), context.trigger, context.triggerCountsDocs, this.phaseDetailMs.value);
1257
+ return new BuildSession(this.clock.stopwatch(), context.trigger, context.triggerCountsDocs, this.phaseDetailMs.value);
1256
1258
  }
1257
1259
 
1258
1260
  /**
@@ -1277,8 +1279,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
1277
1279
  * {@link log}, which would route them straight back into the buffer.
1278
1280
  */
1279
1281
  protected flushSession(session: BuildSession): void {
1280
- const elapsedMs = performance.now() - session.startMs;
1281
- if (elapsedMs >= session.detailThresholdMs) {
1282
+ if (session.sinceStart.elapsedMs >= session.detailThresholdMs) {
1282
1283
  for (const line of session.bufferedLines) {
1283
1284
  this.emit(line);
1284
1285
  }
@@ -1326,9 +1327,8 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
1326
1327
 
1327
1328
  /** Called once per phase-reached event. Override to add custom side-effects beyond logging. */
1328
1329
  protected onPhaseReached(state: DocumentState, documents: LangiumDocument[]): void {
1329
- const now = performance.now();
1330
- const elapsedMs = Math.round(now - this.lastPhaseMs);
1331
- this.lastPhaseMs = now;
1330
+ const elapsedMs = Math.round(this.sinceLastPhase?.elapsedMs ?? 0);
1331
+ this.sinceLastPhase = this.clock.stopwatch();
1332
1332
  // Counted before the line is formatted, so the formatter stays a pure
1333
1333
  // function of state a caller can also set up in a test.
1334
1334
  if (this.activeSession) {
@@ -1355,7 +1355,7 @@ export class HydraniumDocumentBuilder extends DefaultDocumentBuilder {
1355
1355
  }
1356
1356
  const elapsedInfo =
1357
1357
  session && session.phasesLogged <= 1
1358
- ? `${Math.round(performance.now() - session.startMs)}ms since build start`
1358
+ ? `${Math.round(session.sinceStart.elapsedMs)}ms since build start`
1359
1359
  : `${elapsedMs}ms since previous phase`;
1360
1360
  return `Reached phase '${DocumentState[state]}' [${docInfo}, ${elapsedInfo}]`;
1361
1361
  }
@@ -197,7 +197,7 @@ export class DefaultIntegrityService<TRoot extends AstNode = AstNode> implements
197
197
  * rule set to completion against a doomed build.
198
198
  */
199
199
  async enforceBatch(documents: readonly LangiumDocument[], phase: DocumentState, cancelToken: CancellationToken): Promise<void> {
200
- const phaseStart = performance.now();
200
+ const sincePhaseStart = this.services.shared.Clock.stopwatch();
201
201
  let mutatedCount = 0;
202
202
  // Per-rule self-time profiling is opt-in: only spin up a session when the
203
203
  // debug threshold is active, so the production `info` path allocates
@@ -212,7 +212,7 @@ export class DefaultIntegrityService<TRoot extends AstNode = AstNode> implements
212
212
  }
213
213
  await interruptAndCheck(cancelToken);
214
214
  }
215
- const totalMs = Math.round(performance.now() - phaseStart);
215
+ const totalMs = Math.round(sincePhaseStart.elapsedMs);
216
216
  // A repair is the operator's to know of; the timing alone is diagnosis.
217
217
  if (mutatedCount > 0) {
218
218
  this.tracer.info(`enforce ${DocumentState[phase]}: docs=${documents.length}, mutated=${mutatedCount} [${totalMs}ms]`);
@@ -7,7 +7,7 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
 
10
- import { type Clock } from '@hydranium/protocol';
10
+ import { type Clock, type Stopwatch } from '@hydranium/protocol';
11
11
  import { isCaseInsensitiveFileSystem } from '../../util/environment.js';
12
12
  import { type ServerSharedServicesMinimal } from '../shared-services.js';
13
13
 
@@ -48,13 +48,11 @@ export interface SelfSaveRegistry {
48
48
  * save whose content is unchanged is still recognised.
49
49
  */
50
50
  export class DefaultSelfSaveRegistry implements SelfSaveRegistry {
51
- protected readonly entries = new Map<string, { mtimeMs: number; registeredAt: number }>();
51
+ protected readonly entries = new Map<string, { mtimeMs: number; sinceRegistered: Stopwatch }>();
52
52
  /**
53
- * Read time through the shared {@link Clock} rather than `Date.now()`: the
54
- * TTL gates whether an incoming watcher event still counts as a self-save
55
- * echo, so tests advance a fake clock to exercise expiry without a real
56
- * wait. Wall-clock `now()` is correct here — entries are compared against a
57
- * file's `mtime`.
53
+ * Ages entries on a {@link Clock} stopwatch: the TTL is how long ago the
54
+ * write happened, which a wall-clock step would otherwise shorten or
55
+ * stretch. The `mtime` match compares the stored value only.
58
56
  */
59
57
  protected readonly clock: Clock;
60
58
  protected readonly ttlMs: number;
@@ -83,12 +81,12 @@ export class DefaultSelfSaveRegistry implements SelfSaveRegistry {
83
81
 
84
82
  register(fsPath: string, mtimeMs: number): void {
85
83
  this.evictExpired();
86
- this.entries.set(this.key(fsPath), { mtimeMs, registeredAt: this.clock.now() });
84
+ this.entries.set(this.key(fsPath), { mtimeMs, sinceRegistered: this.clock.stopwatch() });
87
85
  }
88
86
 
89
87
  isRegistered(fsPath: string, mtimeMs: number): boolean {
90
88
  const entry = this.entries.get(this.key(fsPath));
91
- if (!entry || this.isExpired(entry.registeredAt)) {
89
+ if (!entry || this.isExpired(entry.sinceRegistered)) {
92
90
  return false;
93
91
  }
94
92
  // Accept mtime equality (some filesystems have 1-second precision).
@@ -107,14 +105,14 @@ export class DefaultSelfSaveRegistry implements SelfSaveRegistry {
107
105
  */
108
106
  protected evictExpired(): void {
109
107
  for (const [key, entry] of this.entries) {
110
- if (this.isExpired(entry.registeredAt)) {
108
+ if (this.isExpired(entry.sinceRegistered)) {
111
109
  this.entries.delete(key);
112
110
  }
113
111
  }
114
112
  }
115
113
 
116
114
  /** Strictly greater, so an entry aged exactly to the TTL is still eligible. */
117
- protected isExpired(registeredAt: number): boolean {
118
- return this.clock.now() - registeredAt > this.ttlMs;
115
+ protected isExpired(sinceRegistered: Stopwatch): boolean {
116
+ return sinceRegistered.elapsedMs > this.ttlMs;
119
117
  }
120
118
  }
@@ -8,10 +8,9 @@
8
8
  ********************************************************************************/
9
9
 
10
10
  import * as fs from 'node:fs';
11
- import { performance } from 'node:perf_hooks';
12
11
  import * as path from 'node:path';
13
12
  import * as v8 from 'node:v8';
14
- import { Format } from '@hydranium/protocol';
13
+ import { Format, SystemClock } from '@hydranium/protocol';
15
14
  import { type ServerSharedServicesMinimal } from '../langium/shared-services.js';
16
15
  import { buildWorkspaceProgrammatically } from '../langium/workspace/initialize-workspace.js';
17
16
  import { tallyAstGroundTruth } from './ast-ground-truth.js';
@@ -120,10 +119,11 @@ export async function measureModelMemory(options: MeasureModelMemoryOptions): Pr
120
119
  const { shared } = options.createServices();
121
120
  const empty = report('after-services-empty');
122
121
 
123
- const start = performance.now();
122
+ // Not `shared.Clock`, which the service factory may fake: the build time is reported as measured.
123
+ const sinceBuildStart = new SystemClock().stopwatch();
124
124
  const build = (): Promise<void> => buildWorkspaceProgrammatically(shared, options.workspace);
125
125
  await (profilingRun ? profilingRun.window('build', build) : build());
126
- const buildMs = performance.now() - start;
126
+ const buildMs = sinceBuildStart.elapsedMs;
127
127
  const docs = shared.workspace.LangiumDocuments.all.toArray();
128
128
  const settleMs = options.settleMs ?? 0;
129
129
  if (settleMs > 0) {
@@ -7,7 +7,7 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
 
10
- import { Format } from '@hydranium/protocol';
10
+ import { Format, type Stopwatch, SystemClock } from '@hydranium/protocol';
11
11
  import * as v8 from 'node:v8';
12
12
  import { type ServerSharedServicesMinimal } from '../langium/shared-services.js';
13
13
 
@@ -52,8 +52,10 @@ export function startMemoryMonitor(shared: ServerSharedServicesMinimal, options:
52
52
  const criticalThreshold = options.criticalThreshold ?? DEFAULT_MEMORY_CRITICAL_THRESHOLD;
53
53
  const intervalMs = options.intervalMs ?? DEFAULT_MEMORY_INTERVAL_MS;
54
54
  const cooldownMs = options.cooldownMs ?? DEFAULT_COOLDOWN_MS;
55
+ // Not `shared.Clock`, which a test may fake: the samples come on a real interval, so the cooldown runs on real time too.
56
+ const clock = new SystemClock();
55
57
  let lastSeverity: Severity = 'ok';
56
- let lastEmittedAt = 0;
58
+ let sinceEmitted: Stopwatch | undefined;
57
59
 
58
60
  const severityFor = (ratio: number): Severity => {
59
61
  if (ratio >= criticalThreshold) {
@@ -73,8 +75,7 @@ export function startMemoryMonitor(shared: ServerSharedServicesMinimal, options:
73
75
  if (severity === 'ok' && lastSeverity === 'ok') {
74
76
  return;
75
77
  }
76
- const now = Date.now();
77
- const shouldEmit = severity !== lastSeverity || now - lastEmittedAt >= cooldownMs;
78
+ const shouldEmit = severity !== lastSeverity || sinceEmitted === undefined || sinceEmitted.elapsedMs >= cooldownMs;
78
79
  if (!shouldEmit) {
79
80
  return;
80
81
  }
@@ -93,7 +94,7 @@ export function startMemoryMonitor(shared: ServerSharedServicesMinimal, options:
93
94
  logger.info(message);
94
95
  }
95
96
  lastSeverity = severity;
96
- lastEmittedAt = now;
97
+ sinceEmitted = clock.stopwatch();
97
98
  };
98
99
 
99
100
  const interval = setInterval(check, intervalMs);