@superblocksteam/sdk 2.0.119 → 2.0.120-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cli-replacement/dev-s3-restore.test.mjs +116 -0
  3. package/dist/cli-replacement/dev-s3-restore.test.mjs.map +1 -1
  4. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs +1 -0
  5. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs.map +1 -1
  6. package/dist/cli-replacement/dev.d.mts +6 -0
  7. package/dist/cli-replacement/dev.d.mts.map +1 -1
  8. package/dist/cli-replacement/dev.mjs +77 -6
  9. package/dist/cli-replacement/dev.mjs.map +1 -1
  10. package/dist/client.d.ts +67 -6
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +94 -0
  13. package/dist/client.js.map +1 -1
  14. package/dist/dev-utils/dedupe-async.d.ts +16 -0
  15. package/dist/dev-utils/dedupe-async.d.ts.map +1 -0
  16. package/dist/dev-utils/dedupe-async.js +27 -0
  17. package/dist/dev-utils/dedupe-async.js.map +1 -0
  18. package/dist/dev-utils/dedupe-async.test.d.ts +2 -0
  19. package/dist/dev-utils/dedupe-async.test.d.ts.map +1 -0
  20. package/dist/dev-utils/dedupe-async.test.js +120 -0
  21. package/dist/dev-utils/dedupe-async.test.js.map +1 -0
  22. package/dist/dev-utils/dev-server-metrics.d.mts +95 -0
  23. package/dist/dev-utils/dev-server-metrics.d.mts.map +1 -0
  24. package/dist/dev-utils/dev-server-metrics.mjs +193 -0
  25. package/dist/dev-utils/dev-server-metrics.mjs.map +1 -0
  26. package/dist/dev-utils/dev-server-persist.test.mjs +117 -17
  27. package/dist/dev-utils/dev-server-persist.test.mjs.map +1 -1
  28. package/dist/dev-utils/dev-server.d.mts +19 -1
  29. package/dist/dev-utils/dev-server.d.mts.map +1 -1
  30. package/dist/dev-utils/dev-server.mjs +296 -28
  31. package/dist/dev-utils/dev-server.mjs.map +1 -1
  32. package/dist/flag.d.ts +1 -1
  33. package/dist/flag.d.ts.map +1 -1
  34. package/dist/flag.js +3 -3
  35. package/dist/flag.js.map +1 -1
  36. package/dist/index.d.ts +4 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/sdk.d.ts +8 -1
  41. package/dist/sdk.d.ts.map +1 -1
  42. package/dist/sdk.js +24 -1
  43. package/dist/sdk.js.map +1 -1
  44. package/dist/sdk.test.js +102 -1
  45. package/dist/sdk.test.js.map +1 -1
  46. package/dist/telemetry/index.d.ts +2 -1
  47. package/dist/telemetry/index.d.ts.map +1 -1
  48. package/dist/telemetry/index.js +8 -1
  49. package/dist/telemetry/index.js.map +1 -1
  50. package/dist/telemetry/logging.d.ts +1 -2
  51. package/dist/telemetry/logging.d.ts.map +1 -1
  52. package/dist/telemetry/logging.js +1 -1
  53. package/dist/telemetry/logging.js.map +1 -1
  54. package/dist/telemetry/memory-metrics.d.ts +3 -0
  55. package/dist/telemetry/memory-metrics.d.ts.map +1 -0
  56. package/dist/telemetry/memory-metrics.js +59 -0
  57. package/dist/telemetry/memory-metrics.js.map +1 -0
  58. package/dist/types/common.d.ts +1 -1
  59. package/dist/types/common.d.ts.map +1 -1
  60. package/dist/version-control.d.mts.map +1 -1
  61. package/dist/version-control.mjs +14 -19
  62. package/dist/version-control.mjs.map +1 -1
  63. package/eslint.config.js +6 -0
  64. package/package.json +8 -8
  65. package/src/cli-replacement/dev-s3-restore.test.mts +156 -0
  66. package/src/cli-replacement/dev-startup-git-before-dbfs-order.test.mts +1 -0
  67. package/src/cli-replacement/dev.mts +104 -14
  68. package/src/client.ts +189 -6
  69. package/src/dev-utils/dedupe-async.test.ts +151 -0
  70. package/src/dev-utils/dedupe-async.ts +45 -0
  71. package/src/dev-utils/dev-server-metrics.mts +252 -0
  72. package/src/dev-utils/dev-server-persist.test.mts +170 -19
  73. package/src/dev-utils/dev-server.mts +366 -32
  74. package/src/flag.ts +4 -4
  75. package/src/index.ts +19 -1
  76. package/src/sdk.test.ts +145 -6
  77. package/src/sdk.ts +36 -0
  78. package/src/telemetry/index.ts +9 -1
  79. package/src/telemetry/logging.ts +2 -2
  80. package/src/telemetry/memory-metrics.ts +90 -0
  81. package/src/types/common.ts +1 -1
  82. package/src/version-control.mts +11 -30
  83. package/test/version-control.test.mts +0 -2
  84. package/tsconfig.tsbuildinfo +1 -1
  85. 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
- "--exclude",
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
- console.debug(`[JWKS] Using override SUPERBLOCKS_JWKS_URI=${process.env.SUPERBLOCKS_JWKS_URI}`);
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
- console.debug(`[JWKS] Derived jwksUri=${jwksUri} from baseUrl=${baseUrl}`);
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
- async function gracefulShutdown({ logger, serverInitiated, switchingTo, initiatedByEmail, }) {
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
- process.on("SIGINT", async () => {
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
- await gracefulShutdown({ logger, serverInitiated: false });
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", async () => {
747
+ process.on("SIGTERM", () => {
536
748
  logger.info("SIGTERM received");
537
- await gracefulShutdown({ logger, serverInitiated: false });
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", async () => {
755
+ process.on("SIGABRT", () => {
540
756
  logger.info("SIGABRT received");
541
- await gracefulShutdown({ logger, serverInitiated: false });
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({ logger, serverInitiated: false }).catch((shutdownError) => {
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
- process.exit(1);
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
- httpServer = await app.listen(port);
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
- console.log("[warm] Pre-warming Vite dependency cache...");
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
- console.log(`[warm] Vite cache warmed in ${Date.now() - start}ms`);
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
- console.error(`[warm] Vite cache pre-warm failed (${Date.now() - start}ms) — exiting for fast pod recycle:`, error);
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
- console.debug(`Port resolution: falling back to default HMR port ${DEFAULT_HMR_PORT}`);
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
- console.debug(`Port resolution: no port available, using default HMR port ${DEFAULT_HMR_PORT}`);
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
- console.debug(`Port resolution: successfully allocated port ${port}`);
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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"}