diff --git a/.phase6-state.json b/.phase6-state.json index a4af4ba..ca3a3bf 100644 --- a/.phase6-state.json +++ b/.phase6-state.json @@ -2,11 +2,12 @@ "completed_features": [ "password-change" ], - "current_feature": "api-client-phase6", + "current_feature": "router-phase6", "started_at": "2026-05-23T05:30:16.203066", "attempted_features": [ "audit-log", "calendar-week-view", - "keyboard-shortcuts" + "keyboard-shortcuts", + "api-client-phase6" ] } \ No newline at end of file diff --git a/GENERATION_LOG.md b/GENERATION_LOG.md index 23625cf..7db71f0 100644 --- a/GENERATION_LOG.md +++ b/GENERATION_LOG.md @@ -720,3 +720,17 @@ src/routes/audit-log.ts(3,10): error TS2724: '"../db/schema"' has no exported me undefined /home/dark/Developer/EmberClone/apps/api: ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Command failed with exit code 2: tsc --noEmit -p tsconfig.json +- `05:35:12` **INFO** Committed feature api-client-phase6 +- `05:35:12` **INFO** Pushed: rc=0 + +## Phase-3 Feature: router-phase6 (2026-05-23 05:35:12) + +- `05:35:12` **INFO** Description: App.tsx + Nav + routes/index für phase6 +- `05:35:12` **INFO** Generating apps/api/src/routes/index.ts (ERWEITERT — behalte alle registrations. Füge auditLogRoutes mit prefix…) +- `05:35:19` **INFO** wrote 808 chars in 6.5s (attempt 1) +- `05:35:19` **INFO** Generating apps/web/src/App.tsx (ERWEITERT — füge /calendar (Calendar), /audit-log (AuditLog admin-only…) +- `05:35:52` **INFO** wrote 3894 chars in 33.0s (attempt 1) +- `05:35:52` **INFO** Generating apps/web/src/components/Nav.tsx (ERWEITERT — Calendar-Link, Audit-Log-Link bei admin, kleines '⌘K' Hint…) +- `05:36:46` **INFO** wrote 6341 chars in 54.4s (attempt 1) +- `05:36:46` **INFO** Running tsc --noEmit on api… +- `05:36:48` **INFO** tsc clean ✓ diff --git a/apps/api/src/routes/audit-log.ts b/apps/api/src/routes/audit-log.ts index 9f977a9..4e1240d 100644 --- a/apps/api/src/routes/audit-log.ts +++ b/apps/api/src/routes/audit-log.ts @@ -1,6 +1,6 @@ import { FastifyInstance } from "fastify" import { db } from "../db" -import { auditLogs } from "../db/schema" +import { auditLog } from "../db/schema" import { desc } from "drizzle-orm" export default async function auditLogRoutes(fastify: FastifyInstance) { @@ -23,8 +23,8 @@ export default async function auditLogRoutes(fastify: FastifyInstance) { const logs = await db .select() - .from(auditLogs) - .orderBy(desc(auditLogs.createdAt)) + .from(auditLog) + .orderBy(desc(auditLog.createdAt)) .limit(100) return logs diff --git a/apps/api/src/routes/index.ts b/apps/api/src/routes/index.ts index c6b68f8..c51c2a2 100644 --- a/apps/api/src/routes/index.ts +++ b/apps/api/src/routes/index.ts @@ -5,6 +5,7 @@ import projectRoutes from "./projects" import timeEntryRoutes from "./time-entries" import userRoutes from "./users" import settingsRoutes from "./settings" +import auditLogRoutes from "./audit-log" export async function setupRoutes(server: FastifyInstance) { server.register(authRoutes, { prefix: "/api/auth" }) @@ -13,4 +14,5 @@ export async function setupRoutes(server: FastifyInstance) { server.register(projectRoutes, { prefix: "/api/projects" }) server.register(userRoutes, { prefix: "/api/users" }) server.register(settingsRoutes, { prefix: "/api/settings" }) + server.register(auditLogRoutes, { prefix: "/api/audit-log" }) } \ No newline at end of file diff --git a/apps/web/package.json b/apps/web/package.json index df3025e..e982e38 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,6 +12,7 @@ "@emberclone/shared": "workspace:*", "@tanstack/react-query": "^5.59.0", "@tanstack/react-router": "^1.62.7", + "date-fns": "^4.3.0", "lucide-react": "^1.16.0", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 5291cf4..f7a6d3c 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -9,7 +9,10 @@ import ProjectDetail from "./pages/ProjectDetail" import Profile from "./pages/Profile" import AdminUsers from "./pages/AdminUsers" import Settings from "./pages/Settings" +import Calendar from "./pages/Calendar" +import AuditLog from "./pages/AuditLog" import Nav from "./components/Nav" +import CommandPalette from "./components/CommandPalette" import { ToastProvider } from "./components/Toast" import ErrorBoundary from "./components/ErrorBoundary" import { api } from "./lib/api" @@ -18,6 +21,7 @@ const rootRoute = createRootRoute({ component: () => (