Fix paired-room delivery role persistence
This commit is contained in:
@@ -979,6 +979,9 @@ describe('createMessageRuntime', () => {
|
||||
expect(agentRunner.runAgentProcess).toHaveBeenCalledTimes(1);
|
||||
expect(lastAgentTimestamps[`${chatJid}:reviewer`]).toBe('41');
|
||||
expect(saveState).toHaveBeenCalled();
|
||||
expect(db.createProducedWorkItem).toHaveBeenCalledWith(
|
||||
expect.objectContaining({ delivery_role: 'reviewer' }),
|
||||
);
|
||||
expect(reviewerChannel.sendMessage).toHaveBeenCalledWith(
|
||||
chatJid,
|
||||
'리뷰 확인 완료',
|
||||
@@ -1087,6 +1090,9 @@ describe('createMessageRuntime', () => {
|
||||
|
||||
expect(result).toBe(true);
|
||||
expect(agentRunner.runAgentProcess).toHaveBeenCalledTimes(1);
|
||||
expect(db.createProducedWorkItem).toHaveBeenCalledWith(
|
||||
expect.objectContaining({ delivery_role: 'owner' }),
|
||||
);
|
||||
expect(channel.sendMessage).toHaveBeenCalledWith(chatJid, '최종 정리 완료');
|
||||
});
|
||||
|
||||
|
||||
@@ -488,12 +488,16 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
|
||||
deps.queue.closeStdin(chatJid, { runId, reason }),
|
||||
deliverFinalText: async (text) => {
|
||||
try {
|
||||
const persistedDeliveryRole =
|
||||
args.deliveryRole ??
|
||||
args.forcedRole ??
|
||||
(hasReviewerLease(chatJid) ? 'owner' : null);
|
||||
const workItem = createProducedWorkItem({
|
||||
group_folder: group.folder,
|
||||
chat_jid: chatJid,
|
||||
agent_type:
|
||||
args.forcedAgentType ?? group.agentType ?? 'claude-code',
|
||||
delivery_role: args.deliveryRole ?? args.forcedRole ?? null,
|
||||
delivery_role: persistedDeliveryRole,
|
||||
start_seq: startSeq,
|
||||
end_seq: endSeq,
|
||||
result_payload: text,
|
||||
@@ -837,6 +841,16 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
|
||||
const pendingTask = hasReviewerLease(chatJid)
|
||||
? getLatestOpenPairedTaskForChat(chatJid)
|
||||
: null;
|
||||
if (hasReviewerLease(chatJid) && openWorkItem.delivery_role == null) {
|
||||
log.warn(
|
||||
{
|
||||
workItemId: openWorkItem.id,
|
||||
chatJid,
|
||||
pendingTaskStatus: pendingTask?.status ?? null,
|
||||
},
|
||||
'Paired-room delivery retry is missing a persisted delivery role; falling back to inferred routing',
|
||||
);
|
||||
}
|
||||
const deliveryRole =
|
||||
openWorkItem.delivery_role ??
|
||||
(pendingTask ? resolveActiveRole(pendingTask.status) : 'owner');
|
||||
|
||||
Reference in New Issue
Block a user