prismatica 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/assurance/mainpush.js +383 -8
  2. package/dist/assurance/mainpush.js.map +1 -1
  3. package/dist/assurance/proofinputs.js +62 -34
  4. package/dist/assurance/proofinputs.js.map +1 -1
  5. package/dist/atlas/labels.js +2 -2
  6. package/dist/atlas/labels.js.map +1 -1
  7. package/dist/atlas/next.js +81 -18
  8. package/dist/atlas/next.js.map +1 -1
  9. package/dist/board/html.js +37 -9
  10. package/dist/board/html.js.map +1 -1
  11. package/dist/board/model.js +58 -14
  12. package/dist/board/model.js.map +1 -1
  13. package/dist/cli.js +61 -6
  14. package/dist/cli.js.map +1 -1
  15. package/dist/commands/delta.js +84 -1
  16. package/dist/commands/delta.js.map +1 -1
  17. package/dist/commands/doctor.js +53 -9
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/frame.js +13 -1
  20. package/dist/commands/frame.js.map +1 -1
  21. package/dist/commands/guide.js +17 -5
  22. package/dist/commands/guide.js.map +1 -1
  23. package/dist/commands/next.js +80 -21
  24. package/dist/commands/next.js.map +1 -1
  25. package/dist/commands/release.js +950 -0
  26. package/dist/commands/release.js.map +1 -0
  27. package/dist/commands/ship.js +18 -2
  28. package/dist/commands/ship.js.map +1 -1
  29. package/dist/commands/start.js +5 -2
  30. package/dist/commands/start.js.map +1 -1
  31. package/dist/executor.js +7 -0
  32. package/dist/executor.js.map +1 -1
  33. package/dist/git.js +27 -0
  34. package/dist/git.js.map +1 -1
  35. package/dist/guide.js +206 -33
  36. package/dist/guide.js.map +1 -1
  37. package/dist/paths.js +7 -0
  38. package/dist/paths.js.map +1 -1
  39. package/dist/planning/pack.js +12 -7
  40. package/dist/planning/pack.js.map +1 -1
  41. package/dist/planning/schema.js +17 -1
  42. package/dist/planning/schema.js.map +1 -1
  43. package/dist/prepush.js +52 -0
  44. package/dist/prepush.js.map +1 -1
  45. package/dist/records/store.js +17 -1
  46. package/dist/records/store.js.map +1 -1
  47. package/dist/records/types.js +87 -7
  48. package/dist/records/types.js.map +1 -1
  49. package/dist/releases.js +287 -0
  50. package/dist/releases.js.map +1 -0
  51. package/dist/render.js +23 -0
  52. package/dist/render.js.map +1 -1
  53. package/dist/title.js +69 -0
  54. package/dist/title.js.map +1 -0
  55. package/package.json +5 -1
  56. package/dist/agent-runner.js +0 -656
  57. package/dist/agent-runner.js.map +0 -1
  58. package/dist/atlas/packs.js +0 -169
  59. package/dist/atlas/packs.js.map +0 -1
@@ -288,67 +288,95 @@ async function isOwnersDecisionFor(home, contract, relPath, ref) {
288
288
  return verifySignature(decisionMessage(decision.contractId, decision.patchId, decision.decision), decision.signature, decision.publicKey);
289
289
  }
290
290
  /**
291
- * Every uncommitted path in `home` that is NOT one of this change's own
292
- * lifecycle outputs — the list `check` and `review` refuse on.
291
+ * Every dirty entry in `home`, classified against this change's own
292
+ * lifecycle-output allowlist — the one place that allowlist is applied, shared
293
+ * by `uncommittedProofInputs` (the working-tree refusal, as display strings)
294
+ * and `nonExemptDirtyPaths` (the exact paths `next` builds a checkpoint commit
295
+ * from).
293
296
  *
294
297
  * `dirtyEntries`, never `dirtyPaths`: plain porcelain collapses a brand-new
295
298
  * untracked DIRECTORY to a single entry, so on a lane's first `check` the whole
296
299
  * of `.prismatica/evidence/` arrives as one path and no per-file test can be
297
- * applied to it.
298
- *
299
- * A `renamed` or `unmerged` entry is refused BEFORE any exemption is consulted.
300
- * Neither is a shape this sequence can produce — every record here is written
301
- * in place — and a staged rename is reported as ONE entry whose path is the
302
- * DESTINATION, so testing the path alone would tolerate `git mv` of a committed
303
- * report into `evidence/<id>/` while the record itself left the tree.
300
+ * applied to it. A `renamed` or `unmerged` entry is classified `unsafe` BEFORE
301
+ * any exemption is consulted.
304
302
  */
305
- export async function uncommittedProofInputs(home, contract) {
306
- const refused = [];
303
+ async function classifyDirtyEntries(home, contract) {
307
304
  const contractRel = laneRelative(home, contractPath(home, contract.id));
305
+ const result = [];
308
306
  for (const entry of await git.dirtyEntries(home)) {
309
307
  if (entry.change === 'renamed') {
310
- refused.push(entry.renamedFrom ? `${entry.renamedFrom} → ${entry.path}` : entry.path);
308
+ result.push({
309
+ path: entry.path,
310
+ display: entry.renamedFrom ? `${entry.renamedFrom} → ${entry.path}` : entry.path,
311
+ exempt: false,
312
+ unsafe: true,
313
+ });
311
314
  continue;
312
315
  }
313
316
  if (entry.change === 'unmerged') {
314
- refused.push(entry.path);
317
+ result.push({ path: entry.path, display: entry.path, exempt: false, unsafe: true });
315
318
  continue;
316
319
  }
320
+ let exempt = false;
317
321
  if (isCheckEvidenceFile(home, contract.id, entry.path)) {
318
- continue;
322
+ exempt = true;
319
323
  }
320
- if (entry.path === laneRelative(home, ledgerPath(home))) {
321
- if (await isAppendedLog(home, ledgerPath(home), entry.path, ledgerExtendsByAppend)) {
322
- continue;
323
- }
324
- refused.push(entry.path);
325
- continue;
324
+ else if (entry.path === laneRelative(home, ledgerPath(home))) {
325
+ exempt = await isAppendedLog(home, ledgerPath(home), entry.path, ledgerExtendsByAppend);
326
326
  }
327
- if (entry.path === laneRelative(home, readyLogPath(home))) {
327
+ else if (entry.path === laneRelative(home, readyLogPath(home))) {
328
328
  // `review` appends a drafted-attempt event past its own cleanliness gate,
329
329
  // so the very next `check` sees this file uncommitted in the ordinary
330
330
  // loop. Tolerated on the ledger's terms and no others.
331
- if (await isAppendedLog(home, readyLogPath(home), entry.path, readyLogExtendsByAppend)) {
332
- continue;
333
- }
334
- refused.push(entry.path);
335
- continue;
331
+ exempt = await isAppendedLog(home, readyLogPath(home), entry.path, readyLogExtendsByAppend);
336
332
  }
337
- if (isReplaceableReview(home, contract.id, entry.path)) {
338
- continue;
333
+ else if (isReplaceableReview(home, contract.id, entry.path)) {
334
+ exempt = true;
339
335
  }
340
- if (entry.path === contractRel) {
336
+ else if (entry.path === contractRel) {
341
337
  // Prismatica's own stage bump and nothing else. A contract with no
342
338
  // committed version at HEAD fails closed: the terms this run is about
343
339
  // are then on no pull request at all.
344
340
  const committed = parseContract(await git.showFile(home, 'HEAD', contractRel));
345
- if (committed && isForwardStageOnly(contract, committed)) {
346
- continue;
347
- }
341
+ exempt = Boolean(committed && isForwardStageOnly(contract, committed));
348
342
  }
349
- refused.push(entry.path);
343
+ result.push({ path: entry.path, display: entry.path, exempt, unsafe: false });
350
344
  }
351
- return refused;
345
+ return result;
346
+ }
347
+ /**
348
+ * Every uncommitted path in `home` that is NOT one of this change's own
349
+ * lifecycle outputs — the list `check` and `review` refuse on.
350
+ */
351
+ export async function uncommittedProofInputs(home, contract) {
352
+ const entries = await classifyDirtyEntries(home, contract);
353
+ return entries.filter((entry) => entry.unsafe || !entry.exempt).map((entry) => entry.display);
354
+ }
355
+ /**
356
+ * The exact non-exempt dirty paths `next` needs for a checkpoint commit —
357
+ * implementation plus any dirty contract, pack, Flow report, Delta, proposal
358
+ * or canonical record, over the SAME allowlist `check` and `review` refuse on
359
+ * (never a second, independent approximation of it). `blocked` is true when a
360
+ * rename or unmerged conflict sits among the non-exempt entries: `paths` then
361
+ * excludes it, because a plain `git add <path>` cannot safely resolve either,
362
+ * and the caller must route to manual resolution instead of a malformed
363
+ * command.
364
+ *
365
+ * `exemptPaths` is this change's own lifecycle outputs — the ledger, this
366
+ * change's evidence, a draft review, the ready log, a forward-only contract
367
+ * stage bump — read off the SAME classifier pass, never a second list.
368
+ * `check` and `review` still tolerate them uncommitted; `next` is the only
369
+ * caller that also needs to know they exist, so it can fold them into the
370
+ * one checkpoint commit that gets the lane clean enough for Ship.
371
+ */
372
+ export async function nonExemptDirtyPaths(home, contract) {
373
+ const entries = await classifyDirtyEntries(home, contract);
374
+ const nonExempt = entries.filter((entry) => !entry.exempt);
375
+ return {
376
+ paths: nonExempt.filter((entry) => !entry.unsafe).map((entry) => entry.path),
377
+ blocked: nonExempt.some((entry) => entry.unsafe),
378
+ exemptPaths: entries.filter((entry) => entry.exempt).map((entry) => entry.path),
379
+ };
352
380
  }
353
381
  /**
354
382
  * Whether a check recorded at `checkedHead` still binds `head` (the current
@@ -1 +1 @@
1
- {"version":3,"file":"proofinputs.js","sourceRoot":"","sources":["../../src/assurance/proofinputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proofinputs.js","sourceRoot":"","sources":["../../src/assurance/proofinputs.ts"],"names":[],"mappings":"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"}
@@ -64,10 +64,10 @@ export const FLOW_STEP_FIELD = {
64
64
  changes: { label: 'Changes', hint: 'What data or state changes.' },
65
65
  assumes: { label: 'Only if', hint: 'This step only works when these are true.' },
66
66
  };
67
- // ── Mechanics (agent-owned, collapsed by default) ──────────────────────────────
67
+ // ── Mechanics (proposed like any other Flow content, collapsed by default) ────
68
68
  export const MECHANICS_FIELD = {
69
69
  label: 'Where it lives in the code',
70
- hint: 'Kept current by agents automaticallynever needs your approval.',
70
+ hint: 'An agent proposes it, like any other Flow content canonical mechanics only change once you run `flow approve`.',
71
71
  };
72
72
  // ── Evidence — attached per step/rule, never a whole-flow claim ───────────────
73
73
  /** The four states from R8: manually verified / test verified / code inferred / stale — plus unknown. */
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/atlas/labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/atlas/labels.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { UNDERSTAND_CTA, UNDERSTAND_IMPORT_COMMAND } from './labels.js';
2
2
  import { shellQuote } from '../shellquote.js';
3
+ import { clampTitle } from '../title.js';
3
4
  /**
4
5
  * The ONE way Prismatica ever tells the owner to catch main up. Shared by
5
6
  * `next`'s rule 11, `frame`'s stale-base refusal and `close`'s follow-through
@@ -40,7 +41,14 @@ function forChange(change) {
40
41
  after: `prismatica open ${change.builder} ${change.id}`,
41
42
  };
42
43
  }
43
- if (!change.hasCommittedWork && change.dirtyCodePaths.length === 0) {
44
+ // No code diff at all yet — even though `frame`/`pack` typically leave the
45
+ // freshly written contract and pack themselves uncommitted, that is not
46
+ // "work to check": the agent's own first commit sweeps them in along with
47
+ // the code (see the checkpoint-commit branch below). Gating this on
48
+ // `hasCommittedWork` alone, rather than on `checkpointPaths` too, is what
49
+ // keeps a freshly packed lane routed to `open` instead of a premature
50
+ // commit nagging the owner before the agent has done anything.
51
+ if (!change.hasCommittedWork) {
44
52
  return {
45
53
  rule: 7,
46
54
  command: `prismatica open ${change.builder} ${change.id}`,
@@ -58,16 +66,50 @@ function forChange(change) {
58
66
  after: `prismatica open ${change.builder} ${change.id}`,
59
67
  };
60
68
  }
61
- if (change.dirtyCodePaths.length > 0) {
62
- const quotedPaths = change.dirtyCodePaths.map(shellQuote).join(' ');
63
- const inLane = `git -C ${shellQuote(change.lane)}`;
69
+ // Flow Report belongs BEFORE Check: the complete working-tree impact is
70
+ // resolved first, so the report file lands in the SAME checkpoint commit as
71
+ // the code it explains, rather than a Check → Flow Report → commit →
72
+ // second Check cycle.
73
+ if (change.flowReportGaps.length > 0) {
74
+ return {
75
+ rule: 7,
76
+ // `--auto`, because the bare command has no arguments to act on and
77
+ // simply errors. `--auto` records what the diff proves and then prints
78
+ // the exact per-flow commands for everything it deliberately would not
79
+ // decide, so this is one paste that always moves the change forward.
80
+ command: 'prismatica flow report --auto',
81
+ why: change.flowReportGaps.join('; '),
82
+ after: 'prismatica next',
83
+ };
84
+ }
85
+ if (change.checkpointBlocked) {
64
86
  return {
65
87
  rule: 7,
66
- command: `${inLane} add ${quotedPaths} && ${inLane} commit -m ${shellQuote(change.title)}`,
67
- why: `"${change.id}" has uncommitted work in the lane`,
88
+ command: `git -C ${shellQuote(change.lane)} status`,
89
+ why: `"${change.id}" has a rename or an unresolved conflict — resolve it by hand before the next checkpoint commit`,
68
90
  after: `prismatica check ${change.id}`,
69
91
  };
70
92
  }
93
+ if (change.checkpointPaths.length > 0) {
94
+ // Widened to also name this change's own exempt records, in the same
95
+ // classifier pass's order, so the commit it prints never leaves one of
96
+ // them behind for a second owner loop. `after` asks `prismatica next`
97
+ // rather than re-running Check: every path this can now include —
98
+ // implementation plus the ledger, evidence, a draft review or a forward
99
+ // stage bump — is already tolerated by `checkStillBinds` across this
100
+ // exact commit, so the previous Check stays current and re-checking
101
+ // would only write a fresh ledger row and dirty the lane again.
102
+ const quotedPaths = [...change.checkpointPaths, ...change.checkpointRecordPaths]
103
+ .map(shellQuote)
104
+ .join(' ');
105
+ const inLane = `git -C ${shellQuote(change.lane)}`;
106
+ return {
107
+ rule: 7,
108
+ command: `${inLane} add ${quotedPaths} && ${inLane} commit -m ${shellQuote(clampTitle(change.title))}`,
109
+ why: `"${change.id}" has uncommitted work that Check requires committed`,
110
+ after: 'prismatica next',
111
+ };
112
+ }
71
113
  if (change.lastCheck !== 'pass') {
72
114
  if (!change.readyCheckAttemptAvailable) {
73
115
  return {
@@ -87,18 +129,6 @@ function forChange(change) {
87
129
  after: 'prismatica next',
88
130
  };
89
131
  }
90
- if (change.flowReportGaps.length > 0) {
91
- return {
92
- rule: 7,
93
- // `--auto`, because the bare command has no arguments to act on and
94
- // simply errors. `--auto` records what the diff proves and then prints
95
- // the exact per-flow commands for everything it deliberately would not
96
- // decide, so this is one paste that always moves the change forward.
97
- command: 'prismatica flow report --auto',
98
- why: change.flowReportGaps.join('; '),
99
- after: 'prismatica next',
100
- };
101
- }
102
132
  // A reviewer who said no outranks everything downstream, at EVERY tier above
103
133
  // light — this used to be reachable only through the heavy-tier decision
104
134
  // branch below, so a normal-tier `request_changes` fell straight through to
@@ -184,6 +214,25 @@ function forChange(change) {
184
214
  after: `prismatica check ${change.id}`,
185
215
  };
186
216
  }
217
+ // Only exempt records are dirty — the reported dogfood failure: `check`,
218
+ // `review`, `seal` and `accept` all leave their own lifecycle outputs
219
+ // uncommitted by design (see `checkpointPaths` above, which is empty by
220
+ // the time we reach here), but Ship's `requireExactCleanLane` refuses on
221
+ // ANY dirty path. Placed after `failed` and before `unknown` on purpose:
222
+ // by this point `merged`/`ready`/`pending`/`failed` have already
223
+ // returned, so this only ever intercepts the two returns below whose
224
+ // command would otherwise hit Ship's clean-HEAD preflight — the ordinary
225
+ // ready-to-ship fallthrough and the gh-unavailable `unknown` case.
226
+ if (change.checkpointRecordPaths.length > 0) {
227
+ const quotedPaths = change.checkpointRecordPaths.map(shellQuote).join(' ');
228
+ const inLane = `git -C ${shellQuote(change.lane)}`;
229
+ return {
230
+ rule: 7,
231
+ command: `${inLane} add ${quotedPaths} && ${inLane} commit -m ${shellQuote(clampTitle(change.title))}`,
232
+ why: `"${change.id}" has generated records that still need committing before Ship's clean-lane check will pass`,
233
+ after: `prismatica ship ${change.id}`,
234
+ };
235
+ }
187
236
  if (change.prState === 'unknown') {
188
237
  return {
189
238
  rule: 7,
@@ -294,6 +343,20 @@ export function decideNext(state) {
294
343
  after: 'prismatica next',
295
344
  };
296
345
  }
346
+ // A release contract that reached main with no release record yet. Checked
347
+ // BEFORE `awaitingVerification` for two reasons: a release contract can
348
+ // never satisfy that candidate pool honestly (it never gets a passport), and
349
+ // when both an ordinary awaiting-verification contract and an in-flight
350
+ // release exist at once, finishing the release — the narrower, owner-only,
351
+ // resumable transaction — is the more useful next step.
352
+ if (state.releaseInFlight) {
353
+ return {
354
+ rule: 13,
355
+ command: 'prismatica release publish',
356
+ why: `"${state.releaseInFlight.contractId}" merged with no release record for ${state.releaseInFlight.version} yet`,
357
+ after: 'prismatica next',
358
+ };
359
+ }
297
360
  // A change that reached main and never got its passport. Below everything
298
361
  // above it on purpose: an open change is live work, and this one has already
299
362
  // shipped — but "all quiet" is wrong while the record of whether it actually
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","sourceRoot":"","sources":["../../src/atlas/next.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../src/atlas/next.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ const STATE_HINT = {
62
62
  planned: 'state: planned — a contract exists; no agent is building yet',
63
63
  building: 'state: building — an agent is working in the change’s lane',
64
64
  checking: 'state: checking — checks and review are proving the work',
65
- needs_you: 'state: needs_you — a decision only the owner can make',
65
+ needs_you: 'state: needs_you — an owner-only action is waiting',
66
66
  shipping: 'state: shipping — the PR is at the merge gate',
67
67
  live: 'state: live — shipped, verified, passport written',
68
68
  };
@@ -122,7 +122,7 @@ function renderNeedsYou(items) {
122
122
  if (items.length === 0) {
123
123
  return `<div class="empty">
124
124
  <p class="empty-title">Nothing is waiting on you.</p>
125
- <p class="empty-sub">When a change needs your decision, it appears here first.</p>
125
+ <p class="empty-sub">When a change needs an action from you, it appears here first.</p>
126
126
  </div>`;
127
127
  }
128
128
  return filterEmpty('needs') + items
@@ -319,11 +319,12 @@ function renderApps(apps) {
319
319
  .join('\n');
320
320
  return `<div class="panel"><table class="apps"><thead><tr><th>App</th><th>Last shipped</th><th title="in-flight changes vs the WIP limit">Open</th><th title="the merge gate — the one choke point">Gate</th><th>Red flags</th><th>Checks</th></tr></thead><tbody>${rows}</tbody></table></div>`;
321
321
  }
322
- function renderReleases(releases, pendingVerification, legacyReleases, intents) {
322
+ function renderReleases(releases, pendingVerification, legacyReleases, releaseRecords, intents) {
323
323
  // The empty state claims nothing exists yet — false, and confusing to show
324
- // directly above a list of pending or legacy contracts that plainly do.
324
+ // directly above a list of pending or legacy contracts (or npm release
325
+ // records) that plainly do.
325
326
  const passports = releases.length === 0
326
- ? pendingVerification.length === 0 && legacyReleases.length === 0
327
+ ? pendingVerification.length === 0 && legacyReleases.length === 0 && releaseRecords.length === 0
327
328
  ? `<div class="empty">
328
329
  <p class="empty-title">Nothing has shipped yet.</p>
329
330
  <p class="empty-sub">A release appears here only after its change merges, deploys, and passes a live check — with a tested way back.</p>
@@ -406,7 +407,34 @@ function renderReleases(releases, pendingVerification, legacyReleases, intents)
406
407
  .join('')}</ul></article>`)
407
408
  .join('\n') +
408
409
  '</div>';
409
- return passports + pendingBlock + legacyBlock + intentBlock + filterEmpty('releases');
410
+ // An npm release record `release prepare`/`release publish`'s own
411
+ // write-once outcome, distinct from a passport: `published` means the npm
412
+ // registry itself confirmed this exact version and artifact; `superseded`
413
+ // means the registry confirmed it was never published or staged at all.
414
+ const releaseRecordsBlock = releaseRecords.length === 0
415
+ ? ''
416
+ : `<div class="rel-group"><h3 class="subhead">npm releases</h3>
417
+ <p class="sentence t-muted">Written only after the npm registry itself independently confirmed the claim.</p>` +
418
+ releaseRecords
419
+ .map((item) => {
420
+ const { release } = item;
421
+ const published = release.outcome === 'published';
422
+ return `<article class="release" data-app="${escapeHtml(item.app)}">
423
+ <div class="release-head">
424
+ <span class="dot" style="background:${published ? STATE_TONE.live.dot : STATE_TONE.planned.dot}"></span>
425
+ <h4 class="card-title">${escapeHtml(release.version)}</h4>
426
+ ${appChip(item.app)}
427
+ <span class="chip${published ? ' st-proven' : ''}" title="${published ? 'the npm registry confirmed this exact version and artifact' : 'the registry confirmed this version was never published or staged'}">${published ? 'published' : 'superseded'}</span>
428
+ </div>
429
+ <p class="sentence">${published ? `Integrity: ${escapeHtml(release.integrity ?? '(unknown)')} · dist-tag: ${escapeHtml(release.distTag ?? '(unknown)')}` : `Closed ${escapeHtml(release.at.slice(0, 10))} — nothing was ever published`}${release.recoveryRoutes.length > 0
430
+ ? ` · ${release.recoveryRoutes.map((route) => escapeHtml(route)).join('; ')}`
431
+ : ''}</p>
432
+ <nav class="links">${release.pr ? `<a class="rl" href="${escapeHtml(release.pr)}" title="the pull request it merged through">PR</a>` : ''}${recordLink(item.repo, 'releases', release.version, 'release', 'the full release record')}</nav>
433
+ </article>`;
434
+ })
435
+ .join('\n') +
436
+ '</div>';
437
+ return passports + pendingBlock + legacyBlock + releaseRecordsBlock + intentBlock + filterEmpty('releases');
410
438
  }
411
439
  // ── Understand (Flows + Rules) ───────────────────────────────────────────────
412
440
  function flowActionForm(repo, id, action, confirmKind, title, label, cls) {
@@ -1259,7 +1287,7 @@ function sideNav(model, active) {
1259
1287
  <a href="${active === 'understand' ? '/#needs' : '#needs'}" title="${escapeHtml(needsYouTitle)}"><span class="n-dot"></span>Needs you ${badge(needsYouTotal, true, 'needs')}</a>
1260
1288
  <a href="${active === 'understand' ? '/#work' : '#work'}"><span class="n-dot"></span>Work ${badge(model.cards.length, false, 'work')}</a>
1261
1289
  <a href="${active === 'understand' ? '/#apps' : '#apps'}"><span class="n-dot"></span>Apps ${badge(model.apps.length, false, 'apps')}</a>
1262
- <a href="${active === 'understand' ? '/#releases' : '#releases'}"><span class="n-dot"></span>Releases ${badge(model.releases.length + model.pendingVerification.length + model.legacyReleases.length, false, 'releases')}</a>
1290
+ <a href="${active === 'understand' ? '/#releases' : '#releases'}"><span class="n-dot"></span>Releases ${badge(model.releases.length + model.pendingVerification.length + model.legacyReleases.length + model.releaseRecords.length, false, 'releases')}</a>
1263
1291
  <a href="/understand" class="${active === 'understand' ? 'active' : ''}" title="what each app does, in plain language — Flows and Rules"><span class="n-dot"></span>Understand ${badge(model.understandPending, true)}</a>
1264
1292
  </nav>
1265
1293
  <div class="side-controls">
@@ -1334,7 +1362,7 @@ export function renderBoardPage(model) {
1334
1362
  ${renderAppScope(model)}
1335
1363
  ${renderStartAction(model)}
1336
1364
  <section id="needs">
1337
- <div class="sec-head"><h2>Needs you</h2><span class="sec-sub" title="everything waiting on the owner, across every app">decisions only you can make</span></div>
1365
+ <div class="sec-head"><h2>Needs you</h2><span class="sec-sub" title="everything waiting on the owner, across every app">owner-only actions waiting</span></div>
1338
1366
  ${renderNeedsYou(model.needsYou)}
1339
1367
  </section>
1340
1368
  <section id="work">
@@ -1348,7 +1376,7 @@ ${renderStartAction(model)}
1348
1376
  </section>
1349
1377
  <section id="releases">
1350
1378
  <div class="sec-head"><h2>Releases</h2><span class="sec-sub" title="verified, pending and legacy release records">verified releases, pending verification and legacy records</span></div>
1351
- ${renderReleases(model.releases, model.pendingVerification, model.legacyReleases, model.intents)}
1379
+ ${renderReleases(model.releases, model.pendingVerification, model.legacyReleases, model.releaseRecords, model.intents)}
1352
1380
  </section>`;
1353
1381
  return pageShell('Prismatica — board', main, model);
1354
1382
  }