feat(planning): ship holiday-aware planning and assistant upgrades

This commit is contained in:
2026-03-28 22:49:28 +01:00
parent 2a005794e7
commit 4f48afe7b4
151 changed files with 17738 additions and 1940 deletions
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env node
import { URL } from "node:url";
import { loadWorkspaceEnv, resolveWorkspaceEnvPath } from "./load-env.mjs";
const envPath = loadWorkspaceEnv();
const expectedDatabase = process.argv[2] ?? "capakraken";
const rawUrl = process.env.DATABASE_URL;
if (!rawUrl) {
console.error(`DATABASE_URL is not configured. Expected it from ${envPath ?? resolveWorkspaceEnvPath()}.`);
process.exit(1);
}
let parsed;
try {
parsed = new URL(rawUrl);
} catch (error) {
console.error(`DATABASE_URL is invalid: ${error instanceof Error ? error.message : String(error)}`);
process.exit(1);
}
const databaseName = parsed.pathname.replace(/^\/+/, "");
const target = `${parsed.protocol}//${decodeURIComponent(parsed.username)}@${parsed.hostname}${parsed.port ? `:${parsed.port}` : ""}/${databaseName}`;
if (!databaseName) {
console.error(`DATABASE_URL does not contain a database name. Target=${target}`);
process.exit(1);
}
if (databaseName !== expectedDatabase) {
console.error(`Unexpected database target '${databaseName}'. Expected '${expectedDatabase}'. Target=${target}`);
process.exit(1);
}
if (databaseName === "planarchy") {
console.error(`Refusing to continue with deprecated database '${databaseName}'. Target=${target}`);
process.exit(1);
}
console.log(`DB target OK: ${target}`);