refactor: centralize paired room role normalization (#193)

This commit is contained in:
Eyejoker
2026-05-30 00:03:15 +09:00
committed by GitHub
parent 5fa5b2f684
commit adf9c16b9a
10 changed files with 107 additions and 50 deletions

View File

@@ -4,6 +4,7 @@ import { resolveRuntimeAttachmentBaseDirs } from './attachment-base-dirs.js';
import { deliverOpenWorkItem } from './message-runtime-delivery.js';
import { parseVisibleVerdict } from './paired-verdict.js';
import { resolveChannelForDeliveryRole } from './router.js';
import { normalizePairedRoomRole } from './types.js';
import type {
Channel,
OutboundAttachment,
@@ -66,19 +67,6 @@ export type IpcOutboundDeliveryResult =
| 'queued_retry'
| 'skipped_recorded_terminal';
function normalizeDeliveryRole(
senderRole: string | undefined,
): PairedRoomRole | undefined {
if (
senderRole === 'owner' ||
senderRole === 'reviewer' ||
senderRole === 'arbiter'
) {
return senderRole;
}
return undefined;
}
function isTerminalStatusMessage(text: string): boolean {
return parseVisibleVerdict(text) !== 'continue';
}
@@ -143,7 +131,7 @@ export async function deliverIpcOutboundMessage(
deps: IpcOutboundDeliveryDeps,
): Promise<IpcOutboundDeliveryResult> {
const log = deps.log ?? logger;
const deliveryRole = normalizeDeliveryRole(args.senderRole);
const deliveryRole = normalizePairedRoomRole(args.senderRole);
if (
args.runId &&
(deliveryRole === 'reviewer' || deliveryRole === 'arbiter') &&