style: apply prettier formatting

This commit is contained in:
ejclaw
2026-04-09 22:50:21 +09:00
parent 5714348897
commit 7753ee46f0
7 changed files with 64 additions and 49 deletions

View File

@@ -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) => ({
id: message.id,
seq: message.seq,
})),
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', () => {

View File

@@ -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,

View File

@@ -570,22 +570,25 @@ function backfillCanonicalWorkItemServiceIds(database: Database): void {
SET service_id = ?
WHERE id = ?`,
);
const tx = database.transaction((workItemRows: StoredWorkItemServiceRow[]) => {
for (const row of workItemRows) {
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) ??
resolveRoleServiceShadow(deliveryRole, agentType) ??
SERVICE_SESSION_SCOPE;
const tx = database.transaction(
(workItemRows: StoredWorkItemServiceRow[]) => {
for (const row of workItemRows) {
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) ??
resolveRoleServiceShadow(deliveryRole, agentType) ??
SERVICE_SESSION_SCOPE;
if (row.service_id === serviceId) {
continue;
if (row.service_id === serviceId) {
continue;
}
update.run(serviceId, row.id);
}
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 */
}
}

View File

@@ -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;
}

View File

@@ -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 },

View File

@@ -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,

View File

@@ -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: