managarten/devlog/2026-04-24/data.json
Till JS ad776c1a1c
Some checks are pending
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run
devlog: 107 Tage backfilled (2025-11-22 → 2026-05-15)
Vollständige Bau-Geschichte des Monorepos in der Tages-Devlog-
Konvention (mana/docs/DEVLOG.md). Bodies sind heuristik-
generiert aus den Commit-Subjects pro Tag (Lead-Satz +
Highlights/Commit-Bullets, kein LLM-Pfad). Tage mit hand-
curate-Bedarf können nachträglich überarbeitet werden — der
Auto-Stub-Marker ist weg, die Bodies sind editierbar.

321 Files (data.json + spieler.md + macher.md pro Tag).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 22:24:29 +02:00

442 lines
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"date": "2026-04-24",
"day_number": 93,
"weekday": "Freitag",
"commits": 40,
"authors": [
{
"name": "Till JS",
"count": 40
}
],
"additions": 17569,
"deletions": 1247,
"net_lines": 16322,
"files_changed": 246,
"new_files": 0,
"deleted_files": 0,
"session": {
"first_commit_at": "2026-04-24T11:56:29.000Z",
"last_commit_at": "2026-04-24T15:21:43.000Z",
"total_span_minutes": 205,
"active_minutes": 205,
"pauses": [],
"longest_focus_minutes": 205
},
"top_dirs": [
{
"path": "apps/mana/apps/web",
"pct": 84
},
{
"path": "apps/api/src/modules",
"pct": 2
},
{
"path": "packages/shared-ai/src",
"pct": 2
},
{
"path": "packages/shared-privacy/src",
"pct": 2
},
{
"path": "packages/mana-tool-registry/src",
"pct": 2
}
],
"top_extensions": [
{
"ext": ".svelte",
"count": 164
},
{
"ext": ".ts",
"count": 127
},
{
"ext": ".json",
"count": 22
},
{
"ext": ".md",
"count": 7
},
{
"ext": ".mjs",
"count": 2
},
{
"ext": ".development",
"count": 1
}
],
"tags": ["writing", "comic", "wardrobe", "wardrobe,picture", "shared-privacy"],
"commits_list": [
{
"hash": "0cebb24",
"short": "fix(wardrobe): prompt Ganzkörperfoto instead of Portrait for full try-on",
"type": "fix",
"scope": "wardrobe",
"additions": 11,
"deletions": 2,
"timestamp": "2026-04-24T13:56:29+02:00"
},
{
"hash": "2af2a4d",
"short": "feat(places): M5.a — places adopt the unified visibility system",
"type": "feat",
"scope": "places",
"additions": 109,
"deletions": 0,
"timestamp": "2026-04-24T13:59:15+02:00"
},
{
"hash": "0e0d48a",
"short": "feat(recipes): M5.b — recipes adopt the unified visibility system",
"type": "feat",
"scope": "recipes",
"additions": 118,
"deletions": 0,
"timestamp": "2026-04-24T14:04:14+02:00"
},
{
"hash": "218cf45",
"short": "feat(wardrobe): M5.c — outfits adopt the unified visibility system",
"type": "feat",
"scope": "wardrobe",
"additions": 111,
"deletions": 1,
"timestamp": "2026-04-24T14:08:32+02:00"
},
{
"hash": "9fbdc14",
"short": "feat(wardrobe,picture): symmetric wardrobeGarmentId FK + garment try-on strips",
"type": "feat",
"scope": "wardrobe,picture",
"additions": 176,
"deletions": 5,
"timestamp": "2026-04-24T14:16:40+02:00"
},
{
"hash": "800fc9a",
"short": "refactor(picture,wardrobe): extract ImageLightbox, use in garment detail",
"type": "refactor",
"scope": "picture,wardrobe",
"additions": 169,
"deletions": 79,
"timestamp": "2026-04-24T14:37:58+02:00"
},
{
"hash": "259f6fb",
"short": "fix(shared-privacy): default all new records to 'space', not 'private'",
"type": "fix",
"scope": "shared-privacy",
"additions": 45,
"deletions": 26,
"timestamp": "2026-04-24T14:46:48+02:00"
},
{
"hash": "3c3b2eb",
"short": "feat(writing): M1+M2 — new Ghostwriter module with manual draft CRUD",
"type": "feat",
"scope": "writing",
"additions": 3484,
"deletions": 0,
"timestamp": "2026-04-24T14:59:56+02:00"
},
{
"hash": "d725a8d",
"short": "feat(writing): M3 — one-shot prose generation via mana-llm",
"type": "feat",
"scope": "writing",
"additions": 814,
"deletions": 11,
"timestamp": "2026-04-24T15:11:48+02:00"
},
{
"hash": "1c82a37",
"short": "feat(writing): M4 — style system with presets + custom styles",
"type": "feat",
"scope": "writing",
"additions": 620,
"deletions": 6,
"timestamp": "2026-04-24T15:20:06+02:00"
},
{
"hash": "27c1860",
"short": "feat(comic): M1 — Datenschicht + Modul-Registrierung",
"type": "feat",
"scope": "comic",
"additions": 1385,
"deletions": 5,
"timestamp": "2026-04-24T15:29:51+02:00"
},
{
"hash": "19e0f33",
"short": "feat(writing): M6 — selection-refinement tools",
"type": "feat",
"scope": "writing",
"additions": 1014,
"deletions": 2,
"timestamp": "2026-04-24T15:37:04+02:00"
},
{
"hash": "3551652",
"short": "feat(comic): M2 — UI + Single-Panel-Generierung",
"type": "feat",
"scope": "comic",
"additions": 1638,
"deletions": 2,
"timestamp": "2026-04-24T15:42:27+02:00"
},
{
"hash": "98a68af",
"short": "fix(calendar): visibility picker also in the Workbench DetailView",
"type": "fix",
"scope": "calendar",
"additions": 28,
"deletions": 7,
"timestamp": "2026-04-24T15:49:48+02:00"
},
{
"hash": "8c43c11",
"short": "fix(calendar): promote visibility picker to a labeled prop-row",
"type": "fix",
"scope": "calendar",
"additions": 19,
"deletions": 19,
"timestamp": "2026-04-24T15:52:59+02:00"
},
{
"hash": "bfa923d",
"short": "feat(writing): M5 — cross-module references in the briefing",
"type": "feat",
"scope": "writing",
"additions": 722,
"deletions": 2,
"timestamp": "2026-04-24T15:53:35+02:00"
},
{
"hash": "63f5179",
"short": "feat(comic): M3 — Batch-Panel-Generierung (24 parallel)",
"type": "feat",
"scope": "comic",
"additions": 421,
"deletions": 12,
"timestamp": "2026-04-24T15:59:17+02:00"
},
{
"hash": "ed8ec98",
"short": "feat(workbench): app picker searches English aliases + IT/FR/ES i18n",
"type": "feat",
"scope": "workbench",
"additions": 149,
"deletions": 8,
"timestamp": "2026-04-24T16:00:27+02:00"
},
{
"hash": "f2275f7",
"short": "feat(writing): M11 — adopt the unified visibility system",
"type": "feat",
"scope": "writing",
"additions": 70,
"deletions": 0,
"timestamp": "2026-04-24T16:01:05+02:00"
},
{
"hash": "90915b7",
"short": "fix(visibility): promote picker to labeled rows across remaining modules",
"type": "fix",
"scope": "visibility",
"additions": 31,
"deletions": 18,
"timestamp": "2026-04-24T16:03:48+02:00"
},
{
"hash": "8a882a3",
"short": "feat(wardrobe,picture): Google Nano Banana as a Try-On option",
"type": "feat",
"scope": "wardrobe,picture",
"additions": 369,
"deletions": 52,
"timestamp": "2026-04-24T16:04:21+02:00"
},
{
"hash": "6432ef7",
"short": "feat(comic): M4 — AI-Storyboard aus Cross-Modul-Text",
"type": "feat",
"scope": "comic",
"additions": 1015,
"deletions": 1,
"timestamp": "2026-04-24T16:06:03+02:00"
},
{
"hash": "0dadc17",
"short": "feat(writing): M10 — publish hooks (export + save-as-article)",
"type": "feat",
"scope": "writing",
"additions": 383,
"deletions": 0,
"timestamp": "2026-04-24T16:07:39+02:00"
},
{
"hash": "cc51f0b",
"short": "chore(env): rotate GEMINI_API_KEY to the key that other Mana services use",
"type": "chore",
"scope": "env",
"additions": 5,
"deletions": 2,
"timestamp": "2026-04-24T16:12:27+02:00"
},
{
"hash": "d49ad23",
"short": "feat(writing): M8 — AI tools exposed through the shared catalog",
"type": "feat",
"scope": "writing",
"additions": 704,
"deletions": 1,
"timestamp": "2026-04-24T16:19:30+02:00"
},
{
"hash": "87b567e",
"short": "i18n: fix IT/FR/ES parity gaps in dashboard + memoro",
"type": null,
"scope": null,
"additions": 671,
"deletions": 1,
"timestamp": "2026-04-24T16:19:59+02:00"
},
{
"hash": "05b2209",
"short": "polish(wardrobe): garment-detail cosmetic pass + slug-cleanup on upload",
"type": "polish",
"scope": "wardrobe",
"additions": 116,
"deletions": 45,
"timestamp": "2026-04-24T16:24:07+02:00"
},
{
"hash": "9c503b7",
"short": "i18n: strip dead legacy keys + fill IT/FR/ES calendar translations",
"type": null,
"scope": null,
"additions": 63,
"deletions": 565,
"timestamp": "2026-04-24T16:28:10+02:00"
},
{
"hash": "201a085",
"short": "feat(scripts): validate:i18n-parity — lock locale key-sets in CI",
"type": "feat",
"scope": "scripts",
"additions": 135,
"deletions": 1,
"timestamp": "2026-04-24T16:30:35+02:00"
},
{
"hash": "0ee3b14",
"short": "polish(wardrobe): unify hover vocabulary + lift the Try-On CTA",
"type": "polish",
"scope": "wardrobe",
"additions": 72,
"deletions": 23,
"timestamp": "2026-04-24T16:31:11+02:00"
},
{
"hash": "91ae58f",
"short": "feat(comic): M6 — Comic-Autor persona-template",
"type": "feat",
"scope": "comic",
"additions": 155,
"deletions": 0,
"timestamp": "2026-04-24T16:34:55+02:00"
},
{
"hash": "e7398b2",
"short": "polish(wardrobe): make Try-On CTA the dominant element + shrink secondary actions",
"type": "polish",
"scope": "wardrobe",
"additions": 44,
"deletions": 36,
"timestamp": "2026-04-24T16:35:18+02:00"
},
{
"hash": "6545498",
"short": "feat(writing): agent.defaultWritingStyleId — M8 persona-linkage follow-up",
"type": "feat",
"scope": "writing",
"additions": 55,
"deletions": 2,
"timestamp": "2026-04-24T16:36:20+02:00"
},
{
"hash": "6f37e00",
"short": "feat(comic): AI_TOOL_CATALOG bridge — webapp-runner kann jetzt Comics",
"type": "feat",
"scope": "comic",
"additions": 451,
"deletions": 4,
"timestamp": "2026-04-24T16:49:24+02:00"
},
{
"hash": "92bee0d",
"short": "feat(unlisted): M8.1 — backend foundation for shareable-link snapshots",
"type": "feat",
"scope": "unlisted",
"additions": 873,
"deletions": 4,
"timestamp": "2026-04-24T17:12:13+02:00"
},
{
"hash": "c1d643f",
"short": "feat(writing): register Writing as a Workbench card",
"type": "feat",
"scope": "writing",
"additions": 43,
"deletions": 2,
"timestamp": "2026-04-24T17:15:25+02:00"
},
{
"hash": "5501f47",
"short": "feat(shared-privacy): M8.2 — unlisted-client + SharedLinkControls",
"type": "feat",
"scope": "shared-privacy",
"additions": 676,
"deletions": 0,
"timestamp": "2026-04-24T17:18:56+02:00"
},
{
"hash": "364522d",
"short": "feat(comic): image-model picker — OpenAI + Nano Banana wählbar",
"type": "feat",
"scope": "comic",
"additions": 252,
"deletions": 6,
"timestamp": "2026-04-24T17:19:40+02:00"
},
{
"hash": "e794e0c",
"short": "feat(i18n): locale-aware formatters, migrate hardcoded de-DE call-sites",
"type": "feat",
"scope": "i18n",
"additions": 337,
"deletions": 184,
"timestamp": "2026-04-24T17:20:11+02:00"
},
{
"hash": "3f438cf",
"short": "refactor(i18n): replace hand-maintained locale list with import.meta.glob",
"type": "refactor",
"scope": "i18n",
"additions": 16,
"deletions": 113,
"timestamp": "2026-04-24T17:21:43+02:00"
}
],
"review_state": "auto",
"llm": {
"model": null,
"generated_at": null
}
}