Finalize turn-role invariants and legacy migration cutover

This commit is contained in:
ejclaw
2026-04-10 11:44:34 +09:00
parent 7753ee46f0
commit c67bd1c622
45 changed files with 15014 additions and 1381 deletions

View File

@@ -7,15 +7,18 @@
*
* Uses better-sqlite3 directly (no sqlite3 CLI), platform-aware service checks.
*/
import path from 'path';
import { logger } from '../src/logger.js';
import { getServiceManager } from './platform.js';
import { getLegacyMigrationGuidance } from './room-registration-state.js';
import { getServiceDefs } from './service-defs.js';
import { emitStatus } from './status.js';
import {
buildVerifySummary,
detectChannelAuth,
detectCredentials,
loadRegisteredGroupsSummary,
loadAssignedRoomsSummary,
loadRoleRoutingRequirementsSummary,
} from './verify-state.js';
import { getServiceChecks } from './verify-services.js';
@@ -40,29 +43,33 @@ export async function run(_args: string[]): Promise<void> {
const credentials = detectCredentials(projectRoot);
const channelAuth = detectChannelAuth();
const { registeredGroups, groupsByAgent } = loadRegisteredGroupsSummary();
const dbPath = path.join(projectRoot, 'store', 'messages.db');
const roomSummary = loadAssignedRoomsSummary({ projectRoot, dbPath });
const { tribunalRooms, activeArbiterTasks } =
loadRoleRoutingRequirementsSummary();
loadRoleRoutingRequirementsSummary({ dbPath });
const {
status: baseStatus,
servicesSummary,
configuredChannels,
tribunalRooms: detectedTribunalRooms,
activeArbiterTasks: detectedActiveArbiterTasks,
codexConfigured,
reviewConfigured,
reviewerChannelConfigured,
arbiterChannelConfigured,
} = buildVerifySummary(
services,
serviceDefs,
credentials,
channelAuth,
registeredGroups,
groupsByAgent,
roomSummary,
{
tribunalRooms,
activeArbiterTasks,
},
);
const legacyMigrationGuidance = getLegacyMigrationGuidance(
roomSummary,
'verification',
);
const status = baseStatus;
logger.info(
@@ -85,10 +92,24 @@ export async function run(_args: string[]): Promise<void> {
CHANNEL_AUTH: JSON.stringify(channelAuth),
TRIBUNAL_ROOMS: detectedTribunalRooms,
ACTIVE_ARBITER_TASKS: detectedActiveArbiterTasks,
REGISTERED_GROUPS: registeredGroups,
GROUPS_BY_AGENT: JSON.stringify(groupsByAgent),
CODEX_CONFIGURED: codexConfigured,
REVIEW_CONFIGURED: reviewConfigured,
ASSIGNED_ROOMS: roomSummary.assignedRooms,
ROOMS_BY_OWNER_AGENT: JSON.stringify(roomSummary.roomsByOwnerAgent),
LEGACY_REGISTERED_GROUP_ROWS: roomSummary.legacyRegisteredGroupRows,
HAS_LEGACY_REGISTERED_GROUPS_JSON:
roomSummary.hasLegacyRegisteredGroupsJson,
LEGACY_ROOM_MIGRATION_REQUIRED: roomSummary.legacyRoomMigrationRequired,
PENDING_LEGACY_JSON_STATE_FILES:
roomSummary.pendingLegacyJsonStateFiles.join(','),
LEGACY_JSON_STATE_MIGRATION_REQUIRED:
roomSummary.legacyJsonStateMigrationRequired,
REVIEWER_CHANNEL_CONFIGURED: reviewerChannelConfigured,
ARBITER_CHANNEL_CONFIGURED: arbiterChannelConfigured,
...(legacyMigrationGuidance
? {
ERROR: legacyMigrationGuidance.error,
NEXT_STEP: legacyMigrationGuidance.nextStep,
}
: {}),
STATUS: status,
LOG: 'logs/setup.log',
});