mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
73bba03e4c
* refactor: canonicalize session delivery state * test: canonicalize reply persistence fixtures * test: canonicalize talk delivery fixtures * test: canonicalize voice session routes * test: canonicalize attachment delivery fixtures * test: migrate gateway delivery fixtures * fix: skip invalid session delivery rows * test: align delivery SDK surface gates * fix: preserve legacy delivery precedence * test: canonicalize heartbeat delivery fixtures * fix: preserve delivery route prompt identity * test: canonicalize session delivery fixtures * fix: preserve recoverable legacy delivery routes * fix: canonicalize remaining session state * fix: preserve canonical session classification * style: format delivery state changes * test: refresh plugin SDK delivery baseline * test: avoid mutating session fixture input * style: simplify delivery identity check * style: simplify delivery origin spread * fix: preserve fresh delivery route metadata * test: assert canonical surface route switch * fix: canonicalize doctor file-store imports * fix: preserve transitional delivery migration state * fix: satisfy canonical delivery CI gates * ci: scope GitHub App token permissions * test: infer canonical delivery projections * test: canonicalize ACP requester delivery fixtures * test: canonicalize harness rollback fixture * style: apply pinned formatter
31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
// Shared channel session recording contracts for inbound dispatch and metadata writers.
|
|
import type { MsgContext } from "../auto-reply/templating.js";
|
|
import type { GroupKeyResolution } from "../config/sessions/types.js";
|
|
import type { ChannelRouteRef } from "../plugin-sdk/channel-route.js";
|
|
|
|
export type InboundLastRouteUpdate = {
|
|
sessionKey: string;
|
|
channel: string;
|
|
to: string;
|
|
accountId?: string;
|
|
threadId?: string | number;
|
|
route?: ChannelRouteRef;
|
|
mainDmOwnerPin?: {
|
|
ownerRecipient: string;
|
|
senderRecipient: string;
|
|
onSkip?: (params: { ownerRecipient: string; senderRecipient: string }) => void;
|
|
};
|
|
};
|
|
|
|
/** Function contract for recording inbound channel session state. */
|
|
export type RecordInboundSession = (params: {
|
|
storePath: string;
|
|
sessionKey: string;
|
|
ctx: MsgContext;
|
|
groupResolution?: GroupKeyResolution | null;
|
|
createIfMissing?: boolean;
|
|
updateLastRoute?: InboundLastRouteUpdate;
|
|
onRecordError: (err: unknown) => void;
|
|
trackSessionMetaTask?: (task: Promise<unknown>) => void;
|
|
}) => Promise<void>;
|