Hartmut 502ecba9e9 feat: Google Gemini image generation for project covers
Schema:
- SystemSettings: geminiApiKey, geminiModel, imageProvider fields
- imageProvider: "dalle" (default) or "gemini"

Gemini Client (packages/api/src/gemini-client.ts):
- Direct HTTP call to Gemini REST API with responseModalities: [TEXT, IMAGE]
- Returns base64 data URL
- Error parsing with user-friendly messages

Router (project.ts):
- generateCover: routes to DALL-E or Gemini based on imageProvider setting
- New isImageGenConfigured query returning { configured, provider }

Admin UI (SystemSettingsClient.tsx):
- "Image Generation" section with provider radio buttons (DALL-E / Gemini)
- Conditional fields: DALL-E config or Gemini API key + model
- Separate save button for image settings

Security:
- geminiApiKey sanitized in audit logs (SENSITIVE_FIELDS)
- API key stored server-side only, never sent to client

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-23 15:02:35 +01:00

Documentation Index

Date: 2026-03-12 Purpose: Single entry point for active Planarchy product and technical documentation.

Canonical Documents

Topic File Use
Active roadmap and open gaps product-roadmap.md Primary backlog and current delivery order
Estimating system design estimating-extension-design.md Workbook analysis, field mapping, and implementation plan
Dispo import implementation dispo-import-implementation.md Clean-slate Dispo v2 import design, mapping rules, staging flow, and commit policy
Dispo import ticket pack dispo-import-implementation-tickets.md Worker-ready delivery slices, dependencies, and acceptance criteria for the Dispo import
Demand/assignment cutover guide demand-assignment-migration-cutover.md Go/no-go criteria, staged cutover, and readiness artifact policy
Strategic architecture direction v2-architecture-proposal-2026-03-11.md Longer-horizon architecture target
Implementation history LEARNINGS.md Append-only decisions and lessons
Agent/project guidance CLAUDE.md Working conventions and quality gates

Archive Policy

Older plan and proposal markdown files stay in the repository only as archive notes when:

  • the feature is already implemented enough to leave the active backlog
  • the content was merged into a canonical document
  • the file still has historical value, but should not drive current work

Archive-note files should point back to the relevant canonical document instead of carrying parallel backlog state.

Current Archive Notes

All archived markdown plan and proposal files now live under docs/old-markdowns/.

S
Description
Resource planning and project staffing tool for 3D production environments. Timeline planning, capacity & budget views, role management, blueprint-based dynamic fields, skill matrix workflows, and AI-assisted staffing. Next.js 15 · tRPC v11 · Prisma · PostgreSQL · Auth.js v5.
Readme 23 MiB
Languages
TypeScript 98.1%
JavaScript 1.4%
CSS 0.3%
Shell 0.1%