Commit Graph

35250 Commits

Author SHA1 Message Date
Josh Lehman 7845182410 clawdbot-d02.1.9.1.39: add task session registry maintenance seam (#93734) 2026-06-18 14:36:10 -07:00
Vincent Koc 5570a10bf4 refactor(auth): remove stale external auth persist wrapper 2026-06-19 05:26:31 +08:00
Vincent Koc a98bfdb2b7 refactor(agents): remove stale wrapper exports 2026-06-19 05:18:25 +08:00
Vincent Koc fdb042b9ce refactor(providers): remove stale primary model helper 2026-06-19 05:10:15 +08:00
Vincent Koc bf8ac0d96d refactor(cli): remove stale command group helpers 2026-06-19 05:02:54 +08:00
Vincent Koc a93fc87e2c refactor(cli): keep relay stream helpers test-local 2026-06-19 04:53:59 +08:00
Vincent Koc a8d60d352e refactor(cli): remove stale adapter helpers 2026-06-19 04:44:51 +08:00
NianJiu 1bfa2787b5 fix(exec): resume agent turn for native chat exec approvals (#93949)
* fix(exec): resume agent turn for native chat exec approvals (issue #93918)

Extend the inline approval-pending path that PR #85239 added for webchat to
every bundled chat channel that ships an `approval-handler.runtime`
adapter (Telegram, Discord, Slack, Signal, WhatsApp, iMessage, Matrix,
Google Chat, QQ Bot, plus webchat). When the originating turn can be
approved in the same chat, the gateway resolves the approval in place and
the agent waits inline for the command output instead of terminating the
run on the "approval-pending" tool result.

Before this fix, native chat approvals landed in the fire-and-forget
`sendExecApprovalFollowup` path. The followup either failed silently
against the agent dispatch and fell through to a direct delivery to the
operator, or never reached the agent at all; either way the model never
saw an "Exec running / Exec finished / Exec denied" event. The operator
had to send a follow-up message to recover the turn, and a new approval
was minted because the original run had already ended.

The change:

- Introduces `NATIVE_APPROVAL_CHANNELS` and `isNativeApprovalChannel`
  in `src/utils/message-channel-constants.ts`, listing the channels that
  ship a native chat approval client. `webchat` is included so the
  single-channel check inside `shouldAwaitGatewayApprovalInline` can
  move from "this one id" to "any native approval client".
- Replaces the `INTERNAL_MESSAGE_CHANNEL` equality check in
  `shouldAwaitGatewayApprovalInline` with `isNativeApprovalChannel`,
  preserving the `approvalFollowupMode` opt-out and the existing
  `unavailableReason === null` gate.
- Adds unit tests asserting inline resolution and inline denial for
  every native approval channel, plus a regression test that
  non-native channels (e.g. feishu) and explicit `approvalFollowupMode`
  settings still take the fire-and-forget path.
- Adds a `NATIVE_APPROVAL_CHANNELS` test in
  `src/utils/message-channel.test.ts` to lock the membership and the
  negative cases.

Refs https://github.com/openclaw/openclaw/issues/93918

* fix(lint): restore InternalMessageChannel type export lost during rebase

Rebase on upstream/main dropped the InternalMessageChannel type alias
from message-channel-constants.ts, breaking the plugin-sdk boundary
.dts check ('has no exported member named InternalMessageChannel').
message-channel.ts was also re-importing the type only to re-export
it, triggering the oxlint no-unused-vars rule.

- Re-add 'export type InternalMessageChannel = typeof INTERNAL_MESSAGE_CHANNEL'
  in message-channel-constants.ts so the public re-export is valid.
- Drop the redundant 'type InternalMessageChannel' from the local
  import in message-channel.ts; the value-side import is what the
  file body actually needs.

* test(exec): align native approval routing expectations
2026-06-18 16:41:04 -04:00
Vincent Koc 76bdb025d6 refactor(cli): remove stale path policy helpers 2026-06-19 04:37:29 +08:00
Josh Lehman b637414871 fix: add plugin host session cleanup seam (#93733)
* fix: add plugin host session cleanup seam (clawdbot-d02.1.9.1.38)

* test: update session accessor writer ratchet
2026-06-18 13:29:39 -07:00
Vincent Koc aa39600793 refactor(agents): remove stale tool helpers 2026-06-19 04:28:18 +08:00
Vincent Koc 033162f209 refactor(channels): remove stale discovery helpers 2026-06-19 04:19:22 +08:00
Dallin Romney dfd8a2220b test(scripts): route temp-dir helper importers for store.sqlite and status.scan tests (#94681) 2026-06-18 13:15:40 -07:00
Vincent Koc a14b1e05e5 refactor(channels): remove stale helper exports 2026-06-19 04:07:36 +08:00
Vincent Koc f4e9a6e047 refactor(channels): remove stale bundled channel helpers 2026-06-19 03:52:49 +08:00
Vincent Koc dca17477dc refactor(media): remove stale completion wake wrappers 2026-06-19 03:43:39 +08:00
Vincent Koc b6a06f0e49 refactor(sandbox): remove stale bridge helpers 2026-06-19 03:34:44 +08:00
Vincent Koc 0771ac8563 refactor(core): remove unused helper wrappers 2026-06-19 03:22:07 +08:00
Vincent Koc 1e83f42a64 refactor(agents): remove unused Claude CLI credential writers 2026-06-19 03:10:14 +08:00
Vincent Koc 8f8162704d refactor(gateway): remove stale restart sentinel wake predicate 2026-06-19 02:58:16 +08:00
Vincent Koc 7b7e40cb0e refactor(gateway): remove duplicate artifact collector 2026-06-19 02:50:22 +08:00
Vincent Koc 0b14724c87 refactor(gateway): remove unused connection auth facade 2026-06-19 02:37:30 +08:00
Vincent Koc e879a67bf7 refactor(gateway): remove unused skills reload predicate 2026-06-19 02:34:48 +08:00
Vincent Koc 1f71e92297 refactor(gateway): remove deprecated attachment builder 2026-06-19 02:25:02 +08:00
Vincent Koc 720c0ab372 refactor(gateway): remove unused scoped call wrapper 2026-06-19 02:16:40 +08:00
Josh Lehman 9eb6e6d326 refactor(clawdbot-d02.1.9.1.37): add session maintenance seam (#93737) 2026-06-18 11:12:49 -07:00
Vincent Koc 6b25ccc4b1 refactor(gateway): remove unused checkpoint wrappers 2026-06-19 02:04:21 +08:00
Vincent Koc 940feee71b refactor(gateway): remove unused pending work ack path 2026-06-19 01:49:44 +08:00
Vincent Koc ae655345c4 refactor(gateway): remove unused local interface wrapper 2026-06-19 01:42:03 +08:00
Vincent Koc a48e5091cb fix(plugins): make StepFun npm-only 2026-06-19 01:38:11 +08:00
Vincent Koc e9229ab77e refactor(tui): remove unused OSC8 wrapper 2026-06-19 01:33:13 +08:00
Vincent Koc 2c7fe6a39c test(sqlite): use shared temp directory helper 2026-06-19 01:27:49 +08:00
Vincent Koc 361320cd9f refactor(text): remove unused final tag predicate 2026-06-19 01:21:31 +08:00
Vincent Koc b6cb3d2901 fix(backup): exclude memory reindex shadow databases 2026-06-19 01:20:06 +08:00
Vincent Koc d074c0d970 fix(memory): detect shipped status indexes 2026-06-19 01:20:06 +08:00
Vincent Koc 39c9fd8592 fix(proxy): align managed proxy fixture settings 2026-06-19 01:20:06 +08:00
Vincent Koc 1d6b4ccfef fix(proxy): preserve mode-specific blob types 2026-06-19 01:20:06 +08:00
Vincent Koc b7b452d531 fix(proxy): preserve migration compatibility 2026-06-19 01:20:06 +08:00
Vincent Koc d37de2a39a fix(proxy): preserve capture store compatibility 2026-06-19 01:20:06 +08:00
Josh Lehman 9cfd1cd287 fix(memory): key index sources by path and source 2026-06-19 01:20:06 +08:00
Vincent Koc 9b66e291ae test(doctor): align migration harness 2026-06-19 01:20:06 +08:00
Vincent Koc 7485dd6492 fix(sqlite): migrate legacy memory and proxy state 2026-06-19 01:20:06 +08:00
Vincent Koc 0876ed59e0 refactor(proxy): store captures in shared state database 2026-06-19 01:20:06 +08:00
Vincent Koc 88bc08c124 refactor(memory): canonicalize agent database tables 2026-06-19 01:20:06 +08:00
Vincent Koc 1db7c41bf2 fix(sdk): keep sqlite lifecycle helpers private 2026-06-19 01:20:06 +08:00
Vincent Koc a7fada4b61 fix(memory): invalidate stale shadow indexes 2026-06-19 01:20:06 +08:00
Vincent Koc 8b7269d197 fix(sqlite): preserve migrations and reindex safety 2026-06-19 01:20:06 +08:00
Vincent Koc f324f7e281 refactor(memory): use the per-agent sqlite database 2026-06-19 01:20:06 +08:00
Vincent Koc 4e0376255f fix(onboard): reject deprecated external auth choices 2026-06-19 01:05:52 +08:00
Vincent Koc 0710eebec2 fix(plugins): avoid catalog lookup allocations 2026-06-19 01:05:52 +08:00