openclaw-scheduler 0.2.12 → 0.2.13

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/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.2.13] -- 2026-06-24
6
+
7
+ ### Fixed
8
+ - fix(dispatch): prefer structured completion payloads for chilisaus status/result/list summaries before falling back to generic label summaries or transcript text
9
+
5
10
  ## [0.2.12] -- 2026-06-23
6
11
 
7
12
  ### Changed
@@ -38,6 +38,7 @@ import {
38
38
  extractLastMeaningfulAssistantReplyFromEntries,
39
39
  extractTerminalAssistantReplyFromEntries,
40
40
  hasCompletionSignal,
41
+ resolveCompletionDelivery,
41
42
  taskRequiresGitSha,
42
43
  } from './completion.mjs';
43
44
  import { getDispatchLivenessPolicy } from './liveness.mjs';
@@ -302,6 +303,33 @@ function setLabelDone(name, data) {
302
303
  return labels[name];
303
304
  }
304
305
 
306
+ function effectiveCompletionSummary(entry, lastReply = null) {
307
+ if (!entry || typeof entry !== 'object') return null;
308
+
309
+ if (hasCompletionSignal(entry.completion)) {
310
+ const resolved = resolveCompletionDelivery({
311
+ lastReply,
312
+ completion: entry.completion || null,
313
+ fallbackSummary: entry.summary || null,
314
+ });
315
+ if (resolved?.summary) return resolved.summary;
316
+ }
317
+
318
+ if (entry.summary) return entry.summary;
319
+
320
+ if (lastReply) {
321
+ const resolved = resolveCompletionDelivery({
322
+ lastReply,
323
+ completion: null,
324
+ fallbackSummary: null,
325
+ });
326
+ if (resolved?.summary) return resolved.summary;
327
+ return lastReply.slice(0, 500);
328
+ }
329
+
330
+ return null;
331
+ }
332
+
305
333
  // -- Gateway Calls --------------------------------------------
306
334
 
307
335
  /**
@@ -1573,7 +1601,7 @@ function cmdStatus(flags) {
1573
1601
  status: current.status,
1574
1602
  spawnedAt: current.spawnedAt,
1575
1603
  updatedAt: current.updatedAt,
1576
- summary: current.summary || null,
1604
+ summary: effectiveCompletionSummary(current),
1577
1605
  completion: current.completion || null,
1578
1606
  delivery: buildDispatchDeliverySurface(current),
1579
1607
  error: current.error || null,
@@ -1919,7 +1947,7 @@ function cmdResult(flags) {
1919
1947
  sessionKey: entry.sessionKey,
1920
1948
  status: entry.status,
1921
1949
  spawnedAt: entry.spawnedAt,
1922
- summary: entry.summary || (lastReply ? lastReply.slice(0, 500) : null),
1950
+ summary: effectiveCompletionSummary(entry, lastReply),
1923
1951
  completion: entry.completion || null,
1924
1952
  delivery: buildDispatchDeliverySurface(entry),
1925
1953
  lastReply: lastReply || null,
@@ -2349,6 +2377,7 @@ function cmdList(flags) {
2349
2377
  let entries = Object.entries(labels).map(([name, data]) => ({
2350
2378
  label: name,
2351
2379
  ...data,
2380
+ summary: effectiveCompletionSummary(data),
2352
2381
  delivery: buildDispatchDeliverySurface(data),
2353
2382
  }));
2354
2383
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-scheduler",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "SQLite-backed job scheduler and workflow engine for OpenClaw agents",
5
5
  "type": "module",
6
6
  "main": "./index.js",