chore: full technical rename planarchy → capakraken

Complete rename of all technical identifiers across the codebase:

Package names (11 packages):
- @planarchy/* → @capakraken/* in all package.json, tsconfig, imports

Import statements: 277 files, 548 occurrences replaced

Database & Docker:
- PostgreSQL user/db: planarchy → capakraken
- Docker volumes: planarchy_pgdata → capakraken_pgdata
- Connection strings updated in docker-compose, .env, CI

CI/CD:
- GitHub Actions workflow: all filter commands updated
- Test database credentials updated

Infrastructure:
- Redis channel: planarchy:sse → capakraken:sse
- Logger service name: planarchy-api → capakraken-api
- Anonymization seed updated
- Start/stop/restart scripts updated

Test data:
- Seed emails: @planarchy.dev → @capakraken.dev
- E2E test credentials: all 11 spec files updated
- Email defaults: @planarchy.app → @capakraken.app
- localStorage keys: planarchy_* → capakraken_*

Documentation: 30+ .md files updated

Verification:
- pnpm install: workspace resolution works
- TypeScript: only pre-existing TS2589 (no new errors)
- Engine: 310/310 tests pass
- Staffing: 37/37 tests pass

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-03-27 13:18:09 +01:00
parent f46b38f457
commit cd78f72f33
303 changed files with 938 additions and 878 deletions
+3 -3
View File
@@ -1,5 +1,5 @@
{
"name": "@planarchy/db",
"name": "@capakraken/db",
"version": "0.1.0",
"private": true,
"type": "module",
@@ -24,13 +24,13 @@
},
"dependencies": {
"@node-rs/argon2": "^2.0.2",
"@planarchy/shared": "workspace:*",
"@capakraken/shared": "workspace:*",
"@prisma/client": "^5.22.0",
"exceljs": "^4.4.0",
"prisma": "^5.22.0"
},
"devDependencies": {
"@planarchy/tsconfig": "workspace:*",
"@capakraken/tsconfig": "workspace:*",
"@types/node": "^22.10.2",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
+2 -2
View File
@@ -2,8 +2,8 @@
* Generate samples/PlanarchyExamples.xlsx from the live database.
*
* Run from repo root:
* DATABASE_URL=postgresql://planarchy:planarchy_dev@localhost:5433/planarchy \
* pnpm --filter @planarchy/db tsx src/generate-excel.ts
* DATABASE_URL=postgresql://capakraken:capakraken_dev@localhost:5433/capakraken \
* pnpm --filter @capakraken/db tsx src/generate-excel.ts
*/
import { PrismaClient } from "@prisma/client";
+1 -1
View File
@@ -252,7 +252,7 @@ export function parseImportDispoBatchArgs(argv: string[]): ImportDispoBatchOptio
function buildHelpText() {
return [
"Usage: pnpm --filter @planarchy/db db:import:dispo [options]",
"Usage: pnpm --filter @capakraken/db db:import:dispo [options]",
"",
"Options:",
" --reference-workbook <path> Override MandatoryDispoCategories workbook",
+2 -2
View File
@@ -2,7 +2,7 @@ import { execFileSync } from "node:child_process";
import { mkdirSync } from "node:fs";
import { resolve } from "node:path";
import { hash } from "@node-rs/argon2";
import { SystemRole } from "@planarchy/shared";
import { SystemRole } from "@capakraken/shared";
import { PrismaClient } from "@prisma/client";
import { loadWorkspaceEnv, resolveWorkspacePath } from "./load-workspace-env.js";
@@ -25,7 +25,7 @@ function parseArgs(argv: string[]): ResetOptions {
force: false,
skipBackup: false,
backupDir: DEFAULT_BACKUP_DIR,
adminEmail: "admin@planarchy.dev",
adminEmail: "admin@capakraken.dev",
adminPassword: "admin123",
adminName: "Planarchy Admin",
};
+1 -1
View File
@@ -7,7 +7,7 @@
import {
DISPO_REQUIRED_ROLE_SEEDS,
DISPO_UTILIZATION_CATEGORIES,
} from "@planarchy/shared";
} from "@capakraken/shared";
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
+8 -8
View File
@@ -9,7 +9,7 @@ import {
SystemRole,
VacationStatus,
VacationType,
} from "@planarchy/shared";
} from "@capakraken/shared";
import { PrismaClient, type Prisma, type Resource, type Project } from "@prisma/client";
import { hash } from "@node-rs/argon2";
@@ -314,21 +314,21 @@ async function main() {
const viewerHash = await hash("viewer123");
const admin = await prisma.user.upsert({
where: { email: "admin@planarchy.dev" },
where: { email: "admin@capakraken.dev" },
update: { passwordHash: adminHash },
create: { email: "admin@planarchy.dev", name: "Admin User", passwordHash: adminHash, systemRole: SystemRole.ADMIN },
create: { email: "admin@capakraken.dev", name: "Admin User", passwordHash: adminHash, systemRole: SystemRole.ADMIN },
});
const manager = await prisma.user.upsert({
where: { email: "manager@planarchy.dev" },
where: { email: "manager@capakraken.dev" },
update: { passwordHash: managerHash },
create: { email: "manager@planarchy.dev", name: "Manager User", passwordHash: managerHash, systemRole: SystemRole.MANAGER },
create: { email: "manager@capakraken.dev", name: "Manager User", passwordHash: managerHash, systemRole: SystemRole.MANAGER },
});
const viewer = await prisma.user.upsert({
where: { email: "viewer@planarchy.dev" },
where: { email: "viewer@capakraken.dev" },
update: { passwordHash: viewerHash },
create: { email: "viewer@planarchy.dev", name: "Viewer User", passwordHash: viewerHash, systemRole: SystemRole.VIEWER },
create: { email: "viewer@capakraken.dev", name: "Viewer User", passwordHash: viewerHash, systemRole: SystemRole.VIEWER },
});
console.warn(`Users: admin=${admin.id}, manager=${manager.id}, viewer=${viewer.id}`);
@@ -879,7 +879,7 @@ async function main() {
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
.join(" ");
const email = `${eid}@planarchy.example`;
const email = `${eid}@capakraken.example`;
const lcrCents = Math.round(lcr * 100);
const ucrCents = Math.round(ucr * 100);
const availability = computeAvailability(fraction, availDays);
+1 -1
View File
@@ -1,4 +1,4 @@
import { BlueprintTarget, FieldType } from "@planarchy/shared";
import { BlueprintTarget, FieldType } from "@capakraken/shared";
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
+1 -1
View File
@@ -1,5 +1,5 @@
{
"extends": "@planarchy/tsconfig/base.json",
"extends": "@capakraken/tsconfig/base.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"