@skillcap/gdh 0.26.5 → 0.26.7
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.
- package/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +117 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +1 -2
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +7 -7
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/templates/authoring-hook.js.tpl +191 -40
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/dist/authoring-state-store.d.ts +3 -0
- package/node_modules/@gdh/authoring/dist/authoring-state-store.d.ts.map +1 -0
- package/node_modules/@gdh/authoring/dist/authoring-state-store.js +19 -0
- package/node_modules/@gdh/authoring/dist/authoring-state-store.js.map +1 -0
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts +15 -21
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js +22 -37
- package/node_modules/@gdh/authoring/dist/diagnostics-broker-contract.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.js +121 -15
- package/node_modules/@gdh/authoring/dist/diagnostics-broker.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp-broker-snapshot.d.ts +28 -0
- package/node_modules/@gdh/authoring/dist/lsp-broker-snapshot.d.ts.map +1 -0
- package/node_modules/@gdh/authoring/dist/lsp-broker-snapshot.js +67 -0
- package/node_modules/@gdh/authoring/dist/lsp-broker-snapshot.js.map +1 -0
- package/node_modules/@gdh/authoring/dist/lsp-test-server.test-utils.d.ts +1 -0
- package/node_modules/@gdh/authoring/dist/lsp-test-server.test-utils.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp-test-server.test-utils.js +3 -0
- package/node_modules/@gdh/authoring/dist/lsp-test-server.test-utils.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp-warmup.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp-warmup.js +2 -1
- package/node_modules/@gdh/authoring/dist/lsp-warmup.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp.js +11 -73
- package/node_modules/@gdh/authoring/dist/lsp.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/project.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/project.js +24 -8
- package/node_modules/@gdh/authoring/dist/project.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/scene-resource.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/scene-resource.js +73 -29
- package/node_modules/@gdh/authoring/dist/scene-resource.js.map +1 -1
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/dist/index.js +5 -5
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.js +2 -1
- package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +21 -21
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +7 -7
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/agent-contract.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/agent-contract.js +0 -1
- package/node_modules/@gdh/docs/dist/agent-contract.js.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +8 -100
- package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
- package/node_modules/@gdh/docs/dist/templates/guidance/authoring-and-validation.md.tpl +15 -103
- package/node_modules/@gdh/docs/dist/templates/guidance/project-surfaces.md.tpl +6 -11
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/mcp/dist/index.js +37 -4
- package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
- package/node_modules/@gdh/docs/dist/templates/guidance/gdh-glossary.md.tpl +0 -34
- package/node_modules/@gdh/docs/dist/templates/guidance/persistence-semantics.md.tpl +0 -24
- package/node_modules/@gdh/docs/dist/templates/guidance/project-migration.md.tpl +0 -19
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* Defines the types, constants, identity normalization helpers, and health
|
|
5
5
|
* classification logic for the persistent diagnostics broker.
|
|
6
6
|
*
|
|
7
|
-
* The broker is target/worktree
|
|
8
|
-
*
|
|
9
|
-
* It builds on the existing managed LSP lifecycle rather than introducing
|
|
10
|
-
*
|
|
7
|
+
* The authoring diagnostics broker is a target/worktree-scoped, file-backed
|
|
8
|
+
* snapshot. Its state lives under `.gdh-state/authoring/diagnostics-broker/`.
|
|
9
|
+
* It builds on the existing managed LSP lifecycle rather than introducing a
|
|
10
|
+
* second Godot editor process or separate diagnostics daemon.
|
|
11
11
|
*
|
|
12
12
|
* Raw LSP payloads are provenance only. All product-facing shapes use
|
|
13
13
|
* `GdhAuthoringDiagnostic` from `@gdh/core`.
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
* ADR: docs/adrs/0003-lsp-based-authoring-validation.md (Persistent Diagnostics Broker Addendum)
|
|
17
17
|
*/
|
|
18
18
|
import path from "node:path";
|
|
19
|
-
import {
|
|
20
|
-
export {
|
|
19
|
+
import { GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH, } from "@gdh/core";
|
|
20
|
+
export { GDH_DIAGNOSTICS_BROKER_PROTOCOL_VERSION, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH, };
|
|
21
21
|
export const DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS = 60_000;
|
|
22
22
|
/**
|
|
23
23
|
* Normalize target/worktree identity for the diagnostics broker.
|
|
@@ -48,14 +48,15 @@ export function normalizeDiagnosticsBrokerTargetIdentity(input) {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
|
-
* Validate broker metadata and classify its health state.
|
|
51
|
+
* Validate file-backed broker snapshot metadata and classify its health state.
|
|
52
52
|
*
|
|
53
|
-
* Returns `missing` if metadata is null
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
53
|
+
* Returns `missing` if metadata is null, `incompatible` for protocol, GDH
|
|
54
|
+
* version, or identity mismatches, and `ready` when the snapshot metadata
|
|
55
|
+
* matches the current target. Live LSP availability is classified by
|
|
56
|
+
* diagnostics-broker.ts against the managed LSP instance, not by a separate
|
|
57
|
+
* daemon/heartbeat handshake.
|
|
57
58
|
*/
|
|
58
|
-
export function
|
|
59
|
+
export function validateDiagnosticsBrokerMetadata(input) {
|
|
59
60
|
const reasons = [];
|
|
60
61
|
const metadata = input.metadata;
|
|
61
62
|
if (metadata === null) {
|
|
@@ -83,23 +84,6 @@ export function validateDiagnosticsBrokerHandshake(input) {
|
|
|
83
84
|
input.expectedIdentity.normalizedStateRootPath) {
|
|
84
85
|
reasons.push("broker_state_root_mismatch");
|
|
85
86
|
}
|
|
86
|
-
if (!input.tokenPresent) {
|
|
87
|
-
reasons.push("broker_token_missing");
|
|
88
|
-
}
|
|
89
|
-
if (!input.pidAlive) {
|
|
90
|
-
reasons.push("broker_process_not_alive");
|
|
91
|
-
}
|
|
92
|
-
if (metadata.host !== GDH_DIAGNOSTICS_BROKER_LOOPBACK_HOST) {
|
|
93
|
-
// Not currently a typed reason since host is fixed by the protocol.
|
|
94
|
-
// Treat it as a protocol mismatch if host is non-loopback.
|
|
95
|
-
reasons.push("broker_protocol_mismatch");
|
|
96
|
-
}
|
|
97
|
-
const nowMs = input.nowMs ?? Date.now();
|
|
98
|
-
const heartbeatMs = Date.parse(metadata.lastHeartbeatAt);
|
|
99
|
-
const heartbeatStaleAfterMs = input.heartbeatStaleAfterMs ?? GDH_DIAGNOSTICS_BROKER_DEFAULT_HEARTBEAT_STALE_AFTER_MS;
|
|
100
|
-
if (!Number.isFinite(heartbeatMs) || nowMs - heartbeatMs > heartbeatStaleAfterMs) {
|
|
101
|
-
reasons.push("broker_heartbeat_stale");
|
|
102
|
-
}
|
|
103
87
|
const lifecycle = classifyDiagnosticsBrokerLifecycle(reasons);
|
|
104
88
|
return {
|
|
105
89
|
lifecycle,
|
|
@@ -119,16 +103,13 @@ function classifyDiagnosticsBrokerLifecycle(reasons) {
|
|
|
119
103
|
].includes(r))) {
|
|
120
104
|
return "incompatible";
|
|
121
105
|
}
|
|
122
|
-
if (reasons.some((r) => ["broker_token_missing", "broker_heartbeat_stale", "broker_process_not_alive"].includes(r))) {
|
|
123
|
-
return "stale";
|
|
124
|
-
}
|
|
125
106
|
return "unavailable";
|
|
126
107
|
}
|
|
127
108
|
/**
|
|
128
109
|
* Classify the freshness state of a file's diagnostics snapshot.
|
|
129
110
|
*
|
|
130
111
|
* - `missing`: no snapshot exists for this file
|
|
131
|
-
* - `unavailable`: snapshot exists but LSP instance identity is missing
|
|
112
|
+
* - `unavailable`: snapshot exists but collection did not complete or LSP instance identity is missing
|
|
132
113
|
* - `stale`: snapshot is older than the configured staleness threshold
|
|
133
114
|
* - `fresh`: snapshot is within the staleness threshold
|
|
134
115
|
*/
|
|
@@ -137,6 +118,13 @@ export function classifyDiagnosticsFreshness(input) {
|
|
|
137
118
|
if (fileSnapshot === null) {
|
|
138
119
|
return "missing";
|
|
139
120
|
}
|
|
121
|
+
if (fileSnapshot.collectionState === "timeout" ||
|
|
122
|
+
fileSnapshot.collectionState === "unavailable") {
|
|
123
|
+
return "unavailable";
|
|
124
|
+
}
|
|
125
|
+
if (fileSnapshot.collectionState === "skipped") {
|
|
126
|
+
return "missing";
|
|
127
|
+
}
|
|
140
128
|
if (fileSnapshot.lspInstanceId === null) {
|
|
141
129
|
return "unavailable";
|
|
142
130
|
}
|
|
@@ -228,7 +216,7 @@ export function buildDiagnosticsSnapshot(health, files, options = {}) {
|
|
|
228
216
|
infoCount,
|
|
229
217
|
};
|
|
230
218
|
}
|
|
231
|
-
// ───
|
|
219
|
+
// ─── Snapshot Path Helpers ────────────────────────────────────────────────────
|
|
232
220
|
/**
|
|
233
221
|
* Resolve the standard file paths used by the diagnostics broker under
|
|
234
222
|
* `.gdh-state/authoring/diagnostics-broker/`.
|
|
@@ -237,9 +225,6 @@ export function resolveDiagnosticsBrokerPaths(stateRootPath) {
|
|
|
237
225
|
const brokerDir = path.join(stateRootPath, GDH_DIAGNOSTICS_BROKER_STATE_RELATIVE_PATH);
|
|
238
226
|
return {
|
|
239
227
|
brokerDir,
|
|
240
|
-
metadataPath: path.join(brokerDir, "metadata.json"),
|
|
241
|
-
tokenFilePath: path.join(brokerDir, "token"),
|
|
242
|
-
heartbeatPath: path.join(brokerDir, "heartbeat"),
|
|
243
228
|
snapshotPath: path.join(brokerDir, "snapshot.json"),
|
|
244
229
|
primedMarkerPath: path.join(brokerDir, ".primed"),
|
|
245
230
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics-broker-contract.js","sourceRoot":"","sources":["../src/diagnostics-broker-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAW7B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"diagnostics-broker-contract.js","sourceRoot":"","sources":["../src/diagnostics-broker-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics-broker.d.ts","sourceRoot":"","sources":["../src/diagnostics-broker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAEV,wBAAwB,
|
|
1
|
+
{"version":3,"file":"diagnostics-broker.d.ts","sourceRoot":"","sources":["../src/diagnostics-broker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAEV,wBAAwB,EAKxB,sBAAsB,EAEtB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,WAAW,CAAC;AA8CnB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;CACrD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAID;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,sBAAsB,CAAC,CAqBjC;AAID;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAyBjC;AAID;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,iCAAiC,CAAC,CAoI5C;AAID;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gCAAgC,CAAC,CAoF3C;AAID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CA2B1C"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* ADR: docs/adrs/0003-lsp-based-authoring-validation.md (Persistent Diagnostics Broker Addendum)
|
|
17
17
|
*/
|
|
18
18
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
19
|
-
import { createHash } from "node:crypto";
|
|
19
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
20
20
|
import fs from "node:fs/promises";
|
|
21
21
|
import { realpathSync } from "node:fs";
|
|
22
22
|
import path from "node:path";
|
|
@@ -24,11 +24,15 @@ import { connectGodotLspClient, GdhLspClientError } from "./lsp-client.js";
|
|
|
24
24
|
import { buildDiagnosticsSnapshot, classifyDiagnosticsFreshness, DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS, normalizeDiagnosticsBrokerTargetIdentity, resolveDiagnosticsBrokerPaths, } from "./diagnostics-broker-contract.js";
|
|
25
25
|
import { getManagedLspStatus } from "./lsp.js";
|
|
26
26
|
import { resolveScopedProjectFiles } from "./lsp.js";
|
|
27
|
+
import { writeJsonFileAtomically } from "./authoring-state-store.js";
|
|
27
28
|
// ─── Constants ────────────────────────────────────────────────────────────────
|
|
28
29
|
const BROKER_CONNECT_TIMEOUT_MS = 1_000;
|
|
29
30
|
const BROKER_REQUEST_TIMEOUT_MS = 1_000;
|
|
30
31
|
const BROKER_DIAGNOSTIC_WAIT_TIMEOUT_MS = resolveBrokerDiagnosticWaitTimeoutMs();
|
|
31
32
|
const BROKER_SNAPSHOT_SCHEMA_VERSION = 1;
|
|
33
|
+
const BROKER_SNAPSHOT_WRITE_LOCK_STALE_AFTER_MS = 30_000;
|
|
34
|
+
const BROKER_SNAPSHOT_WRITE_LOCK_TIMEOUT_MS = 2_000;
|
|
35
|
+
const BROKER_SNAPSHOT_WRITE_LOCK_RETRY_MS = 25;
|
|
32
36
|
// ─── Status ──────────────────────────────────────────────────────────────────
|
|
33
37
|
/**
|
|
34
38
|
* Return a lightweight status summary for the broker: whether a snapshot exists,
|
|
@@ -172,6 +176,8 @@ export async function refreshAuthoringDiagnostics(input) {
|
|
|
172
176
|
uri: c.uri,
|
|
173
177
|
filePath: c.filePath,
|
|
174
178
|
contentHash: c.contentHash,
|
|
179
|
+
collectionState: c.collectionState,
|
|
180
|
+
collectionReason: c.collectionReason,
|
|
175
181
|
lastUpdatedAt: capturedAt,
|
|
176
182
|
diagnostics: c.diagnostics,
|
|
177
183
|
}));
|
|
@@ -187,11 +193,15 @@ export async function refreshAuthoringDiagnostics(input) {
|
|
|
187
193
|
const health = buildBrokerHealthFromLsp(lspStatus, instance.instanceId);
|
|
188
194
|
const fileSnapshots = buildFileSnapshotsFromPersisted(persisted);
|
|
189
195
|
const snapshot = buildDiagnosticsSnapshot(health, fileSnapshots);
|
|
196
|
+
const filesRefreshed = persistedFiles.filter((file) => (file.collectionState ?? "checked") === "checked").length;
|
|
197
|
+
const failedFiles = persistedFiles.length - filesRefreshed;
|
|
190
198
|
return {
|
|
191
199
|
snapshot,
|
|
192
|
-
filesRefreshed
|
|
200
|
+
filesRefreshed,
|
|
193
201
|
lspInstanceId: instance.instanceId,
|
|
194
|
-
summary:
|
|
202
|
+
summary: failedFiles === 0
|
|
203
|
+
? `Diagnostics refreshed: ${filesRefreshed} file(s) opened through managed LSP.`
|
|
204
|
+
: `Diagnostics refresh incomplete: ${filesRefreshed} file(s) checked, ${failedFiles} file(s) unavailable or timed out.`,
|
|
195
205
|
};
|
|
196
206
|
}
|
|
197
207
|
// ─── Doctor ──────────────────────────────────────────────────────────────────
|
|
@@ -213,7 +223,7 @@ export async function doctorAuthoringDiagnostics(input) {
|
|
|
213
223
|
let snapshot = null;
|
|
214
224
|
let recommendedCommand = undefined;
|
|
215
225
|
if (persisted === null) {
|
|
216
|
-
recommendations.push("No diagnostics snapshot found. Run `gdh diagnostics refresh` to populate the broker.");
|
|
226
|
+
recommendations.push("No diagnostics snapshot found. Run `gdh authoring diagnostics refresh` to populate the broker.");
|
|
217
227
|
recommendedCommand = { command: "gdh", args: ["authoring", "diagnostics", "refresh"] };
|
|
218
228
|
}
|
|
219
229
|
else {
|
|
@@ -221,23 +231,23 @@ export async function doctorAuthoringDiagnostics(input) {
|
|
|
221
231
|
const fileSnapshots = buildFileSnapshotsFromPersisted(persisted);
|
|
222
232
|
snapshot = buildDiagnosticsSnapshot(brokerHealth, fileSnapshots);
|
|
223
233
|
if (snapshot.freshness === "stale") {
|
|
224
|
-
recommendations.push("Diagnostics snapshot is stale. Run `gdh diagnostics refresh` to update.");
|
|
234
|
+
recommendations.push("Diagnostics snapshot is stale. Run `gdh authoring diagnostics refresh` to update.");
|
|
225
235
|
}
|
|
226
236
|
else if (snapshot.freshness === "missing") {
|
|
227
237
|
// Only recommend refresh when the broker is also not in a ready+empty state.
|
|
228
238
|
// A ready broker with files=[] means the project has no GDScript files —
|
|
229
239
|
// running refresh again would not change the outcome.
|
|
230
240
|
if (brokerHealth.lifecycle !== "ready" || persisted.files.length > 0) {
|
|
231
|
-
recommendations.push("Diagnostics snapshot exists but contains no file entries. Run `gdh diagnostics refresh`.");
|
|
241
|
+
recommendations.push("Diagnostics snapshot exists but contains no file entries. Run `gdh authoring diagnostics refresh`.");
|
|
232
242
|
}
|
|
233
243
|
}
|
|
234
244
|
else if (snapshot.freshness === "scope_limited") {
|
|
235
|
-
recommendations.push("Diagnostics snapshot does not cover all requested files. Run `gdh diagnostics refresh` to expand coverage.");
|
|
245
|
+
recommendations.push("Diagnostics snapshot does not cover all requested files. Run `gdh authoring diagnostics refresh` to expand coverage.");
|
|
236
246
|
}
|
|
237
247
|
if (brokerHealth.lifecycle !== "ready") {
|
|
238
248
|
const lspInstanceMismatch = persisted.lspInstanceId !== lspStatus.instance?.instanceId;
|
|
239
249
|
if (lspInstanceMismatch) {
|
|
240
|
-
recommendations.push("Snapshot was captured with a different LSP instance. Run `gdh diagnostics refresh` after confirming the managed LSP is ready.");
|
|
250
|
+
recommendations.push("Snapshot was captured with a different LSP instance. Run `gdh authoring diagnostics refresh` after confirming the managed LSP is ready.");
|
|
241
251
|
recommendedCommand = { command: "gdh", args: ["authoring", "diagnostics", "refresh"] };
|
|
242
252
|
}
|
|
243
253
|
}
|
|
@@ -323,7 +333,76 @@ async function readPersistedSnapshot(snapshotPath) {
|
|
|
323
333
|
}
|
|
324
334
|
async function writePersistedSnapshot(paths, snapshot) {
|
|
325
335
|
await fs.mkdir(paths.brokerDir, { recursive: true });
|
|
326
|
-
await
|
|
336
|
+
await withSnapshotWriteLock(paths, async () => {
|
|
337
|
+
const existing = await readPersistedSnapshot(paths.snapshotPath);
|
|
338
|
+
if (existing !== null) {
|
|
339
|
+
const existingCapturedMs = Date.parse(existing.capturedAt);
|
|
340
|
+
const nextCapturedMs = Date.parse(snapshot.capturedAt);
|
|
341
|
+
if (Number.isFinite(existingCapturedMs) &&
|
|
342
|
+
Number.isFinite(nextCapturedMs) &&
|
|
343
|
+
existingCapturedMs > nextCapturedMs) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
await writeJsonFileAtomically(paths.snapshotPath, snapshot);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
async function withSnapshotWriteLock(paths, fn) {
|
|
351
|
+
const lockDir = path.join(paths.brokerDir, ".snapshot-write.lock");
|
|
352
|
+
const lockId = randomUUID();
|
|
353
|
+
const startedAt = Date.now();
|
|
354
|
+
while (true) {
|
|
355
|
+
try {
|
|
356
|
+
await fs.mkdir(lockDir);
|
|
357
|
+
await writeJsonFileAtomically(path.join(lockDir, "metadata.json"), {
|
|
358
|
+
schemaVersion: 1,
|
|
359
|
+
lockId,
|
|
360
|
+
owner: "gdh authoring diagnostics snapshot writer",
|
|
361
|
+
acquiredAt: new Date().toISOString(),
|
|
362
|
+
staleAfterMs: BROKER_SNAPSHOT_WRITE_LOCK_STALE_AFTER_MS,
|
|
363
|
+
});
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
catch (error) {
|
|
367
|
+
const code = error.code;
|
|
368
|
+
if (code !== "EEXIST") {
|
|
369
|
+
throw error;
|
|
370
|
+
}
|
|
371
|
+
const stat = await fs.stat(lockDir).catch(() => null);
|
|
372
|
+
const ageMs = stat === null ? 0 : Date.now() - stat.mtimeMs;
|
|
373
|
+
if (ageMs > BROKER_SNAPSHOT_WRITE_LOCK_STALE_AFTER_MS) {
|
|
374
|
+
await fs.rm(lockDir, { recursive: true, force: true });
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
377
|
+
if (Date.now() - startedAt > BROKER_SNAPSHOT_WRITE_LOCK_TIMEOUT_MS) {
|
|
378
|
+
throw new Error("Timed out waiting for diagnostics broker snapshot write lock.");
|
|
379
|
+
}
|
|
380
|
+
await sleep(BROKER_SNAPSHOT_WRITE_LOCK_RETRY_MS);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
try {
|
|
384
|
+
return await fn();
|
|
385
|
+
}
|
|
386
|
+
finally {
|
|
387
|
+
const metadataPath = path.join(lockDir, "metadata.json");
|
|
388
|
+
const metadata = await fs.readFile(metadataPath, "utf8").catch(() => null);
|
|
389
|
+
let ownsLock = metadata === null;
|
|
390
|
+
if (metadata !== null) {
|
|
391
|
+
try {
|
|
392
|
+
const parsed = JSON.parse(metadata);
|
|
393
|
+
ownsLock = parsed.lockId === lockId;
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
ownsLock = false;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (ownsLock) {
|
|
400
|
+
await fs.rm(lockDir, { recursive: true, force: true });
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
async function sleep(ms) {
|
|
405
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
327
406
|
}
|
|
328
407
|
/**
|
|
329
408
|
* Read the `.primed` sentinel marker presence (Phase 81 / LSP-05 / D-10).
|
|
@@ -362,7 +441,7 @@ async function writePrimedMarker(brokerDir, primedMarkerPath) {
|
|
|
362
441
|
// not present — fall through and write
|
|
363
442
|
}
|
|
364
443
|
await fs.mkdir(brokerDir, { recursive: true });
|
|
365
|
-
await
|
|
444
|
+
await writeJsonFileAtomically(primedMarkerPath, { firstPrimedAt: new Date().toISOString(), schemaVersion: 1 });
|
|
366
445
|
}
|
|
367
446
|
function buildAbsentBrokerHealth(primed) {
|
|
368
447
|
return {
|
|
@@ -405,10 +484,15 @@ function buildBrokerHealthFromLsp(lspStatus, snapshotLspInstanceId) {
|
|
|
405
484
|
function buildFileSnapshotsFromPersisted(persisted) {
|
|
406
485
|
const nowMs = Date.now();
|
|
407
486
|
return persisted.files.map((f) => {
|
|
487
|
+
const collectionState = f.collectionState ?? "unavailable";
|
|
488
|
+
const collectionReason = f.collectionReason ??
|
|
489
|
+
(f.collectionState === undefined ? "legacy_snapshot_missing_collection_state" : null);
|
|
408
490
|
const freshness = classifyDiagnosticsFreshness({
|
|
409
491
|
fileSnapshot: {
|
|
410
492
|
uri: f.uri,
|
|
411
493
|
filePath: f.filePath,
|
|
494
|
+
collectionState,
|
|
495
|
+
collectionReason,
|
|
412
496
|
diagnostics: f.diagnostics,
|
|
413
497
|
freshness: "fresh", // placeholder; classifyDiagnosticsFreshness recomputes
|
|
414
498
|
lastUpdatedAt: f.lastUpdatedAt,
|
|
@@ -420,6 +504,8 @@ function buildFileSnapshotsFromPersisted(persisted) {
|
|
|
420
504
|
return {
|
|
421
505
|
uri: f.uri,
|
|
422
506
|
filePath: f.filePath,
|
|
507
|
+
collectionState,
|
|
508
|
+
collectionReason,
|
|
423
509
|
diagnostics: f.diagnostics,
|
|
424
510
|
freshness,
|
|
425
511
|
lastUpdatedAt: f.lastUpdatedAt,
|
|
@@ -445,7 +531,7 @@ async function collectBrokerDiagnostics(input) {
|
|
|
445
531
|
const text = await fs.readFile(filePath, "utf8").catch(() => "");
|
|
446
532
|
const diagnosticsPromise = client.waitForDiagnostics({
|
|
447
533
|
uri,
|
|
448
|
-
timeoutMs:
|
|
534
|
+
timeoutMs: resolveBrokerDiagnosticWaitTimeoutMs(),
|
|
449
535
|
});
|
|
450
536
|
await client.didOpen({
|
|
451
537
|
uri,
|
|
@@ -461,11 +547,14 @@ async function collectBrokerDiagnostics(input) {
|
|
|
461
547
|
});
|
|
462
548
|
}
|
|
463
549
|
catch {
|
|
464
|
-
//
|
|
550
|
+
// Timeout is not clean. Persist an explicit per-file state so hooks and
|
|
551
|
+
// agents can distinguish "checked and clean" from "no diagnostics arrived".
|
|
465
552
|
diagnosticCollections.push({
|
|
466
553
|
uri,
|
|
467
554
|
diagnostics: [],
|
|
468
555
|
contentHash: hashText(text),
|
|
556
|
+
collectionState: "timeout",
|
|
557
|
+
collectionReason: "lsp_diagnostics_timeout",
|
|
469
558
|
});
|
|
470
559
|
}
|
|
471
560
|
}
|
|
@@ -476,9 +565,7 @@ async function collectBrokerDiagnostics(input) {
|
|
|
476
565
|
// identity issues (e.g. dual-class from parallel test/source loaders).
|
|
477
566
|
(error instanceof Error && error.name === "GdhLspClientError") ||
|
|
478
567
|
(error instanceof Error && error.reason?.startsWith("lsp_tcp"))) {
|
|
479
|
-
|
|
480
|
-
// return empty results rather than throwing.
|
|
481
|
-
return [];
|
|
568
|
+
return await buildUnavailableCollectedFiles(input.filePaths, "lsp_connection_failed");
|
|
482
569
|
}
|
|
483
570
|
throw error;
|
|
484
571
|
}
|
|
@@ -491,9 +578,28 @@ async function collectBrokerDiagnostics(input) {
|
|
|
491
578
|
contentHash: "contentHash" in collection && typeof collection.contentHash === "string"
|
|
492
579
|
? collection.contentHash
|
|
493
580
|
: "",
|
|
581
|
+
collectionState: "collectionState" in collection && typeof collection.collectionState === "string"
|
|
582
|
+
? collection.collectionState
|
|
583
|
+
: "checked",
|
|
584
|
+
collectionReason: "collectionReason" in collection && typeof collection.collectionReason === "string"
|
|
585
|
+
? collection.collectionReason
|
|
586
|
+
: "diagnostics_collected",
|
|
494
587
|
diagnostics: collection.diagnostics.map((d) => normalizeBrokerDiagnostic(input.projectPath, collection.uri, d)),
|
|
495
588
|
}));
|
|
496
589
|
}
|
|
590
|
+
async function buildUnavailableCollectedFiles(filePaths, reason) {
|
|
591
|
+
return await Promise.all(filePaths.map(async (filePath) => {
|
|
592
|
+
const text = await fs.readFile(filePath, "utf8").catch(() => "");
|
|
593
|
+
return {
|
|
594
|
+
uri: pathToFileURL(filePath).href,
|
|
595
|
+
filePath,
|
|
596
|
+
contentHash: hashText(text),
|
|
597
|
+
collectionState: "unavailable",
|
|
598
|
+
collectionReason: reason,
|
|
599
|
+
diagnostics: [],
|
|
600
|
+
};
|
|
601
|
+
}));
|
|
602
|
+
}
|
|
497
603
|
function hashText(text) {
|
|
498
604
|
return createHash("sha256").update(text).digest("hex");
|
|
499
605
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics-broker.js","sourceRoot":"","sources":["../src/diagnostics-broker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostics-broker.js","sourceRoot":"","sources":["../src/diagnostics-broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { GdhAuthoringDiagnostic, GdhDiagnosticsFileCollectionReason, GdhDiagnosticsFileCollectionState } from "@gdh/core";
|
|
2
|
+
export interface BrokerFileEntry {
|
|
3
|
+
readonly uri: string;
|
|
4
|
+
readonly filePath: string;
|
|
5
|
+
readonly contentHash?: string;
|
|
6
|
+
readonly collectionState?: GdhDiagnosticsFileCollectionState;
|
|
7
|
+
readonly collectionReason?: GdhDiagnosticsFileCollectionReason | null;
|
|
8
|
+
readonly lastUpdatedAt: string;
|
|
9
|
+
readonly diagnostics: readonly GdhAuthoringDiagnostic[];
|
|
10
|
+
}
|
|
11
|
+
export interface BrokerSnapshot {
|
|
12
|
+
readonly schemaVersion: 1;
|
|
13
|
+
readonly lspInstanceId: string;
|
|
14
|
+
readonly capturedAt: string;
|
|
15
|
+
readonly requestedFiles: readonly string[];
|
|
16
|
+
readonly files: readonly BrokerFileEntry[];
|
|
17
|
+
}
|
|
18
|
+
export declare function readBrokerSnapshot(targetPath: string): Promise<BrokerSnapshot | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Check whether a broker snapshot can prove diagnostics for the requested
|
|
21
|
+
* current file contents. Legacy snapshots without collection state are rejected
|
|
22
|
+
* instead of treated as clean.
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractBrokerDiagnosticsIfFresh(snapshot: BrokerSnapshot, currentInstanceId: string, requestedUris: readonly string[], currentContentHashesByUri: ReadonlyMap<string, string>): {
|
|
25
|
+
readonly diagnostics: readonly GdhAuthoringDiagnostic[];
|
|
26
|
+
readonly fileUris: readonly string[];
|
|
27
|
+
} | null;
|
|
28
|
+
//# sourceMappingURL=lsp-broker-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-broker-snapshot.d.ts","sourceRoot":"","sources":["../src/lsp-broker-snapshot.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,kCAAkC,EAClC,iCAAiC,EAClC,MAAM,WAAW,CAAC;AAQnB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,iCAAiC,CAAC;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kCAAkC,GAAG,IAAI,CAAC;IACtE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;CAC5C;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAY3F;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,MAAM,EACzB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,yBAAyB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACrD;IAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CA8C1G"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { classifyDiagnosticsFreshness, DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS, resolveDiagnosticsBrokerPaths, } from "./diagnostics-broker-contract.js";
|
|
4
|
+
export async function readBrokerSnapshot(targetPath) {
|
|
5
|
+
const paths = resolveDiagnosticsBrokerPaths(path.resolve(targetPath));
|
|
6
|
+
try {
|
|
7
|
+
const raw = await fs.readFile(paths.snapshotPath, "utf8");
|
|
8
|
+
const parsed = JSON.parse(raw);
|
|
9
|
+
if (typeof parsed !== "object" || parsed === null || parsed.schemaVersion !== 1) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return parsed;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check whether a broker snapshot can prove diagnostics for the requested
|
|
20
|
+
* current file contents. Legacy snapshots without collection state are rejected
|
|
21
|
+
* instead of treated as clean.
|
|
22
|
+
*/
|
|
23
|
+
export function extractBrokerDiagnosticsIfFresh(snapshot, currentInstanceId, requestedUris, currentContentHashesByUri) {
|
|
24
|
+
if (snapshot.lspInstanceId !== currentInstanceId) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const fileByUri = new Map(snapshot.files.map((f) => [f.uri, f]));
|
|
28
|
+
const nowMs = Date.now();
|
|
29
|
+
const coveredDiagnostics = [];
|
|
30
|
+
const coveredUris = [];
|
|
31
|
+
for (const uri of requestedUris) {
|
|
32
|
+
const file = fileByUri.get(uri);
|
|
33
|
+
if (file === undefined) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
if (typeof file.contentHash !== "string" || file.contentHash.length === 0) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
if (currentContentHashesByUri.get(uri) !== file.contentHash) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
if (file.collectionState !== "checked") {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const freshness = classifyDiagnosticsFreshness({
|
|
46
|
+
fileSnapshot: {
|
|
47
|
+
uri: file.uri,
|
|
48
|
+
filePath: file.filePath,
|
|
49
|
+
collectionState: file.collectionState,
|
|
50
|
+
collectionReason: file.collectionReason ?? null,
|
|
51
|
+
diagnostics: file.diagnostics,
|
|
52
|
+
freshness: "fresh",
|
|
53
|
+
lastUpdatedAt: file.lastUpdatedAt,
|
|
54
|
+
lspInstanceId: snapshot.lspInstanceId,
|
|
55
|
+
},
|
|
56
|
+
nowMs,
|
|
57
|
+
staleAfterMs: DIAGNOSTICS_BROKER_DEFAULT_FRESHNESS_STALE_AFTER_MS,
|
|
58
|
+
});
|
|
59
|
+
if (freshness !== "fresh") {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
coveredDiagnostics.push(...file.diagnostics);
|
|
63
|
+
coveredUris.push(uri);
|
|
64
|
+
}
|
|
65
|
+
return { diagnostics: coveredDiagnostics, fileUris: coveredUris };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=lsp-broker-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-broker-snapshot.js","sourceRoot":"","sources":["../src/lsp-broker-snapshot.ts"],"names":[],"mappings":"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"}
|