@superblocksteam/sdk 2.0.119 → 2.0.120-next.1
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/.turbo/turbo-build.log +1 -1
- package/dist/cli-replacement/dev-s3-restore.test.mjs +116 -0
- package/dist/cli-replacement/dev-s3-restore.test.mjs.map +1 -1
- package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs +1 -0
- package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs.map +1 -1
- package/dist/cli-replacement/dev.d.mts +6 -0
- package/dist/cli-replacement/dev.d.mts.map +1 -1
- package/dist/cli-replacement/dev.mjs +77 -6
- package/dist/cli-replacement/dev.mjs.map +1 -1
- package/dist/client.d.ts +67 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +94 -0
- package/dist/client.js.map +1 -1
- package/dist/dev-utils/dedupe-async.d.ts +16 -0
- package/dist/dev-utils/dedupe-async.d.ts.map +1 -0
- package/dist/dev-utils/dedupe-async.js +27 -0
- package/dist/dev-utils/dedupe-async.js.map +1 -0
- package/dist/dev-utils/dedupe-async.test.d.ts +2 -0
- package/dist/dev-utils/dedupe-async.test.d.ts.map +1 -0
- package/dist/dev-utils/dedupe-async.test.js +120 -0
- package/dist/dev-utils/dedupe-async.test.js.map +1 -0
- package/dist/dev-utils/dev-server-metrics.d.mts +95 -0
- package/dist/dev-utils/dev-server-metrics.d.mts.map +1 -0
- package/dist/dev-utils/dev-server-metrics.mjs +193 -0
- package/dist/dev-utils/dev-server-metrics.mjs.map +1 -0
- package/dist/dev-utils/dev-server-persist.test.mjs +117 -17
- package/dist/dev-utils/dev-server-persist.test.mjs.map +1 -1
- package/dist/dev-utils/dev-server.d.mts +19 -1
- package/dist/dev-utils/dev-server.d.mts.map +1 -1
- package/dist/dev-utils/dev-server.mjs +296 -28
- package/dist/dev-utils/dev-server.mjs.map +1 -1
- package/dist/flag.d.ts +1 -1
- package/dist/flag.d.ts.map +1 -1
- package/dist/flag.js +3 -3
- package/dist/flag.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/sdk.d.ts +8 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +24 -1
- package/dist/sdk.js.map +1 -1
- package/dist/sdk.test.js +102 -1
- package/dist/sdk.test.js.map +1 -1
- package/dist/telemetry/index.d.ts +2 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +8 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/logging.d.ts +1 -2
- package/dist/telemetry/logging.d.ts.map +1 -1
- package/dist/telemetry/logging.js +1 -1
- package/dist/telemetry/logging.js.map +1 -1
- package/dist/telemetry/memory-metrics.d.ts +3 -0
- package/dist/telemetry/memory-metrics.d.ts.map +1 -0
- package/dist/telemetry/memory-metrics.js +59 -0
- package/dist/telemetry/memory-metrics.js.map +1 -0
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/version-control.d.mts.map +1 -1
- package/dist/version-control.mjs +14 -19
- package/dist/version-control.mjs.map +1 -1
- package/eslint.config.js +6 -0
- package/package.json +8 -8
- package/src/cli-replacement/dev-s3-restore.test.mts +156 -0
- package/src/cli-replacement/dev-startup-git-before-dbfs-order.test.mts +1 -0
- package/src/cli-replacement/dev.mts +104 -14
- package/src/client.ts +189 -6
- package/src/dev-utils/dedupe-async.test.ts +151 -0
- package/src/dev-utils/dedupe-async.ts +45 -0
- package/src/dev-utils/dev-server-metrics.mts +252 -0
- package/src/dev-utils/dev-server-persist.test.mts +170 -19
- package/src/dev-utils/dev-server.mts +366 -32
- package/src/flag.ts +4 -4
- package/src/index.ts +19 -1
- package/src/sdk.test.ts +145 -6
- package/src/sdk.ts +36 -0
- package/src/telemetry/index.ts +9 -1
- package/src/telemetry/logging.ts +2 -2
- package/src/telemetry/memory-metrics.ts +90 -0
- package/src/types/common.ts +1 -1
- package/src/version-control.mts +11 -30
- package/test/version-control.test.mts +0 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/turbo.json +1 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as child_process from "node:child_process";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
2
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
3
3
|
import net from "node:net";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
@@ -15,15 +15,68 @@ import { fileSyncVitePlugin, } from "@superblocksteam/vite-plugin-file-sync";
|
|
|
15
15
|
import pkg from "../../package.json" with { type: "json" };
|
|
16
16
|
import { getTracer } from "../telemetry/index.js";
|
|
17
17
|
import { getErrorMeta, getLogger } from "../telemetry/logging.js";
|
|
18
|
+
import { startMemoryMetrics, stopMemoryMetrics, } from "../telemetry/memory-metrics.js";
|
|
18
19
|
import { EDIT_APPLICATION_SCOPE, } from "../types/scoped-jwt-token-payload.js";
|
|
19
20
|
import { getCurrentGitBranchIfGit } from "../version-control.mjs";
|
|
20
21
|
import createLucideReactImportOptimizer from "../vite-plugin-optimize-lucide-imports.js";
|
|
21
22
|
import { sdkApiEntryPointPlugin } from "../vite-plugin-sdk-api-entry-point.mjs";
|
|
22
23
|
import { customComponentsPlugin, isCustomComponentsEnabled, } from "./custom-build.mjs";
|
|
24
|
+
import { dedupeAsync } from "./dedupe-async.js";
|
|
25
|
+
import { devServerMetrics, } from "./dev-server-metrics.mjs";
|
|
23
26
|
import { formatViteDevServerStartedLog, logViteBuildError, } from "./vite-dev-server-diagnostics.mjs";
|
|
24
27
|
import { buildManifestStubPlugin } from "./vite-plugin-build-manifest-stub.mjs";
|
|
25
28
|
import { ddRumPlugin } from "./vite-plugin-dd-rum.mjs";
|
|
26
29
|
const tracer = getTracer();
|
|
30
|
+
const logger = getLogger();
|
|
31
|
+
/**
|
|
32
|
+
* Maps a dev-server request URL onto a low-cardinality endpoint label for
|
|
33
|
+
* metrics. Returns undefined for non-`/_sb_*` URLs (Vite-proxied traffic).
|
|
34
|
+
*/
|
|
35
|
+
function endpointForUrl(url) {
|
|
36
|
+
if (!url)
|
|
37
|
+
return undefined;
|
|
38
|
+
const path = url.split("?", 1)[0];
|
|
39
|
+
switch (path) {
|
|
40
|
+
case "/_sb_health":
|
|
41
|
+
return "_sb_health";
|
|
42
|
+
case "/_sb_connect":
|
|
43
|
+
return "_sb_connect";
|
|
44
|
+
case "/_sb_activate":
|
|
45
|
+
return "_sb_activate";
|
|
46
|
+
case "/_sb_disconnect":
|
|
47
|
+
return "_sb_disconnect";
|
|
48
|
+
case "/_sb_status":
|
|
49
|
+
return "_sb_status";
|
|
50
|
+
case "/_sb_activity":
|
|
51
|
+
return "_sb_activity";
|
|
52
|
+
case "/_sb_persist":
|
|
53
|
+
return "_sb_persist";
|
|
54
|
+
case "/_sb_ready":
|
|
55
|
+
return "_sb_ready";
|
|
56
|
+
default:
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extracts a coarse failure-type label from `res.locals.sbFailureType`,
|
|
62
|
+
* which endpoints set just before they error out. Stays server-side
|
|
63
|
+
* rather than leaking through response headers.
|
|
64
|
+
*/
|
|
65
|
+
function failureTypeFromLocals(locals) {
|
|
66
|
+
const value = locals?.sbFailureType;
|
|
67
|
+
if (typeof value !== "string")
|
|
68
|
+
return "none";
|
|
69
|
+
switch (value) {
|
|
70
|
+
case "auth":
|
|
71
|
+
case "validation":
|
|
72
|
+
case "branch_mismatch":
|
|
73
|
+
case "vite_init":
|
|
74
|
+
case "internal":
|
|
75
|
+
return value;
|
|
76
|
+
default:
|
|
77
|
+
return "none";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
27
80
|
function reactPlugin() {
|
|
28
81
|
return react({
|
|
29
82
|
babel: {
|
|
@@ -74,6 +127,28 @@ function vitePlugins(root, opts) {
|
|
|
74
127
|
}),
|
|
75
128
|
];
|
|
76
129
|
}
|
|
130
|
+
// .superblocks subdirectories that should survive pod recycles.
|
|
131
|
+
// Everything else under .superblocks/ is excluded automatically.
|
|
132
|
+
const PERSIST_SUPERBLOCKS_SAFELIST = new Set(["context", "drafts"]);
|
|
133
|
+
/**
|
|
134
|
+
* Build tar --exclude flags for .superblocks/ subdirectories that are NOT
|
|
135
|
+
* in the safelist. If .superblocks/ doesn't exist we exclude it entirely.
|
|
136
|
+
*/
|
|
137
|
+
export function getSuperblocksTarExcludes(root) {
|
|
138
|
+
const dotSuperblocks = path.join(root, ".superblocks");
|
|
139
|
+
let entries;
|
|
140
|
+
try {
|
|
141
|
+
entries = readdirSync(dotSuperblocks, { withFileTypes: true })
|
|
142
|
+
.filter((d) => d.isDirectory())
|
|
143
|
+
.map((d) => d.name);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return ["--exclude", ".superblocks"];
|
|
147
|
+
}
|
|
148
|
+
return entries
|
|
149
|
+
.filter((name) => !PERSIST_SUPERBLOCKS_SAFELIST.has(name))
|
|
150
|
+
.flatMap((name) => ["--exclude", `.superblocks/${name}`]);
|
|
151
|
+
}
|
|
77
152
|
export async function createWorkspacePersistArchive(root) {
|
|
78
153
|
// Warm pods already have template dependencies installed, so persist only
|
|
79
154
|
// user workspace files and let startup reconcile package drift if needed.
|
|
@@ -85,8 +160,7 @@ export async function createWorkspacePersistArchive(root) {
|
|
|
85
160
|
".git",
|
|
86
161
|
"--exclude",
|
|
87
162
|
"node_modules",
|
|
88
|
-
|
|
89
|
-
".superblocks",
|
|
163
|
+
...getSuperblocksTarExcludes(root),
|
|
90
164
|
"-C",
|
|
91
165
|
root,
|
|
92
166
|
".",
|
|
@@ -148,10 +222,55 @@ export async function createWorkspacePersistArchive(root) {
|
|
|
148
222
|
zstdProc.on("error", rejectOnce);
|
|
149
223
|
});
|
|
150
224
|
}
|
|
225
|
+
export function createWorkspacePersistUploadHeaders(archiveLength, uploadHeaders = {}) {
|
|
226
|
+
const headers = new Headers(uploadHeaders);
|
|
227
|
+
if (!headers.has("Content-Type")) {
|
|
228
|
+
headers.set("Content-Type", "application/zstd");
|
|
229
|
+
}
|
|
230
|
+
headers.set("Content-Length", String(archiveLength));
|
|
231
|
+
return Object.fromEntries(headers.entries());
|
|
232
|
+
}
|
|
233
|
+
export function isWorkspacePersistUploadHeaders(uploadHeaders) {
|
|
234
|
+
if (uploadHeaders === undefined) {
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
if (uploadHeaders === null ||
|
|
238
|
+
typeof uploadHeaders !== "object" ||
|
|
239
|
+
Array.isArray(uploadHeaders)) {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
const seen = new Set();
|
|
243
|
+
for (const [key, value] of Object.entries(uploadHeaders)) {
|
|
244
|
+
if (typeof key !== "string" || typeof value !== "string") {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
// Header names are case-insensitive. Two keys that differ only in casing
|
|
248
|
+
// (e.g. `Content-Type` + `content-type`) would be silently combined by
|
|
249
|
+
// `new Headers()` into a comma-joined value, which breaks S3 presigned
|
|
250
|
+
// PUTs that signed a single canonical value. Reject up front so the
|
|
251
|
+
// caller fixes the duplicate rather than getting a confusing S3 4xx.
|
|
252
|
+
const lower = key.toLowerCase();
|
|
253
|
+
if (seen.has(lower)) {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
seen.add(lower);
|
|
257
|
+
}
|
|
258
|
+
// Validate header name/value syntax by attempting to construct a Headers
|
|
259
|
+
// instance. Doing this in the validator (rather than letting it throw
|
|
260
|
+
// later inside `createWorkspacePersistUploadHeaders`) keeps the failure
|
|
261
|
+
// mode as a 400 before any archive work runs.
|
|
262
|
+
try {
|
|
263
|
+
new Headers(uploadHeaders);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
151
270
|
export const RESTART_EXIT_CODE = 98;
|
|
152
271
|
function getJwksUriWithBaseUrl(superblocksBaseUrl) {
|
|
153
272
|
if (process.env.SUPERBLOCKS_JWKS_URI) {
|
|
154
|
-
|
|
273
|
+
logger.debug(`[JWKS] Using override SUPERBLOCKS_JWKS_URI=${process.env.SUPERBLOCKS_JWKS_URI}`);
|
|
155
274
|
return process.env.SUPERBLOCKS_JWKS_URI;
|
|
156
275
|
}
|
|
157
276
|
const baseUrl = superblocksBaseUrl || process.env.SUPERBLOCKS_BASE_URL || "";
|
|
@@ -181,12 +300,50 @@ function getJwksUriWithBaseUrl(superblocksBaseUrl) {
|
|
|
181
300
|
catch {
|
|
182
301
|
jwksUri = "https://staging-cdn.superblocks.com/.well-known/jwks.json";
|
|
183
302
|
}
|
|
184
|
-
|
|
303
|
+
logger.debug(`[JWKS] Derived jwksUri=${jwksUri} from baseUrl=${baseUrl}`);
|
|
185
304
|
return jwksUri;
|
|
186
305
|
}
|
|
187
306
|
let httpServer;
|
|
307
|
+
/**
|
|
308
|
+
* Attaches a passive metrics-only listener for WebSocket upgrade attempts on
|
|
309
|
+
* the dev-server's HTTP socket.
|
|
310
|
+
*
|
|
311
|
+
* The outcome is a heuristic, not a direct accept/reject signal:
|
|
312
|
+
* - `accepted` = the socket closed cleanly (no `hadError`) or stayed open
|
|
313
|
+
* past the 30s defensive timer. A long-lived HMR connection
|
|
314
|
+
* is the typical success case.
|
|
315
|
+
* - `rejected` = the socket emitted `error` or closed with `hadError=true`.
|
|
316
|
+
* A clean rejection by the upstream WS layer (write 401 + end) can therefore
|
|
317
|
+
* bucket as `accepted` if the close event has no `hadError` flag — the WS
|
|
318
|
+
* handling layer does not surface a direct accept signal we can observe here.
|
|
319
|
+
*
|
|
320
|
+
* MUST be called only after Vite (or another component) has registered its own
|
|
321
|
+
* `'upgrade'` listener on the same server. Registering this listener first
|
|
322
|
+
* suppresses Node's default close-on-unhandled behavior, which would leave
|
|
323
|
+
* editor upgrade attempts hanging until client timeout in the pre-Vite window.
|
|
324
|
+
*/
|
|
325
|
+
function attachUpgradeMetricsListener(server) {
|
|
326
|
+
server.on("upgrade", (req, socket) => {
|
|
327
|
+
let recorded = false;
|
|
328
|
+
const recordOnce = (outcome) => {
|
|
329
|
+
if (recorded)
|
|
330
|
+
return;
|
|
331
|
+
recorded = true;
|
|
332
|
+
devServerMetrics.recordSocketUpgrade(outcome);
|
|
333
|
+
};
|
|
334
|
+
socket.once("close", (hadError) => {
|
|
335
|
+
recordOnce(hadError ? "rejected" : "accepted");
|
|
336
|
+
});
|
|
337
|
+
socket.once("error", () => recordOnce("rejected"));
|
|
338
|
+
// Defensive: if neither close nor error fires within 30s, count as accepted
|
|
339
|
+
// — a long-lived HMR connection is the success case for upgrades.
|
|
340
|
+
setTimeout(() => recordOnce("accepted"), 30_000).unref();
|
|
341
|
+
// Avoid lint warning for unused param without changing the listener shape.
|
|
342
|
+
void req;
|
|
343
|
+
});
|
|
344
|
+
}
|
|
188
345
|
// The "Dev Server" is a long-running HTTP server that manages the Vite server
|
|
189
|
-
export async function createDevServer({ root, mode, fsOperationQueue, syncService, lockService, aiService, gitService, gitBootstrapFailed, activateGitService, snapshotManager, logger: loggerOverride, port, sdk, superblocksBaseUrl: explicitBaseUrl, existingServer, }) {
|
|
346
|
+
export async function createDevServer({ root, mode, fsOperationQueue, syncService, lockService, aiService, gitService, gitBootstrapFailed, activateGitService, snapshotManager, logger: loggerOverride, port, sdk, superblocksBaseUrl: explicitBaseUrl, existingServer, warmActivationStart, }) {
|
|
190
347
|
const logger = getLogger(loggerOverride);
|
|
191
348
|
if (httpServer) {
|
|
192
349
|
logger.debug("Dev server already running");
|
|
@@ -220,8 +377,30 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
220
377
|
// The actual error is still logged via the .then(_, onRejected) handler
|
|
221
378
|
// attached at the viteStartPromise call site.
|
|
222
379
|
vitePromise.catch(() => { });
|
|
223
|
-
|
|
380
|
+
// Dedupe re-entry. Multiple signals (SIGINT, SIGTERM, SIGABRT,
|
|
381
|
+
// uncaughtException) can fire in rapid succession during shutdown —
|
|
382
|
+
// particularly when a parent process kills the dev-server and the OS or
|
|
383
|
+
// test harness then sends a follow-up SIGINT. Without a dedupe, every
|
|
384
|
+
// signal handler re-runs lockService shutdown / vite close / httpServer
|
|
385
|
+
// close on already-freed native state, which surfaces as
|
|
386
|
+
// `double free or corruption (fasttop)` from glibc and SIGABRT killing
|
|
387
|
+
// the process before it can exit cleanly (hq-o55a).
|
|
388
|
+
//
|
|
389
|
+
// First-caller-wins on args: the second+ caller's `switchingTo` /
|
|
390
|
+
// `initiatedByEmail` are intentionally dropped (the first caller's run is
|
|
391
|
+
// already in flight; we don't restart cleanup with new args). The
|
|
392
|
+
// `/_sb_disconnect` HTTP handler that awaits `gracefulShutdown` therefore
|
|
393
|
+
// returns "ok" without applying its `switchingTo` if a signal beat it to
|
|
394
|
+
// the punch — the process exits regardless, so the dropped arg cannot
|
|
395
|
+
// drive downstream state in this process.
|
|
396
|
+
const gracefulShutdown = dedupeAsync(runGracefulShutdown, {
|
|
397
|
+
onDuplicate: (args) => {
|
|
398
|
+
logger.info(`Shutdown already in progress; ignoring duplicate signal (source=${args.source ?? "unknown"})`);
|
|
399
|
+
},
|
|
400
|
+
});
|
|
401
|
+
async function runGracefulShutdown({ logger, serverInitiated, switchingTo, initiatedByEmail, }) {
|
|
224
402
|
try {
|
|
403
|
+
stopMemoryMetrics();
|
|
225
404
|
await lockService?.shutdown({
|
|
226
405
|
serverInitiated,
|
|
227
406
|
switchingTo,
|
|
@@ -260,6 +439,22 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
260
439
|
app.use(express.json({
|
|
261
440
|
strict: true,
|
|
262
441
|
}));
|
|
442
|
+
// Per-request metrics for dev-server endpoints. Identify the endpoint by URL
|
|
443
|
+
// pattern, time the request, record duration + status + coarse failure type
|
|
444
|
+
// when the response finishes. Non-`/_sb_*` traffic (Vite proxied requests)
|
|
445
|
+
// is not instrumented here — Vite's own middleware handles those.
|
|
446
|
+
app.use((req, res, next) => {
|
|
447
|
+
const endpoint = endpointForUrl(req.url);
|
|
448
|
+
if (!endpoint) {
|
|
449
|
+
return next();
|
|
450
|
+
}
|
|
451
|
+
const startedAt = Date.now();
|
|
452
|
+
res.on("finish", () => {
|
|
453
|
+
const failureType = failureTypeFromLocals(res.locals);
|
|
454
|
+
devServerMetrics.recordEndpoint(endpoint, req.method, res.statusCode, Date.now() - startedAt, failureType);
|
|
455
|
+
});
|
|
456
|
+
next();
|
|
457
|
+
});
|
|
263
458
|
app.use((req, res, next) => {
|
|
264
459
|
res.setHeader("Cache-Control", "no-store, max-age=0");
|
|
265
460
|
res.setHeader("x-csb-no-sw-proxy", "1");
|
|
@@ -356,6 +551,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
356
551
|
return next();
|
|
357
552
|
}
|
|
358
553
|
else {
|
|
554
|
+
res.locals.sbFailureType = "auth";
|
|
359
555
|
res.status(result.status).send(JSON.stringify({ error: result.error }));
|
|
360
556
|
}
|
|
361
557
|
};
|
|
@@ -371,6 +567,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
371
567
|
if (req.headers["x-superblocks-application-id"] !== resourceConfig.id) {
|
|
372
568
|
logger.error(`Application ID header mismatch, expected ${resourceConfig.id}, received ${req.headers["x-superblocks-application-id"]}`);
|
|
373
569
|
logger.info(`[dev-server-runtime] _sb_connect application mismatch: expected ${resourceConfig.id}, got ${req.headers["x-superblocks-application-id"]}`);
|
|
570
|
+
res.locals.sbFailureType = "validation";
|
|
374
571
|
res.status(401).send(JSON.stringify({
|
|
375
572
|
error: `Application ID header mismatch. Expected ${resourceConfig.id}, received ${req.headers["x-superblocks-application-id"]}`,
|
|
376
573
|
}));
|
|
@@ -382,6 +579,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
382
579
|
incomingBranch !== SUPERBLOCKS_LIVE_GIT_BRANCH) {
|
|
383
580
|
logger.error(`Dev server expects branch ${currentBranch}, but received ${incomingBranch}. Check your current branch with 'git branch' and try again.`);
|
|
384
581
|
logger.info(`[dev-server-runtime] _sb_connect branch mismatch: expected ${currentBranch}, got ${incomingBranch}`);
|
|
582
|
+
res.locals.sbFailureType = "branch_mismatch";
|
|
385
583
|
res.status(401).send(JSON.stringify({
|
|
386
584
|
error: `Dev server expects branch ${currentBranch}, but received ${incomingBranch}. Check your current branch with 'git branch' and try again.`,
|
|
387
585
|
}));
|
|
@@ -397,6 +595,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
397
595
|
}
|
|
398
596
|
catch (e) {
|
|
399
597
|
logger.error("Vite server failed to initialize", getErrorMeta(e));
|
|
598
|
+
res.locals.sbFailureType = "vite_init";
|
|
400
599
|
res
|
|
401
600
|
.status(500)
|
|
402
601
|
.send(JSON.stringify({ error: "Dev server failed to initialize" }));
|
|
@@ -440,6 +639,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
440
639
|
serverInitiated: true,
|
|
441
640
|
switchingTo,
|
|
442
641
|
initiatedByEmail: initiatedByEmail,
|
|
642
|
+
source: "/_sb_disconnect",
|
|
443
643
|
});
|
|
444
644
|
res.send("ok");
|
|
445
645
|
}
|
|
@@ -496,11 +696,17 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
496
696
|
persistInProgress = true;
|
|
497
697
|
const persistStart = Date.now();
|
|
498
698
|
try {
|
|
499
|
-
const { uploadURL } = req.body;
|
|
699
|
+
const { uploadURL, uploadHeaders } = req.body;
|
|
500
700
|
if (!uploadURL) {
|
|
501
701
|
res.status(400).json({ error: "uploadURL required" });
|
|
502
702
|
return;
|
|
503
703
|
}
|
|
704
|
+
if (!isWorkspacePersistUploadHeaders(uploadHeaders)) {
|
|
705
|
+
res.status(400).json({
|
|
706
|
+
error: "uploadHeaders must be a string map with valid HTTP header names and values and no case-insensitive duplicate keys",
|
|
707
|
+
});
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
504
710
|
logger.info("/_sb_persist: archiving and uploading workspace to S3...");
|
|
505
711
|
const archive = await createWorkspacePersistArchive(process.cwd());
|
|
506
712
|
logger.info(`/_sb_persist: archive created (${(archive.length / 1024 / 1024).toFixed(1)}MB) in ${Date.now() - persistStart}ms, uploading...`);
|
|
@@ -508,10 +714,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
508
714
|
const uploadResp = await fetch(uploadURL, {
|
|
509
715
|
method: "PUT",
|
|
510
716
|
body: archive,
|
|
511
|
-
headers:
|
|
512
|
-
"Content-Type": "application/zstd",
|
|
513
|
-
"Content-Length": String(archive.length),
|
|
514
|
-
},
|
|
717
|
+
headers: createWorkspacePersistUploadHeaders(archive.length, uploadHeaders),
|
|
515
718
|
signal: AbortSignal.timeout(30_000),
|
|
516
719
|
});
|
|
517
720
|
if (!uploadResp.ok) {
|
|
@@ -528,24 +731,51 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
528
731
|
persistInProgress = false;
|
|
529
732
|
}
|
|
530
733
|
});
|
|
531
|
-
|
|
734
|
+
// Signal handlers attach `.catch` so a synchronous throw in
|
|
735
|
+
// `runGracefulShutdown` (e.g. logger init or lockService shutdown throwing
|
|
736
|
+
// before the first `await`) is logged rather than surfacing as an
|
|
737
|
+
// unhandled rejection across N handlers (one per fired signal). Symmetric
|
|
738
|
+
// with the `uncaughtException` handler below.
|
|
739
|
+
process.on("SIGINT", () => {
|
|
532
740
|
logger.info("SIGINT received");
|
|
533
|
-
|
|
741
|
+
gracefulShutdown({
|
|
742
|
+
logger,
|
|
743
|
+
serverInitiated: false,
|
|
744
|
+
source: "SIGINT",
|
|
745
|
+
}).catch((err) => logger.error("Error during SIGINT shutdown", getErrorMeta(err)));
|
|
534
746
|
});
|
|
535
|
-
process.on("SIGTERM",
|
|
747
|
+
process.on("SIGTERM", () => {
|
|
536
748
|
logger.info("SIGTERM received");
|
|
537
|
-
|
|
749
|
+
gracefulShutdown({
|
|
750
|
+
logger,
|
|
751
|
+
serverInitiated: false,
|
|
752
|
+
source: "SIGTERM",
|
|
753
|
+
}).catch((err) => logger.error("Error during SIGTERM shutdown", getErrorMeta(err)));
|
|
538
754
|
});
|
|
539
|
-
process.on("SIGABRT",
|
|
755
|
+
process.on("SIGABRT", () => {
|
|
540
756
|
logger.info("SIGABRT received");
|
|
541
|
-
|
|
757
|
+
gracefulShutdown({
|
|
758
|
+
logger,
|
|
759
|
+
serverInitiated: false,
|
|
760
|
+
source: "SIGABRT",
|
|
761
|
+
}).catch((err) => logger.error("Error during SIGABRT shutdown", getErrorMeta(err)));
|
|
542
762
|
});
|
|
763
|
+
// `uncaughtException` always force-exits in `.finally`, even when the
|
|
764
|
+
// underlying shutdown promise was already resolved by a prior signal. With
|
|
765
|
+
// the dedupe in place, awaiting the cached resolved promise short-circuits
|
|
766
|
+
// through `.then` without firing `.catch`; without the `.finally` the
|
|
767
|
+
// process would linger in event-loop limbo until the OS killed it.
|
|
543
768
|
process.on("uncaughtException", (error) => {
|
|
544
769
|
logger.error(`Uncaught exception: ${error.message}`, getErrorMeta(error));
|
|
545
|
-
gracefulShutdown({
|
|
770
|
+
gracefulShutdown({
|
|
771
|
+
logger,
|
|
772
|
+
serverInitiated: false,
|
|
773
|
+
source: "uncaughtException",
|
|
774
|
+
})
|
|
775
|
+
.catch((shutdownError) => {
|
|
546
776
|
logger.error("Error during shutdown after uncaught exception:", shutdownError);
|
|
547
|
-
|
|
548
|
-
|
|
777
|
+
})
|
|
778
|
+
.finally(() => process.exit(1));
|
|
549
779
|
});
|
|
550
780
|
if (existingServer) {
|
|
551
781
|
// Warm standby mode: reuse the pre-existing HTTP server to avoid a port gap.
|
|
@@ -553,11 +783,18 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
553
783
|
existingServer.removeAllListeners("request");
|
|
554
784
|
existingServer.on("request", app);
|
|
555
785
|
httpServer = existingServer;
|
|
786
|
+
if (warmActivationStart) {
|
|
787
|
+
devServerMetrics.recordWarmHandoff(Date.now() - warmActivationStart);
|
|
788
|
+
}
|
|
556
789
|
logger.info(`Attached full dev server to existing HTTP server on port ${port}`);
|
|
557
790
|
}
|
|
558
791
|
else {
|
|
559
792
|
logger.info(`Starting HTTP server on port ${port}`);
|
|
560
|
-
|
|
793
|
+
// `app.listen()` returns `http.Server` synchronously — the previous
|
|
794
|
+
// `await` was a no-op on a non-Promise. The server isn't actually bound
|
|
795
|
+
// until it emits `listening`; if downstream code ever depends on the
|
|
796
|
+
// socket being bound, switch to `new Promise(r => httpServer.once("listening", r))`.
|
|
797
|
+
httpServer = app.listen(port);
|
|
561
798
|
logger.info(`HTTP server started successfully on port ${port}`);
|
|
562
799
|
}
|
|
563
800
|
// Start vite eagerly so it's ready (or nearly ready) by the time the editor
|
|
@@ -572,6 +809,7 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
572
809
|
logger.warn(`Failed to fetch feature flags, using defaults: ${err}`);
|
|
573
810
|
return undefined;
|
|
574
811
|
});
|
|
812
|
+
const viteEagerInitStart = Date.now();
|
|
575
813
|
const viteStartPromise = startVite({
|
|
576
814
|
port,
|
|
577
815
|
app,
|
|
@@ -598,10 +836,25 @@ export async function createDevServer({ root, mode, fsOperationQueue, syncServic
|
|
|
598
836
|
// fails before any request awaits vitePromise. The actual error is logged
|
|
599
837
|
// below via the rejection branch of .then().
|
|
600
838
|
viteStartPromise.then((result) => {
|
|
839
|
+
devServerMetrics.recordViteEagerInit(Date.now() - viteEagerInitStart, "success");
|
|
601
840
|
logger.info("Vite server initialized eagerly");
|
|
602
841
|
viteResolve();
|
|
603
842
|
viteCreationResults = result;
|
|
843
|
+
// Start memory metrics only for claimed pods (after Vite init, not warm standby).
|
|
844
|
+
// Gated by either the LD flag (cloud) or the SABS-injected env var (cloud-prem/local).
|
|
845
|
+
if (featureFlags?.devServerMemoryMetricsEnabled() ||
|
|
846
|
+
process.env.SUPERBLOCKS_DEV_SERVER_MEMORY_METRICS_ENABLED === "true") {
|
|
847
|
+
startMemoryMetrics();
|
|
848
|
+
}
|
|
849
|
+
// Attach the WebSocket upgrade-tracking listener AFTER Vite has
|
|
850
|
+
// installed its own HMR upgrade handler. Registering an `upgrade`
|
|
851
|
+
// listener pre-Vite would suppress Node's default close-on-unhandled
|
|
852
|
+
// behavior, leaving editor upgrade attempts to hang until client
|
|
853
|
+
// timeout. By deferring until Vite is up, our listener coexists with
|
|
854
|
+
// the real handler instead of replacing the default close.
|
|
855
|
+
attachUpgradeMetricsListener(httpServer);
|
|
604
856
|
}, (e) => {
|
|
857
|
+
devServerMetrics.recordViteEagerInit(Date.now() - viteEagerInitStart, "error");
|
|
605
858
|
logger.error("Error initializing vite server", getErrorMeta(e));
|
|
606
859
|
viteReject(e);
|
|
607
860
|
});
|
|
@@ -760,7 +1013,7 @@ async function startVite({ app, httpServer, root, mode, port, fsOperationQueue,
|
|
|
760
1013
|
const PRE_WARM_TIMEOUT_MS = 60_000;
|
|
761
1014
|
export async function preWarmViteCache(root) {
|
|
762
1015
|
const start = Date.now();
|
|
763
|
-
|
|
1016
|
+
logger.info("[warm] Pre-warming Vite dependency cache...");
|
|
764
1017
|
try {
|
|
765
1018
|
const server = await createServer({
|
|
766
1019
|
root,
|
|
@@ -780,10 +1033,25 @@ export async function preWarmViteCache(root) {
|
|
|
780
1033
|
await new Promise((r) => setTimeout(r, pollMs));
|
|
781
1034
|
}
|
|
782
1035
|
await server.close();
|
|
783
|
-
|
|
1036
|
+
devServerMetrics.recordWarmPrewarm(Date.now() - start, "success");
|
|
1037
|
+
logger.info(`[warm] Vite cache warmed in ${Date.now() - start}ms`);
|
|
784
1038
|
}
|
|
785
1039
|
catch (error) {
|
|
786
|
-
|
|
1040
|
+
const durationMs = Date.now() - start;
|
|
1041
|
+
// Buffer the metric in case `flush()` is somehow drained later; in practice
|
|
1042
|
+
// we exit before activation, so this observation is also surfaced through
|
|
1043
|
+
// the structured log line below — telemetry isn't initialized yet in
|
|
1044
|
+
// warm-standby (no auth token until /_sb_activate), so `configureTelemetry`
|
|
1045
|
+
// can't run here, and synchronously POSTing an OTLP payload before exit
|
|
1046
|
+
// would block pod recycle on a network call that may itself be hung.
|
|
1047
|
+
devServerMetrics.recordWarmPrewarm(durationMs, "error");
|
|
1048
|
+
// Stable inline `key=value` marker so a log-based metric (Datadog
|
|
1049
|
+
// "Generate Metrics from Logs", Loki regex) can recover pre-warm failures
|
|
1050
|
+
// the OTel pipeline misses. The Logger.error signature accepts only
|
|
1051
|
+
// ErrorMeta (no arbitrary attributes) and must stay structurally
|
|
1052
|
+
// compatible with the sister Logger in vite-plugin-file-sync, so the
|
|
1053
|
+
// markers are embedded in the message body instead of passed as fields.
|
|
1054
|
+
logger.error(`[warm] Vite cache pre-warm failed — exiting for fast pod recycle metric=dev_server_warm_prewarm outcome=error duration_ms=${durationMs}`, getErrorMeta(error));
|
|
787
1055
|
process.exit(1);
|
|
788
1056
|
}
|
|
789
1057
|
}
|
|
@@ -794,17 +1062,17 @@ function getFreePort() {
|
|
|
794
1062
|
server.listen(0, () => {
|
|
795
1063
|
const address = server.address();
|
|
796
1064
|
if (typeof address === "string") {
|
|
797
|
-
|
|
1065
|
+
logger.debug(`Port resolution: falling back to default HMR port ${DEFAULT_HMR_PORT}`);
|
|
798
1066
|
resolve(DEFAULT_HMR_PORT);
|
|
799
1067
|
return;
|
|
800
1068
|
}
|
|
801
1069
|
const port = address?.port;
|
|
802
1070
|
if (!port) {
|
|
803
|
-
|
|
1071
|
+
logger.debug(`Port resolution: no port available, using default HMR port ${DEFAULT_HMR_PORT}`);
|
|
804
1072
|
resolve(DEFAULT_HMR_PORT);
|
|
805
1073
|
return;
|
|
806
1074
|
}
|
|
807
|
-
|
|
1075
|
+
logger.debug(`Port resolution: successfully allocated port ${port}`);
|
|
808
1076
|
server.close(() => resolve(port));
|
|
809
1077
|
});
|
|
810
1078
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.mjs","sourceRoot":"","sources":["../../src/dev-utils/dev-server.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev-server.mjs","sourceRoot":"","sources":["../../src/dev-utils/dev-server.mts"],"names":[],"mappings":"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"}
|