Block server destruction while linked to an active beta

Protect individual, bulk, and queued removals and rebuilds until beta closure. Recheck ownership before teardown and reject beta admission during pending or unresolved destruction.

Fixes #36
This commit is contained in:
2026-09-27 23:21:37 -04:00
parent 4399d55271
commit b904ddbc48
11 changed files with 380 additions and 17 deletions
@@ -11,7 +11,12 @@ export async function POST({ request }: { request: Request }) {
if (!Array.isArray(body?.servers) || !body.servers.every((name: unknown) => typeof name === 'string')) {
return json({ error: 'A reviewed server list is required.' }, { status: 400 });
}
const result = queueHouseParty(body.servers);
let result: ReturnType<typeof queueHouseParty>;
try {
result = queueHouseParty(body.servers);
} catch (err) {
return json({ ok: false, error: (err as Error).message }, { status: 409 });
}
if (!result.ok) return json(result, { status: 409 });
void kick().catch(err => console.error('[house-party] worker kick failed:', err));
return json(result, { status: 202 });