refactor: remove explicit paired review command path
This commit is contained in:
@@ -5,8 +5,6 @@ import path from 'path';
|
||||
|
||||
import {
|
||||
DATA_DIR,
|
||||
SERVICE_ID,
|
||||
normalizeServiceId,
|
||||
PAIRED_MAX_ROUND_TRIPS,
|
||||
} from './config.js';
|
||||
import {
|
||||
@@ -477,110 +475,3 @@ export function completePairedExecutionContext(args: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// markRoomReviewReady
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export type MarkRoomReviewReadyResult =
|
||||
| {
|
||||
status: 'ready';
|
||||
task: PairedTask;
|
||||
ownerWorkspace: PairedWorkspace;
|
||||
reviewerWorkspace: PairedWorkspace;
|
||||
}
|
||||
| {
|
||||
status: 'pending';
|
||||
task: PairedTask;
|
||||
pendingReason: 'owner-workspace-not-ready';
|
||||
}
|
||||
| null;
|
||||
|
||||
export function markRoomReviewReady(args: {
|
||||
group: RegisteredGroup;
|
||||
chatJid: string;
|
||||
roomRoleContext?: RoomRoleContext;
|
||||
}): MarkRoomReviewReadyResult {
|
||||
const { group, chatJid, roomRoleContext } = args;
|
||||
if (!roomRoleContext || !group.workDir) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const task = ensureActiveTask(group, chatJid, roomRoleContext);
|
||||
if (!task) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const isOwnerService =
|
||||
normalizeServiceId(SERVICE_ID) === task.owner_service_id;
|
||||
const ownerWorkspace =
|
||||
(isOwnerService
|
||||
? provisionOwnerWorkspaceForPairedTask(task.id)
|
||||
: getPairedWorkspace(task.id, 'owner')) ?? null;
|
||||
|
||||
if (!ownerWorkspace) {
|
||||
markPairedTaskReviewReady(task.id);
|
||||
return {
|
||||
status: 'pending',
|
||||
task: getPairedTaskById(task.id) ?? task,
|
||||
pendingReason: 'owner-workspace-not-ready',
|
||||
};
|
||||
}
|
||||
|
||||
// Update task status and refresh reviewer snapshot
|
||||
const reviewResult = markPairedTaskReviewReady(task.id);
|
||||
const latestTask = getPairedTaskById(task.id) ?? task;
|
||||
|
||||
if (reviewResult) {
|
||||
return {
|
||||
status: 'ready',
|
||||
task: latestTask,
|
||||
ownerWorkspace: reviewResult.ownerWorkspace,
|
||||
reviewerWorkspace: reviewResult.reviewerWorkspace,
|
||||
};
|
||||
}
|
||||
|
||||
// Snapshot refresh succeeded but result was null — try reading persisted state
|
||||
const reviewerWorkspace = getPairedWorkspace(task.id, 'reviewer');
|
||||
if (!reviewerWorkspace) {
|
||||
return {
|
||||
status: 'pending',
|
||||
task: latestTask,
|
||||
pendingReason: 'owner-workspace-not-ready',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
status: 'ready',
|
||||
task: latestTask,
|
||||
ownerWorkspace,
|
||||
reviewerWorkspace,
|
||||
};
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// formatRoomReviewReadyMessage
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export function formatRoomReviewReadyMessage(
|
||||
result: MarkRoomReviewReadyResult,
|
||||
): string | null {
|
||||
if (!result) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (result.status === 'pending') {
|
||||
return [
|
||||
'Review request recorded, but the owner workspace is not ready yet.',
|
||||
`- Task: ${result.task.id}`,
|
||||
'The task stays review_pending until the owner workspace is prepared.',
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
return [
|
||||
'Review snapshot updated.',
|
||||
`- Task: ${result.task.id}`,
|
||||
`- Owner workspace: ${result.ownerWorkspace.workspace_dir}`,
|
||||
`- Reviewer snapshot: ${result.reviewerWorkspace.workspace_dir}`,
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user