Remove legacy Discord token aliases
This commit is contained in:
@@ -11,7 +11,6 @@ import {
|
||||
buildVerifySummary,
|
||||
detectChannelAuth,
|
||||
detectCredentials,
|
||||
detectLegacyDiscordTokenKeys,
|
||||
loadRegisteredGroupsSummary,
|
||||
loadRoleRoutingRequirementsSummary,
|
||||
} from './verify-state.js';
|
||||
@@ -53,37 +52,17 @@ describe('verify state helpers', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('does not treat legacy service-based channel auth names as configured channels', () => {
|
||||
it('does not treat unknown discord token names as configured channels', () => {
|
||||
expect(
|
||||
detectChannelAuth(
|
||||
{},
|
||||
{
|
||||
DISCORD_CLAUDE_BOT_TOKEN: 'legacy-owner-token',
|
||||
DISCORD_CODEX_MAIN_BOT_TOKEN: 'legacy-reviewer-token',
|
||||
DISCORD_CODEX_REVIEW_BOT_TOKEN: 'legacy-arbiter-token',
|
||||
DISCORD_UNUSED_BOT_TOKEN: 'unknown-token',
|
||||
},
|
||||
),
|
||||
).toEqual({});
|
||||
});
|
||||
|
||||
it('detects legacy service-based discord token names from env file and process env', () => {
|
||||
expect(
|
||||
detectLegacyDiscordTokenKeys(
|
||||
{
|
||||
DISCORD_BOT_TOKEN: 'legacy-owner-token',
|
||||
},
|
||||
{
|
||||
DISCORD_CODEX_MAIN_BOT_TOKEN: 'legacy-reviewer-token',
|
||||
DISCORD_CODEX_REVIEW_BOT_TOKEN: 'legacy-arbiter-token',
|
||||
},
|
||||
),
|
||||
).toEqual([
|
||||
'DISCORD_BOT_TOKEN',
|
||||
'DISCORD_CODEX_MAIN_BOT_TOKEN',
|
||||
'DISCORD_CODEX_REVIEW_BOT_TOKEN',
|
||||
]);
|
||||
});
|
||||
|
||||
it('loads paired-room routing requirements from the sqlite store', () => {
|
||||
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'ejclaw-verify-'));
|
||||
tempRoots.push(tempRoot);
|
||||
@@ -270,26 +249,4 @@ describe('verify state helpers', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('fails verification when legacy discord token names are still configured', () => {
|
||||
const services: ServiceCheck[] = [{ name: 'ejclaw', status: 'running' }];
|
||||
|
||||
expect(
|
||||
buildVerifySummary(
|
||||
services,
|
||||
[],
|
||||
'configured',
|
||||
{
|
||||
discord: 'configured',
|
||||
'discord-review': 'configured',
|
||||
'discord-arbiter': 'configured',
|
||||
},
|
||||
1,
|
||||
{},
|
||||
{ legacyDiscordTokenKeys: ['DISCORD_BOT_TOKEN'] },
|
||||
),
|
||||
).toMatchObject({
|
||||
status: 'failed',
|
||||
legacyDiscordTokenKeys: ['DISCORD_BOT_TOKEN'],
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -11,15 +11,6 @@ import type { ServiceCheck } from './verify-services.js';
|
||||
export type CredentialsStatus = 'configured' | 'missing';
|
||||
export type VerifyStatus = 'success' | 'failed';
|
||||
|
||||
const LEGACY_DISCORD_TOKEN_KEYS = [
|
||||
'DISCORD_BOT_TOKEN',
|
||||
'DISCORD_CODEX_BOT_TOKEN',
|
||||
'DISCORD_REVIEW_BOT_TOKEN',
|
||||
'DISCORD_CLAUDE_BOT_TOKEN',
|
||||
'DISCORD_CODEX_MAIN_BOT_TOKEN',
|
||||
'DISCORD_CODEX_REVIEW_BOT_TOKEN',
|
||||
];
|
||||
|
||||
export interface RegisteredGroupsSummary {
|
||||
registeredGroups: number;
|
||||
groupsByAgent: Record<string, number>;
|
||||
@@ -35,7 +26,6 @@ export interface VerifySummary extends RegisteredGroupsSummary {
|
||||
servicesSummary: Record<string, string>;
|
||||
configuredChannels: string[];
|
||||
channelAuth: Record<string, string>;
|
||||
legacyDiscordTokenKeys: string[];
|
||||
tribunalRooms: number;
|
||||
activeArbiterTasks: number;
|
||||
// Legacy status fields kept for backward-compatible setup output.
|
||||
@@ -80,15 +70,6 @@ export function detectChannelAuth(
|
||||
return channelAuth;
|
||||
}
|
||||
|
||||
export function detectLegacyDiscordTokenKeys(
|
||||
envVars = readEnvFile(LEGACY_DISCORD_TOKEN_KEYS),
|
||||
processEnv: NodeJS.ProcessEnv = process.env,
|
||||
): string[] {
|
||||
return LEGACY_DISCORD_TOKEN_KEYS.filter(
|
||||
(key) => !!(processEnv[key] || envVars[key]),
|
||||
);
|
||||
}
|
||||
|
||||
export function loadRegisteredGroupsSummary(
|
||||
dbPath = path.join(STORE_DIR, 'messages.db'),
|
||||
): RegisteredGroupsSummary {
|
||||
@@ -211,7 +192,6 @@ export function buildVerifySummary(
|
||||
registeredGroups: number,
|
||||
groupsByAgent: Record<string, number>,
|
||||
options: {
|
||||
legacyDiscordTokenKeys?: string[];
|
||||
tribunalRooms?: number;
|
||||
activeArbiterTasks?: number;
|
||||
} = {},
|
||||
@@ -224,7 +204,6 @@ export function buildVerifySummary(
|
||||
const hasOwnerCapableChannel = 'discord' in channelAuth;
|
||||
const codexConfigured = 'discord-review' in channelAuth;
|
||||
const reviewConfigured = 'discord-arbiter' in channelAuth;
|
||||
const legacyDiscordTokenKeys = options.legacyDiscordTokenKeys ?? [];
|
||||
const tribunalRooms = options.tribunalRooms ?? 0;
|
||||
const activeArbiterTasks = options.activeArbiterTasks ?? 0;
|
||||
const reviewerConfigured = tribunalRooms === 0 || codexConfigured;
|
||||
@@ -234,7 +213,6 @@ export function buildVerifySummary(
|
||||
allConfiguredServicesRunning &&
|
||||
credentials === 'configured' &&
|
||||
hasOwnerCapableChannel &&
|
||||
legacyDiscordTokenKeys.length === 0 &&
|
||||
reviewerConfigured &&
|
||||
arbiterConfigured &&
|
||||
registeredGroups > 0
|
||||
@@ -251,7 +229,6 @@ export function buildVerifySummary(
|
||||
servicesSummary,
|
||||
configuredChannels,
|
||||
channelAuth,
|
||||
legacyDiscordTokenKeys,
|
||||
tribunalRooms,
|
||||
activeArbiterTasks,
|
||||
registeredGroups,
|
||||
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
buildVerifySummary,
|
||||
detectChannelAuth,
|
||||
detectCredentials,
|
||||
detectLegacyDiscordTokenKeys,
|
||||
loadRegisteredGroupsSummary,
|
||||
loadRoleRoutingRequirementsSummary,
|
||||
} from './verify-state.js';
|
||||
@@ -58,7 +57,6 @@ export async function run(_args: string[]): Promise<void> {
|
||||
|
||||
const credentials = detectCredentials(projectRoot);
|
||||
const channelAuth = detectChannelAuth();
|
||||
const legacyDiscordTokenKeys = detectLegacyDiscordTokenKeys();
|
||||
const { registeredGroups, groupsByAgent } = loadRegisteredGroupsSummary();
|
||||
const { tribunalRooms, activeArbiterTasks } =
|
||||
loadRoleRoutingRequirementsSummary();
|
||||
@@ -66,7 +64,6 @@ export async function run(_args: string[]): Promise<void> {
|
||||
status: baseStatus,
|
||||
servicesSummary,
|
||||
configuredChannels,
|
||||
legacyDiscordTokenKeys: legacyDiscordTokens,
|
||||
tribunalRooms: detectedTribunalRooms,
|
||||
activeArbiterTasks: detectedActiveArbiterTasks,
|
||||
codexConfigured,
|
||||
@@ -79,7 +76,6 @@ export async function run(_args: string[]): Promise<void> {
|
||||
registeredGroups,
|
||||
groupsByAgent,
|
||||
{
|
||||
legacyDiscordTokenKeys,
|
||||
tribunalRooms,
|
||||
activeArbiterTasks,
|
||||
},
|
||||
@@ -93,7 +89,6 @@ export async function run(_args: string[]): Promise<void> {
|
||||
{
|
||||
status,
|
||||
channelAuth,
|
||||
legacyDiscordTokens,
|
||||
tribunalRooms: detectedTribunalRooms,
|
||||
activeArbiterTasks: detectedActiveArbiterTasks,
|
||||
servicesSummary,
|
||||
@@ -101,16 +96,6 @@ export async function run(_args: string[]): Promise<void> {
|
||||
},
|
||||
'Verification complete',
|
||||
);
|
||||
if (legacyDiscordTokens.length > 0) {
|
||||
logger.error(
|
||||
{
|
||||
legacyDiscordTokens,
|
||||
migration:
|
||||
'Rename Discord bot tokens to DISCORD_OWNER_BOT_TOKEN / DISCORD_REVIEWER_BOT_TOKEN / DISCORD_ARBITER_BOT_TOKEN',
|
||||
},
|
||||
'Verification failed due to legacy service-based Discord bot token names',
|
||||
);
|
||||
}
|
||||
if (legacyServiceIssues.length > 0) {
|
||||
logger.error(
|
||||
{
|
||||
@@ -133,7 +118,6 @@ export async function run(_args: string[]): Promise<void> {
|
||||
CREDENTIALS: credentials,
|
||||
CONFIGURED_CHANNELS: configuredChannels.join(','),
|
||||
CHANNEL_AUTH: JSON.stringify(channelAuth),
|
||||
LEGACY_DISCORD_TOKENS: legacyDiscordTokens.join(','),
|
||||
TRIBUNAL_ROOMS: detectedTribunalRooms,
|
||||
ACTIVE_ARBITER_TASKS: detectedActiveArbiterTasks,
|
||||
REGISTERED_GROUPS: registeredGroups,
|
||||
|
||||
Reference in New Issue
Block a user