refactor: consolidate typing lifecycle and queue policy

This commit is contained in:
Peter Steinberger
2026-02-25 02:15:54 +00:00
parent 24d7612ddf
commit d42ef2ac62
19 changed files with 410 additions and 301 deletions

View File

@@ -51,6 +51,7 @@ import {
readSessionMessages,
} from "./post-compaction-audit.js";
import { readPostCompactionContext } from "./post-compaction-context.js";
import { resolveActiveRunQueueAction } from "./queue-policy.js";
import { enqueueFollowupRun, type FollowupRun, type QueueSettings } from "./queue.js";
import { createReplyToModeFilterForChannel, resolveReplyToMode } from "./reply-threading.js";
import { incrementRunCompactionCount, persistRunSessionUsage } from "./session-run-accounting.js";
@@ -235,12 +236,19 @@ export async function runReplyAgent(params: {
}
}
if (isHeartbeat && isActive) {
const activeRunQueueAction = resolveActiveRunQueueAction({
isActive,
isHeartbeat,
shouldFollowup,
queueMode: resolvedQueue.mode,
});
if (activeRunQueueAction === "drop") {
typing.cleanup();
return undefined;
}
if (isActive && (shouldFollowup || resolvedQueue.mode === "steer")) {
if (activeRunQueueAction === "enqueue-followup") {
enqueueFollowupRun(queueKey, followupRun, resolvedQueue);
await touchActiveSessionEntry();
typing.cleanup();