@seanmars/tospec 0.19.0-beta.6 → 0.19.0-beta.8

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 (209) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/assets/dashboard/app.js +3 -3
  3. package/assets/rules/tospec/decision.md +3 -0
  4. package/dist/cli/index.d.ts.map +1 -1
  5. package/dist/cli/index.js +205 -36
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/commands/config.d.ts.map +1 -1
  8. package/dist/commands/config.js +151 -23
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/dashboard.d.ts +34 -9
  11. package/dist/commands/dashboard.d.ts.map +1 -1
  12. package/dist/commands/dashboard.js +213 -21
  13. package/dist/commands/dashboard.js.map +1 -1
  14. package/dist/commands/decision.d.ts +11 -0
  15. package/dist/commands/decision.d.ts.map +1 -1
  16. package/dist/commands/decision.js +182 -20
  17. package/dist/commands/decision.js.map +1 -1
  18. package/dist/commands/shared-output.d.ts +12 -0
  19. package/dist/commands/shared-output.d.ts.map +1 -1
  20. package/dist/commands/shared-output.js +50 -1
  21. package/dist/commands/shared-output.js.map +1 -1
  22. package/dist/commands/show.d.ts +10 -0
  23. package/dist/commands/show.d.ts.map +1 -1
  24. package/dist/commands/show.js +23 -4
  25. package/dist/commands/show.js.map +1 -1
  26. package/dist/commands/validate.d.ts +41 -1
  27. package/dist/commands/validate.d.ts.map +1 -1
  28. package/dist/commands/validate.js +95 -17
  29. package/dist/commands/validate.js.map +1 -1
  30. package/dist/commands/workflow/index.d.ts +5 -5
  31. package/dist/commands/workflow/index.d.ts.map +1 -1
  32. package/dist/commands/workflow/index.js +5 -5
  33. package/dist/commands/workflow/index.js.map +1 -1
  34. package/dist/commands/workflow/instructions.d.ts +23 -0
  35. package/dist/commands/workflow/instructions.d.ts.map +1 -1
  36. package/dist/commands/workflow/instructions.js +84 -16
  37. package/dist/commands/workflow/instructions.js.map +1 -1
  38. package/dist/commands/workflow/new-change.d.ts +2 -0
  39. package/dist/commands/workflow/new-change.d.ts.map +1 -1
  40. package/dist/commands/workflow/new-change.js +32 -4
  41. package/dist/commands/workflow/new-change.js.map +1 -1
  42. package/dist/commands/workflow/schemas.d.ts +2 -0
  43. package/dist/commands/workflow/schemas.d.ts.map +1 -1
  44. package/dist/commands/workflow/schemas.js +38 -1
  45. package/dist/commands/workflow/schemas.js.map +1 -1
  46. package/dist/commands/workflow/shared.d.ts +34 -2
  47. package/dist/commands/workflow/shared.d.ts.map +1 -1
  48. package/dist/commands/workflow/shared.js +37 -3
  49. package/dist/commands/workflow/shared.js.map +1 -1
  50. package/dist/commands/workflow/status.d.ts +14 -0
  51. package/dist/commands/workflow/status.d.ts.map +1 -1
  52. package/dist/commands/workflow/status.js +65 -8
  53. package/dist/commands/workflow/status.js.map +1 -1
  54. package/dist/commands/workflow/templates.d.ts +7 -0
  55. package/dist/commands/workflow/templates.d.ts.map +1 -1
  56. package/dist/commands/workflow/templates.js +13 -0
  57. package/dist/commands/workflow/templates.js.map +1 -1
  58. package/dist/core/archive.d.ts +14 -0
  59. package/dist/core/archive.d.ts.map +1 -1
  60. package/dist/core/archive.js +169 -18
  61. package/dist/core/archive.js.map +1 -1
  62. package/dist/core/artifact-graph/graph.d.ts +13 -3
  63. package/dist/core/artifact-graph/graph.d.ts.map +1 -1
  64. package/dist/core/artifact-graph/graph.js +16 -6
  65. package/dist/core/artifact-graph/graph.js.map +1 -1
  66. package/dist/core/artifact-graph/index.d.ts +1 -1
  67. package/dist/core/artifact-graph/index.d.ts.map +1 -1
  68. package/dist/core/artifact-graph/index.js +1 -1
  69. package/dist/core/artifact-graph/index.js.map +1 -1
  70. package/dist/core/artifact-graph/instruction-loader.d.ts +74 -3
  71. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
  72. package/dist/core/artifact-graph/instruction-loader.js +79 -31
  73. package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
  74. package/dist/core/artifact-graph/resolver.d.ts +26 -0
  75. package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
  76. package/dist/core/artifact-graph/resolver.js +44 -4
  77. package/dist/core/artifact-graph/resolver.js.map +1 -1
  78. package/dist/core/artifact-graph/stub-detection.d.ts +20 -0
  79. package/dist/core/artifact-graph/stub-detection.d.ts.map +1 -0
  80. package/dist/core/artifact-graph/stub-detection.js +42 -0
  81. package/dist/core/artifact-graph/stub-detection.js.map +1 -0
  82. package/dist/core/change-presenter.d.ts +16 -0
  83. package/dist/core/change-presenter.d.ts.map +1 -1
  84. package/dist/core/change-presenter.js +68 -9
  85. package/dist/core/change-presenter.js.map +1 -1
  86. package/dist/core/change-status-policy.d.ts +12 -1
  87. package/dist/core/change-status-policy.d.ts.map +1 -1
  88. package/dist/core/change-status-policy.js +33 -1
  89. package/dist/core/change-status-policy.js.map +1 -1
  90. package/dist/core/codex-residue.js +1 -1
  91. package/dist/core/config-schema.d.ts +1 -12
  92. package/dist/core/config-schema.d.ts.map +1 -1
  93. package/dist/core/config-schema.js +27 -1
  94. package/dist/core/config-schema.js.map +1 -1
  95. package/dist/core/config.d.ts +37 -0
  96. package/dist/core/config.d.ts.map +1 -1
  97. package/dist/core/config.js +37 -0
  98. package/dist/core/config.js.map +1 -1
  99. package/dist/core/dashboard-activity.js +2 -2
  100. package/dist/core/dashboard-activity.js.map +1 -1
  101. package/dist/core/dashboard-data.d.ts +5 -0
  102. package/dist/core/dashboard-data.d.ts.map +1 -1
  103. package/dist/core/dashboard-data.js +15 -8
  104. package/dist/core/dashboard-data.js.map +1 -1
  105. package/dist/core/init.d.ts +22 -0
  106. package/dist/core/init.d.ts.map +1 -1
  107. package/dist/core/init.js +107 -45
  108. package/dist/core/init.js.map +1 -1
  109. package/dist/core/list.d.ts +1 -1
  110. package/dist/core/list.d.ts.map +1 -1
  111. package/dist/core/list.js +68 -17
  112. package/dist/core/list.js.map +1 -1
  113. package/dist/core/markdown-render.d.ts +33 -0
  114. package/dist/core/markdown-render.d.ts.map +1 -0
  115. package/dist/core/markdown-render.js +103 -0
  116. package/dist/core/markdown-render.js.map +1 -0
  117. package/dist/core/migrate.d.ts +20 -6
  118. package/dist/core/migrate.d.ts.map +1 -1
  119. package/dist/core/migrate.js +102 -6
  120. package/dist/core/migrate.js.map +1 -1
  121. package/dist/core/parsers/change-parser.js +1 -1
  122. package/dist/core/parsers/change-parser.js.map +1 -1
  123. package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
  124. package/dist/core/parsers/markdown-parser.js +16 -0
  125. package/dist/core/parsers/markdown-parser.js.map +1 -1
  126. package/dist/core/parsers/requirement-blocks.js +32 -9
  127. package/dist/core/parsers/requirement-blocks.js.map +1 -1
  128. package/dist/core/root-selection.d.ts +11 -1
  129. package/dist/core/root-selection.d.ts.map +1 -1
  130. package/dist/core/root-selection.js +4 -2
  131. package/dist/core/root-selection.js.map +1 -1
  132. package/dist/core/rules.d.ts +6 -1
  133. package/dist/core/rules.d.ts.map +1 -1
  134. package/dist/core/rules.js +24 -2
  135. package/dist/core/rules.js.map +1 -1
  136. package/dist/core/schemas/base.schema.d.ts +3 -0
  137. package/dist/core/schemas/base.schema.d.ts.map +1 -1
  138. package/dist/core/schemas/base.schema.js +22 -0
  139. package/dist/core/schemas/base.schema.js.map +1 -1
  140. package/dist/core/schemas/change.schema.d.ts +8 -0
  141. package/dist/core/schemas/change.schema.d.ts.map +1 -1
  142. package/dist/core/schemas/spec.schema.d.ts +2 -0
  143. package/dist/core/schemas/spec.schema.d.ts.map +1 -1
  144. package/dist/core/shared/index.d.ts +1 -1
  145. package/dist/core/shared/index.d.ts.map +1 -1
  146. package/dist/core/shared/index.js +1 -1
  147. package/dist/core/shared/index.js.map +1 -1
  148. package/dist/core/shared/rules-generation.d.ts +27 -6
  149. package/dist/core/shared/rules-generation.d.ts.map +1 -1
  150. package/dist/core/shared/rules-generation.js +115 -44
  151. package/dist/core/shared/rules-generation.js.map +1 -1
  152. package/dist/core/shared/tool-detection.d.ts +19 -0
  153. package/dist/core/shared/tool-detection.d.ts.map +1 -1
  154. package/dist/core/shared/tool-detection.js +30 -2
  155. package/dist/core/shared/tool-detection.js.map +1 -1
  156. package/dist/core/spec-presenter.d.ts.map +1 -1
  157. package/dist/core/spec-presenter.js +5 -0
  158. package/dist/core/spec-presenter.js.map +1 -1
  159. package/dist/core/specs-apply.d.ts +15 -1
  160. package/dist/core/specs-apply.d.ts.map +1 -1
  161. package/dist/core/specs-apply.js +33 -11
  162. package/dist/core/specs-apply.js.map +1 -1
  163. package/dist/core/templates/workflows/apply.js +1 -1
  164. package/dist/core/templates/workflows/apply.js.map +1 -1
  165. package/dist/core/templates/workflows/archive.d.ts.map +1 -1
  166. package/dist/core/templates/workflows/archive.js +4 -2
  167. package/dist/core/templates/workflows/archive.js.map +1 -1
  168. package/dist/core/templates/workflows/decision.js +1 -1
  169. package/dist/core/templates/workflows/issue.d.ts.map +1 -1
  170. package/dist/core/templates/workflows/issue.js +3 -0
  171. package/dist/core/templates/workflows/issue.js.map +1 -1
  172. package/dist/core/update.d.ts +26 -0
  173. package/dist/core/update.d.ts.map +1 -1
  174. package/dist/core/update.js +111 -23
  175. package/dist/core/update.js.map +1 -1
  176. package/dist/core/validation/constants.d.ts +1 -1
  177. package/dist/core/validation/constants.d.ts.map +1 -1
  178. package/dist/core/validation/constants.js +6 -1
  179. package/dist/core/validation/constants.js.map +1 -1
  180. package/dist/core/validation/section-validator.d.ts.map +1 -1
  181. package/dist/core/validation/section-validator.js +21 -3
  182. package/dist/core/validation/section-validator.js.map +1 -1
  183. package/dist/core/validation/validator.d.ts +17 -4
  184. package/dist/core/validation/validator.d.ts.map +1 -1
  185. package/dist/core/validation/validator.js +120 -34
  186. package/dist/core/validation/validator.js.map +1 -1
  187. package/dist/utils/change-utils.d.ts +31 -2
  188. package/dist/utils/change-utils.d.ts.map +1 -1
  189. package/dist/utils/change-utils.js +127 -37
  190. package/dist/utils/change-utils.js.map +1 -1
  191. package/dist/utils/file-system.d.ts +1 -1
  192. package/dist/utils/file-system.js +1 -1
  193. package/dist/utils/item-discovery.d.ts +20 -5
  194. package/dist/utils/item-discovery.d.ts.map +1 -1
  195. package/dist/utils/item-discovery.js +28 -9
  196. package/dist/utils/item-discovery.js.map +1 -1
  197. package/dist/utils/spec-files.d.ts +12 -0
  198. package/dist/utils/spec-files.d.ts.map +1 -1
  199. package/dist/utils/spec-files.js +34 -0
  200. package/dist/utils/spec-files.js.map +1 -1
  201. package/dist/utils/task-progress.js +1 -1
  202. package/package.json +1 -1
  203. package/schemas/decision/templates/decision.md +3 -1
  204. package/schemas/decision/templates/index.md +2 -2
  205. package/schemas/issue/schema.yaml +4 -2
  206. package/schemas/issue/templates/spec.md +20 -2
  207. package/schemas/sdd/schema.yaml +4 -0
  208. package/schemas/sdd/templates/spec.md +20 -2
  209. /package/assets/rules/tospec/{single-sourc-of-truth.md → single-source-of-truth.md} +0 -0
@@ -15,15 +15,32 @@ import * as path from 'node:path';
15
15
  import * as os from 'node:os';
16
16
  import * as crypto from 'node:crypto';
17
17
  import { spawn } from 'node:child_process';
18
- import { marked } from 'marked';
19
18
  import { MarkdownParser } from '../core/parsers/markdown-parser.js';
19
+ import { renderMarkdownSafe } from '../core/markdown-render.js';
20
20
  import { collectOverview, collectChangeDetail, collectArchive, collectDecisions, readSyncConclusion, } from '../core/dashboard-data.js';
21
21
  import { collectActivity } from '../core/dashboard-activity.js';
22
22
  import { getGlobalConfigDir } from '../core/global-config.js';
23
23
  import { acceptsAnyHostHeader, assertBindableHost, isAllowedHostHeader, listenFrom, openBrowser, packageAssetsDir, sendJson, serveAsset, } from '../core/local-server.js';
24
- import { setTaskDone } from '../utils/task-progress.js';
24
+ import { resolveTaskFiles, setTaskDone } from '../utils/task-progress.js';
25
25
  const DEFAULT_PORT = 5620;
26
26
  const DEFAULT_HOST = '127.0.0.1';
27
+ // The detached child's readiness signal: `runDashboard` writes this to its own
28
+ // stderr once it has actually bound, and only when TOSPEC_DASHBOARD_PIDFILE
29
+ // marks it as a `--detach` child — a normal foreground run never emits it.
30
+ const LISTENING_PREFIX = 'LISTENING ';
31
+ /**
32
+ * Drops one leading `Error: ` from text a child process already formatted for
33
+ * display, so re-wrapping it does not stack a second prefix. Only the first
34
+ * line is considered — a message whose body legitimately mentions "Error:"
35
+ * further in keeps it.
36
+ */
37
+ function stripErrorPrefix(text) {
38
+ return text.replace(/^Error:\s*/, '');
39
+ }
40
+ // How long `--detach` waits for that signal. The child emits it immediately
41
+ // after binding, before the registry write and any browser launch, so anything
42
+ // slower than a cold Node start plus a bind means it is stuck, not busy.
43
+ const READINESS_TIMEOUT_MS = 10_000;
27
44
  /** This command's shipped frontend; `serveAsset` is confined to it. */
28
45
  const ASSETS_DIR = packageAssetsDir('dashboard');
29
46
  // -----------------------------------------------------------------------------
@@ -159,7 +176,14 @@ function changeNameFromTaskFile(projectRoot, resolvedAbsPath) {
159
176
  return null;
160
177
  return parts[2] || null;
161
178
  }
162
- /** Renders a tospec markdown file to HTML. */
179
+ /**
180
+ * Renders a tospec markdown file to HTML.
181
+ *
182
+ * The markup goes through `renderMarkdownSafe`, not `marked.parse`: the client
183
+ * assigns this with `innerHTML`, so anything the renderer passes through runs
184
+ * in the dashboard's origin — inside the CSRF boundary that `handleTaskUpdate`
185
+ * relies on. See `core/markdown-render.ts`.
186
+ */
163
187
  async function handleRender(projectRoot, fileParam, res) {
164
188
  if (!fileParam) {
165
189
  return sendJson(res, 400, { error: 'missing file parameter' });
@@ -175,7 +199,7 @@ async function handleRender(projectRoot, fileParam, res) {
175
199
  catch {
176
200
  return sendJson(res, 404, { error: 'not found' });
177
201
  }
178
- const html = await marked.parse(content);
202
+ const html = await renderMarkdownSafe(content);
179
203
  sendJson(res, 200, { html });
180
204
  }
181
205
  /** Reads a JSON request body, capped so a stray client can't exhaust memory. */
@@ -239,6 +263,20 @@ async function handleTaskUpdate(projectRoot, req, res) {
239
263
  if ((await readSyncConclusion(changeDir)) === 'PASS') {
240
264
  return sendJson(res, 409, { error: 'change is archiving; tasks are frozen' });
241
265
  }
266
+ // Confined to the schema's tracked task file, from the same resolver the
267
+ // read side uses. The path check above only proves the file sits inside a
268
+ // change directory, so any other markdown there with a checkbox on the
269
+ // addressed line was writable too — including proposal.md and design.md,
270
+ // the records this whole workflow exists to keep. The dashboard never
271
+ // offered those edits and never showed them afterwards either: `/api/task`
272
+ // reports progress from `resolveTaskFiles` alone, so a write outside it
273
+ // left no trace anywhere in the UI.
274
+ const tracked = resolveTaskFiles(changeDir, projectRoot).map((file) => path.resolve(file));
275
+ if (!tracked.includes(path.resolve(resolved))) {
276
+ return sendJson(res, 409, {
277
+ error: `${path.basename(resolved)} is not this change's tracked task file`,
278
+ });
279
+ }
242
280
  }
243
281
  try {
244
282
  await setTaskDone(resolved, line, done);
@@ -278,12 +316,40 @@ function broadcastChange(clients) {
278
316
  // -----------------------------------------------------------------------------
279
317
  // Router
280
318
  // -----------------------------------------------------------------------------
319
+ /**
320
+ * Second layer behind `renderMarkdownSafe`, applied to every response.
321
+ *
322
+ * `script-src 'self'` is the load-bearing directive: it refuses inline event
323
+ * handlers and `javascript:` URLs, which is what a markdown file would have to
324
+ * smuggle in to reach `POST /api/task` from inside this origin. Escaping in the
325
+ * renderer already stops that; this catches anything a future renderer change
326
+ * lets through.
327
+ *
328
+ * `style-src` keeps `'unsafe-inline'` deliberately — Chart.js writes inline
329
+ * styles, and a style injection cannot call the write endpoint, so tightening
330
+ * it would trade a working dashboard for no security.
331
+ */
332
+ function applyContentSecurityPolicy(res) {
333
+ res.setHeader('content-security-policy', [
334
+ "default-src 'none'",
335
+ "script-src 'self'",
336
+ "style-src 'self' 'unsafe-inline'",
337
+ "img-src 'self' data:",
338
+ "font-src 'self'",
339
+ // EventSource on /api/events and every fetch of /api/*.
340
+ "connect-src 'self'",
341
+ "base-uri 'none'",
342
+ "form-action 'none'",
343
+ "frame-ancestors 'none'",
344
+ ].join('; '));
345
+ }
281
346
  async function handleRequest(projectRoot, req, res, clients, boundHost, acceptAnyHost) {
282
347
  try {
283
348
  // Host allowlist runs before any route (DNS-rebinding guard).
284
349
  if (!isAllowedHostHeader(req.headers.host, boundHost, acceptAnyHost)) {
285
350
  return sendJson(res, 403, { error: 'forbidden host' });
286
351
  }
352
+ applyContentSecurityPolicy(res);
287
353
  const url = new URL(req.url ?? '/', 'http://localhost');
288
354
  const pathname = url.pathname;
289
355
  if (req.method === 'POST' && pathname === '/api/task') {
@@ -357,7 +423,7 @@ export async function startDashboardServer(projectRoot, opts = {}) {
357
423
  * edit. `fs.watch` uses OS change notifications, so it never opens or locks the
358
424
  * watched files — agents and users stay free to edit or delete them (D2).
359
425
  * Returns null if the directory can't be watched (e.g. missing).
360
- * ponytail: recursive watch; native on win32/macOS, Node 20+ on Linux.
426
+ * Limitation: recursive watch; native on win32/macOS, Node 20+ on Linux.
361
427
  */
362
428
  function watchTospec(projectRoot, onChange) {
363
429
  const dir = path.join(projectRoot, 'tospec');
@@ -437,7 +503,7 @@ async function writePidRecord(pidFile, rec) {
437
503
  * places that clear it (a dashboard's own exit, and `--stop` once it has killed
438
504
  * one) would otherwise delete whichever record happened to be there.
439
505
  *
440
- * ponytail: one record per project, so of two sibling dashboards only the later
506
+ * Limitation: one record per project, so of two sibling dashboards only the later
441
507
  * writer is tracked by pid file at all. This keeps the tracked one from being
442
508
  * deleted by the other's exit; it cannot hand the earlier dashboard a record
443
509
  * back. Both stay reachable through their registry markers, which is what the
@@ -540,6 +606,28 @@ export class DashboardStopError extends Error {
540
606
  this.diagnostic = { severity: 'error', code: 'dashboard_stop_needs_selection', message, fix };
541
607
  }
542
608
  }
609
+ /**
610
+ * The detached child neither reported itself listening nor exited. Distinct
611
+ * from an early-exit failure: the child may well still be coming up, so the
612
+ * message says what was not observed rather than claiming a startup failure,
613
+ * and points at `--list`, which can still find it via the record the child
614
+ * writes for itself.
615
+ */
616
+ export class DashboardReadinessTimeoutError extends Error {
617
+ diagnostic;
618
+ constructor(timeoutMs) {
619
+ const message = `The background dashboard process did not report that it is listening within ${Math.round(timeoutMs / 1000)}s. ` +
620
+ 'It was started and has not exited, so it may still be coming up.';
621
+ super(message);
622
+ this.name = 'DashboardReadinessTimeoutError';
623
+ this.diagnostic = {
624
+ severity: 'error',
625
+ code: 'dashboard_detach_readiness_timeout',
626
+ message,
627
+ fix: 'Check whether it came up with: tospec dashboard --list (then tospec dashboard --stop to stop it).',
628
+ };
629
+ }
630
+ }
543
631
  /**
544
632
  * Every dashboard `--stop` can reach: the registry union every project's pid
545
633
  * file, keyed by pid, reaping any record whose process has died along the way.
@@ -619,19 +707,33 @@ async function unregisterDashboard(pid) {
619
707
  .map((n) => fs.rm(path.join(dir, n), { force: true }).catch(() => { })));
620
708
  }
621
709
  /**
622
- * Launches the dashboard as a detached background process and returns
623
- * immediately. Re-runs this same CLI without `--detach` (the child is the
624
- * actual server); the child rewrites the PID file once it knows the real URL,
625
- * so an EADDRINUSE port fallback is still recorded correctly.
710
+ * Launches the dashboard as a detached background process. Re-runs this same
711
+ * CLI without `--detach` (the child is the actual server), then waits for the
712
+ * child's own `LISTENING` report before doing anything else, so the URL it
713
+ * prints is one the child actually bound — including after an EADDRINUSE
714
+ * fallback moved it off the port this process predicted. Order is therefore:
715
+ * spawn → wait for the child's report → write the PID record → print the URL.
626
716
  *
627
717
  * Refuses if any live dashboard already serves this project, foreground or
628
718
  * background, rather than spawning a second orphaned server. The guard asks the
629
719
  * shared candidate set rather than this project's pid file alone, because
630
720
  * either record can be the only one left: a foreground dashboard used to write
631
721
  * no pid file at all, and a background one can lose the one it wrote. Both made
632
- * the old guard see nothing and spawn a second server. The PID is written
633
- * before this returns, so a rapid second `--detach` sees it even before the
634
- * child has bound (the child writes late).
722
+ * the old guard see nothing and spawn a second server.
723
+ *
724
+ * Both this process and the child write that PID record, with identical fields
725
+ * by construction. They are not redundant — each is the only record that exists
726
+ * in one failure mode:
727
+ * - The child's (`runDashboard`) is the record *every* dashboard writes for
728
+ * itself, foreground included, and is all that remains if this process is
729
+ * killed mid-handshake or gives up on the readiness timeout.
730
+ * - This one is what makes a record exist by the time the call returns. The
731
+ * child writes its own only *after* it has signalled, so without this a
732
+ * rapid second `--detach` could find nothing to refuse against, and a child
733
+ * that wedges after binding would be an untrackable orphan.
734
+ * Both use `fs.writeFile`, so a concurrent truncate-then-write is two processes
735
+ * laying down the same bytes; a reader that catches it mid-write falls back to
736
+ * the registry marker (`readPidRecord` returns null on a parse failure).
635
737
  *
636
738
  * This is the only guarded start path: nothing stops a second foreground
637
739
  * `tospec dashboard`, so "one dashboard per project" holds for `--detach` and
@@ -665,29 +767,113 @@ export async function detachDashboard(projectRoot, cliEntry, opts) {
665
767
  args.push('--allow-remote');
666
768
  const child = spawn(process.execPath, args, {
667
769
  detached: true,
668
- stdio: 'ignore',
770
+ // stderr is piped so the parent can wait for the child's own report of
771
+ // success (LISTENING) or read its error text on an early exit — see
772
+ // waitForListening. stdout stays ignored; it is human text for a
773
+ // foreground run, not this handshake's concern.
774
+ stdio: ['ignore', 'ignore', 'pipe'],
669
775
  // On Windows, detached: true otherwise pops a new console window.
670
776
  windowsHide: true,
671
777
  env: { ...process.env, TOSPEC_DASHBOARD_PIDFILE: pidFile },
672
778
  });
673
- child.unref();
674
779
  // No pid means the spawn itself failed; say so rather than report success and
675
780
  // leave behind a record `--stop` could never use.
676
781
  if (child.pid === undefined) {
677
782
  throw new Error('Could not start the background dashboard process.');
678
783
  }
679
- // ponytail: no cross-process lock; two --detach in the same instant could
784
+ // Wait for the child to actually confirm it is listening before reporting
785
+ // anything: everything that can go wrong after a successful spawn — the
786
+ // --allow-remote refusal, EADDRINUSE, a permission error — happens inside
787
+ // the child and was previously unobservable behind stdio: 'ignore'.
788
+ let confirmedUrl;
789
+ try {
790
+ confirmedUrl = await waitForListening(child);
791
+ }
792
+ finally {
793
+ // Unconditional: on the timeout path the child is still running, and an
794
+ // un-unref'd handle would keep this process's event loop alive after the
795
+ // error has already been reported.
796
+ child.unref();
797
+ }
798
+ // The child writes this same record for itself (see the docstring for why
799
+ // both writers are kept); these fields are derived from the URL it reported,
800
+ // so the two agree whichever lands last.
801
+ //
802
+ // Limitation: no cross-process lock; two --detach in the same instant could
680
803
  // still both pass the guard. A human running the command twice is sequential,
681
804
  // so this synchronous write is enough — add a lockfile only if that changes.
682
805
  await writePidRecord(pidFile, {
683
806
  pid: child.pid,
684
- port,
685
- url,
807
+ port: portFromUrl(confirmedUrl) ?? port,
808
+ url: confirmedUrl,
686
809
  projectRoot: path.resolve(projectRoot),
687
810
  });
688
- console.log(`Dashboard starting in background at ${url}`);
811
+ console.log(`Dashboard starting in background at ${confirmedUrl}`);
689
812
  console.log('Stop it with: tospec dashboard --stop');
690
813
  }
814
+ /** `http://host:5621` -> `5621`, or null if the URL carries no parseable port. */
815
+ function portFromUrl(url) {
816
+ const match = /:(\d+)$/.exec(url);
817
+ return match ? Number(match[1]) : null;
818
+ }
819
+ /**
820
+ * Races the child's own outcome: resolves with the confirmed URL once it
821
+ * reports `LISTENING <url>` on stderr, rejects with the child's captured stderr
822
+ * (or a fallback message) if it exits first, and rejects on timeout if it does
823
+ * neither. Closes the stderr pipe once settled so an unref'd, still-running
824
+ * child cannot keep this process's event loop alive on our end of it.
825
+ *
826
+ * The timeout is the third outcome, not a nicety: `LISTENING` and `exit` do not
827
+ * cover a child that binds and then wedges, nor one whose readiness line stops
828
+ * being emitted — and with only those two listeners either case left
829
+ * `tospec dashboard --detach` hanging with no output at all.
830
+ */
831
+ function waitForListening(child, timeoutMs = READINESS_TIMEOUT_MS) {
832
+ return new Promise((resolve, reject) => {
833
+ let stderr = '';
834
+ let settled = false;
835
+ let timer;
836
+ const cleanup = () => {
837
+ if (timer)
838
+ clearTimeout(timer);
839
+ child.stderr?.removeListener('data', onData);
840
+ child.removeListener('exit', onExit);
841
+ child.stderr?.destroy();
842
+ };
843
+ const onData = (chunk) => {
844
+ stderr += chunk.toString();
845
+ const line = stderr.split('\n').find((l) => l.startsWith(LISTENING_PREFIX));
846
+ if (line && !settled) {
847
+ settled = true;
848
+ cleanup();
849
+ resolve(line.slice(LISTENING_PREFIX.length).trim());
850
+ }
851
+ };
852
+ const onExit = (code) => {
853
+ if (settled)
854
+ return;
855
+ settled = true;
856
+ cleanup();
857
+ reject(new Error(
858
+ // The child already formatted its failure as `Error: <message>` on
859
+ // stderr. Carrying that prefix into a new Error made the parent's own
860
+ // `Error: ` formatter print it twice, so the same refusal read as
861
+ // "Error: Error: Refusing to bind..." under --detach and correctly in
862
+ // the foreground. Strip the child's prefix, not the parent's.
863
+ stripErrorPrefix(stderr.trim()) ||
864
+ `The background dashboard process exited before it started listening (code ${code}).`));
865
+ };
866
+ child.stderr?.on('data', onData);
867
+ child.on('exit', onExit);
868
+ timer = setTimeout(() => {
869
+ if (settled)
870
+ return;
871
+ settled = true;
872
+ cleanup();
873
+ reject(new DashboardReadinessTimeoutError(timeoutMs));
874
+ }, timeoutMs);
875
+ });
876
+ }
691
877
  /** Case-correct path equality (the Windows filesystem is case-insensitive). */
692
878
  export function samePath(a, b) {
693
879
  const na = path.resolve(a);
@@ -719,7 +905,7 @@ export function selectStopTargets(candidates, projectRoot) {
719
905
  * not tell the user how to unblock.
720
906
  */
721
907
  export function shouldRefuseDetach(candidates, projectRoot) {
722
- // ponytail: names the first match only, though `selectStopTargets` can return
908
+ // Limitation: names the first match only, though `selectStopTargets` can return
723
909
  // several (a project that already had two before this guard existed). One is
724
910
  // enough to refuse and to point at; `--stop` still clears all of them.
725
911
  return selectStopTargets(candidates, projectRoot)[0] ?? null;
@@ -734,7 +920,7 @@ export function shouldRefuseDetach(candidates, projectRoot) {
734
920
  * as stopped would be this ticket's own bug all over again, so we hand the
735
921
  * caller what actually happened and leave that dashboard's records alone.
736
922
  *
737
- * ponytail: SIGTERM; on Windows Node maps this to TerminateProcess (hard kill),
923
+ * Limitation: SIGTERM; on Windows Node maps this to TerminateProcess (hard kill),
738
924
  * so the target's own cleanup won't run — we clear its files here.
739
925
  */
740
926
  export async function stopRunningDashboard(d) {
@@ -770,6 +956,12 @@ export async function runDashboard(projectRoot, opts = {}) {
770
956
  start++;
771
957
  const { server, url, port } = await startDashboardServer(projectRoot, { ...opts, port: start });
772
958
  console.log(`Dashboard running at ${url} (Ctrl+C to stop)`);
959
+ // Detached child only: this is `detachDashboard`'s readiness handshake — its
960
+ // parent is waiting on stderr for exactly this line before it reports
961
+ // anything. A direct foreground run has no parent watching, so it stays quiet.
962
+ if (process.env.TOSPEC_DASHBOARD_PIDFILE) {
963
+ console.error(`${LISTENING_PREFIX}${url}`);
964
+ }
773
965
  await registerDashboard(process.pid, port, path.resolve(projectRoot));
774
966
  // Every dashboard records itself, foreground included — `--detach` can only
775
967
  // refuse for a foreground dashboard if one leaves a record, and the registry
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,17 @@
17
17
  * required-sections contract; this command consumes them.
18
18
  */
19
19
  import { Command } from 'commander';
20
+ /**
21
+ * Exported so `new change` can refuse it by name. The decision schema backs
22
+ * this command's ADR writer, not the change graph: its artifact lands in
23
+ * `tospec/decisions/`, so a change created against it produced a directory
24
+ * under `tospec/changes/` that `decision list` never saw, with no ticket and
25
+ * no `type`.
26
+ */
27
+ export declare const DECISION_SCHEMA_NAME = "decision";
28
+ /** The `--json` null-shapes; shared by the commander table and the catch sites. */
29
+ export declare const DECISION_NEW_FAILURE_PAYLOAD: Record<string, unknown>;
30
+ export declare const DECISION_LIST_FAILURE_PAYLOAD: Record<string, unknown>;
20
31
  export interface DecisionNewOptions {
21
32
  title?: string;
22
33
  date?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/commands/decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA2B5C,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAmCD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAyBzE;AAmDD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CrF;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC9D"}
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/commands/decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAsB5C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,mFAAmF;AACnF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGhE,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGjE,CAAC;AASF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAmCD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAyBzE;AAqKD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Ff;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDrF;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC9D"}