Commit Graph

6 Commits

Author SHA1 Message Date
till dce7515c9b chore: log real processing error + show compact reason (debug phase) 2026-07-23 15:05:15 +00:00
till 2ea49f101e fix: correct openrouter input_references format ({type,image_url:{url}}, was {url}->400 ZodError) 2026-07-23 14:55:19 +00:00
till 6bfb4c3342 fix: locate migrations via process.cwd() (was dist/migrations -> ENOENT); add .dockerignore 2026-07-23 14:43:12 +00:00
till 9d075b5109 feat: storage abstraction (fs volume default | s3), health via storageOk 2026-07-23 14:27:12 +00:00
till 577b13f680 feat: image core — format math, sharp pipeline, sticker contour, prompts, pg-boss queue+worker
- format.ts: exact px (cm/2.54*dpi), catalog incl. The Frame/portrait, aspect ratio
- pipeline.ts: finalizeToFormat (cover/attention crop, dpi metadata), stickerContour
  (alpha dilation -> white border), heic->png, german filename slug
- prompts.ts: task prompts (clean/cutout/format) — reproduce, don't reinterpret
- process.ts: per-item chain (load -> model /v1/images -> finalize -> contour -> store)
- queue.ts + worker.ts: pg-boss (concurrency, retry, counters, 402 pause, completion)
- verified locally: 30x40@300dpi = exact 3543x4724 + dpi meta; sticker white border + alpha
2026-07-23 11:20:55 +00:00
till b46dbbe889 feat: scaffold klarbild foundation (astro+postgres+s3, auth, migrations, health)
- Astro 5 SSR (node standalone) + React, OKLCH tokens (no tailwind)
- migrations/001_init.sql: full schema per 03-datenmodell-api
- lib: db+migrations, crypto (AES-256-GCM), auth (argon2+signed session, ratelimit),
  storage (S3/MinIO, presigned URLs), openrouter (POST /v1/images, cost)
- middleware: init-once + session guard + admin gate; /api/health (db+storage)
- login + studio placeholder; seeds (till/lea, default recipes); Dockerfile
- verified: astro build passes
2026-07-23 11:11:08 +00:00