@svenroth-ai/shipwright 0.25.0 → 0.26.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 (134) hide show
  1. package/client/dist/assets/{EmbeddedTerminal-5QvKe3_a.js → EmbeddedTerminal-D3wpPNZP.js} +1 -1
  2. package/client/dist/assets/{abnfDiagram-VRR7QNED-CXi9HegQ.js → abnfDiagram-VRR7QNED-BkLIltB3.js} +1 -1
  3. package/client/dist/assets/{arc-DLh4GiqR.js → arc-Sw-Gh0nI.js} +1 -1
  4. package/client/dist/assets/{architectureDiagram-ZJ3FMSHR-DUypQ8dQ.js → architectureDiagram-ZJ3FMSHR-rdxUi9Ks.js} +1 -1
  5. package/client/dist/assets/{blockDiagram-677ZJIJ3-D2cVMKJG.js → blockDiagram-677ZJIJ3-Ch_9dj8a.js} +1 -1
  6. package/client/dist/assets/{c4Diagram-LMCZKHZV-DtruBGJw.js → c4Diagram-LMCZKHZV-CkFlO65x.js} +1 -1
  7. package/client/dist/assets/channel-BYPbLjRl.js +1 -0
  8. package/client/dist/assets/{chunk-2Q5K7J3B-CAfQkFw2.js → chunk-2Q5K7J3B-CypX83xu.js} +1 -1
  9. package/client/dist/assets/{chunk-32BRIVSS-CPWXoLnQ.js → chunk-32BRIVSS-DxVLYGdl.js} +1 -1
  10. package/client/dist/assets/{chunk-5VM5RSS4-xVc3oppQ.js → chunk-5VM5RSS4-Cxk1evhx.js} +1 -1
  11. package/client/dist/assets/{chunk-EX3LRPZG-CUpl6fRR.js → chunk-EX3LRPZG-n9q5S4yJ.js} +1 -1
  12. package/client/dist/assets/{chunk-JWPE2WC7-NejUp56x.js → chunk-JWPE2WC7-jeL4xvir.js} +1 -1
  13. package/client/dist/assets/{chunk-MOJQB5TN-C9-2lLg0.js → chunk-MOJQB5TN-DDSHN0cj.js} +1 -1
  14. package/client/dist/assets/{chunk-RYQCIY6F-BAPtwABy.js → chunk-RYQCIY6F-C0bo383g.js} +1 -1
  15. package/client/dist/assets/{chunk-V7JOEXUC-Dwzihw26.js → chunk-V7JOEXUC-C0jDXXAU.js} +1 -1
  16. package/client/dist/assets/{chunk-VR4S4FIN-9-iArFJM.js → chunk-VR4S4FIN-h-Rr4Pn2.js} +1 -1
  17. package/client/dist/assets/{chunk-XXDRQBXY-DiWHOrqe.js → chunk-XXDRQBXY-BexSo0-s.js} +1 -1
  18. package/client/dist/assets/classDiagram-OUVF2IWQ-CsFIeTju.js +1 -0
  19. package/client/dist/assets/classDiagram-v2-EOCWNBFH-CsFIeTju.js +1 -0
  20. package/client/dist/assets/{cose-bilkent-JH36ORCC-Cp04EOcH.js → cose-bilkent-JH36ORCC-BQXzaioj.js} +1 -1
  21. package/client/dist/assets/{cynefin-VYW2F7L2-D--GN1v8.js → cynefin-VYW2F7L2-BJIofhfe.js} +1 -1
  22. package/client/dist/assets/{cynefinDiagram-TSTJHNR4-BGH0o_qp.js → cynefinDiagram-TSTJHNR4-DmPqTM1T.js} +1 -1
  23. package/client/dist/assets/{dagre-VKFMJZFB-DSKkIKlj.js → dagre-VKFMJZFB-1xljvw6X.js} +1 -1
  24. package/client/dist/assets/{diagram-FQU43EPY-Cs_C4lb-.js → diagram-FQU43EPY-iyL9muCG.js} +1 -1
  25. package/client/dist/assets/{diagram-G47NLZAW-oDtAA8O_.js → diagram-G47NLZAW-DREp2Th6.js} +1 -1
  26. package/client/dist/assets/{diagram-NH7WQ7WH-BiFMjqSH.js → diagram-NH7WQ7WH-h0X3Is2S.js} +1 -1
  27. package/client/dist/assets/{diagram-OA4YK3LP-Ccs3thCj.js → diagram-OA4YK3LP-Bj8YZRFJ.js} +1 -1
  28. package/client/dist/assets/{diagram-WEI45ONY-CdZNqgO3.js → diagram-WEI45ONY-BZOf805d.js} +1 -1
  29. package/client/dist/assets/{ebnfDiagram-CCIWWBDH-CapTA0VL.js → ebnfDiagram-CCIWWBDH-DO5JnXda.js} +1 -1
  30. package/client/dist/assets/{erDiagram-Q63AITRT-BcRNEP8s.js → erDiagram-Q63AITRT-DRgcqg1T.js} +1 -1
  31. package/client/dist/assets/{flowDiagram-23GEKE2U-CJ_zF7e_.js → flowDiagram-23GEKE2U-C3J9QmrW.js} +1 -1
  32. package/client/dist/assets/{ganttDiagram-NO4QXBWP-CnJdcg9A.js → ganttDiagram-NO4QXBWP-BIEl3Tkm.js} +1 -1
  33. package/client/dist/assets/{gitGraphDiagram-IHSO6WYX-YTUQ_ELk.js → gitGraphDiagram-IHSO6WYX-BNF0tFWC.js} +1 -1
  34. package/client/dist/assets/{index-irQhGNpn.js → index-BnTOrFHb.js} +203 -202
  35. package/client/dist/assets/index-CYPc6qxw.css +1 -0
  36. package/client/dist/assets/{infoDiagram-FWYZ7A6U-CLOP_ZWD.js → infoDiagram-FWYZ7A6U-DEyFxiyY.js} +1 -1
  37. package/client/dist/assets/{ishikawaDiagram-FXEZZL3T-aFTIzr7o.js → ishikawaDiagram-FXEZZL3T-B_ehlg3I.js} +1 -1
  38. package/client/dist/assets/{journeyDiagram-5HDEW3XC-CbPJB4xd.js → journeyDiagram-5HDEW3XC-Dp00FyJS.js} +1 -1
  39. package/client/dist/assets/{kanban-definition-HUTT4EX6-BoyhytIS.js → kanban-definition-HUTT4EX6-CTAf16q8.js} +1 -1
  40. package/client/dist/assets/{linear-1VXA-uBg.js → linear-9vNUgmYd.js} +1 -1
  41. package/client/dist/assets/{mermaid.core-D_lO2yK9.js → mermaid.core-A6tjaEVD.js} +4 -4
  42. package/client/dist/assets/{mindmap-definition-LN4V7U3C-iFK7LXMx.js → mindmap-definition-LN4V7U3C-DRW3bmCY.js} +1 -1
  43. package/client/dist/assets/{pegDiagram-2B236MQR-DNmcmfA-.js → pegDiagram-2B236MQR-DJFCjHp2.js} +1 -1
  44. package/client/dist/assets/{pieDiagram-ENE6RG2P-ekx83O5b.js → pieDiagram-ENE6RG2P-KRd-sGvC.js} +1 -1
  45. package/client/dist/assets/{quadrantDiagram-ABIIQ3AL-DayyD1l8.js → quadrantDiagram-ABIIQ3AL-9TLZE3Hu.js} +1 -1
  46. package/client/dist/assets/{railroadDiagram-RFXS5EU6-Bdgz7S6G.js → railroadDiagram-RFXS5EU6-y4tLtjXg.js} +1 -1
  47. package/client/dist/assets/{requirementDiagram-TGXJPOKE-szP3Muld.js → requirementDiagram-TGXJPOKE-B9EOQDQM.js} +1 -1
  48. package/client/dist/assets/{sankeyDiagram-HTMAVEWB-Ct3rzgUj.js → sankeyDiagram-HTMAVEWB-zfwiDzkT.js} +1 -1
  49. package/client/dist/assets/{sequenceDiagram-DBY2YBRQ-_69EfmOU.js → sequenceDiagram-DBY2YBRQ-DW1LWepL.js} +1 -1
  50. package/client/dist/assets/{sizeCapture-X5ZJPWSS-BSOU06J2.js → sizeCapture-X5ZJPWSS-BM81Mik0.js} +1 -1
  51. package/client/dist/assets/{stateDiagram-2N3HPSRC-HmOmFwQm.js → stateDiagram-2N3HPSRC-D0EMIw1w.js} +1 -1
  52. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-B3E4_xxT.js +1 -0
  53. package/client/dist/assets/{swimlanes-5IMT3BWC-CVg_4oT7.js → swimlanes-5IMT3BWC-CKXNCX6M.js} +2 -2
  54. package/client/dist/assets/swimlanesDiagram-G3AALYLV-BegQBqnC.js +8 -0
  55. package/client/dist/assets/{timeline-definition-FHXFAJF6-CBBaDKXm.js → timeline-definition-FHXFAJF6-ByzIfvL5.js} +1 -1
  56. package/client/dist/assets/{vennDiagram-L72KCM5P-CBXiWPMc.js → vennDiagram-L72KCM5P-Xep38xBH.js} +1 -1
  57. package/client/dist/assets/{wardleyDiagram-EHGQE667-uhBCZoW0.js → wardleyDiagram-EHGQE667-DKWDpx6g.js} +1 -1
  58. package/client/dist/assets/{xychartDiagram-FW5EYKEG-xxE_wY5O.js → xychartDiagram-FW5EYKEG-BGcwZTnu.js} +1 -1
  59. package/client/dist/index.html +27 -27
  60. package/lib/claude-cli.mjs +173 -173
  61. package/lib/preflight.mjs +252 -252
  62. package/lib/probe-path.mjs +84 -84
  63. package/lib/server.mjs +369 -369
  64. package/lib/util.mjs +157 -157
  65. package/lib/win32-spawn.mjs +253 -253
  66. package/package.json +68 -68
  67. package/scripts/deploy-procs.mjs +208 -208
  68. package/scripts/deploy-swap.mjs +276 -276
  69. package/scripts/kill-targets.js +140 -140
  70. package/scripts/repair-claude-json.mjs +295 -295
  71. package/server/dist/config/default-actions.json +90 -90
  72. package/server/dist/core/mission-context/association.d.ts +46 -0
  73. package/server/dist/core/mission-context/association.d.ts.map +1 -1
  74. package/server/dist/core/mission-context/association.js +69 -0
  75. package/server/dist/core/mission-context/association.js.map +1 -1
  76. package/server/dist/core/mission-context/resolver-iterate.d.ts +6 -0
  77. package/server/dist/core/mission-context/resolver-iterate.d.ts.map +1 -0
  78. package/server/dist/core/mission-context/resolver-iterate.js +202 -0
  79. package/server/dist/core/mission-context/resolver-iterate.js.map +1 -0
  80. package/server/dist/core/mission-context/resolver-parts.d.ts +20 -0
  81. package/server/dist/core/mission-context/resolver-parts.d.ts.map +1 -1
  82. package/server/dist/core/mission-context/resolver-parts.js +92 -0
  83. package/server/dist/core/mission-context/resolver-parts.js.map +1 -1
  84. package/server/dist/core/mission-context/resolver.d.ts +1 -1
  85. package/server/dist/core/mission-context/resolver.d.ts.map +1 -1
  86. package/server/dist/core/mission-context/resolver.js +17 -199
  87. package/server/dist/core/mission-context/resolver.js.map +1 -1
  88. package/server/dist/core/mission-context/run-id-recovery.d.ts +21 -5
  89. package/server/dist/core/mission-context/run-id-recovery.d.ts.map +1 -1
  90. package/server/dist/core/mission-context/run-id-recovery.js +32 -5
  91. package/server/dist/core/mission-context/run-id-recovery.js.map +1 -1
  92. package/server/dist/core/mission-context/scenario.d.ts +18 -11
  93. package/server/dist/core/mission-context/scenario.d.ts.map +1 -1
  94. package/server/dist/core/mission-context/scenario.js +40 -3
  95. package/server/dist/core/mission-context/scenario.js.map +1 -1
  96. package/server/dist/core/path-guard.d.ts +1 -1
  97. package/server/dist/core/path-guard.d.ts.map +1 -1
  98. package/server/dist/core/path-guard.js +9 -2
  99. package/server/dist/core/path-guard.js.map +1 -1
  100. package/server/dist/core/shipslog-docs-reader.d.ts +4 -0
  101. package/server/dist/core/shipslog-docs-reader.d.ts.map +1 -0
  102. package/server/dist/core/shipslog-docs-reader.js +181 -0
  103. package/server/dist/core/shipslog-docs-reader.js.map +1 -0
  104. package/server/dist/core/shipslog-docs-types.d.ts +15 -0
  105. package/server/dist/core/shipslog-docs-types.d.ts.map +1 -0
  106. package/server/dist/core/shipslog-docs-types.js +14 -0
  107. package/server/dist/core/shipslog-docs-types.js.map +1 -0
  108. package/server/dist/external/design-review/serve.js +27 -27
  109. package/server/dist/external/mission-context/association-write.d.ts +22 -0
  110. package/server/dist/external/mission-context/association-write.d.ts.map +1 -0
  111. package/server/dist/external/mission-context/association-write.js +90 -0
  112. package/server/dist/external/mission-context/association-write.js.map +1 -0
  113. package/server/dist/external/mission-context/routes.d.ts.map +1 -1
  114. package/server/dist/external/mission-context/routes.js +18 -31
  115. package/server/dist/external/mission-context/routes.js.map +1 -1
  116. package/server/dist/external/routes.d.ts.map +1 -1
  117. package/server/dist/external/routes.js +9 -6
  118. package/server/dist/external/routes.js.map +1 -1
  119. package/server/dist/external/shipslog-docs/routes.d.ts +10 -0
  120. package/server/dist/external/shipslog-docs/routes.d.ts.map +1 -0
  121. package/server/dist/external/shipslog-docs/routes.js +41 -0
  122. package/server/dist/external/shipslog-docs/routes.js.map +1 -0
  123. package/server/package.json +1 -1
  124. package/server/profiles/PROFILE_SCHEMA_VERSION +1 -1
  125. package/server/profiles/README.md +27 -27
  126. package/server/profiles/python-plugin-monorepo.json +35 -35
  127. package/server/profiles/supabase-nextjs.json +253 -253
  128. package/server/profiles/vite-hono.json +92 -92
  129. package/client/dist/assets/channel-C_k-9jsa.js +0 -1
  130. package/client/dist/assets/classDiagram-OUVF2IWQ-CsEPq9Ac.js +0 -1
  131. package/client/dist/assets/classDiagram-v2-EOCWNBFH-CsEPq9Ac.js +0 -1
  132. package/client/dist/assets/index-6nZ1bt0a.css +0 -1
  133. package/client/dist/assets/stateDiagram-v2-6OUMAXLB-BW8H33dv.js +0 -1
  134. package/client/dist/assets/swimlanesDiagram-G3AALYLV-BaRlxcPD.js +0 -8
@@ -20,10 +20,10 @@
20
20
  */
21
21
  import { Hono } from "hono";
22
22
  import { parseDocId } from "../../core/mission-context/doc-ids.js";
23
- import { revertMissionContext, setMissionContextOnce, } from "../../core/mission-context/association.js";
24
23
  import { resolveMissionContext, readDocumentBody, } from "../../core/mission-context/resolver.js";
25
24
  import { readAllowedRoots } from "../../core/mission-context/worktree-roots.js";
26
25
  import { samePath } from "../../core/mission-context/pointer.js";
26
+ import { persistMissionAssociation } from "./association-write.js";
27
27
  /** Bounded tail of the transcript — enough for a `pr-link`, never the whole file. */
28
28
  export const TRANSCRIPT_TAIL_BYTES = 512 * 1024;
29
29
  /**
@@ -129,6 +129,17 @@ export function createMissionContextRouter(deps) {
129
129
  scanned: wide ? read.revision : (window?.scanned ?? ""),
130
130
  });
131
131
  }
132
+ // Snapshotted ONCE, here — the exact value `resolveMissionContext` bases
133
+ // `associateRunId`/`associateSource` on. The write below must compare
134
+ // against THIS reference, not a fresh re-read of `task.missionContext` at
135
+ // write time: the resolve that follows does slow async work (git calls in
136
+ // resolver-iterate.ts), during which a concurrent poll (multi-tab, or the
137
+ // next ~1s tick landing first) can legitimately write a NEWER association
138
+ // — re-reading late would then "expect" that newer value and let this
139
+ // poll's now-stale decision overwrite it (doubt-reviewer HIGH,
140
+ // iterate-2026-08-31-mission-feed-gaps: a lost-update/TOCTOU race with no
141
+ // failure involved, so ELOCKED rollback never catches it).
142
+ const associationAtResolve = task.missionContext ?? null;
132
143
  const { context, associateRunId, associateSource } = await resolveMissionContext({
133
144
  taskId: task.taskId,
134
145
  sessionUuid: task.sessionUuid,
@@ -140,38 +151,14 @@ export function createMissionContextRouter(deps) {
140
151
  taskTerminal: task.state === "done" || task.state === "launch_failed",
141
152
  // Server-held, server-written — this is what keeps a FINALIZED iterate
142
153
  // resolvable after its `iterate_active` pointer was pruned.
143
- association: task.missionContext ?? null,
154
+ association: associationAtResolve,
144
155
  ...facts,
145
156
  }, deps.resolveDeps);
146
- // THE one guarded association write (CONTRACT §5). Idempotent: the store
147
- // no-ops when an association already exists, so repeated polls perform
148
- // exactly zero writes after the first. Never a per-GET side-effect.
149
- if (associateRunId && !task.missionContext) {
150
- const association = {
151
- kind: "iterate",
152
- runId: associateRunId,
153
- observedAt: now().toISOString(),
154
- source: associateSource,
155
- };
156
- if (setMissionContextOnce(store, task.taskId, association)) {
157
- try {
158
- await store.persist();
159
- }
160
- catch {
161
- // A lock contention (ELOCKED) or I/O fault must not fail the READ —
162
- // but the in-memory field MUST be rolled back, or every later poll
163
- // would see it set, skip the write, and the association would never
164
- // reach disk (external code review, openai HIGH).
165
- revertMissionContext(store, task.taskId, association);
166
- // …and the reach-back must be rolled back WITH it. The marker was
167
- // recorded before the resolve; leaving it would make every later poll
168
- // read only the ordinary tail while the task is unidentified again —
169
- // permanently unreachable for a footer beyond it, which is the very
170
- // data loss the rollback above exists to prevent, re-entered through
171
- // the read side (internal code review, MEDIUM).
172
- wideWindows.delete(task.taskId);
173
- }
174
- }
157
+ // THE one guarded association write (CONTRACT §5) — first association or
158
+ // a confirmed supersession, both idempotent. Split out to
159
+ // association-write.ts to stay under the file-size limit.
160
+ if (associateRunId) {
161
+ await persistMissionAssociation(store, task, associationAtResolve, associateRunId, associateSource, now, wideWindows);
175
162
  }
176
163
  return c.json({ status: "ok", context });
177
164
  });
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/mission-context/routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/external/routes.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASrD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IAC7D;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxE;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,UAAU,EAAE;QACV,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B;;;;WAIG;QACH,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C;;;;;;WAMG;QACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAClD,CAAC;IACF;;mEAE+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CAC3D,8EAsJA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/external/routes.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAqBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASrD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IAC7D;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxE;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;OAUG;IACH,UAAU,EAAE;QACV,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B;;;;WAIG;QACH,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C;;;;;;WAMG;QACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAClD,CAAC;IACF;;mEAE+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CAC3D,8EAuJA"}
@@ -40,7 +40,9 @@ import { createWiredMissionContextRouter } from "./mission-context/wire.js";
40
40
  import { createPreviewRouter } from "./preview/routes.js";
41
41
  import { createActionsRouter } from "./actions/routes.js";
42
42
  import { createTreeRouter } from "./tree/routes.js";
43
+ import { createShipsLogDocsRouter } from "./shipslog-docs/routes.js";
43
44
  import { createFileRouter } from "./file/routes.js";
45
+ import { createFileExistsRouter } from "./file/exists-routes.js";
44
46
  import { createMediaRouter } from "./media/routes.js";
45
47
  import { createInboxRouter } from "./inbox/routes.js";
46
48
  import { createTranscriptRouter } from "./transcript/routes.js";
@@ -108,11 +110,9 @@ export function createExternalRoutes(args) {
108
110
  app.route("/", createModelConfigRouter({ getProjectById }));
109
111
  // FR-01.43 — compliance dashboard is a READ-ONLY observer of dashboard.md.
110
112
  app.route("/", createComplianceRouter({ getProjectById, readCompliance: args.readCompliance }));
111
- // FR-01.46 — tracked event-log is a READ-ONLY observer of
112
- // shipwright_events.jsonl (per-run facts for Mission Control / Ship's-Log).
113
+ // FR-01.46 — tracked event-log is a READ-ONLY observer of shipwright_events.jsonl (per-run facts for Mission Control / Ship's-Log).
113
114
  app.route("/", createEventsRouter({ getProjectById }));
114
- // FR-01.47 — per-run data join (READ-ONLY): runId → FRs/tests/derived-gates/
115
- // phase-timings + grade-trend series, over the same shipwright_events.jsonl.
115
+ // FR-01.47 — per-run data join (READ-ONLY): runId → FRs/tests/derived-gates/phase-timings + grade-trend series, over the same shipwright_events.jsonl.
116
116
  app.route("/", createRunsRouter({ getProjectById }));
117
117
  // campaign 2026-07-18-mission-artifacts S1 — the Mission-context resolver.
118
118
  // Project-scoped, so it mounts only when a project lookup is wired. All
@@ -136,9 +136,12 @@ export function createExternalRoutes(args) {
136
136
  }));
137
137
  // CLAUDE.md rule 10 — realpath path-guard for tree + file.
138
138
  app.route("/", createTreeRouter({ getProjectById }));
139
+ // iterate-2026-08-31-shipslog-documents-panel — curated Requirements/Iterate/Agent-Docs/Compliance links for the Ship's-Log Documents panel.
140
+ app.route("/", createShipsLogDocsRouter({ getProjectById }));
139
141
  app.route("/", createFileRouter({ getProjectById }));
140
- // Range-capable video streaming (SmartViewer <video> pane). Separate
141
- // from /file: streams via createReadStream + 206, no 5 MB cap.
142
+ // Batched existence check so the Triage file viewer links only real paths.
143
+ app.route("/", createFileExistsRouter({ getProjectById }));
144
+ // Range-capable video streaming (SmartViewer <video> pane) — separate from /file: createReadStream + 206, no 5 MB cap.
142
145
  app.route("/", createMediaRouter({ getProjectById }));
143
146
  // GET actions + POST/DELETE per-project actions.json (Settings UI).
144
147
  app.route("/", createActionsRouter({ getProjectById, loadProfile: profileResolver }));
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/external/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/external/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Hono } from "hono";
2
+ import { type ShipsLogDocsBundle } from "../../core/shipslog-docs-reader.js";
3
+ import type { ExternalRouteProjectView } from "../_shared/helpers.js";
4
+ export interface ShipsLogDocsRouterDeps {
5
+ getProjectById?: (id: string) => ExternalRouteProjectView | undefined;
6
+ /** Defaults to the real fs-backed reader; tests inject a stub. */
7
+ readShipsLogDocs?: (projectRoot: string) => Promise<ShipsLogDocsBundle>;
8
+ }
9
+ export declare function createShipsLogDocsRouter(deps: ShipsLogDocsRouterDeps): Hono;
10
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/external/shipslog-docs/routes.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,CAAC;IACtE,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACzE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAyB3E"}
@@ -0,0 +1,41 @@
1
+ /*
2
+ * external/shipslog-docs/routes.ts — read-only observer surface for the
3
+ * Ship's-Log Documents panel (iterate-2026-08-31-shipslog-documents-panel).
4
+ *
5
+ * Owns:
6
+ * GET /api/external/projects/:projectId/shipslog-docs
7
+ * 200 { status:"ok", requirements, iterateSpecs, agentDocs, compliance }
8
+ * 404 { error:"project_not_found", projectId }
9
+ * 400 { error:"project_path_unavailable", projectId }
10
+ *
11
+ * No POST/PATCH/PUT/DELETE handler exists — WebUI never writes these docs
12
+ * from this surface (CLAUDE.md rule 1 spirit). Sourced by
13
+ * core/shipslog-docs-reader.ts, which owns the path-guard discipline.
14
+ */
15
+ import { Hono } from "hono";
16
+ import { readShipsLogDocs } from "../../core/shipslog-docs-reader.js";
17
+ export function createShipsLogDocsRouter(deps) {
18
+ const app = new Hono();
19
+ const { getProjectById } = deps;
20
+ const reader = deps.readShipsLogDocs ?? readShipsLogDocs;
21
+ const resolve = (c) => {
22
+ const projectId = c.req.param("projectId") ?? "";
23
+ const project = getProjectById?.(projectId);
24
+ if (!project) {
25
+ return c.json({ error: "project_not_found", projectId }, 404);
26
+ }
27
+ if (!project.path) {
28
+ return c.json({ error: "project_path_unavailable", projectId }, 400);
29
+ }
30
+ return { path: project.path };
31
+ };
32
+ app.get("/api/external/projects/:projectId/shipslog-docs", async (c) => {
33
+ const r = resolve(c);
34
+ if (r instanceof Response)
35
+ return r;
36
+ const bundle = await reader(r.path);
37
+ return c.json({ status: "ok", ...bundle });
38
+ });
39
+ return app;
40
+ }
41
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/external/shipslog-docs/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAA2B,MAAM,oCAAoC,CAAC;AAS/F,MAAM,UAAU,wBAAwB,CAAC,IAA4B;IACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IAEzD,MAAM,OAAO,GAAG,CAAC,CAAU,EAA+B,EAAE;QAC1D,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,iDAAiD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shipwright-command-center-server",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "tsx watch --env-file-if-exists=../.env.local src/index.ts",
@@ -1 +1 @@
1
- 1
1
+ 1
@@ -1,27 +1,27 @@
1
- # Bundled stack profiles
2
-
3
- This directory holds a **snapshot** of `shared/profiles/*.json` from the
4
- Shipwright monorepo. The WebUI ships this snapshot so it can run
5
- standalone — no Shipwright repo required at runtime.
6
-
7
- ## Lookup order (see `server/src/core/profile-loader.ts::getProfilesDir`)
8
-
9
- 1. `SHIPWRIGHT_PROFILES_DIR` — explicit user override (absolute path).
10
- 2. `SHIPWRIGHT_MONOREPO_PATH` → `<path>/shared/profiles/` — dev-loop
11
- helper: when you're iterating on the Shipwright monorepo itself and
12
- want profile edits to take effect without re-syncing the snapshot.
13
- 3. This directory (bundled snapshot) — the default when neither env
14
- var is set.
15
-
16
- ## Keeping the snapshot fresh
17
-
18
- The source of truth is `shipwright/shared/profiles/`. When profiles
19
- change upstream, re-run:
20
-
21
- ```bash
22
- npm run sync-profiles # (from webui/server/)
23
- ```
24
-
25
- …or just copy the changed files manually. There is no automatic sync —
26
- the snapshot-vs-live drift is intentional so Shipwright and the WebUI
27
- can release independently.
1
+ # Bundled stack profiles
2
+
3
+ This directory holds a **snapshot** of `shared/profiles/*.json` from the
4
+ Shipwright monorepo. The WebUI ships this snapshot so it can run
5
+ standalone — no Shipwright repo required at runtime.
6
+
7
+ ## Lookup order (see `server/src/core/profile-loader.ts::getProfilesDir`)
8
+
9
+ 1. `SHIPWRIGHT_PROFILES_DIR` — explicit user override (absolute path).
10
+ 2. `SHIPWRIGHT_MONOREPO_PATH` → `<path>/shared/profiles/` — dev-loop
11
+ helper: when you're iterating on the Shipwright monorepo itself and
12
+ want profile edits to take effect without re-syncing the snapshot.
13
+ 3. This directory (bundled snapshot) — the default when neither env
14
+ var is set.
15
+
16
+ ## Keeping the snapshot fresh
17
+
18
+ The source of truth is `shipwright/shared/profiles/`. When profiles
19
+ change upstream, re-run:
20
+
21
+ ```bash
22
+ npm run sync-profiles # (from webui/server/)
23
+ ```
24
+
25
+ …or just copy the changed files manually. There is no automatic sync —
26
+ the snapshot-vs-live drift is intentional so Shipwright and the WebUI
27
+ can release independently.
@@ -1,35 +1,35 @@
1
- {
2
- "name": "python-plugin-monorepo",
3
- "description": "Python plugin monorepo (uv workspace). Library/framework with no deployable web server. Each subdirectory under plugins/ is its own pyproject.toml-managed package; shared/ holds cross-plugin scripts and profiles. No root dev server, no frontend.",
4
- "version": "0.1.0",
5
- "stack": {
6
- "runtime": {
7
- "python": "3.11+"
8
- },
9
- "frontend": {},
10
- "backend": {}
11
- },
12
- "dev_server": null,
13
- "services": [],
14
- "testing": {
15
- "unit": "pytest",
16
- "command": "uv run pytest"
17
- },
18
- "linting": {
19
- "tool": "ruff",
20
- "command": "uv run ruff check"
21
- },
22
- "deploy": null,
23
- "folder_structure": {
24
- "plugins/": "Per-SDLC-phase Claude Code plugins (each with .claude-plugin/, hooks/, skills/, scripts/, tests/, pyproject.toml)",
25
- "shared/": "Cross-plugin scripts, profiles, templates, prompts",
26
- "docs/": "User-facing documentation (guide.md is canonical)",
27
- "integration-tests/": "Cross-plugin integration tests",
28
- "scripts/": "Top-level developer scripts (install.sh, update-marketplace.sh)"
29
- },
30
- "required_env_vars": {
31
- "build": [],
32
- "deploy": [],
33
- "plugin": []
34
- }
35
- }
1
+ {
2
+ "name": "python-plugin-monorepo",
3
+ "description": "Python plugin monorepo (uv workspace). Library/framework with no deployable web server. Each subdirectory under plugins/ is its own pyproject.toml-managed package; shared/ holds cross-plugin scripts and profiles. No root dev server, no frontend.",
4
+ "version": "0.1.0",
5
+ "stack": {
6
+ "runtime": {
7
+ "python": "3.11+"
8
+ },
9
+ "frontend": {},
10
+ "backend": {}
11
+ },
12
+ "dev_server": null,
13
+ "services": [],
14
+ "testing": {
15
+ "unit": "pytest",
16
+ "command": "uv run pytest"
17
+ },
18
+ "linting": {
19
+ "tool": "ruff",
20
+ "command": "uv run ruff check"
21
+ },
22
+ "deploy": null,
23
+ "folder_structure": {
24
+ "plugins/": "Per-SDLC-phase Claude Code plugins (each with .claude-plugin/, hooks/, skills/, scripts/, tests/, pyproject.toml)",
25
+ "shared/": "Cross-plugin scripts, profiles, templates, prompts",
26
+ "docs/": "User-facing documentation (guide.md is canonical)",
27
+ "integration-tests/": "Cross-plugin integration tests",
28
+ "scripts/": "Top-level developer scripts (install.sh, update-marketplace.sh)"
29
+ },
30
+ "required_env_vars": {
31
+ "build": [],
32
+ "deploy": [],
33
+ "plugin": []
34
+ }
35
+ }