style: apply prettier formatting
This commit is contained in:
@@ -469,7 +469,6 @@ describe('session accessors', () => {
|
||||
expect(hasServiceSessions).toBe(false);
|
||||
migratedDb.close();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// --- storeChatMetadata ---
|
||||
@@ -1181,7 +1180,9 @@ describe('paired task state', () => {
|
||||
});
|
||||
|
||||
it('preserves stored reviewer service ids during init even when reviewer agent metadata exists', () => {
|
||||
const tempDir = fs.mkdtempSync('/tmp/ejclaw-channel-owner-stored-reviewer-');
|
||||
const tempDir = fs.mkdtempSync(
|
||||
'/tmp/ejclaw-channel-owner-stored-reviewer-',
|
||||
);
|
||||
const dbPath = path.join(tempDir, 'messages.db');
|
||||
const legacyDb = new Database(dbPath);
|
||||
|
||||
@@ -2858,7 +2859,6 @@ describe('service handoff completion', () => {
|
||||
}),
|
||||
]);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('message seq cursors', () => {
|
||||
@@ -3029,10 +3029,12 @@ describe('message seq cursors', () => {
|
||||
_initTestDatabaseFromFile(dbPath);
|
||||
|
||||
expect(
|
||||
getMessagesSinceSeq('dc:legacy-partial-seq', 0, 'Andy').map((message) => ({
|
||||
getMessagesSinceSeq('dc:legacy-partial-seq', 0, 'Andy').map(
|
||||
(message) => ({
|
||||
id: message.id,
|
||||
seq: message.seq,
|
||||
})),
|
||||
}),
|
||||
),
|
||||
).toEqual([
|
||||
{ id: 'legacy-existing-seq', seq: 1 },
|
||||
{ id: 'legacy-missing-seq', seq: 2 },
|
||||
@@ -3309,7 +3311,9 @@ describe('legacy schema writes after init', () => {
|
||||
});
|
||||
|
||||
it('creates channel owner leases after init on a canonical channel_owner schema without service id columns', () => {
|
||||
const tempDir = fs.mkdtempSync('/tmp/ejclaw-canonical-channel-owner-write-');
|
||||
const tempDir = fs.mkdtempSync(
|
||||
'/tmp/ejclaw-canonical-channel-owner-write-',
|
||||
);
|
||||
const dbPath = path.join(tempDir, 'messages.db');
|
||||
const legacyDb = new Database(dbPath);
|
||||
|
||||
@@ -3594,9 +3598,15 @@ describe('work items', () => {
|
||||
});
|
||||
|
||||
expect(
|
||||
getOpenWorkItem('dc:stored-service-mismatch', 'codex', CODEX_MAIN_SERVICE_ID),
|
||||
getOpenWorkItem(
|
||||
'dc:stored-service-mismatch',
|
||||
'codex',
|
||||
CODEX_MAIN_SERVICE_ID,
|
||||
),
|
||||
).toBeUndefined();
|
||||
expect(
|
||||
getOpenWorkItemForChat('dc:stored-service-mismatch'),
|
||||
).toBeUndefined();
|
||||
expect(getOpenWorkItemForChat('dc:stored-service-mismatch')).toBeUndefined();
|
||||
});
|
||||
|
||||
it('allows a current-service open work item even when a stale-service open row already exists', () => {
|
||||
@@ -3611,7 +3621,9 @@ describe('work items', () => {
|
||||
result_payload: 'stale reviewer output',
|
||||
});
|
||||
|
||||
expect(getOpenWorkItemForChat('dc:repro', CODEX_MAIN_SERVICE_ID)).toBeUndefined();
|
||||
expect(
|
||||
getOpenWorkItemForChat('dc:repro', CODEX_MAIN_SERVICE_ID),
|
||||
).toBeUndefined();
|
||||
|
||||
const currentItem = createProducedWorkItem({
|
||||
group_folder: 'discord_test',
|
||||
@@ -3624,9 +3636,9 @@ describe('work items', () => {
|
||||
result_payload: 'current reviewer output',
|
||||
});
|
||||
|
||||
expect(
|
||||
getOpenWorkItemForChat('dc:repro', CODEX_MAIN_SERVICE_ID)?.id,
|
||||
).toBe(currentItem.id);
|
||||
expect(getOpenWorkItemForChat('dc:repro', CODEX_MAIN_SERVICE_ID)?.id).toBe(
|
||||
currentItem.id,
|
||||
);
|
||||
});
|
||||
|
||||
it('backfills work item service ids during init on a canonical work_items schema without service_id columns', () => {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
import { Database } from 'bun:sqlite';
|
||||
|
||||
import {
|
||||
ARBITER_AGENT_TYPE,
|
||||
REVIEWER_AGENT_TYPE,
|
||||
} from '../config.js';
|
||||
import { ARBITER_AGENT_TYPE, REVIEWER_AGENT_TYPE } from '../config.js';
|
||||
import {
|
||||
collectRegisteredAgentTypes,
|
||||
collectRegisteredAgentTypesForFolder,
|
||||
|
||||
@@ -570,9 +570,11 @@ function backfillCanonicalWorkItemServiceIds(database: Database): void {
|
||||
SET service_id = ?
|
||||
WHERE id = ?`,
|
||||
);
|
||||
const tx = database.transaction((workItemRows: StoredWorkItemServiceRow[]) => {
|
||||
const tx = database.transaction(
|
||||
(workItemRows: StoredWorkItemServiceRow[]) => {
|
||||
for (const row of workItemRows) {
|
||||
const agentType = normalizeStoredAgentType(row.agent_type) ?? 'claude-code';
|
||||
const agentType =
|
||||
normalizeStoredAgentType(row.agent_type) ?? 'claude-code';
|
||||
const deliveryRole = normalizePairedRole(row.delivery_role) ?? 'owner';
|
||||
const serviceId =
|
||||
(row.service_id ? normalizeServiceId(row.service_id) : null) ??
|
||||
@@ -585,7 +587,8 @@ function backfillCanonicalWorkItemServiceIds(database: Database): void {
|
||||
|
||||
update.run(serviceId, row.id);
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
tx(rows);
|
||||
}
|
||||
@@ -735,7 +738,10 @@ export function applySchemaMigrations(
|
||||
database,
|
||||
`ALTER TABLE work_items ADD COLUMN delivery_role TEXT`,
|
||||
);
|
||||
tryExecMigration(database, `ALTER TABLE work_items ADD COLUMN service_id TEXT`);
|
||||
tryExecMigration(
|
||||
database,
|
||||
`ALTER TABLE work_items ADD COLUMN service_id TEXT`,
|
||||
);
|
||||
|
||||
database.exec(
|
||||
`UPDATE service_handoffs
|
||||
@@ -766,7 +772,10 @@ export function applySchemaMigrations(
|
||||
'reviewer_agent_type',
|
||||
'arbiter_agent_type',
|
||||
]) {
|
||||
tryExecMigration(database, `ALTER TABLE channel_owner ADD COLUMN ${column} TEXT`);
|
||||
tryExecMigration(
|
||||
database,
|
||||
`ALTER TABLE channel_owner ADD COLUMN ${column} TEXT`,
|
||||
);
|
||||
}
|
||||
|
||||
backfillCanonicalPairedTaskServiceIds(database);
|
||||
@@ -1127,5 +1136,4 @@ export function applySchemaMigrations(
|
||||
} catch {
|
||||
/* columns already exist */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -86,7 +86,8 @@ function resolvePreferredWorkItemRole(
|
||||
return null;
|
||||
}
|
||||
|
||||
const inferredAgentType = inferAgentTypeFromServiceShadow(normalizedServiceId);
|
||||
const inferredAgentType =
|
||||
inferAgentTypeFromServiceShadow(normalizedServiceId);
|
||||
return inferRoleFromServiceShadow(inferredAgentType, normalizedServiceId);
|
||||
}
|
||||
|
||||
@@ -131,9 +132,7 @@ export function getOpenWorkItemFromDatabase(
|
||||
normalizedServiceId,
|
||||
preferredRole,
|
||||
preferredRole,
|
||||
) as
|
||||
| StoredWorkItemRow
|
||||
| undefined;
|
||||
) as StoredWorkItemRow | undefined;
|
||||
return row ? hydrateWorkItemRow(row) : undefined;
|
||||
}
|
||||
|
||||
|
||||
@@ -135,10 +135,7 @@ export function recoverPendingMessages(args: {
|
||||
}): void {
|
||||
const registeredGroups = args.getRegisteredGroups();
|
||||
for (const [chatJid, group] of Object.entries(registeredGroups)) {
|
||||
const openWorkItem = getOpenWorkItemForChat(
|
||||
chatJid,
|
||||
SERVICE_SESSION_SCOPE,
|
||||
);
|
||||
const openWorkItem = getOpenWorkItemForChat(chatJid, SERVICE_SESSION_SCOPE);
|
||||
if (openWorkItem) {
|
||||
logger.info(
|
||||
{ chatJid, group: group.name, workItemId: openWorkItem.id },
|
||||
|
||||
@@ -7,7 +7,10 @@ import {
|
||||
getLastBotFinalMessage,
|
||||
getLatestOpenPairedTaskForChat,
|
||||
} from './db.js';
|
||||
import { isSessionCommandSenderAllowed, SERVICE_SESSION_SCOPE } from './config.js';
|
||||
import {
|
||||
isSessionCommandSenderAllowed,
|
||||
SERVICE_SESSION_SCOPE,
|
||||
} from './config.js';
|
||||
import { GroupQueue, GroupRunContext } from './group-queue.js';
|
||||
import {
|
||||
findChannel,
|
||||
@@ -480,10 +483,7 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
|
||||
|
||||
// Delivery retries can come from forced fallback runs whose agent_type
|
||||
// differs from the room owner's registered agent type.
|
||||
const openWorkItem = getOpenWorkItemForChat(
|
||||
chatJid,
|
||||
SERVICE_SESSION_SCOPE,
|
||||
);
|
||||
const openWorkItem = getOpenWorkItemForChat(chatJid, SERVICE_SESSION_SCOPE);
|
||||
const openWorkItemOutcome = await processOpenWorkItemDelivery({
|
||||
chatJid,
|
||||
runId,
|
||||
|
||||
@@ -76,7 +76,9 @@ function normalizeLeaseRow(
|
||||
reviewer_agent_type: reviewerAgentType,
|
||||
arbiter_agent_type: arbiterAgentType,
|
||||
owner_service_id:
|
||||
(row.owner_service_id ? normalizeServiceId(row.owner_service_id) : null) ??
|
||||
(row.owner_service_id
|
||||
? normalizeServiceId(row.owner_service_id)
|
||||
: null) ??
|
||||
resolveRoleServiceShadow('owner', ownerAgentType) ??
|
||||
normalizeServiceId(SERVICE_ID),
|
||||
reviewer_service_id:
|
||||
|
||||
Reference in New Issue
Block a user