dsh-foreman 0.3.3 → 0.3.4

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
@@ -6,6 +6,21 @@
6
6
 
7
7
  本项目自己的版本从 `0.1.0` 开始。
8
8
 
9
+ ## 0.3.4 — 2026-11-08
10
+
11
+ ### 修复:设备回报只进了账本,主会话从没收到
12
+
13
+ 远程设备的 `report` 帧只调了 `engine.report(...)`,**没有生成 relay**。后果是那张工单在面板上显示
14
+ `ready`、`ended`,但派它的主会话完全不知道——既不把结果转达给人,也不会据此继续处理。
15
+
16
+ 本地 worker 的 `orchestrator_report` 工具一直有这一步(`reportRelay` + `steer`),远程这条路径从来没接上。
17
+
18
+ 现在 `applyReport` 补上同一道缝:报告入账后生成 relay 并 steer 到发起该工单的主会话。
19
+ `reportRelay` 自己决定哪些值得打扰人——`progress` 仍然留在内部,`ready` / `blocked` / `failed`
20
+ 会唤醒主会话,由它决定是转达结果还是接着做下一步。
21
+
22
+ relay 失败只记日志:报告已经入账,不能因为通知不到就把它退回去。
23
+
9
24
  ## 0.3.3 — 2026-11-08
10
25
 
11
26
  ### 改进:派单时直接告诉设备「你就是那台机器」
package/lib/index.js CHANGED
@@ -10371,6 +10371,11 @@ function applyReport(input) {
10371
10371
  summary: frame.summary,
10372
10372
  ...frame.question === void 0 ? {} : { question: frame.question }
10373
10373
  });
10374
+ try {
10375
+ input.relay?.(where.ticketId);
10376
+ } catch (error) {
10377
+ input.log(`could not relay the report for ${where.ticketId}: ${String(error)}`);
10378
+ }
10374
10379
  };
10375
10380
  }
10376
10381
  /**
@@ -11996,6 +12001,14 @@ var Runtime = class extends Service {
11996
12001
  engine.report(ticketId, workerReport);
11997
12002
  },
11998
12003
  ticketOf: (assignmentId) => assignmentWhere(store, assignmentId),
12004
+ relay: (ticketId) => {
12005
+ const ticket = store.tickets.get(ticketId);
12006
+ if (ticket === void 0) return;
12007
+ const report = latestAssignment(ticket)?.report;
12008
+ if (report === void 0) return;
12009
+ const relay = reportRelay(ticket, report);
12010
+ if (relay !== void 0) sessions.relay(relay.id, relay.text, this.masterOf(store.triggers.get(ticket.origin.triggerId)));
12011
+ },
11999
12012
  log: (text) => ctx.logger.warn("dsh-foreman: %s", text)
12000
12013
  });
12001
12014
  const evals = board.claim("evals", {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "dsh-foreman",
3
3
  "author": "niechao136",
4
4
  "license": "MIT",
5
- "version": "0.3.3",
5
+ "version": "0.3.4",
6
6
  "description": "dsh-foreman:主 loop 在多设备上派单的 DSH bundle:需求来自本机操作者的主会话而不是 GitHub/飞书,每个工作区各有一条主会话,主会话只负责路由,真正的活儿派给 Worker 在该工作区目录里执行。",
7
7
  "type": "module",
8
8
  "main": "lib/index.js",