@bitmagic/cli 0.1.60-dev.3 → 0.1.60-dev.5

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 (65) hide show
  1. package/README.md +67 -3
  2. package/dist/atomic-json.d.ts +18 -0
  3. package/dist/atomic-json.js +39 -0
  4. package/dist/atomic-json.js.map +1 -0
  5. package/dist/cli.d.ts +1 -1
  6. package/dist/commands/dev.js +79 -35
  7. package/dist/commands/dev.js.map +1 -1
  8. package/dist/commands/publish.d.ts +2 -0
  9. package/dist/commands/publish.js +1 -1
  10. package/dist/commands/publish.js.map +1 -1
  11. package/dist/commands/reload.d.ts +1 -1
  12. package/dist/commands/reload.js +14 -5
  13. package/dist/commands/reload.js.map +1 -1
  14. package/dist/commands/verify.js +134 -118
  15. package/dist/commands/verify.js.map +1 -1
  16. package/dist/editor/motion-panel.d.ts +2 -2
  17. package/dist/editor/motion-panel.js +27 -5
  18. package/dist/editor/motion-panel.js.map +1 -1
  19. package/dist/editor/reload-bus.d.ts +11 -23
  20. package/dist/editor/reload-bus.js +55 -8
  21. package/dist/editor/reload-bus.js.map +1 -1
  22. package/dist/editor/server.d.ts +10 -0
  23. package/dist/editor/server.js +46 -0
  24. package/dist/editor/server.js.map +1 -1
  25. package/dist/editor/shell-page.d.ts +10 -0
  26. package/dist/editor/shell-page.js +58 -3
  27. package/dist/editor/shell-page.js.map +1 -1
  28. package/dist/editor/tab-reuse.d.ts +23 -0
  29. package/dist/editor/tab-reuse.js +61 -0
  30. package/dist/editor/tab-reuse.js.map +1 -0
  31. package/dist/local-port.d.ts +8 -1
  32. package/dist/local-port.js +9 -2
  33. package/dist/local-port.js.map +1 -1
  34. package/dist/machine-lock.d.ts +56 -0
  35. package/dist/machine-lock.js +213 -0
  36. package/dist/machine-lock.js.map +1 -0
  37. package/dist/port-lane.d.ts +27 -0
  38. package/dist/port-lane.js +36 -1
  39. package/dist/port-lane.js.map +1 -1
  40. package/dist/process-alive.d.ts +13 -0
  41. package/dist/process-alive.js +24 -0
  42. package/dist/process-alive.js.map +1 -0
  43. package/dist/project/dev-handle.d.ts +6 -34
  44. package/dist/project/dev-handle.js +9 -59
  45. package/dist/project/dev-handle.js.map +1 -1
  46. package/dist/project/dev-ports.d.ts +67 -0
  47. package/dist/project/dev-ports.js +204 -0
  48. package/dist/project/dev-ports.js.map +1 -0
  49. package/dist/project/game-name.d.ts +9 -0
  50. package/dist/project/game-name.js +21 -0
  51. package/dist/project/game-name.js.map +1 -0
  52. package/dist/project/jobs.js +2 -1
  53. package/dist/project/jobs.js.map +1 -1
  54. package/dist/scaffold/project-files.js +8 -8
  55. package/dist/scaffold/project-files.js.map +1 -1
  56. package/dist/smoke/run.d.ts +4 -0
  57. package/dist/smoke/run.js +5 -2
  58. package/dist/smoke/run.js.map +1 -1
  59. package/dist/verify/iterate.d.ts +5 -0
  60. package/dist/verify/iterate.js +23 -20
  61. package/dist/verify/iterate.js.map +1 -1
  62. package/dist/verify/lock.d.ts +32 -0
  63. package/dist/verify/lock.js +54 -0
  64. package/dist/verify/lock.js.map +1 -0
  65. package/package.json +4 -4
@@ -1,36 +1,24 @@
1
- /**
2
- * The push channel the CLI lane never had.
3
- *
4
- * Until now nothing could tell an open browser that the project changed. The shell polled
5
- * `world.json`'s mtime and raised a banner; a `.ts` edit did not even get that far. The creator's
6
- * loop was "watch the agent finish, then remember to press F5", which is exactly the friction a
7
- * side-by-side agent/browser workflow is supposed to remove.
8
- *
9
- * Server-Sent Events rather than the WebSocket the web lane uses (`game/dev-reload-watcher.cjs`):
10
- * traffic here is one-directional and rare, `EventSource` reconnects on its own with no client-side
11
- * retry loop to write, and it needs no dependency in a package that deliberately keeps `dev`
12
- * offline and light.
13
- *
14
- * Two event names, both of which the shell acts on:
15
- * reload {reason} — re-boot the game iframe
16
- * build {status, message?} — tsc is compiling / compiled / failed
17
- *
18
- * `build` exists so a failed compile is *visible* rather than merely silent. Without it the honest
19
- * behaviour on a broken build — don't reload, the emitted code is stale — is indistinguishable from
20
- * a dead watcher.
21
- */
22
1
  import type * as http from 'http';
23
2
  export type BuildStatus = 'building' | 'ok' | 'failed';
3
+ export type SubscriberKind = 'shell' | 'phone';
24
4
  export declare class ReloadBus {
25
5
  private readonly clients;
26
6
  private readonly keepalive;
27
- constructor();
7
+ /** One per process: the shell compares it across reconnects to notice a restarted `dev`. */
8
+ readonly session: string;
9
+ /** Fired on every 0→1 transition of the shell count — "a tab is watching this server". */
10
+ onShellAttached: (() => void) | null;
11
+ constructor(options?: {
12
+ session?: string;
13
+ });
28
14
  get clientCount(): number;
15
+ /** Browser tabs on the dev view, phones excluded. */
16
+ get shellClientCount(): number;
29
17
  /**
30
18
  * Take over a request as an SSE stream. Never ends the response — it stays open until the browser
31
19
  * navigates away or the server closes.
32
20
  */
33
- subscribe(req: http.IncomingMessage, res: http.ServerResponse): void;
21
+ subscribe(req: http.IncomingMessage, res: http.ServerResponse, kind?: SubscriberKind): void;
34
22
  send(event: string, data: unknown): void;
35
23
  reload(reason: string): void;
36
24
  build(status: BuildStatus, message?: string): void;
@@ -1,12 +1,46 @@
1
+ /**
2
+ * The push channel the CLI lane never had.
3
+ *
4
+ * Until now nothing could tell an open browser that the project changed. The shell polled
5
+ * `world.json`'s mtime and raised a banner; a `.ts` edit did not even get that far. The creator's
6
+ * loop was "watch the agent finish, then remember to press F5", which is exactly the friction a
7
+ * side-by-side agent/browser workflow is supposed to remove.
8
+ *
9
+ * Server-Sent Events rather than the WebSocket the web lane uses (`game/dev-reload-watcher.cjs`):
10
+ * traffic here is one-directional and rare, `EventSource` reconnects on its own with no client-side
11
+ * retry loop to write, and it needs no dependency in a package that deliberately keeps `dev`
12
+ * offline and light.
13
+ *
14
+ * Three event names, all of which the shell acts on:
15
+ * session {id} — which `bitmagic dev` process this is (sent on connect)
16
+ * reload {reason} — re-boot the game iframe
17
+ * build {status, message?} — tsc is compiling / compiled / failed
18
+ *
19
+ * `build` exists so a failed compile is *visible* rather than merely silent. Without it the honest
20
+ * behaviour on a broken build — don't reload, the emitted code is stale — is indistinguishable from
21
+ * a dead watcher.
22
+ *
23
+ * `session` exists because the reconnect is the whole reason a restarted `dev` can reuse the tab
24
+ * that was already open instead of opening another (commands/dev.ts): a tab whose stream comes
25
+ * back with a different id knows the server behind it is new, and reloads the page it was
26
+ * rendered by. Subscribers are counted by KIND for the same reason — a phone on `--mobile` joins
27
+ * this bus too (mobile/bridge.ts), and a phone is not a tab.
28
+ */
29
+ import { randomUUID } from 'crypto';
1
30
  /** Well under any proxy or browser idle timeout, and free: one comment line per client. */
2
31
  const KEEPALIVE_MS = 20_000;
3
32
  export class ReloadBus {
4
- clients = new Set();
33
+ clients = new Map();
5
34
  keepalive;
6
- constructor() {
35
+ /** One per process: the shell compares it across reconnects to notice a restarted `dev`. */
36
+ session;
37
+ /** Fired on every 0→1 transition of the shell count — "a tab is watching this server". */
38
+ onShellAttached = null;
39
+ constructor(options = {}) {
40
+ this.session = options.session ?? randomUUID();
7
41
  // Unref'd: a heartbeat must never be the reason the process stays alive.
8
42
  this.keepalive = setInterval(() => {
9
- for (const client of this.clients)
43
+ for (const client of this.clients.keys())
10
44
  client.write(': ping\n\n');
11
45
  }, KEEPALIVE_MS);
12
46
  this.keepalive.unref();
@@ -14,11 +48,19 @@ export class ReloadBus {
14
48
  get clientCount() {
15
49
  return this.clients.size;
16
50
  }
51
+ /** Browser tabs on the dev view, phones excluded. */
52
+ get shellClientCount() {
53
+ let count = 0;
54
+ for (const kind of this.clients.values())
55
+ if (kind === 'shell')
56
+ count += 1;
57
+ return count;
58
+ }
17
59
  /**
18
60
  * Take over a request as an SSE stream. Never ends the response — it stays open until the browser
19
61
  * navigates away or the server closes.
20
62
  */
21
- subscribe(req, res) {
63
+ subscribe(req, res, kind = 'shell') {
22
64
  res.writeHead(200, {
23
65
  'Content-Type': 'text/event-stream',
24
66
  'Cache-Control': 'no-cache',
@@ -27,9 +69,14 @@ export class ReloadBus {
27
69
  'X-Accel-Buffering': 'no',
28
70
  });
29
71
  // A first byte immediately, so `EventSource` fires `onopen` rather than sitting in CONNECTING
30
- // until the first real event — which may be minutes away.
72
+ // until the first real event — which may be minutes away. The session goes with it, so a
73
+ // reconnecting tab learns which server it reached without waiting for its next poll.
31
74
  res.write(': connected\n\n');
32
- this.clients.add(res);
75
+ res.write(`event: session\ndata: ${JSON.stringify({ id: this.session })}\n\n`);
76
+ const firstShell = kind === 'shell' && this.shellClientCount === 0;
77
+ this.clients.set(res, kind);
78
+ if (firstShell)
79
+ this.onShellAttached?.();
33
80
  const drop = () => {
34
81
  this.clients.delete(res);
35
82
  };
@@ -39,7 +86,7 @@ export class ReloadBus {
39
86
  }
40
87
  send(event, data) {
41
88
  const frame = `event: ${event}\ndata: ${JSON.stringify(data)}\n\n`;
42
- for (const client of this.clients) {
89
+ for (const client of this.clients.keys()) {
43
90
  // A client that has gone away without firing `close` yet must not take the loop — and by
44
91
  // extension the save that triggered it — down with it.
45
92
  try {
@@ -58,7 +105,7 @@ export class ReloadBus {
58
105
  }
59
106
  close() {
60
107
  clearInterval(this.keepalive);
61
- for (const client of this.clients)
108
+ for (const client of this.clients.keys())
62
109
  client.end();
63
110
  this.clients.clear();
64
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reload-bus.js","sourceRoot":"","sources":["../../src/editor/reload-bus.ts"],"names":[],"mappings":"AAuBA,2FAA2F;AAC3F,MAAM,YAAY,GAAG,MAAM,CAAC;AAI5B,MAAM,OAAO,SAAS;IACH,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IACzC,SAAS,CAAiC;IAE3D;QACE,yEAAyE;QACzE,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAyB,EAAE,GAAwB;QAC3D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,YAAY;YACxB,sFAAsF;YACtF,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;QACH,8FAA8F;QAC9F,0DAA0D;QAC1D,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAa;QAC/B,MAAM,KAAK,GAAG,UAAU,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACnE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,yFAAyF;YACzF,uDAAuD;YACvD,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAmB,EAAE,OAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK;QACH,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"reload-bus.js","sourceRoot":"","sources":["../../src/editor/reload-bus.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ export interface EditorServerOptions {
8
8
  metadata: ProjectMetadata;
9
9
  /** The game this project owns, from `bitmagic.json`. */
10
10
  gameId: string;
11
+ /** What the bar calls the game — `gameName` in game.json, else the folder (project/game-name.ts). */
12
+ gameName: string;
13
+ /** Which api-server this project talks to, resolved by `dev` and shown in the bar. */
14
+ environment: string;
11
15
  /** Port vite serves the game on; the shell iframes it. */
12
16
  gamePort: number;
13
17
  /** Port to bind. Fails loudly if taken — the URL is meant to be stable and bookmarkable. */
@@ -24,6 +28,12 @@ export interface EditorServer {
24
28
  readonly url: string;
25
29
  /** Where editor actions are journalled, so the startup banner can point an agent at it. */
26
30
  readonly journalPath: string;
31
+ /** Epoch ms when the port was bound — what the tab-reuse wait is measured from (tab-reuse.ts). */
32
+ readonly listeningAt: number;
33
+ /** Is a browser tab on this server right now — an SSE subscriber, or a poll seconds ago. */
34
+ hasShellWatcher(): boolean;
35
+ /** Vite answers: tell the page it may reboot the game. Until then a stale tab holds still. */
36
+ markReady(): void;
27
37
  close(): Promise<void>;
28
38
  }
29
39
  /**
@@ -45,7 +45,12 @@ import { MOTION_BODY_LIMIT_BYTES, baseContentType, motionCommand, motionDoneMess
45
45
  import { resolveEnvironmentForCommand, resolveAuth0ClientId } from '../config/environments.js';
46
46
  import { getAccessToken } from '../auth/session.js';
47
47
  import { startUploadProxy } from '../forge/upload-proxy.js';
48
+ import { currentCliVersion } from '../update/cli-version.js';
49
+ import { updateTagFor } from '../update/notice.js';
50
+ import { writeDevViewRecord } from './tab-reuse.js';
48
51
  import { RECORDING_BODY_LIMIT_BYTES, recordingAvailable, parseSaveFrameRequest, parseTimelineRequest, writeRecordingFrame, writeRecordingTimeline, } from './recording-sink.js';
52
+ /** A shell poll this recent counts as a tab being there, when its stream has not reconnected yet. */
53
+ const SHELL_POLL_RECENT_MS = 2_000;
49
54
  /** Bodies are a scene snapshot, not an upload — a megabyte is already generous. */
50
55
  const MAX_BODY_BYTES = 8 * 1024 * 1024;
51
56
  // Builds a STRING — `String(chunk)` mangles binary bytes, so the recording sink routes must use
@@ -253,11 +258,23 @@ export async function startEditorServer(options) {
253
258
  // Read once at startup: the version cannot change under a running process, and the page is
254
259
  // rendered once here too, so the routes below and the markup can never disagree about it.
255
260
  const recording = recordingAvailable();
261
+ // The install line straight from the version, not from `recordingAvailable()` — that is a feature
262
+ // flag that happens to follow the line today, and the badge must keep saying which build this is
263
+ // even after the recorder ships on both.
264
+ const cliVersion = currentCliVersion();
256
265
  const shell = renderEditorShell({
257
266
  gamePort: options.gamePort,
258
267
  gameId: options.gameId,
268
+ gameName: options.gameName,
269
+ environment: options.environment,
270
+ cliLine: updateTagFor(cliVersion),
271
+ cliVersion,
259
272
  recording,
260
273
  });
274
+ /** When the page last polled us — the poll carries `?from=shell`; the CLI's own probes do not. */
275
+ let lastShellPollAt = 0;
276
+ /** Flipped by `dev` once vite answers; the page defers a restart-reload until then. */
277
+ let ready = false;
261
278
  const journal = new EditorJournal({ root: options.root, log });
262
279
  // `dev` is the one command that runs for hours, so the terminal's startup nudge about a newer
263
280
  // CLI has long scrolled away by the time it matters. Memoised, because /api/state is polled
@@ -1034,6 +1051,16 @@ export async function startEditorServer(options) {
1034
1051
  const body = JSON.parse(await readBody(req));
1035
1052
  if (typeof body.reason === 'string' && body.reason !== '')
1036
1053
  reason = body.reason;
1054
+ // A reload aimed at another project — a `bitmagic reload` whose port fell back to ours —
1055
+ // is refused rather than obeyed: it would reload this creator's tab for someone else's
1056
+ // edit. Older callers send no id and are trusted as before.
1057
+ if (typeof body.gameId === 'string' && body.gameId !== options.gameId) {
1058
+ sendJson(res, 409, {
1059
+ ok: false,
1060
+ error: `this dev server serves game ${options.gameId}, not ${body.gameId}`,
1061
+ });
1062
+ return;
1063
+ }
1037
1064
  }
1038
1065
  catch {
1039
1066
  // A reason is a label in a log line. An unparseable body still means "reload".
@@ -1174,7 +1201,15 @@ export async function startEditorServer(options) {
1174
1201
  return;
1175
1202
  }
1176
1203
  if (req.method === 'GET' && url === '/api/state') {
1204
+ if (new URL(req.url ?? '/', 'http://127.0.0.1').searchParams.get('from') === 'shell') {
1205
+ lastShellPollAt = Date.now();
1206
+ }
1177
1207
  sendJson(res, 200, {
1208
+ // Which process, and which game: a tab compares the session across a reconnect to notice
1209
+ // a restarted `dev`, and a CLI probe compares the id to be sure it found ITS project.
1210
+ session: options.bus.session,
1211
+ ready,
1212
+ gameId: options.gameId,
1178
1213
  worldMtimeMs: worldMtimeMs(worldPath),
1179
1214
  lastWrittenMtimeMs,
1180
1215
  // Null when this CLI is current, on the other line, or has never managed a check.
@@ -1277,6 +1312,12 @@ export async function startEditorServer(options) {
1277
1312
  });
1278
1313
  server.listen(options.port, '127.0.0.1', resolve);
1279
1314
  });
1315
+ const listeningAt = Date.now();
1316
+ // Evidence for the next restart that a tab was here (tab-reuse.ts): written once per attach
1317
+ // wave, never per poll.
1318
+ options.bus.onShellAttached = () => {
1319
+ writeDevViewRecord(options.root, { watcherSeenAt: Date.now(), editorPort: options.port });
1320
+ };
1280
1321
  /**
1281
1322
  * Watch `.bitmagic/jobs/` and tell every open panel that the list moved.
1282
1323
  *
@@ -1318,6 +1359,11 @@ export async function startEditorServer(options) {
1318
1359
  return {
1319
1360
  url,
1320
1361
  journalPath: journal.path,
1362
+ listeningAt,
1363
+ hasShellWatcher: () => options.bus.shellClientCount > 0 || Date.now() - lastShellPollAt < SHELL_POLL_RECENT_MS,
1364
+ markReady: () => {
1365
+ ready = true;
1366
+ },
1321
1367
  // The bus first, always: `server.close()` waits for open connections to finish, and every SSE
1322
1368
  // subscriber is an open connection that by design never finishes on its own. Closing the server
1323
1369
  // without ending them hangs shutdown until the browser happens to go away.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/editor/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/editor/server.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,16 @@ export interface EditorShellOptions {
53
53
  gamePort: number;
54
54
  /** The game this project owns. */
55
55
  gameId: string;
56
+ /** What to call it — see project/game-name.ts. Leads the tab title so tabs tell projects apart. */
57
+ gameName: string;
58
+ /** Which api-server the project talks to. */
59
+ environment: string;
60
+ /**
61
+ * Which published line this CLI is — the one fact a creator running both installs needs at a
62
+ * glance, and the reason the badge is the first thing after the wordmark.
63
+ */
64
+ cliLine: 'dev' | 'latest';
65
+ cliVersion: string;
56
66
  /**
57
67
  * Whether to draw the Record surface at all — `recordingAvailable()` in `recording-sink.ts`,
58
68
  * which is true only on the dev line. Required rather than defaulted: the caller is the one
@@ -105,11 +105,16 @@ function escapeAttr(value) {
105
105
  export function renderEditorShell(options) {
106
106
  const gameUrl = `http://localhost:${options.gamePort}/?source=creator&gameId=${encodeURIComponent(options.gameId)}`;
107
107
  const recording = options.recording;
108
+ const devLine = options.cliLine === 'dev';
109
+ const lineTitle = devLine
110
+ ? `bitmagic ${options.cliVersion} — a prerelease from the dev line (@bitmagic/cli@dev)`
111
+ : `bitmagic ${options.cliVersion} — the release line (@bitmagic/cli)`;
112
+ const title = `${options.gameName} — bitmagic dev${devLine ? ' (dev build)' : ''}`;
108
113
  return `<!doctype html>
109
114
  <html lang="en">
110
115
  <head>
111
116
  <meta charset="utf-8">
112
- <title>bitmagic dev — ${escapeAttr(options.gameId)}</title>
117
+ <title>${escapeAttr(title)}</title>
113
118
  ${BITMAGIC_FONT_LINK}
114
119
  <style>
115
120
  ${BITMAGIC_TOKENS_CSS}
@@ -125,6 +130,11 @@ ${BITMAGIC_CONTROLS_CSS}
125
130
  #bar .wordmark { font-size: 14px; font-weight: 700; text-transform: uppercase;
126
131
  letter-spacing: 1.6px; }
127
132
  #bar .id { color: var(--bm-text-dim); font-family: var(--bm-font-mono); font-size: 12px; }
133
+ /* Who this is: the build's badge, then the game by name, then its id and environment dimmed. */
134
+ #bar .game-name { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
135
+ max-width: 22vw; }
136
+ #bar .env { color: var(--bm-text-dim); font-family: var(--bm-font-mono); font-size: 12px;
137
+ white-space: nowrap; }
128
138
  #bar .spacer { flex: 1; }
129
139
  #tabs { display: flex; gap: 4px; background: var(--bm-surface-alt); border-radius: 9999px;
130
140
  padding: 3px; }
@@ -248,7 +258,10 @@ ${BOOT_LOADER_CSS}
248
258
  <body>
249
259
  <div id="bar">
250
260
  <span class="wordmark">bitmagic dev</span>
251
- <span class="id">${escapeAttr(options.gameId)}</span>
261
+ <span id="cli-line" class="bm-badge${devLine ? ' bm-badge--warning' : ''}" title="${escapeAttr(lineTitle)}">${devLine ? 'DEV BUILD' : 'RELEASE'}</span>
262
+ <span id="game-name" class="game-name" title="gameName in src/work/game.json">${escapeAttr(options.gameName)}</span>
263
+ <span class="id" title="Game id, from bitmagic.json">${escapeAttr(options.gameId)}</span>
264
+ <span id="env" class="env" title="The api-server this project talks to">env ${escapeAttr(options.environment)}</span>
252
265
  <div id="tabs">
253
266
  <button class="tab bm-pill active" type="button" data-tab="game">Game</button>
254
267
  <button class="tab bm-pill" type="button" data-tab="editor">Editor</button>
@@ -378,6 +391,16 @@ ${ASSET_DETAIL_HTML}
378
391
 
379
392
  var loaded = false;
380
393
  var saving = false;
394
+ /**
395
+ * Which bitmagic dev process rendered this page, as first reported by its poll or its stream.
396
+ * A different id later means the server was restarted under this tab — and this page, its
397
+ * baked ports and quite possibly its JavaScript are from the OLD one. staleShell makes the
398
+ * next start() a full page reload instead of an iframe reboot; the reload itself goes through
399
+ * onChangeSignal so a sculpt in progress is asked, not destroyed.
400
+ */
401
+ var sessionId = null;
402
+ var sessionChanged = false;
403
+ var staleShell = false;
381
404
  var markersDirty = false;
382
405
  var lastKnownMtime = 0;
383
406
  var pollTimer = null;
@@ -1086,7 +1109,10 @@ ${ASSET_DETAIL_HTML}
1086
1109
  async function checkExternalEdits() {
1087
1110
  if (saving) return;
1088
1111
  try {
1089
- var state = await (await fetch('/api/state')).json();
1112
+ // from=shell is how the server tells this page's poll from the CLI's own probes when it
1113
+ // asks "is a tab watching?" before opening another (tab-reuse.ts).
1114
+ var state = await (await fetch('/api/state?from=shell')).json();
1115
+ noteSession(state.session, state.ready === true);
1090
1116
  showCliUpdate(state.cliUpdate);
1091
1117
  showPublish(state.publish);
1092
1118
  // Only the mtime comparison below needs the game to have booted — it is what establishes
@@ -1256,6 +1282,20 @@ ${ASSET_DETAIL_HTML}
1256
1282
  * button on it. What changed is who is usually writing — an agent, not the human — so the
1257
1283
  * default flipped from "always ask" to "ask only when the human is in the middle of something".
1258
1284
  */
1285
+ /**
1286
+ * A restarted bitmagic dev behind this tab. Noticed from either channel, acted on once the
1287
+ * new server's vite is up — rebooting against one that is not would only show a boot failure.
1288
+ */
1289
+ function noteSession(id, ready) {
1290
+ if (typeof id !== 'string' || id === '') return;
1291
+ if (sessionId === null) { sessionId = id; return; }
1292
+ if (id !== sessionId) sessionChanged = true;
1293
+ if (sessionChanged && ready && !staleShell) {
1294
+ staleShell = true;
1295
+ onChangeSignal('dev server restarted');
1296
+ }
1297
+ }
1298
+
1259
1299
  function onChangeSignal(reason) {
1260
1300
  // Logged because "why did my game just reload?" is otherwise unanswerable from the browser.
1261
1301
  console.log('[bitmagic dev] change signalled:', reason);
@@ -2297,6 +2337,9 @@ ${ASSET_DETAIL_HTML}
2297
2337
  }
2298
2338
 
2299
2339
  function start() {
2340
+ // The page itself is from a previous server: reload it whole rather than reboot the iframe
2341
+ // under markup and script the new server did not render. See noteSession.
2342
+ if (staleShell) { window.location.reload(); return; }
2300
2343
  stopLoop();
2301
2344
  var gen = ++generation;
2302
2345
  boot(gen).then(function () {
@@ -2323,6 +2366,14 @@ ${ASSET_DETAIL_HTML}
2323
2366
  try { return JSON.parse(event.data); } catch (error) { return {}; }
2324
2367
  }
2325
2368
  var events = new EventSource('/api/events/stream');
2369
+ // Sent first on every (re)connect. A reconnect that lands on a different session is a
2370
+ // restarted server; the poll it triggers below reads whether that server is ready yet.
2371
+ events.addEventListener('session', function (event) {
2372
+ noteSession(payloadOf(event).id, false);
2373
+ });
2374
+ // The stream is back — after a restart, or after the browser throttled this hidden tab. Ask
2375
+ // now rather than on the next tick of a poll that may be a minute away.
2376
+ events.addEventListener('open', function () { void checkExternalEdits(); });
2326
2377
  events.addEventListener('reload', function (event) {
2327
2378
  onChangeSignal(payloadOf(event).reason || 'change');
2328
2379
  });
@@ -2364,6 +2415,10 @@ ${ASSET_DETAIL_HTML}
2364
2415
  }
2365
2416
 
2366
2417
  shotButton.addEventListener('click', takeScreenshot);
2418
+ // A tab that was hidden while the server restarted finds out the moment it is looked at.
2419
+ document.addEventListener('visibilitychange', function () {
2420
+ if (document.visibilityState === 'visible') void checkExternalEdits();
2421
+ });
2367
2422
  document.getElementById('reload').addEventListener('click', reloadUnlessSculpting);
2368
2423
  // Same thing the bar's Reload does, put where a creator is already looking when a boot fails.
2369
2424
  // Unguarded on purpose: a failed boot has no session left to protect, and this is the way out.