@volter/supercode-orchestrator 0.5.203 → 0.5.204

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.
package/board/ci.mjs CHANGED
@@ -307,15 +307,22 @@ export async function openReviewPullRequests(board, id, { fresh = false } = {})
307
307
  const repositoriesToRead = [...new Set([ownRepository, ...registered.map((r) => r.repository), ...(await knownRepositories({ fresh }))].filter(Boolean))];
308
308
  const groups = await readTogether(repositoriesToRead, async repository => {
309
309
  const prs = [];
310
+ const hasWorkBranches = repository === ownRepository || registered.some(r => r.repository === repository);
310
311
  // Advisory discovery is shared. Before a move, refresh the full set, including previously excluded PRs.
311
312
  let list;
312
313
  try {
313
314
  const read = async () => {
314
315
  const items = (await github(`/repos/${repository}/pulls?state=open&per_page=100`, true, { purpose: fresh ? 'validation' : 'discovery' })).map((p) => pullRequest(repository, p));
315
- const defaultBranch = items.find(pr => pr.defaultBranch)?.defaultBranch ?? (await github(`/repos/${repository}`, false, { purpose: fresh ? 'validation' : 'discovery' })).default_branch;
316
+ // An empty unrelated repository has neither candidates nor branch history to filter. Its default
317
+ // branch cannot affect this set; only the card's own or registered repositories need that metadata.
318
+ const needsDefault = items.length > 0 || hasWorkBranches;
319
+ const defaultBranch = items.find(pr => pr.defaultBranch)?.defaultBranch
320
+ ?? (needsDefault ? (await github(`/repos/${repository}`, false, { purpose: fresh ? 'validation' : 'discovery' })).default_branch : null);
316
321
  return { items, defaultBranch };
317
322
  };
318
- list = fresh ? await read() : await discoveryList(pullRequestLists, repository, 300_000, read);
323
+ // An empty named-only observation cannot supply branch metadata when a later card registers this repo.
324
+ const listKey = `${repository}:${hasWorkBranches ? 'work' : 'named'}`;
325
+ list = fresh ? await read() : await discoveryList(pullRequestLists, listKey, 300_000, read);
319
326
  } catch (error) {
320
327
  if (fresh || repository === ownRepository || registered.some(r => r.repository === repository)) throw error;
321
328
  return []; // An unread sibling stays unread: do not cache an empty successful result.
@@ -332,7 +332,6 @@ function answerTo(id) {
332
332
 
333
333
  const OPEN_OUTCOME = /^(\s*[-*] )\[ \] (.+)$/;
334
334
  const TICKED_OUTCOME = /^\s*[-*] \[[xX]\] .+$/;
335
- const POINTED_OUTCOME = /^\s*[-*] \[[xX]\] .+: \S.+$/;
336
335
  /** Whether `body` is `was` with only outcomes ticked: each changed line is under the Acceptance heading, was `- [ ] X`
337
336
  * and is now `- [x] X` or `- [x] X: <pointer>`, or was `- [x] X` and is now `- [x] X: <pointer>` (the pointer a tick
338
337
  * needs, added after it); no other line added, removed or changed. */
@@ -349,8 +348,8 @@ function onlyTicks(was, body) {
349
348
  if (line === after[i]) return true;
350
349
  if (section !== 'acceptance') return false;
351
350
  const pointed = (ticked) => after[i].startsWith(`${ticked}: `) && after[i].trim().length > ticked.trim().length + 1;
352
- // a ticked outcome that already carries a pointer (as acceptance_complete reads one) is not given another
353
- if (TICKED_OUTCOME.test(line)) return !POINTED_OUTCOME.test(line) && pointed(line);
351
+ // Outcome prose may contain colons. Preserve the entire old line and permit only an appended pointer.
352
+ if (TICKED_OUTCOME.test(line)) return pointed(line);
354
353
  const open = OPEN_OUTCOME.exec(line);
355
354
  if (!open) return false;
356
355
  const ticked = `${open[1]}[x] ${open[2]}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/supercode-orchestrator",
3
- "version": "0.5.203",
3
+ "version": "0.5.204",
4
4
  "type": "module",
5
5
  "description": "The orchestrator runtime over the Volter Harness ontology: one typed operational model whose folder is its serialization, read and written through the harness orchestration doors (docs/ORCHESTRATOR-IR.md)",
6
6
  "exports": {
@@ -28,7 +28,7 @@
28
28
  "check-types": "node scripts/generate-types.mjs --check"
29
29
  },
30
30
  "dependencies": {
31
- "@volter/supercode-teams": "^0.3.335",
31
+ "@volter/supercode-teams": "^0.3.337",
32
32
  "@volter/supercode-terminal": "^0.3.8",
33
33
  "@volter/supercode-harness-sdk": "^0.3.102",
34
34
  "@volter/teams": "0.2.94",