mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-13 12:52:54 +00:00
refactor: use channel target resolution APIs (#85814)
* refactor: use channel target resolution apis * refactor: satisfy delivery lint * refactor: remove unused target parsing shim * fix: preserve routed cron topic targets
This commit is contained in:
committed by
GitHub
parent
fd2a9adbe6
commit
c4f0da00a9
@@ -119,9 +119,9 @@ route-like fields, compare a child thread with its parent route, or build a
|
||||
stable dedupe key from `{ channel, to, accountId, threadId }`. The helper
|
||||
normalizes numeric thread ids the same way core does, so plugins should prefer
|
||||
it over ad hoc `String(threadId)` comparisons.
|
||||
Plugins with provider-specific target grammar can inject their parser into
|
||||
`resolveChannelRouteTargetWithParser(...)` and still get the same route target
|
||||
shape and thread fallback semantics core uses.
|
||||
Plugins with provider-specific target grammar should expose
|
||||
`messaging.resolveOutboundSessionRoute(...)` so core gets provider-native
|
||||
session and thread identity without using parser shims.
|
||||
|
||||
Bundled plugins that need the same parsing before the channel registry boots
|
||||
can also expose a top-level `session-key-api.ts` file with a matching
|
||||
@@ -253,7 +253,7 @@ surfaces:
|
||||
- `openclaw/plugin-sdk/inbound-envelope` and
|
||||
`openclaw/plugin-sdk/inbound-reply-dispatch` for inbound route/envelope and
|
||||
record-and-dispatch wiring
|
||||
- `openclaw/plugin-sdk/messaging-targets` for target parsing/matching
|
||||
- `openclaw/plugin-sdk/channel-targets` for target parsing helpers
|
||||
- `openclaw/plugin-sdk/outbound-media` and
|
||||
`openclaw/plugin-sdk/outbound-runtime` for media loading plus outbound
|
||||
identity/send delegates and payload planning
|
||||
|
||||
@@ -467,16 +467,23 @@ releases.
|
||||
| `channelRouteIdentityKey(...)` | `channelRouteDedupeKey(...)` |
|
||||
| `channelRouteKey(...)` | `channelRouteCompactKey(...)` |
|
||||
| `ComparableChannelTarget` | `ChannelRouteParsedTarget` |
|
||||
| `resolveComparableTargetForChannel(...)` | `resolveRouteTargetForChannel(...)` |
|
||||
| `resolveComparableTargetForLoadedChannel(...)` | `resolveRouteTargetForLoadedChannel(...)` |
|
||||
| `comparableChannelTargetsMatch(...)` | `channelRouteTargetsMatchExact(...)` |
|
||||
| `comparableChannelTargetsShareRoute(...)` | `channelRouteTargetsShareConversation(...)` |
|
||||
|
||||
The modern route helpers normalize `{ channel, to, accountId, threadId }`
|
||||
consistently across native approvals, reply suppression, inbound dedupe,
|
||||
cron delivery, and session routing. If your plugin owns custom target
|
||||
grammar, use `resolveChannelRouteTargetWithParser(...)` to adapt that
|
||||
parser into the same route target contract.
|
||||
cron delivery, and session routing.
|
||||
|
||||
Do not add new uses of `ChannelMessagingAdapter.parseExplicitTarget` or
|
||||
the parser-backed loaded-route helpers (`parseExplicitTargetForLoadedChannel`
|
||||
or `resolveRouteTargetForLoadedChannel`) or
|
||||
`resolveChannelRouteTargetWithParser(...)` from `plugin-sdk/channel-route`.
|
||||
Those hooks are deprecated and remain only for older plugins during the
|
||||
migration window. New channel plugins should use
|
||||
`messaging.targetResolver.resolveTarget(...)` for target id normalization
|
||||
and directory-miss fallback, `messaging.inferTargetChatType(...)` when core
|
||||
needs an early peer kind, and `messaging.resolveOutboundSessionRoute(...)`
|
||||
for provider-native session and thread identity.
|
||||
|
||||
</Step>
|
||||
|
||||
@@ -518,7 +525,7 @@ releases.
|
||||
| `plugin-sdk/channel-lifecycle` | Account status and draft stream lifecycle helpers | `createAccountStatusSink`, draft preview finalization helpers |
|
||||
| `plugin-sdk/inbound-envelope` | Inbound envelope helpers | Shared route + envelope builder helpers |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Inbound reply helpers | Shared record-and-dispatch helpers |
|
||||
| `plugin-sdk/messaging-targets` | Messaging target parsing | Target parsing/matching helpers |
|
||||
| `plugin-sdk/messaging-targets` | Deprecated target parsing import path | Use `plugin-sdk/channel-targets` for generic target parsing helpers, `plugin-sdk/channel-route` for route comparison, and plugin-owned `messaging.targetResolver` / `messaging.resolveOutboundSessionRoute` for provider-specific target resolution |
|
||||
| `plugin-sdk/outbound-media` | Outbound media helpers | Shared outbound media loading |
|
||||
| `plugin-sdk/outbound-send-deps` | Outbound send dependency helpers | Lightweight `resolveOutboundSendDep` lookup without importing the full outbound runtime |
|
||||
| `plugin-sdk/outbound-runtime` | Outbound runtime helpers | Outbound delivery, identity/send delegate, session, formatting, and payload planning helpers |
|
||||
|
||||
@@ -117,7 +117,7 @@ focused channel/runtime subpaths, `config-contracts`, `string-coerce-runtime`,
|
||||
| `plugin-sdk/channel-message-runtime` | Runtime delivery helpers that may load outbound delivery, including `deliverInboundReplyWithMessageSendContext`, `sendDurableMessageBatch`, and `withDurableMessageSendContext`. Deprecated reply-dispatch bridges remain importable for compatibility dispatchers only. Use from monitor/send runtime modules, not hot plugin bootstrap files. |
|
||||
| `plugin-sdk/inbound-envelope` | Shared inbound route + envelope builder helpers |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Legacy shared inbound record-and-dispatch helpers, visible/final dispatch predicates, and deprecated `deliverDurableInboundReplyPayload` compatibility for prepared channel dispatchers. New channel receive/dispatch code should import runtime lifecycle helpers from `plugin-sdk/channel-message-runtime`. |
|
||||
| `plugin-sdk/messaging-targets` | Target parsing/matching helpers |
|
||||
| `plugin-sdk/messaging-targets` | Deprecated target parsing alias; use `plugin-sdk/channel-targets` |
|
||||
| `plugin-sdk/outbound-media` | Shared outbound media loading helpers |
|
||||
| `plugin-sdk/outbound-send-deps` | Lightweight outbound send dependency lookup for channel adapters |
|
||||
| `plugin-sdk/outbound-runtime` | Outbound identity, send delegate, session, formatting, and payload planning helpers. Direct delivery helpers such as `deliverOutboundPayloads` are deprecated compatibility substrate; use `plugin-sdk/channel-message-runtime` for new send paths. |
|
||||
|
||||
Reference in New Issue
Block a user