refactor: land approved runtime cleanup and room binding cutover

This commit is contained in:
ejclaw
2026-04-10 21:04:23 +09:00
parent ce3854745d
commit 4e05f60400
45 changed files with 636 additions and 637 deletions

View File

@@ -63,8 +63,6 @@ describe('register step', () => {
'dc:test-room',
'--name',
'Test Room',
'--trigger',
'@Andy',
'--folder',
'test-room',
]);
@@ -73,8 +71,6 @@ describe('register step', () => {
expect(assignRoomMock).toHaveBeenCalledWith('dc:test-room', {
name: 'Test Room',
folder: 'test-room',
trigger: '@Andy',
requiresTrigger: true,
isMain: false,
});
expect(mkdirSpy).toHaveBeenCalledWith('/tmp/ejclaw-groups/test-room/logs', {
@@ -87,8 +83,6 @@ describe('register step', () => {
NAME: 'Test Room',
FOLDER: 'test-room',
CHANNEL: 'discord',
TRIGGER: '@Andy',
REQUIRES_TRIGGER: true,
STATUS: 'success',
LOG: 'logs/setup.log',
});
@@ -107,8 +101,6 @@ describe('register step', () => {
'dc:test-room',
'--name',
'Test Room',
'--trigger',
'@Andy',
'--folder',
'test-room',
'--assistant-name',
@@ -141,19 +133,14 @@ describe('register step', () => {
'dc:main-room',
'--name',
'Main Room',
'--trigger',
'@Andy',
'--folder',
'main-room',
'--is-main',
'--no-trigger-required',
]);
expect(assignRoomMock).toHaveBeenCalledWith('dc:main-room', {
name: 'Main Room',
folder: 'main-room',
trigger: '@Andy',
requiresTrigger: false,
isMain: true,
});
expect(mkdirSpy).toHaveBeenCalledTimes(1);

View File

@@ -15,10 +15,8 @@ import { emitStatus } from './status.js';
interface RegisterArgs {
jid: string;
name: string;
trigger: string;
folder: string;
channel: string;
requiresTrigger: boolean;
isMain: boolean;
assistantNameProvided: boolean;
}
@@ -27,10 +25,8 @@ function parseArgs(args: string[]): RegisterArgs {
const result: RegisterArgs = {
jid: '',
name: '',
trigger: '',
folder: '',
channel: 'discord',
requiresTrigger: true,
isMain: false,
assistantNameProvided: false,
};
@@ -43,18 +39,12 @@ function parseArgs(args: string[]): RegisterArgs {
case '--name':
result.name = args[++i] || '';
break;
case '--trigger':
result.trigger = args[++i] || '';
break;
case '--folder':
result.folder = args[++i] || '';
break;
case '--channel':
result.channel = (args[++i] || '').toLowerCase();
break;
case '--no-trigger-required':
result.requiresTrigger = false;
break;
case '--is-main':
result.isMain = true;
break;
@@ -71,7 +61,7 @@ function parseArgs(args: string[]): RegisterArgs {
export async function run(args: string[]): Promise<void> {
const parsed = parseArgs(args);
if (!parsed.jid || !parsed.name || !parsed.trigger || !parsed.folder) {
if (!parsed.jid || !parsed.name || !parsed.folder) {
emitStatus('REGISTER_CHANNEL', {
STATUS: 'failed',
ERROR: 'missing_required_args',
@@ -115,8 +105,6 @@ export async function run(args: string[]): Promise<void> {
assignRoom(parsed.jid, {
name: parsed.name,
folder: parsed.folder,
trigger: parsed.trigger,
requiresTrigger: parsed.requiresTrigger,
isMain: parsed.isMain,
});
logger.info('Assigned room through canonical room service');
@@ -131,8 +119,6 @@ export async function run(args: string[]): Promise<void> {
NAME: parsed.name,
FOLDER: parsed.folder,
CHANNEL: parsed.channel,
TRIGGER: parsed.trigger,
REQUIRES_TRIGGER: parsed.requiresTrigger,
STATUS: 'success',
LOG: 'logs/setup.log',
});