agim-cli 1.2.112 → 1.2.114
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 +72 -0
- package/dist/core/approval-router.d.ts.map +1 -1
- package/dist/core/approval-router.js +23 -9
- package/dist/core/approval-router.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +81 -53
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,78 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.114] - 2026-05-30
|
|
8
|
+
|
|
9
|
+
### Fixed (web approval — serial-queue deadlock — REAL root cause)
|
|
10
|
+
|
|
11
|
+
- **真凶定位**:v1.2.113 修的是"卡片过期再点"路径,但用户反馈仍卡。日志诊断
|
|
12
|
+
发现真正的死锁是 **`web/server.ts:1218` 的 `enqueueInbound = createSerialQueue()`
|
|
13
|
+
把所有入站 WS 消息串行化**:
|
|
14
|
+
- 用户在 web 后台发了一条聊天 → 触发 native agent 跑 30 min(DeepSeek 长链
|
|
15
|
+
+ 多次 tool call)
|
|
16
|
+
- 期间 native agent 调 `native_exec` → bus 创建 approval card 推给前端
|
|
17
|
+
- 前端用户点"批准" → WS 发 `approval-action` 到服务端
|
|
18
|
+
- 服务端的 `ws.on('message')` 把这条 click 排进 **同一个** `enqueueInbound`
|
|
19
|
+
队列,可前面那条 chat 还在跑 `handleClientMessage`(未 await 完)
|
|
20
|
+
- **死锁**:agent 等批准 → 批准排队等 chat 跑完 → chat 跑到 30 min 硬超时被杀
|
|
21
|
+
→ 队列才解锁 → click 终于送到 → 但 agent 已死
|
|
22
|
+
- 日志证据(17:22:54.652 同一毫秒批量进入):
|
|
23
|
+
```
|
|
24
|
+
exec.refused.internal_url (SSRF guard 触发 abort)
|
|
25
|
+
native.turn.done finishReason=aborted elapsedMs=1821836 (30.36 min)
|
|
26
|
+
agent.invoke.end durationMs=1821864
|
|
27
|
+
approval.web.click_received apv:f75085f7...:a
|
|
28
|
+
approval.web.click_resolved
|
|
29
|
+
approval.web.click_received apv:be5f9787...:y
|
|
30
|
+
approval.web.click_resolved
|
|
31
|
+
```
|
|
32
|
+
- 用户视觉看到的:"已发送,等待结果…"卡死 15 分钟,因为前端 `pendingChoice`
|
|
33
|
+
被 set 后 `approval-card-edit` 永远不来。
|
|
34
|
+
|
|
35
|
+
- **修法(v1.2.114)**:`web/server.ts:1220` 的 `ws.on('message')` 先**就地 parse**
|
|
36
|
+
一次 msg.type:
|
|
37
|
+
- `type === 'approval-action'` → 直接调用新提取的 `handleApprovalAction(msg)`,
|
|
38
|
+
**完全绕开 `enqueueInbound`**。click 是 agent 的 **unblocking input**,跟
|
|
39
|
+
chat input 没有 FIFO 顺序需求。
|
|
40
|
+
- 其它(`message` / `switch-agent` / `get-history` 等)→ 仍走 `enqueueInbound`,
|
|
41
|
+
保持每客户端的 chat FIFO。
|
|
42
|
+
|
|
43
|
+
- **附带改动**:
|
|
44
|
+
- `core/approval-router.ts` 的 v1.2.113 `!info` 分支补一行
|
|
45
|
+
`approval.router.orphan_click_expired` info 日志,下次类似 bug 一秒可见。
|
|
46
|
+
- `test/unit/web-serial-queue.test.ts` 加 2 个新 case:
|
|
47
|
+
`approval-action runs while a slow chat handler is still in the queue` +
|
|
48
|
+
`chat-type messages still serialise vs each other`。再加上原有 1 个,
|
|
49
|
+
共 3/3 全绿。
|
|
50
|
+
|
|
51
|
+
### Affected paths
|
|
52
|
+
|
|
53
|
+
- `src/web/server.ts:1218-1310`:抽出 `handleApprovalAction` 函数 + 改写
|
|
54
|
+
`ws.on('message')` 调度
|
|
55
|
+
- `src/core/approval-router.ts:604-617`:新增 orphan_click_expired 日志
|
|
56
|
+
- `test/unit/web-serial-queue.test.ts`:3 个 case 全过
|
|
57
|
+
|
|
58
|
+
## [1.2.113] - 2026-05-30
|
|
59
|
+
|
|
60
|
+
### Fixed (web approval — orphan-click stuck card)
|
|
61
|
+
|
|
62
|
+
- **Web 后台审批卡片"已发送,等待结果..."卡死。** 复现:用户点击"自动放行"
|
|
63
|
+
或"批准"按钮,UI 不更新,停在 pending 状态——但底层放行实际已经走了。根因在
|
|
64
|
+
`approval-router.handleButtonCallback` 的 `!info`(已过期)分支:原代码用
|
|
65
|
+
`activeCards.has(reqId)` 网关包住 `editApprovalCard`,两个真实路径会被它吞掉:
|
|
66
|
+
- (a) bus 自动 resolve(超时 / grace 到期)→ `onBusResolution` 已经触发了
|
|
67
|
+
一次 editApprovalCard 并清空 activeCards,但如果那一刻 WS 断了,前端
|
|
68
|
+
`approval-card-edit` 事件被悄悄丢弃(server 端 `if (!ws.OPEN) return` 无重
|
|
69
|
+
投)。卡片就僵在 pending;用户后续重连再点也无效——因为 activeCards 早空了。
|
|
70
|
+
- (b) agim 进程重启:新进程 pendingById / activeCards 都是空集,浏览器旧 tab
|
|
71
|
+
上的卡片同样无路救活。
|
|
72
|
+
- 修法:`!info` 分支**总是**触发 editApprovalCard(用 cb.threadId + cb.messageId
|
|
73
|
+
——这两个值是 platform 当下传过来的,可信)。Trade-off:极少数 race 下
|
|
74
|
+
(auto-allow grace 刚 fire 几 ms 后用户点"批准"),会把 "allowed" 卡片闪一下
|
|
75
|
+
改成 "expired"——但"可见的闪动" ≪ "永远卡住",可接受。
|
|
76
|
+
- 回归测试 `src/core/approval-router.test.ts` 新增 3 个 case:orphan click 触发
|
|
77
|
+
editApprovalCard / 连点两次都触发 / messenger 无 editApprovalCard 时安全 no-op。
|
|
78
|
+
|
|
7
79
|
## [1.2.112] - 2026-05-29
|
|
8
80
|
|
|
9
81
|
### Added (native agent stability, batch P0c — gap ③ closed; full 7/7 done)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-router.d.ts","sourceRoot":"","sources":["../../src/core/approval-router.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EAGd,MAAM,mBAAmB,CAAA;AA+B1B;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAehE;AA6JD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAqBpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAA;IACpE;;;uEAGmE;IACnE,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAA;CACnC;AAeD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAiHlD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMnE;AAqCD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAqCzE;
|
|
1
|
+
{"version":3,"file":"approval-router.d.ts","sourceRoot":"","sources":["../../src/core/approval-router.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EAGd,MAAM,mBAAmB,CAAA;AA+B1B;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAehE;AA6JD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAqBpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAA;IACpE;;;uEAGmE;IACnE,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAA;CACnC;AAeD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAiHlD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMnE;AAqCD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAqCzE;AAuID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;CAAE,GAAG,IAAI,CAUjG;AAkDD,6CAA6C;AAC7C,wBAAgB,YAAY,IAAI,OAAO,CAA8B"}
|
|
@@ -563,16 +563,30 @@ async function handleButtonCallback(platform, cb) {
|
|
|
563
563
|
const info = approvalBus.resolvePendingByReqId(parsed.reqId, decision);
|
|
564
564
|
if (!info) {
|
|
565
565
|
await cb.ack('请求已过期或已被处理');
|
|
566
|
-
//
|
|
567
|
-
//
|
|
568
|
-
//
|
|
569
|
-
//
|
|
570
|
-
//
|
|
571
|
-
//
|
|
572
|
-
//
|
|
573
|
-
|
|
566
|
+
// v1.2.113 — ALWAYS fire editApprovalCard for the click's own card,
|
|
567
|
+
// not just when activeCards has the reqId. Two real-world paths hit
|
|
568
|
+
// this branch with activeCards empty:
|
|
569
|
+
// (a) bus auto-resolved (timeout / grace expired) → onBusResolution
|
|
570
|
+
// ran editApprovalCard AND cleared activeCards. If the WS was
|
|
571
|
+
// disconnected at that moment the edit was silently dropped
|
|
572
|
+
// (`if (!ws.OPEN) return`, no retry) — user's card stays in
|
|
573
|
+
// its pending state until they click, and previously a click
|
|
574
|
+
// in this state did NOTHING because the `activeCards.has`
|
|
575
|
+
// gate was false. The fix: fire `editApprovalCard` here so
|
|
576
|
+
// the user gets visible feedback ('已过期').
|
|
577
|
+
// (b) agim restarted while a browser tab had an open approval
|
|
578
|
+
// card. The new process's pendingById is empty, activeCards
|
|
579
|
+
// is empty — same dead-end as (a).
|
|
580
|
+
// Trade-off: in the rare race where auto-allow grace fired ms ago
|
|
581
|
+
// and the user clicks "approve" right after, we'll briefly flip
|
|
582
|
+
// an "allowed" card to "expired". Visible flip ≪ stuck forever.
|
|
583
|
+
if (installed) {
|
|
574
584
|
const m = installed.resolveMessenger(platform);
|
|
575
585
|
if (m?.editApprovalCard) {
|
|
586
|
+
log.info({
|
|
587
|
+
event: 'approval.router.orphan_click_expired',
|
|
588
|
+
platform, reqId: parsed.reqId, messageId: cb.messageId,
|
|
589
|
+
}, 'orphan click — bus had no pending; firing edit→expired so UI unsticks');
|
|
576
590
|
await m.editApprovalCard(cb.threadId, cb.messageId, {
|
|
577
591
|
decision: 'expired',
|
|
578
592
|
atDate: new Date(),
|
|
@@ -580,8 +594,8 @@ async function handleButtonCallback(platform, cb) {
|
|
|
580
594
|
log.warn({ event: 'approval.router.expire_edit_failed', err: String(err) });
|
|
581
595
|
});
|
|
582
596
|
}
|
|
583
|
-
activeCards.delete(parsed.reqId);
|
|
584
597
|
}
|
|
598
|
+
activeCards.delete(parsed.reqId);
|
|
585
599
|
return;
|
|
586
600
|
}
|
|
587
601
|
const ackText = decision.behavior === 'allow'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-router.js","sourceRoot":"","sources":["../../src/core/approval-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"approval-router.js","sourceRoot":"","sources":["../../src/core/approval-router.ts"],"names":[],"mappings":"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"}
|
package/dist/web/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAyQA,wBAAgB,iBAAiB,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAOrE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAyQA,wBAAgB,iBAAiB,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAOrE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAmrC/C"}
|
package/dist/web/server.js
CHANGED
|
@@ -1239,66 +1239,94 @@ export async function startWebServer(options) {
|
|
|
1239
1239
|
// Load existing session history if available
|
|
1240
1240
|
sendSessionHistory(ws, clientId, getDefaultAgent(options.defaultAgent));
|
|
1241
1241
|
const enqueueInbound = createSerialQueue();
|
|
1242
|
+
// v1.2.114 — approval-action clicks MUST bypass the serial queue.
|
|
1243
|
+
//
|
|
1244
|
+
// Pre-fix: every inbound WS frame went through `enqueueInbound`, which
|
|
1245
|
+
// serialised everything against `handleClientMessage`. A chat message
|
|
1246
|
+
// kicked off an agent run that could run for the full 30-min hard
|
|
1247
|
+
// timeout; any approval-card click during that window was QUEUED
|
|
1248
|
+
// behind the still-running chat handler. Result: deadlock — agent
|
|
1249
|
+
// waits for approval, approval waits for agent. The clicks finally
|
|
1250
|
+
// drained the queue at minute 30 when the agent aborted, but by then
|
|
1251
|
+
// the run was dead and the user's card UI had been stuck at
|
|
1252
|
+
// "已发送,等待结果…" the whole time.
|
|
1253
|
+
//
|
|
1254
|
+
// Fix: parse the frame inline first; if it's an `approval-action`,
|
|
1255
|
+
// dispatch directly to the click handler (no queue). Approval clicks
|
|
1256
|
+
// are the agent's UNBLOCKING input — they have no ordering dependency
|
|
1257
|
+
// on chat input. All other types (chat, switch-agent, get-history,
|
|
1258
|
+
// …) still go through enqueueInbound to preserve their per-client
|
|
1259
|
+
// FIFO ordering.
|
|
1260
|
+
async function handleApprovalAction(msg) {
|
|
1261
|
+
const actionData = String(msg.data || '');
|
|
1262
|
+
const messageId = String(msg.messageId || '');
|
|
1263
|
+
// Use `client.id` (mutable; updated on session rekey) — not the
|
|
1264
|
+
// original `clientId` const — so the threadId we hand to the bus
|
|
1265
|
+
// matches the threadId the bus stamped on the pending approval
|
|
1266
|
+
// request. Without this, a session that was rekeyed via
|
|
1267
|
+
// `get-history` reports the stale id and the bus can't find the
|
|
1268
|
+
// open req to resolve.
|
|
1269
|
+
const liveId = client.id;
|
|
1270
|
+
webLog.info({
|
|
1271
|
+
event: 'approval.web.click_received',
|
|
1272
|
+
clientId: liveId, data: actionData, messageId,
|
|
1273
|
+
handlerBound: !!webButtonHandler,
|
|
1274
|
+
});
|
|
1275
|
+
if (!actionData || !messageId) {
|
|
1276
|
+
sendToClient(ws, { type: 'error', message: 'approval-action missing data/messageId' });
|
|
1277
|
+
return;
|
|
1278
|
+
}
|
|
1279
|
+
if (!webButtonHandler) {
|
|
1280
|
+
const why = 'approval handler not bound (router not installed?). Restart agim to rebind.';
|
|
1281
|
+
webLog.warn({ event: 'approval.web.no_handler', clientId: liveId, data: actionData, messageId }, why);
|
|
1282
|
+
sendToClient(ws, { type: 'error', message: why });
|
|
1283
|
+
return;
|
|
1284
|
+
}
|
|
1285
|
+
try {
|
|
1286
|
+
// Web client doesn't have a platform-native toast, so ack is a
|
|
1287
|
+
// no-op resolving to the in-page status the page itself chose
|
|
1288
|
+
// to render after click.
|
|
1289
|
+
await webButtonHandler({
|
|
1290
|
+
data: actionData, threadId: liveId, userId: `web:${liveId}`,
|
|
1291
|
+
userDisplay: 'Web', messageId, ack: async () => { },
|
|
1292
|
+
});
|
|
1293
|
+
webLog.info({ event: 'approval.web.click_resolved', clientId: liveId, data: actionData });
|
|
1294
|
+
}
|
|
1295
|
+
catch (err) {
|
|
1296
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
1297
|
+
webLog.error({ event: 'approval.web.click_failed', clientId: liveId, data: actionData, err: errMsg });
|
|
1298
|
+
sendToClient(ws, { type: 'error', message: `Approval click failed: ${errMsg}` });
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1242
1301
|
ws.on('message', (data) => {
|
|
1302
|
+
// Parse once, here, so we can route approval-action around the
|
|
1303
|
+
// serial queue. Bad JSON falls through to the error branch below
|
|
1304
|
+
// (we still need to surface a parse error to the client).
|
|
1305
|
+
let msg;
|
|
1306
|
+
try {
|
|
1307
|
+
msg = JSON.parse(data.toString());
|
|
1308
|
+
}
|
|
1309
|
+
catch (err) {
|
|
1310
|
+
webLog.error({ clientId: client.id, err: err instanceof Error ? err.message : String(err) }, 'Error parsing client message');
|
|
1311
|
+
sendToClient(ws, { type: 'error', message: 'Invalid message format' });
|
|
1312
|
+
return;
|
|
1313
|
+
}
|
|
1314
|
+
if (msg && typeof msg === 'object' && msg.type === 'approval-action') {
|
|
1315
|
+
// Fast path — bypass enqueueInbound. Errors are surfaced to the
|
|
1316
|
+
// client inside handleApprovalAction.
|
|
1317
|
+
void handleApprovalAction(msg);
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1243
1320
|
enqueueInbound(async () => {
|
|
1244
1321
|
try {
|
|
1245
|
-
const msg = JSON.parse(data.toString());
|
|
1246
|
-
// Approval-button click intercept. The user tapped an in-page
|
|
1247
|
-
// approval card button; route it through the web messenger's
|
|
1248
|
-
// button handler (registered by approval-router on install) the
|
|
1249
|
-
// same way a Telegram inline-keyboard tap is routed. We don't
|
|
1250
|
-
// call handleClientMessage for these — they're not chat input.
|
|
1251
|
-
if (msg && msg.type === 'approval-action') {
|
|
1252
|
-
const actionData = String(msg.data || '');
|
|
1253
|
-
const messageId = String(msg.messageId || '');
|
|
1254
|
-
// Use `client.id` (mutable; updated on session rekey) — not
|
|
1255
|
-
// the original `clientId` const — so the threadId we hand
|
|
1256
|
-
// to the bus matches the threadId the bus stamped on the
|
|
1257
|
-
// pending approval request. Without this, a session that
|
|
1258
|
-
// was rekeyed via `get-history` reports the stale id and
|
|
1259
|
-
// the bus can't find the open req to resolve.
|
|
1260
|
-
const liveId = client.id;
|
|
1261
|
-
webLog.info({
|
|
1262
|
-
event: 'approval.web.click_received',
|
|
1263
|
-
clientId: liveId, data: actionData, messageId,
|
|
1264
|
-
handlerBound: !!webButtonHandler,
|
|
1265
|
-
});
|
|
1266
|
-
if (!actionData || !messageId) {
|
|
1267
|
-
sendToClient(ws, { type: 'error', message: 'approval-action missing data/messageId' });
|
|
1268
|
-
return;
|
|
1269
|
-
}
|
|
1270
|
-
if (!webButtonHandler) {
|
|
1271
|
-
// Without the handler, a click would silently no-op forever — the
|
|
1272
|
-
// failure mode that PR-A's fix patches. Tell the user and the
|
|
1273
|
-
// operator (via log) instead of dropping the click.
|
|
1274
|
-
const why = 'approval handler not bound (router not installed?). Restart agim to rebind.';
|
|
1275
|
-
webLog.warn({ event: 'approval.web.no_handler', clientId: liveId, data: actionData, messageId }, why);
|
|
1276
|
-
sendToClient(ws, { type: 'error', message: why });
|
|
1277
|
-
return;
|
|
1278
|
-
}
|
|
1279
|
-
try {
|
|
1280
|
-
// Most messengers' ButtonCallback#ack updates a platform-native
|
|
1281
|
-
// toast / loading spinner. The web client doesn't have one, so
|
|
1282
|
-
// ack is a no-op resolving to the in-page status the page itself
|
|
1283
|
-
// chose to render after click.
|
|
1284
|
-
await webButtonHandler({
|
|
1285
|
-
data: actionData, threadId: liveId, userId: `web:${liveId}`,
|
|
1286
|
-
userDisplay: 'Web', messageId, ack: async () => { },
|
|
1287
|
-
});
|
|
1288
|
-
webLog.info({ event: 'approval.web.click_resolved', clientId: liveId, data: actionData });
|
|
1289
|
-
}
|
|
1290
|
-
catch (err) {
|
|
1291
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
1292
|
-
webLog.error({ event: 'approval.web.click_failed', clientId: liveId, data: actionData, err: errMsg });
|
|
1293
|
-
sendToClient(ws, { type: 'error', message: `Approval click failed: ${errMsg}` });
|
|
1294
|
-
}
|
|
1295
|
-
return;
|
|
1296
|
-
}
|
|
1297
1322
|
// Pass an onRekey callback so handleClientMessage can keep
|
|
1298
1323
|
// the `clients` map in sync when a browser refresh resumes
|
|
1299
1324
|
// with its persisted threadId. Otherwise the map stays keyed
|
|
1300
1325
|
// by the WS-assigned id, and the web messenger's outbound
|
|
1301
1326
|
// approval-card lookup misses the live client.
|
|
1327
|
+
// handleClientMessage validates the message shape itself; we
|
|
1328
|
+
// pass the parsed value through as the typed shape it expects
|
|
1329
|
+
// (cast is safe because validation runs on the receiver side).
|
|
1302
1330
|
await handleClientMessage(client, msg, getDefaultAgent(options.defaultAgent), (oldId, newId) => {
|
|
1303
1331
|
// Only reassign if we actually owned `oldId` — defensive
|
|
1304
1332
|
// against the (impossible-but-cheap-to-guard) case of two
|
|
@@ -1317,7 +1345,7 @@ export async function startWebServer(options) {
|
|
|
1317
1345
|
}, tokenId, threadOwners);
|
|
1318
1346
|
}
|
|
1319
1347
|
catch (err) {
|
|
1320
|
-
webLog.error({ clientId: client.id, err: err instanceof Error ? err.message : String(err) }, 'Error
|
|
1348
|
+
webLog.error({ clientId: client.id, err: err instanceof Error ? err.message : String(err) }, 'Error in client message handler');
|
|
1321
1349
|
sendToClient(ws, { type: 'error', message: 'Invalid message format' });
|
|
1322
1350
|
}
|
|
1323
1351
|
});
|