@volter/supercode-orchestrator 0.4.46 → 0.4.47

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 +13 -3
  2. package/package.json +1 -1
@@ -419,7 +419,11 @@ function closeRequested(board, report) {
419
419
  const session = json(row.metadata, {})?.supercode;
420
420
  if (!session?.pane) continue;
421
421
  try { stopSession(board, session); } catch (error) { report.undelivered.push([row.task_id, session.address, `closing it: ${String(error.message).slice(-200)}`]); continue; }
422
- tx(board, (db) => setRunSession(db, row.id, { ...session, closed_at: now() }));
422
+ const address = session.address ?? `sc:${session.machine}:claude-code:${session.session_id}`;
423
+ tx(board, (db) => {
424
+ setRunSession(db, row.id, { ...session, closed_at: now() });
425
+ db.prepare("DELETE FROM kanban_notify_subs WHERE task_id = ? AND platform = 'supercode' AND chat_id = ?").run(row.task_id, address);
426
+ });
423
427
  }
424
428
  }
425
429
 
@@ -473,7 +477,12 @@ export async function sessionEffect(board, e) {
473
477
  const caller = process.env.CLAUDE_CODE_SESSION_ID || process.env.CODEX_THREAD_ID;
474
478
  if (caller && caller === session.session_id) { tx(board, (db) => setRunSession(db, row.id, { ...session, close_requested: now() })); return; }
475
479
  stopSession(board, session);
476
- tx(board, (db) => setRunSession(db, row.id, { ...session, closed_at: now() }));
480
+ // a closed session hears nothing more of the card
481
+ const address = session.address ?? `sc:${session.machine}:claude-code:${session.session_id}`;
482
+ tx(board, (db) => {
483
+ setRunSession(db, row.id, { ...session, closed_at: now() });
484
+ db.prepare("DELETE FROM kanban_notify_subs WHERE task_id = ? AND platform = 'supercode' AND chat_id = ?").run(e.id, address);
485
+ });
477
486
  return;
478
487
  }
479
488
  }
@@ -798,7 +807,8 @@ async function notify(board, fleet, report, entry) {
798
807
  const events = board.db.prepare(`SELECT id, kind, payload, created_at FROM task_events WHERE task_id = ? AND id > ? AND kind IN (${kinds.map(() => '?').join(', ')}) ORDER BY id`)
799
808
  .all(sub.task_id, sub.last_event_id, ...kinds);
800
809
  if (!events.length) return;
801
- const task = tx(board, (db) => getTask(db, sub.task_id));
810
+ // the card as the workflow names it (its status the workflow's: triaging, reviewing, stopped; `stored_as` kanban.db's)
811
+ const task = tx(board, (db) => { const t = getTask(db, sub.task_id); return t ? { ...t, status: statusOf(db, t), stored_as: t.status } : t; });
802
812
  let cursor = Number(sub.last_event_id);
803
813
  let failed = null;
804
814
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/supercode-orchestrator",
3
- "version": "0.4.46",
3
+ "version": "0.4.47",
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": {