@volter/supercode-orchestrator 0.4.109 → 0.4.110

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 (2) hide show
  1. package/board/dispatch.mjs +15 -15
  2. package/package.json +1 -1
@@ -786,21 +786,21 @@ function reconcileLaunches(board, fleet, report, entry, effects, settings) {
786
786
  for (const row of rows) {
787
787
  const s = json(row.metadata, {})?.supercode;
788
788
  try {
789
- const receipt = launchReceipt(board, s);
790
- if (!receipt?.pane) { report.queued.push([row.task_id, s.launch_error ?? `awaiting launch receipt ${s.launch_key}`]); continue; }
791
- const sid = s.session_id ?? fleet.sessions?.find((f) => f.pane === receipt.pane && String(f.address).startsWith(`sc:${s.machine}:${s.harness}:`))?.address.split(':')[3];
792
- bindLaunch(board, row, s, receipt.pane, receipt.live ? sid : null);
793
- if (receipt.live === false && !row.ended_at && now() - s.launched_at > settings.grace) {
794
- // A recorded pane absent on its machine is evidence; a closed response stream was not.
795
- if (!panePresent(s.machine, receipt.pane)) {
796
- const moved = tx(board, (db) => {
797
- if (getTask(db, row.task_id)?.current_run_id !== row.id) return null;
798
- setRunSession(db, row.id, { launch_pending: false });
799
- return fire(db, board, entry, row.task_id, 'spawn_failed', { roles: ['platform'], payload: { error: `launch ${s.launch_key} ended before session binding` } });
800
- });
801
- if (moved) effects.push(...moved.effects);
802
- }
803
- } else if (!sid) report.queued.push([row.task_id, `pane ${receipt.pane} is live; awaiting ${s.harness} session identity`]);
789
+ const receipt = launchReceipt(board, s);
790
+ if (!receipt?.pane) { report.queued.push([row.task_id, s.launch_error ?? `awaiting launch receipt ${s.launch_key}`]); continue; }
791
+ const sid = s.session_id ?? fleet.sessions?.find((f) => f.pane === receipt.pane && String(f.address).startsWith(`sc:${s.machine}:${s.harness}:`))?.address.split(':')[3];
792
+ bindLaunch(board, row, s, receipt.pane, receipt.live ? sid : null);
793
+ if (receipt.live === false && !row.ended_at && now() - s.launched_at > settings.grace) {
794
+ // A recorded pane absent on its machine is evidence; a closed response stream was not.
795
+ if (!panePresent(s.machine, receipt.pane)) {
796
+ const moved = tx(board, (db) => {
797
+ if (getTask(db, row.task_id)?.current_run_id !== row.id) return null;
798
+ setRunSession(db, row.id, { launch_pending: false });
799
+ return fire(db, board, entry, row.task_id, 'spawn_failed', { roles: ['platform'], payload: { error: `launch ${s.launch_key} ended before session binding` } });
800
+ });
801
+ if (moved) effects.push(...moved.effects);
802
+ }
803
+ } else if (!sid) report.queued.push([row.task_id, `pane ${receipt.pane} is live; awaiting ${s.harness} session identity`]);
804
804
  } catch (error) { report.failed.push([row.task_id, `launch reconciliation retained: ${error.message}`]); }
805
805
  }
806
806
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/supercode-orchestrator",
3
- "version": "0.4.109",
3
+ "version": "0.4.110",
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": {