till
5cfafb456c
docs: changelog + roadmap update strategy & multi-target
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 21:06:04 +00:00
till
36f3c8da22
feat: multiple delivery targets (FTP/SFTP), per-preset wiring; The Frame -> TheFrame-Backgrounds gallery
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 21:04:27 +00:00
till
3a098d708c
feat: mirror-all-to-NAS, content reset (danger zone), in-app changelog + CHANGELOG.md, How-To refresh
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 20:52:48 +00:00
till
79454c0b92
feat: show NAS backup status badge in library
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 20:43:10 +00:00
till
5fba397efa
refactor: NAS mirror uses base folder directly (no redundant klarbild segment)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 20:32:50 +00:00
till
3bfeadbaa0
feat: bulk ZIP download, bulk move-to-folder, folder rename
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 20:23:03 +00:00
till
7608bc62da
feat: button-driven Telegram menu (reply keyboard + commands), reachability diagnostic, How-To update
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 20:12:27 +00:00
till
5105c7d529
fix: before/after works for compose (source fallback), hidden for text-only; add reuse result as new Studio input
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 20:01:17 +00:00
till
063903c60a
feat: How-To/Anleitung page + nav link
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:39:05 +00:00
till
5b654b1436
feat: offer FLUX.2 (open-source) image model
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:39:05 +00:00
till
78737936fb
feat: functional folders (filter/delete/gallery) + always show model + variant switcher
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:39:05 +00:00
till
e59d26fadd
feat: regenerate/alternatives grouped by source (variant_of)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:39:04 +00:00
till
34aa45b292
fix: idempotent job completion + monthly budget cap enforcement
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:19:47 +00:00
till
a69e2452e1
feat: admin storage + NAS settings card
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:19:47 +00:00
till
3e2e09a38d
feat: Studio mode selector + Telegram compose/generate (full parity)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:19:47 +00:00
till
f5cbcdf4d1
feat: storage management (retention, source purge) + Synology NAS backup
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:19:40 +00:00
till
b705d77240
feat: low-res webp thumbnails for library previews
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:19:39 +00:00
till
044eb7f1ae
feat: compose + text-to-image generation modes (multi-image + free-text)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2026-07-23 19:19:39 +00:00
till
6d58c6c8fd
feat: model selection+visibility, better filenames, picdrop direct upload + configurable gallery
...
- studio: quality/model selector (friendly names from active models); library shows model used
- seed 2 models (Schnell/Beste Qualitaet); GET /api/models for studio+library
- filename: YYYY-MM-DD_motif_format.png (was redundant slug, no date)
- picdrop: direct upload to final name (fix .tmp- leftover from failed rename on picdrop); cleanupTmp helper
- configurable default gallery (migration 003, settings + admin field); base_path=SFTP root, gallery=subfolder
2026-07-23 18:54:37 +00:00
till
b047f55687
feat: mobile-first redesign (design-taste-frontend)
...
- responsive nav: compact sticky topbar + bottom tab bar on mobile (SVG icons, safe-area insets), inline top nav on desktop; no more horizontal overflow
- previews show full aspect ratio (object-fit contain) on subtle checker bg for transparency (library, studio, queue)
- 16px inputs on mobile (no iOS zoom), tactile :active feedback, larger touch targets
- keeps Klarbild identity (Space Grotesk/Mono, blue, paper, regmark), no glows/gradients
2026-07-23 18:43:47 +00:00
till
dba5620ff6
fix: telegram callback_data <64 bytes (BUTTON_DATA_INVALID) — recipe uuid only, resolve draft by chat; send before status update
2026-07-23 18:31:28 +00:00
till
d680b3f67a
feat: telegram bot (grammy webhook) — full parity channel
...
- pairing (admin code -> chat link), bundling of forwarded images via drafts+quiet-window sweeper
- recipe pick via inline keyboard, job (origin=telegram) creation, one summary reply with result files + links
- compressed-photo detection/flag; /start /help /rezepte /status
- webhook route (secret token), admin pairing-code + links endpoints, AdminApp telegram section
- worker notifies chat on completion; migration 002 adds jobs.telegram_chat_id; setupTelegram on init
2026-07-23 17:39:49 +00:00
till
26c3e0ef07
feat: picdrop delivery — worker delivers on job completion, /api/deliver for manual, gallery default 'POSTER LEA', library bulk send + status badges
2026-07-23 15:41:04 +00:00
till
25d0a5cd97
feat: Bibliothek + Admin
...
- Bibliothek: grid, before/after slider, rename, download, folder assign, delete, multi-select
- Admin: stats+costs, OpenRouter key (masked/encrypted), budget, defaults, Picdrop config+test,
models (list/add from OpenRouter/set default/delete), users (add/set password)
- api: items/:id PATCH+DELETE, folders CRUD, admin/{settings,stats,models,test-picdrop,users}
- lib/picdrop.ts (SFTP/FTPS test+upload, temp->rename)
2026-07-23 15:22:12 +00:00
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
8304e810b2
fix: disable astro checkOrigin (breaks multipart uploads behind proxy); SameSite=Lax covers CSRF
2026-07-23 14:49:14 +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
d615bb38fe
fix: attach app service to external coolify network for traefik routing
2026-07-23 14:18:42 +00:00
till
1fb42862be
feat: Studio UI (upload/recipe/submit island) + queue view + library/file API
...
- StudioApp.tsx: upload (file/DnD/paste, HEIC, to /api/uploads), combinable task
toggles with validation (contour needs cutout, freistellen+theframe blocked),
format+orientation+live px+crop, contour mm, custom instruction, delivery, recipe prefill
- QueueApp.tsx + warteschlange.astro: live polling, progress+ETA, per-item status,
retry/pause/resume/cancel, result thumbnails+download
- api/items (library filters), api/items/:id/file (stream result/source from S3)
- index.astro renders Studio island
2026-07-23 14:08:13 +00:00
till
e6bc8954af
fix: expose app port 4321 for coolify compose routing
2026-07-23 11:58:58 +00:00
till
a9cd2ccecb
chore: self-contained docker-compose (app+worker, postgres, minio) for coolify
2026-07-23 11:48:47 +00:00
till
c12d55368c
feat: upload/recipe/job API routes + Klarbild visual identity
...
- api: /uploads (multipart, HEIC, 25MB guard, S3), /recipes (GET/POST),
/jobs (create+snapshot+enqueue, list), /jobs/:id (status+items),
/jobs/:id/:action (pause/resume/cancel/retry-failed), /items/:id/retry
- design: adopt Till mockup identity — Space Grotesk + Space Mono (self-hosted,
no google/US), blue accent, paper/card, registration-mark motif; OKLCH tokens
- verified: astro build passes
2026-07-23 11:47:27 +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