feat: refine codex live chat context flows
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
cancelServerRestartReservation,
|
||||
confirmServerRestartReservation,
|
||||
getRestartReservationWorkloadSummary,
|
||||
requestImmediateRestartRecovery,
|
||||
getServerRestartReservation,
|
||||
scheduleServerRestartReservation,
|
||||
} from '../services/server-restart-reservation-service.js';
|
||||
@@ -90,14 +91,40 @@ export async function registerServerCommandRoutes(app: FastifyInstance) {
|
||||
}
|
||||
}
|
||||
|
||||
const result = await restartServerCommand(key);
|
||||
try {
|
||||
const result = await restartServerCommand(key);
|
||||
|
||||
return {
|
||||
ok: true,
|
||||
item: result.server,
|
||||
commandOutput: result.commandOutput,
|
||||
restartState: result.restartState,
|
||||
};
|
||||
return {
|
||||
ok: true,
|
||||
item: result.server,
|
||||
commandOutput: result.commandOutput,
|
||||
restartState: result.restartState,
|
||||
};
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : '서버 재기동에 실패했습니다.';
|
||||
|
||||
if (key !== 'test' && key !== 'work-server') {
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (!/(build|vite|tsc|typescript|npm run build|pnpm build|rollup|esbuild|compilation|compile|exit:\d+)/i.test(message)) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
await requestImmediateRestartRecovery(app.log, key, message);
|
||||
const server = (await listServerCommands()).find((item) => item.key === key);
|
||||
|
||||
if (!server) {
|
||||
throw new Error(`${key} 서버 상태를 다시 읽지 못했습니다.`);
|
||||
}
|
||||
|
||||
return {
|
||||
ok: true,
|
||||
item: server,
|
||||
commandOutput: `${message}\n\n빌드 실패를 감지해 Codex 자동 개선과 재기동 재시도를 시작했습니다.`,
|
||||
restartState: 'accepted' as const,
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/server-commands/restart-reservation', async (request, reply) => {
|
||||
|
||||
Reference in New Issue
Block a user