{ "date": "2026-04-26", "day_number": 95, "weekday": "Sonntag", "commits": 91, "authors": [ { "name": "Till JS", "count": 91 } ], "additions": 36457, "deletions": 5729, "net_lines": 30728, "files_changed": 619, "new_files": 0, "deleted_files": 0, "session": { "first_commit_at": "2026-04-26T17:27:15.000Z", "last_commit_at": "2026-04-27T00:16:47.000Z", "total_span_minutes": 410, "active_minutes": 338, "pauses": [ { "from": "20:52", "to": "21:26", "minutes": 34 }, { "from": "22:34", "to": "23:12", "minutes": 38 } ], "longest_focus_minutes": 184 }, "top_dirs": [ { "path": "apps/mana/apps/web", "pct": 79 }, { "path": "scripts/i18n-hardcoded-baseline.json", "pct": 3 }, { "path": "services/mana-ai/src", "pct": 1 }, { "path": "docs/plans/sync-field-meta-overhaul.md", "pct": 1 }, { "path": "packages/feedback/src", "pct": 1 } ], "top_extensions": [ { "ext": ".ts", "count": 351 }, { "ext": ".svelte", "count": 192 }, { "ext": ".json", "count": 152 }, { "ext": ".md", "count": 31 }, { "ext": ".py", "count": 16 }, { "ext": ".yml", "count": 6 } ], "tags": ["sync", "mana-llm", "mana-analytics", "community", "comic"], "commits_list": [ { "hash": "ef96948", "short": "feat(comic): Mc4 — MCP + AI-Catalog für Character-System", "type": "feat", "scope": "comic", "additions": 908, "deletions": 14, "timestamp": "2026-04-26T19:27:15+02:00" }, { "hash": "3d30e39", "short": "feat(comic): Mc5 — Wardrobe-Hook \"Als Comic-Character\"", "type": "feat", "scope": "comic", "additions": 80, "deletions": 13, "timestamp": "2026-04-26T19:32:29+02:00" }, { "hash": "e930a66", "short": "refactor(workbench-seeding): inline v48 dedup, drop dead helper module", "type": "refactor", "scope": "workbench-seeding", "additions": 74, "deletions": 370, "timestamp": "2026-04-26T19:33:46+02:00" }, { "hash": "8c5f064", "short": "test+docs(workbench-seeding): hook stamping test + per-space-seeds guide", "type": null, "scope": null, "additions": 152, "deletions": 0, "timestamp": "2026-04-26T19:33:59+02:00" }, { "hash": "507532c", "short": "docs(workbench-seeding-cleanup): record polish-pass commits", "type": "docs", "scope": "workbench-seeding-cleanup", "additions": 3, "deletions": 1, "timestamp": "2026-04-26T19:34:25+02:00" }, { "hash": "4498373", "short": "chore(branding): tier-patch remaining 8 modules to 'guest'", "type": "chore", "scope": "branding", "additions": 8, "deletions": 8, "timestamp": "2026-04-26T19:40:21+02:00" }, { "hash": "450372e", "short": "fix(writing): decrypt drafts/versions before reading encrypted fields", "type": "fix", "scope": "writing", "additions": 27, "deletions": 7, "timestamp": "2026-04-26T19:46:56+02:00" }, { "hash": "1c4486c", "short": "fix(comic): inline face-upload banner — Parität mit Wardrobe-UX", "type": "fix", "scope": "comic", "additions": 180, "deletions": 44, "timestamp": "2026-04-26T19:48:20+02:00" }, { "hash": "aac1e3d", "short": "fix(profile): klarere Fehlermeldung bei nicht-authentifiziertem me-image-Upload", "type": "fix", "scope": "profile", "additions": 18, "deletions": 1, "timestamp": "2026-04-26T20:01:53+02:00" }, { "hash": "e186023", "short": "docs(plans): LLM-fallback via model-aliases — spec", "type": "docs", "scope": "plans", "additions": 236, "deletions": 0, "timestamp": "2026-04-26T20:19:34+02:00" }, { "hash": "dff8629", "short": "feat(mana-llm): M1 — AliasRegistry + aliases.yaml SSOT", "type": "feat", "scope": "mana-llm", "additions": 581, "deletions": 0, "timestamp": "2026-04-26T20:23:51+02:00" }, { "hash": "59557e6", "short": "feat(mana-llm): M2 — ProviderHealthCache + background probe loop", "type": "feat", "scope": "mana-llm", "additions": 811, "deletions": 0, "timestamp": "2026-04-26T20:29:57+02:00" }, { "hash": "3046da3", "short": "feat(mana-llm): M3 — health-aware router with alias + chain fallback", "type": "feat", "scope": "mana-llm", "additions": 953, "deletions": 242, "timestamp": "2026-04-26T20:44:16+02:00" }, { "hash": "8a49e3f", "short": "feat(mana-llm): M4 — observability, debug endpoints, SIGHUP reload", "type": "feat", "scope": "mana-llm", "additions": 749, "deletions": 29, "timestamp": "2026-04-26T20:52:28+02:00" }, { "hash": "fea3adf", "short": "feat(llm-aliases): M5 — migrate consumers to MANA_LLM aliases", "type": "feat", "scope": "llm-aliases", "additions": 299, "deletions": 50, "timestamp": "2026-04-26T21:26:03+02:00" }, { "hash": "30eb7ef", "short": "feat(settings): full i18n coverage — DE/EN/ES/FR/IT", "type": "feat", "scope": "settings", "additions": 2614, "deletions": 551, "timestamp": "2026-04-26T21:27:24+02:00" }, { "hash": "7766ea5", "short": "docs(plans): mark llm-fallback-aliases SHIPPED, add M-by-M commit table", "type": "docs", "scope": "plans", "additions": 663, "deletions": 347, "timestamp": "2026-04-26T21:27:57+02:00" }, { "hash": "6c942e3", "short": "feat(profile): translate ContextOverview into all 5 locales", "type": "feat", "scope": "profile", "additions": 302, "deletions": 81, "timestamp": "2026-04-26T21:37:57+02:00" }, { "hash": "ad5e04a", "short": "feat(sync): F2 — origin-gated conflict-detection", "type": "feat", "scope": "sync", "additions": 279, "deletions": 50, "timestamp": "2026-04-26T21:38:56+02:00" }, { "hash": "bf3bca2", "short": "feat(lasts): M1-M7 — module ship + Meilensteine-Aggregator", "type": "feat", "scope": "lasts", "additions": 6572, "deletions": 40, "timestamp": "2026-04-26T21:40:29+02:00" }, { "hash": "ba6274e", "short": "refactor(feedback): align package + DB enums, plan central hub", "type": "refactor", "scope": "feedback", "additions": 339, "deletions": 7, "timestamp": "2026-04-26T21:52:25+02:00" }, { "hash": "e5cd989", "short": "feat(onboarding): card redesign + add wish step routing to feedback hub", "type": "feat", "scope": "onboarding", "additions": 405, "deletions": 139, "timestamp": "2026-04-26T21:52:52+02:00" }, { "hash": "f10439e", "short": "fix(mana-analytics): point migration at public.feedback_status, not feedback.*", "type": "fix", "scope": "mana-analytics", "additions": 22, "deletions": 13, "timestamp": "2026-04-26T21:55:45+02:00" }, { "hash": "679fb16", "short": "feat(invoices): full i18n coverage across 12 files — DE/EN/ES/FR/IT", "type": "feat", "scope": "invoices", "additions": 1541, "deletions": 243, "timestamp": "2026-04-26T21:56:48+02:00" }, { "hash": "1398d76", "short": "refactor(lasts,firsts): German display names — \"Letzte Male\" / \"Erste Male\"", "type": "refactor", "scope": "lasts,firsts", "additions": 18, "deletions": 18, "timestamp": "2026-04-26T21:58:31+02:00" }, { "hash": "723a648", "short": "feat(lasts,firsts): register apps in web-internal registry mit DE-Namen", "type": "feat", "scope": "lasts,firsts", "additions": 37, "deletions": 1, "timestamp": "2026-04-26T22:11:22+02:00" }, { "hash": "4e31c8d", "short": "feat(calendar): full i18n coverage across 17 files — DE/EN/ES/FR/IT", "type": "feat", "scope": "calendar", "additions": 1430, "deletions": 278, "timestamp": "2026-04-26T22:17:34+02:00" }, { "hash": "e267625", "short": "feat(writing): full i18n coverage across 10 files — DE/EN/ES/FR/IT", "type": "feat", "scope": "writing", "additions": 1528, "deletions": 201, "timestamp": "2026-04-26T22:34:49+02:00" }, { "hash": "6bb9d77", "short": "feat(sync): F3 — drop updatedAt as a synced data field", "type": "feat", "scope": "sync", "additions": 1381, "deletions": 831, "timestamp": "2026-04-26T23:12:22+02:00" }, { "hash": "c07db30", "short": "feat(sync): F4 — server-side singleton bootstrap", "type": "feat", "scope": "sync", "additions": 134, "deletions": 0, "timestamp": "2026-04-26T23:18:54+02:00" }, { "hash": "c7d80e3", "short": "feat(events): full i18n coverage across 12 files — DE/EN/ES/FR/IT", "type": "feat", "scope": "events", "additions": 975, "deletions": 139, "timestamp": "2026-04-26T23:20:09+02:00" }, { "hash": "d78f57c", "short": "feat(sync): F5 — drop public userContextStore.ensureDoc()", "type": "feat", "scope": "sync", "additions": 25, "deletions": 18, "timestamp": "2026-04-26T23:47:53+02:00" }, { "hash": "a031493", "short": "feat(sync): F6 — stable client_id in Dexie, localStorage as cache", "type": "feat", "scope": "sync", "additions": 116, "deletions": 4, "timestamp": "2026-04-26T23:50:55+02:00" }, { "hash": "2a8e8ff", "short": "feat(sync): F7 — drop repair-silent-twin + legacy-avatar migrations", "type": "feat", "scope": "sync", "additions": 0, "deletions": 225, "timestamp": "2026-04-26T23:52:58+02:00" }, { "hash": "fd11481", "short": "docs(plans): mark sync-field-meta-overhaul F1-F7 SHIPPED", "type": "docs", "scope": "plans", "additions": 5, "deletions": 5, "timestamp": "2026-04-26T23:54:09+02:00" }, { "hash": "8b0a943", "short": "feat(mana-analytics): pseudonym + reactions + public feed + admin", "type": "feat", "scope": "mana-analytics", "additions": 820, "deletions": 70, "timestamp": "2026-04-27T00:00:35+02:00" }, { "hash": "c9b1220", "short": "feat(feedback): public feed types + ReactionBar + service split", "type": "feat", "scope": "feedback", "additions": 458, "deletions": 106, "timestamp": "2026-04-27T00:01:06+02:00" }, { "hash": "8804a20", "short": "feat(community): public anon hub — module + inline + admin + onboarding", "type": "feat", "scope": "community", "additions": 1723, "deletions": 33, "timestamp": "2026-04-27T00:02:25+02:00" }, { "hash": "5959f66", "short": "i18n(wardrobe): translate all 5 locales — 36 strings", "type": "i18n", "scope": "wardrobe", "additions": 1677, "deletions": 274, "timestamp": "2026-04-27T00:12:18+02:00" }, { "hash": "39ef7ca", "short": "chore(compose): wire FEEDBACK_PSEUDONYM_SECRET into mana-analytics", "type": "chore", "scope": "compose", "additions": 4, "deletions": 0, "timestamp": "2026-04-27T00:18:16+02:00" }, { "hash": "576fe79", "short": "fix(community): clear svelte-check warnings for fail-on-warnings push gate", "type": "fix", "scope": "community", "additions": 17, "deletions": 19, "timestamp": "2026-04-27T00:25:35+02:00" }, { "hash": "a68933b", "short": "refactor(stores): drop \\`as never\\` Dexie-update casts", "type": "refactor", "scope": "stores", "additions": 4, "deletions": 0, "timestamp": "2026-04-27T00:29:51+02:00" }, { "hash": "421663b", "short": "i18n(stretch): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "stretch", "additions": 455, "deletions": 0, "timestamp": "2026-04-27T00:30:17+02:00" }, { "hash": "722fe74", "short": "i18n(stretch): wire components to namespace — 34 strings cleared", "type": "i18n", "scope": "stretch", "additions": 164, "deletions": 76, "timestamp": "2026-04-27T00:49:23+02:00" }, { "hash": "db01ddc", "short": "fix(mana-analytics): multi-stage Dockerfile that resolves workspace deps", "type": "fix", "scope": "mana-analytics", "additions": 30, "deletions": 7, "timestamp": "2026-04-27T00:50:25+02:00" }, { "hash": "5387681", "short": "fix(mana-analytics): copy shared-logger into installer (transitive workspace dep)", "type": "fix", "scope": "mana-analytics", "additions": 1, "deletions": 0, "timestamp": "2026-04-27T00:52:33+02:00" }, { "hash": "1334bd3", "short": "refactor(stores): drop remaining \\`as never\\` + \\`as Record\\` casts", "type": "refactor", "scope": "stores", "additions": 28, "deletions": 28, "timestamp": "2026-04-27T00:53:41+02:00" }, { "hash": "3673542", "short": "feat(mana-web): inject PUBLIC_MANA_ANALYTICS_URL for client-side feedback calls", "type": "feat", "scope": "mana-web", "additions": 9, "deletions": 0, "timestamp": "2026-04-27T00:55:40+02:00" }, { "hash": "812f3f7", "short": "i18n(uload): extend namespace JSONs for routes/views", "type": "i18n", "scope": "uload", "additions": 955, "deletions": 0, "timestamp": "2026-04-27T00:55:48+02:00" }, { "hash": "b4589a7", "short": "feat(infra): route analytics.mana.how to mana-analytics:3064", "type": "feat", "scope": "infra", "additions": 2, "deletions": 0, "timestamp": "2026-04-27T00:57:05+02:00" }, { "hash": "515de79", "short": "refactor(stores): replace Record declarations with Partial", "type": "refactor", "scope": "stores", "additions": 52, "deletions": 37, "timestamp": "2026-04-27T00:58:01+02:00" }, { "hash": "cabfd10", "short": "feat(infra): community.mana.how (instead of analytics.*) for the public-feedback hub", "type": "feat", "scope": "infra", "additions": 3, "deletions": 3, "timestamp": "2026-04-27T01:00:22+02:00" }, { "hash": "119cd2c", "short": "chore(boot): sweep orphan migration flags from localStorage", "type": "chore", "scope": "boot", "additions": 70, "deletions": 0, "timestamp": "2026-04-27T01:01:35+02:00" }, { "hash": "c9a091e", "short": "fix(docker): COPY packages/shared-privacy into sveltekit-base", "type": "fix", "scope": "docker", "additions": 1, "deletions": 0, "timestamp": "2026-04-27T01:02:55+02:00" }, { "hash": "899fccd", "short": "i18n(uload): wire components + routes to namespace — 67 strings cleared", "type": "i18n", "scope": "uload", "additions": 266, "deletions": 177, "timestamp": "2026-04-27T01:03:00+02:00" }, { "hash": "98d07a8", "short": "docs(claude): document sync field-meta overhaul (F1-F7) in CLAUDE.md + DATA_LAYER_AUDIT", "type": "docs", "scope": "claude", "additions": 58, "deletions": 15, "timestamp": "2026-04-27T01:06:05+02:00" }, { "hash": "9e9f5ce", "short": "i18n(website): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "website", "additions": 900, "deletions": 0, "timestamp": "2026-04-27T01:07:05+02:00" }, { "hash": "6d15469", "short": "i18n(website): wire components + views to namespace — 68 strings cleared", "type": "i18n", "scope": "website", "additions": 223, "deletions": 164, "timestamp": "2026-04-27T01:14:16+02:00" }, { "hash": "da330f0", "short": "i18n(credits): extend namespace JSONs with list_view sub-namespace", "type": "i18n", "scope": "credits", "additions": 475, "deletions": 5, "timestamp": "2026-04-27T01:17:36+02:00" }, { "hash": "bcf150e", "short": "i18n(credits): wire ListView to namespace — 25 strings cleared", "type": "i18n", "scope": "credits", "additions": 141, "deletions": 94, "timestamp": "2026-04-27T01:20:34+02:00" }, { "hash": "3df7391", "short": "feat(auth): bootstrap per-Space kontextDoc on Space-creation (F4 follow-up)", "type": "feat", "scope": "auth", "additions": 197, "deletions": 66, "timestamp": "2026-04-27T01:21:31+02:00" }, { "hash": "da50da8", "short": "i18n(ai-agents): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "ai-agents", "additions": 345, "deletions": 0, "timestamp": "2026-04-27T01:23:57+02:00" }, { "hash": "53fecbf", "short": "chore(dexie): v55 — sweep orphan updatedAt field from existing rows (F3 cleanup)", "type": "chore", "scope": "dexie", "additions": 39, "deletions": 2, "timestamp": "2026-04-27T01:26:21+02:00" }, { "hash": "0a03e9e", "short": "i18n(ai-agents): wire ListView to namespace — 23 strings cleared", "type": "i18n", "scope": "ai-agents", "additions": 101, "deletions": 77, "timestamp": "2026-04-27T01:26:30+02:00" }, { "hash": "4081ce6", "short": "fix(community): queries.ts → queries.svelte.ts for runes ('$state is not defined')", "type": "fix", "scope": "community", "additions": 0, "deletions": 0, "timestamp": "2026-04-27T01:27:21+02:00" }, { "hash": "b064e8e", "short": "fix(community): import queries via .svelte path; type DetailView reaction filter", "type": "fix", "scope": "community", "additions": 5, "deletions": 5, "timestamp": "2026-04-27T01:30:47+02:00" }, { "hash": "da15f8d", "short": "i18n(ai-missions): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "ai-missions", "additions": 390, "deletions": 0, "timestamp": "2026-04-27T01:33:47+02:00" }, { "hash": "4731bc8", "short": "i18n(ai-missions): wire ListView to namespace — 22 strings cleared", "type": "i18n", "scope": "ai-missions", "additions": 142, "deletions": 70, "timestamp": "2026-04-27T01:36:12+02:00" }, { "hash": "98d3340", "short": "i18n(library): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "library", "additions": 255, "deletions": 0, "timestamp": "2026-04-27T01:38:03+02:00" }, { "hash": "099cac4", "short": "feat(auth): explicit bootstrap-singletons endpoint + idempotent functions (F4 robust)", "type": "feat", "scope": "auth", "additions": 261, "deletions": 24, "timestamp": "2026-04-27T01:38:14+02:00" }, { "hash": "36d832a", "short": "i18n(library): wire DetailView to namespace — 16 strings cleared", "type": "i18n", "scope": "library", "additions": 65, "deletions": 39, "timestamp": "2026-04-27T01:39:25+02:00" }, { "hash": "01681b5", "short": "i18n(gifts): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "gifts", "additions": 345, "deletions": 0, "timestamp": "2026-04-27T01:43:01+02:00" }, { "hash": "ae6a14f", "short": "feat(shared-ai): SYSTEM_BOOTSTRAP system source — fallback inserts now stamp origin='system'", "type": "feat", "scope": "shared-ai", "additions": 61, "deletions": 20, "timestamp": "2026-04-27T01:44:30+02:00" }, { "hash": "9a712dd", "short": "i18n(gifts): wire +page to namespace — 15 strings cleared", "type": "i18n", "scope": "gifts", "additions": 83, "deletions": 73, "timestamp": "2026-04-27T01:46:03+02:00" }, { "hash": "81f1056", "short": "i18n(goals): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "goals", "additions": 195, "deletions": 0, "timestamp": "2026-04-27T01:47:02+02:00" }, { "hash": "421a49a", "short": "docs(sync): close Punkt 5 audit — backend updated_at columns are not sync orphans", "type": "docs", "scope": "sync", "additions": 3, "deletions": 1, "timestamp": "2026-04-27T01:47:41+02:00" }, { "hash": "b06d950", "short": "i18n(goals): wire GoalEditor to namespace — 15 strings cleared", "type": "i18n", "scope": "goals", "additions": 68, "deletions": 38, "timestamp": "2026-04-27T01:48:01+02:00" }, { "hash": "220afc0", "short": "i18n(firsts): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "firsts", "additions": 350, "deletions": 0, "timestamp": "2026-04-27T01:49:24+02:00" }, { "hash": "275130f", "short": "test(sync): cross-cutting integration tests for field-meta overhaul (Punkt 12)", "type": "test", "scope": "sync", "additions": 150, "deletions": 2, "timestamp": "2026-04-27T01:54:35+02:00" }, { "hash": "d5d2b6f", "short": "docs(sync): document F1 + F3 commit-log corrections (Punkt 9 + 11)", "type": "docs", "scope": "sync", "additions": 11, "deletions": 1, "timestamp": "2026-04-27T01:56:38+02:00" }, { "hash": "fa5dbb2", "short": "i18n(firsts): wire ListView to namespace — 15 strings cleared", "type": "i18n", "scope": "firsts", "additions": 87, "deletions": 61, "timestamp": "2026-04-27T01:59:09+02:00" }, { "hash": "c9221b9", "short": "i18n(api-keys): add namespace JSONs for de/en/es/fr/it", "type": "i18n", "scope": "api-keys", "additions": 235, "deletions": 0, "timestamp": "2026-04-27T02:01:47+02:00" }, { "hash": "897a55b", "short": "i18n(api-keys): wire +page to namespace — 14 strings cleared", "type": "i18n", "scope": "api-keys", "additions": 87, "deletions": 41, "timestamp": "2026-04-27T02:03:47+02:00" }, { "hash": "65da520", "short": "i18n(recipes): add namespace JSONs (de/en/es/fr/it)", "type": "i18n", "scope": "recipes", "additions": 225, "deletions": 0, "timestamp": "2026-04-27T02:06:39+02:00" }, { "hash": "5c3c7ed", "short": "i18n(recipes): translate ListView via $_() — search, filters, ctx menu, detail panel, create form", "type": "i18n", "scope": "recipes", "additions": 59, "deletions": 35, "timestamp": "2026-04-27T02:08:40+02:00" }, { "hash": "3e41b14", "short": "i18n(dreams): add namespace JSONs (de/en/es/fr/it)", "type": "i18n", "scope": "dreams", "additions": 240, "deletions": 0, "timestamp": "2026-04-27T02:10:03+02:00" }, { "hash": "779752e", "short": "i18n(dreams): translate ListView via $_() — view tabs, insights, filters, editor, transcription badges", "type": "i18n", "scope": "dreams", "additions": 67, "deletions": 40, "timestamp": "2026-04-27T02:12:00+02:00" }, { "hash": "1b295f3", "short": "i18n(automations): add namespace JSONs (de/en/es/fr/it)", "type": "i18n", "scope": "automations", "additions": 155, "deletions": 0, "timestamp": "2026-04-27T02:13:22+02:00" }, { "hash": "1894e65", "short": "i18n(automations): translate ListView via $_() — suggestions, create form, flow visualization, empty state", "type": "i18n", "scope": "automations", "additions": 39, "deletions": 26, "timestamp": "2026-04-27T02:14:40+02:00" }, { "hash": "c1e5aa9", "short": "i18n(spiral): add namespace JSONs (de/en/es/fr/it)", "type": "i18n", "scope": "spiral", "additions": 155, "deletions": 0, "timestamp": "2026-04-27T02:15:28+02:00" }, { "hash": "2790244", "short": "i18n(spiral): translate ListView via $_() — visualization, stats, apps, palette, actions, info-box", "type": "i18n", "scope": "spiral", "additions": 41, "deletions": 30, "timestamp": "2026-04-27T02:16:47+02:00" } ], "review_state": "auto", "llm": { "model": null, "generated_at": null } }