managarten/devlog/2026-04-09/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

1228 lines
31 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-09",
"day_number": 78,
"weekday": "Donnerstag",
"commits": 125,
"authors": [
{
"name": "Till JS",
"count": 125
}
],
"additions": 24904,
"deletions": 26063,
"net_lines": -1159,
"files_changed": 537,
"new_files": 0,
"deleted_files": 0,
"session": {
"first_commit_at": "2026-04-09T09:49:29.000Z",
"last_commit_at": "2026-04-10T00:51:41.000Z",
"total_span_minutes": 902,
"active_minutes": 403,
"pauses": [
{
"from": "13:25",
"to": "14:05",
"minutes": 40
},
{
"from": "15:14",
"to": "15:44",
"minutes": 30
},
{
"from": "18:52",
"to": "19:34",
"minutes": 42
},
{
"from": "20:25",
"to": "02:51",
"minutes": 387
}
],
"longest_focus_minutes": 188
},
"top_dirs": [
{
"path": "apps/mana/apps/web",
"pct": 58
},
{
"path": "packages/shared-errors/src",
"pct": 3
},
{
"path": "packages/cards-database/src",
"pct": 2
},
{
"path": "apps/api/src/modules",
"pct": 2
},
{
"path": "packages/help/src",
"pct": 2
}
],
"top_extensions": [
{
"ext": ".ts",
"count": 268
},
{
"ext": ".svelte",
"count": 254
},
{
"ext": ".json",
"count": 82
},
{
"ext": ".js",
"count": 21
},
{
"ext": ".md",
"count": 15
},
{
"ext": ".yml",
"count": 9
}
],
"tags": ["mana/web", "mana/web/nutriphi", "mana/web/news", "api", "memoro"],
"commits_list": [
{
"hash": "feb19d8",
"short": "refactor(mana/web): migrate cycles/ListView style to theme tokens (P5)",
"type": "refactor",
"scope": "mana/web",
"additions": 19,
"deletions": 41,
"timestamp": "2026-04-09T11:49:29+02:00"
},
{
"hash": "0b9f85c",
"short": "refactor(mana/web): migrate dreams/ListView style to theme tokens (P5)",
"type": "refactor",
"scope": "mana/web",
"additions": 73,
"deletions": 137,
"timestamp": "2026-04-09T11:49:31+02:00"
},
{
"hash": "7a0959e",
"short": "refactor(mana/web): migrate PageShell to theme tokens (P5)",
"type": "refactor",
"scope": "mana/web",
"additions": 24,
"deletions": 76,
"timestamp": "2026-04-09T11:53:35+02:00"
},
{
"hash": "b4dd646",
"short": "feat(memoro): auto-generate voice memo titles via the LLM task queue",
"type": "feat",
"scope": "memoro",
"additions": 202,
"deletions": 0,
"timestamp": "2026-04-09T11:55:26+02:00"
},
{
"hash": "e19a81c",
"short": "test(mana-auth): sso-config consistency spec",
"type": "test",
"scope": "mana-auth",
"additions": 126,
"deletions": 0,
"timestamp": "2026-04-09T11:55:30+02:00"
},
{
"hash": "4884899",
"short": "chore(packages): remove 4 dead zero-consumer packages",
"type": "chore",
"scope": "packages",
"additions": 0,
"deletions": 4702,
"timestamp": "2026-04-09T11:56:25+02:00"
},
{
"hash": "12be86b",
"short": "chore: remove abandoned per-product workspace artifacts",
"type": null,
"scope": null,
"additions": 3,
"deletions": 5893,
"timestamp": "2026-04-09T11:56:51+02:00"
},
{
"hash": "034a07d",
"short": "chore(workspace): remove redundant nested lockfiles + workspace.yaml",
"type": "chore",
"scope": "workspace",
"additions": 0,
"deletions": 7189,
"timestamp": "2026-04-09T11:57:11+02:00"
},
{
"hash": "b2bc28d",
"short": "docs: refactoring audit April 2026",
"type": null,
"scope": null,
"additions": 738,
"deletions": 0,
"timestamp": "2026-04-09T11:57:33+02:00"
},
{
"hash": "2375167",
"short": "refactor(mana/web): migrate foundation shells + workbench scenes to theme tokens (P5)",
"type": "refactor",
"scope": "mana/web",
"additions": 122,
"deletions": 333,
"timestamp": "2026-04-09T12:02:54+02:00"
},
{
"hash": "94d7dd4",
"short": "feat(mana/web): tier-gate workbench picker, openApps, and per-route navigation",
"type": "feat",
"scope": "mana/web",
"additions": 180,
"deletions": 6,
"timestamp": "2026-04-09T12:08:49+02:00"
},
{
"hash": "e52b6e2",
"short": "chore(shared-branding): set all apps to requiredTier 'guest' (testing only)",
"type": "chore",
"scope": "shared-branding",
"additions": 36,
"deletions": 36,
"timestamp": "2026-04-09T12:14:02+02:00"
},
{
"hash": "7b25f3a",
"short": "refactor(mana/web): migrate module DetailViews + sub-views to theme tokens (P5)",
"type": "refactor",
"scope": "mana/web",
"additions": 176,
"deletions": 471,
"timestamp": "2026-04-09T12:15:47+02:00"
},
{
"hash": "fbb71f9",
"short": "feat(admin): replace mock dashboard stats with real /admin/stats endpoint",
"type": "feat",
"scope": "admin",
"additions": 109,
"deletions": 36,
"timestamp": "2026-04-09T12:20:18+02:00"
},
{
"hash": "ddde284",
"short": "fix(memoro): decrypt DetailView fields + stamp createdAt on memo create",
"type": "fix",
"scope": "memoro",
"additions": 17,
"deletions": 1,
"timestamp": "2026-04-09T12:22:01+02:00"
},
{
"hash": "38a02b7",
"short": "chore(dev): add setup-dev-user script for local founder accounts",
"type": "chore",
"scope": "dev",
"additions": 149,
"deletions": 1,
"timestamp": "2026-04-09T12:23:15+02:00"
},
{
"hash": "c8da226",
"short": "fix(skilltree): define the missing branch accent colors",
"type": "fix",
"scope": "skilltree",
"additions": 22,
"deletions": 7,
"timestamp": "2026-04-09T12:23:55+02:00"
},
{
"hash": "32b0bf9",
"short": "fix(docker): drop more stale shared package COPY lines from sveltekit-base",
"type": "fix",
"scope": "docker",
"additions": 3,
"deletions": 5,
"timestamp": "2026-04-09T12:25:45+02:00"
},
{
"hash": "b8f2d8f",
"short": "docs(local-dev): document setup-dev-user + the three founder accounts",
"type": "docs",
"scope": "local-dev",
"additions": 63,
"deletions": 0,
"timestamp": "2026-04-09T12:26:37+02:00"
},
{
"hash": "5052926",
"short": "refactor(mana/web): migrate chrome/notification components to theme tokens (P5)",
"type": "refactor",
"scope": "mana/web",
"additions": 18,
"deletions": 17,
"timestamp": "2026-04-09T12:27:09+02:00"
},
{
"hash": "7f6b416",
"short": "test(load): k6 script for the unified apps/api server",
"type": "test",
"scope": "load",
"additions": 302,
"deletions": 0,
"timestamp": "2026-04-09T12:27:54+02:00"
},
{
"hash": "5c41ebe",
"short": "style(mana/web/automations): migrate ListView to theme tokens (P5)",
"type": "style",
"scope": "mana/web/automations",
"additions": 40,
"deletions": 32,
"timestamp": "2026-04-09T12:34:32+02:00"
},
{
"hash": "d2e44c8",
"short": "chore(packages): remove 2 zero-consumer config packages",
"type": "chore",
"scope": "packages",
"additions": 53,
"deletions": 744,
"timestamp": "2026-04-09T12:35:40+02:00"
},
{
"hash": "a7fbd29",
"short": "style(mana/web): migrate photos/times/contacts module helpers to theme tokens (P5)",
"type": "style",
"scope": "mana/web",
"additions": 58,
"deletions": 53,
"timestamp": "2026-04-09T12:37:29+02:00"
},
{
"hash": "526d92f",
"short": "fix(memoro): diagnostic logs + loading states + transcription source label",
"type": "fix",
"scope": "memoro",
"additions": 185,
"deletions": 38,
"timestamp": "2026-04-09T12:41:28+02:00"
},
{
"hash": "4423c03",
"short": "fix(docker): drop packages/shared-config (deleted) from sveltekit-base",
"type": "fix",
"scope": "docker",
"additions": 1,
"deletions": 1,
"timestamp": "2026-04-09T12:43:17+02:00"
},
{
"hash": "0987b08",
"short": "style(mana/web): migrate (app) page-level routes to theme tokens (P5)",
"type": "style",
"scope": "mana/web",
"additions": 83,
"deletions": 77,
"timestamp": "2026-04-09T12:43:24+02:00"
},
{
"hash": "9760269",
"short": "fix(memoro): generateTitle empty-result fallback + watcher diagnostics",
"type": "fix",
"scope": "memoro",
"additions": 64,
"deletions": 19,
"timestamp": "2026-04-09T12:53:35+02:00"
},
{
"hash": "ea8ca13",
"short": "fix(mana/web): wrap bare var(--color-X) refs in hsl() across 19 files (P5)",
"type": "fix",
"scope": "mana/web",
"additions": 189,
"deletions": 193,
"timestamp": "2026-04-09T13:02:33+02:00"
},
{
"hash": "d8591b3",
"short": "fix(generate-title): few-shot prompt + rolling cleanup + date label for short transcripts",
"type": "fix",
"scope": "generate-title",
"additions": 76,
"deletions": 31,
"timestamp": "2026-04-09T13:03:16+02:00"
},
{
"hash": "43d19b5",
"short": "docs(shared-tailwind/themes): document hsl() wrap rule + token allowlist",
"type": "docs",
"scope": "shared-tailwind/themes",
"additions": 31,
"deletions": 1,
"timestamp": "2026-04-09T13:05:16+02:00"
},
{
"hash": "32419a6",
"short": "docs(who): RFC for the historical-figure guessing module",
"type": "docs",
"scope": "who",
"additions": 415,
"deletions": 0,
"timestamp": "2026-04-09T13:08:07+02:00"
},
{
"hash": "74b5808",
"short": "feat(api): who module — LLM character-guessing endpoint cluster",
"type": "feat",
"scope": "api",
"additions": 830,
"deletions": 0,
"timestamp": "2026-04-09T13:09:46+02:00"
},
{
"hash": "f24438f",
"short": "feat(mana/web): who module — frontend (game store + UI + routes)",
"type": "feat",
"scope": "mana/web",
"additions": 1018,
"deletions": 0,
"timestamp": "2026-04-09T13:10:34+02:00"
},
{
"hash": "65c4d93",
"short": "feat(shared-branding): register the who module in mana-apps + new icon",
"type": "feat",
"scope": "shared-branding",
"additions": 22,
"deletions": 0,
"timestamp": "2026-04-09T13:10:55+02:00"
},
{
"hash": "ef780cf",
"short": "chore: remove whopixels — superseded by the who module",
"type": null,
"scope": null,
"additions": 4,
"deletions": 3666,
"timestamp": "2026-04-09T13:11:36+02:00"
},
{
"hash": "0450c86",
"short": "fix(shared-llm): SSE shape diagnostics + simpler title prompt + fragment detection",
"type": "fix",
"scope": "shared-llm",
"additions": 117,
"deletions": 31,
"timestamp": "2026-04-09T13:12:13+02:00"
},
{
"hash": "be8c048",
"short": "fix(mana/web/sync): drain leftover pending changes on startup",
"type": "fix",
"scope": "mana/web/sync",
"additions": 26,
"deletions": 0,
"timestamp": "2026-04-09T13:24:51+02:00"
},
{
"hash": "b83e8d6",
"short": "fix(mana/web): seed pending-changes badge count on mount",
"type": "fix",
"scope": "mana/web",
"additions": 10,
"deletions": 3,
"timestamp": "2026-04-09T13:25:06+02:00"
},
{
"hash": "60fedbb",
"short": "feat(mana/web/planta): photo upload, AI identification, tags, watering history, i18n + tests",
"type": "feat",
"scope": "mana/web/planta",
"additions": 1451,
"deletions": 248,
"timestamp": "2026-04-09T14:05:13+02:00"
},
{
"hash": "b68fcc8",
"short": "fix(mana/web/planta): /planta routes — layout fix, i18n, nullability, button nesting",
"type": "fix",
"scope": "mana/web/planta",
"additions": 215,
"deletions": 98,
"timestamp": "2026-04-09T14:05:56+02:00"
},
{
"hash": "ad61893",
"short": "chore(planta): remove orphan apps/planta/packages/shared",
"type": "chore",
"scope": "planta",
"additions": 271,
"deletions": 383,
"timestamp": "2026-04-09T14:06:11+02:00"
},
{
"hash": "233cf28",
"short": "fix(shared-llm): switch remote backend to non-streaming, drop credentials",
"type": "fix",
"scope": "shared-llm",
"additions": 58,
"deletions": 91,
"timestamp": "2026-04-09T14:07:06+02:00"
},
{
"hash": "7750c46",
"short": "feat(api): production deploy — Dockerfile + docker-compose service",
"type": "feat",
"scope": "api",
"additions": 125,
"deletions": 0,
"timestamp": "2026-04-09T14:08:59+02:00"
},
{
"hash": "6cbb1f6",
"short": "fix(api/Dockerfile): switch builder stage to node:20-alpine",
"type": "fix",
"scope": "api/Dockerfile",
"additions": 14,
"deletions": 7,
"timestamp": "2026-04-09T14:10:59+02:00"
},
{
"hash": "7fa3afc",
"short": "fix(mana/web/sync): push fresh writes immediately via listener bridge",
"type": "fix",
"scope": "mana/web/sync",
"additions": 41,
"deletions": 11,
"timestamp": "2026-04-09T14:13:25+02:00"
},
{
"hash": "2f00d9c",
"short": "feat(memoro): show title source label below the title input",
"type": "feat",
"scope": "memoro",
"additions": 75,
"deletions": 0,
"timestamp": "2026-04-09T14:19:59+02:00"
},
{
"hash": "e3029ef",
"short": "fix(api/deploy): use mana-api.mana.how to avoid api.mana.how conflict",
"type": "fix",
"scope": "api/deploy",
"additions": 39,
"deletions": 2,
"timestamp": "2026-04-09T14:21:06+02:00"
},
{
"hash": "b8bfc4d",
"short": "fix(branding): drop who module's required tier from beta to public",
"type": "fix",
"scope": "branding",
"additions": 6,
"deletions": 1,
"timestamp": "2026-04-09T14:27:18+02:00"
},
{
"hash": "a130f8e",
"short": "feat(mana/web): clickable page titles open route in new tab",
"type": "feat",
"scope": "mana/web",
"additions": 59,
"deletions": 4,
"timestamp": "2026-04-09T14:27:51+02:00"
},
{
"hash": "41c705a",
"short": "feat(mana/web): per-module icons + wire workbench title link",
"type": "feat",
"scope": "mana/web",
"additions": 69,
"deletions": 1,
"timestamp": "2026-04-09T14:28:01+02:00"
},
{
"hash": "ab0ca99",
"short": "feat(mana/web): app picker — autofocused search + alphabetical order",
"type": "feat",
"scope": "mana/web",
"additions": 81,
"deletions": 3,
"timestamp": "2026-04-09T14:37:04+02:00"
},
{
"hash": "f0faae0",
"short": "feat(mana/web): same-origin proxy for /api/v1/who/* → mana-api",
"type": "feat",
"scope": "mana/web",
"additions": 119,
"deletions": 6,
"timestamp": "2026-04-09T15:06:04+02:00"
},
{
"hash": "07b130f",
"short": "fix(shared-branding): add missing 'who' entry to APP_URLS",
"type": "fix",
"scope": "shared-branding",
"additions": 6,
"deletions": 5,
"timestamp": "2026-04-09T15:08:02+02:00"
},
{
"hash": "e6564cf",
"short": "fix(mana/web): add standard mobile-web-app-capable meta tag",
"type": "fix",
"scope": "mana/web",
"additions": 1,
"deletions": 0,
"timestamp": "2026-04-09T15:08:12+02:00"
},
{
"hash": "693d20e",
"short": "refactor(api/nutriphi): split photo flow into /photos/upload + /analysis/photo",
"type": "refactor",
"scope": "api/nutriphi",
"additions": 37,
"deletions": 29,
"timestamp": "2026-04-09T15:13:45+02:00"
},
{
"hash": "189249b",
"short": "feat(mana/web/nutriphi): photo capture + AI meal recognition flow",
"type": "feat",
"scope": "mana/web/nutriphi",
"additions": 630,
"deletions": 45,
"timestamp": "2026-04-09T15:14:07+02:00"
},
{
"hash": "c7fd936",
"short": "test(mana/web/nutriphi): integration tests for meal mutations + encryption",
"type": "test",
"scope": "mana/web/nutriphi",
"additions": 223,
"deletions": 0,
"timestamp": "2026-04-09T15:14:24+02:00"
},
{
"hash": "e00e6f5",
"short": "refactor(shared-branding): derive APP_URLS from APP_ICONS",
"type": "refactor",
"scope": "shared-branding",
"additions": 49,
"deletions": 45,
"timestamp": "2026-04-09T15:14:52+02:00"
},
{
"hash": "de4f766",
"short": "feat(mana/web/nutriphi): extend meal schema (foods + thumbnail) + update mutation",
"type": "feat",
"scope": "mana/web/nutriphi",
"additions": 92,
"deletions": 10,
"timestamp": "2026-04-09T15:44:55+02:00"
},
{
"hash": "4fd6a5c",
"short": "feat(mana/web/nutriphi): meal detail page + foods breakdown + thumbnail-aware lists",
"type": "feat",
"scope": "mana/web/nutriphi",
"additions": 595,
"deletions": 35,
"timestamp": "2026-04-09T15:45:21+02:00"
},
{
"hash": "23f13d7",
"short": "test(mana/web/nutriphi): cover mealMutations.update",
"type": "test",
"scope": "mana/web/nutriphi",
"additions": 70,
"deletions": 0,
"timestamp": "2026-04-09T15:45:35+02:00"
},
{
"hash": "51f4087",
"short": "fix(api/who): use /v1/chat/completions path for mana-llm",
"type": "fix",
"scope": "api/who",
"additions": 4,
"deletions": 1,
"timestamp": "2026-04-09T15:48:09+02:00"
},
{
"hash": "45790ff",
"short": "refactor(mana): rename inventar → inventory across the codebase",
"type": "refactor",
"scope": "mana",
"additions": 173,
"deletions": 147,
"timestamp": "2026-04-09T15:50:24+02:00"
},
{
"hash": "9ef97a1",
"short": "feat(news): backend ingester service + curated feed API",
"type": "feat",
"scope": "news",
"additions": 1058,
"deletions": 64,
"timestamp": "2026-04-09T15:53:26+02:00"
},
{
"hash": "de7e359",
"short": "feat(mana/web/news): client data layer + module library",
"type": "feat",
"scope": "mana/web/news",
"additions": 1331,
"deletions": 0,
"timestamp": "2026-04-09T15:53:52+02:00"
},
{
"hash": "8167d26",
"short": "feat(mana/web/news): web routes + i18n locales",
"type": "feat",
"scope": "mana/web/news",
"additions": 2918,
"deletions": 0,
"timestamp": "2026-04-09T15:54:25+02:00"
},
{
"hash": "e579e29",
"short": "feat(mana/web/news): workbench ListView + dashboard widget",
"type": "feat",
"scope": "mana/web/news",
"additions": 521,
"deletions": 1,
"timestamp": "2026-04-09T15:54:57+02:00"
},
{
"hash": "c184991",
"short": "feat(mana/web/nutriphi): inline text + photo quick-add in workbench ListView",
"type": "feat",
"scope": "mana/web/nutriphi",
"additions": 146,
"deletions": 8,
"timestamp": "2026-04-09T16:05:13+02:00"
},
{
"hash": "df72a92",
"short": "test(mana/web): consistency guard for workbench-registry ↔ MANA_APPS",
"type": "test",
"scope": "mana/web",
"additions": 78,
"deletions": 0,
"timestamp": "2026-04-09T16:05:17+02:00"
},
{
"hash": "c9e1624",
"short": "feat(shared-llm): bump mana-server default model to gemma4:e4b",
"type": "feat",
"scope": "shared-llm",
"additions": 20,
"deletions": 11,
"timestamp": "2026-04-09T16:06:33+02:00"
},
{
"hash": "68d1bda",
"short": "fix(news-ingester): drop unused @mana/shared-hono workspace dep",
"type": "fix",
"scope": "news-ingester",
"additions": 0,
"deletions": 1,
"timestamp": "2026-04-09T16:11:58+02:00"
},
{
"hash": "5480a8d",
"short": "feat(mana/web/nutriphi): global quick-input adapter for the search bar",
"type": "feat",
"scope": "mana/web/nutriphi",
"additions": 221,
"deletions": 0,
"timestamp": "2026-04-09T16:14:37+02:00"
},
{
"hash": "6124ae9",
"short": "fix(mana/web): bump Dexie schema to v3 for the who tables",
"type": "fix",
"scope": "mana/web",
"additions": 34,
"deletions": 8,
"timestamp": "2026-04-09T16:14:39+02:00"
},
{
"hash": "bd748b0",
"short": "feat(mana/web/nutriphi): context menu quick-action for \"Neue Mahlzeit\"",
"type": "feat",
"scope": "mana/web/nutriphi",
"additions": 11,
"deletions": 0,
"timestamp": "2026-04-09T16:14:50+02:00"
},
{
"hash": "dad174a",
"short": "fix(news-ingester): silence JSDOM CSS errors + add process-level safety net",
"type": "fix",
"scope": "news-ingester",
"additions": 30,
"deletions": 2,
"timestamp": "2026-04-09T16:15:46+02:00"
},
{
"hash": "422eb9f",
"short": "fix(mana/web/who): log sendMessage failures to console",
"type": "fix",
"scope": "mana/web/who",
"additions": 1,
"deletions": 0,
"timestamp": "2026-04-09T16:19:19+02:00"
},
{
"hash": "52159ee",
"short": "fix(news-ingester): disable Readability fallback to break crash loop",
"type": "fix",
"scope": "news-ingester",
"additions": 22,
"deletions": 4,
"timestamp": "2026-04-09T16:21:09+02:00"
},
{
"hash": "a412ccc",
"short": "feat(mana/web/body): new module — combined fitness training + body comp tracking",
"type": "feat",
"scope": "mana/web/body",
"additions": 1297,
"deletions": 0,
"timestamp": "2026-04-09T16:28:19+02:00"
},
{
"hash": "b2db42b",
"short": "feat(mana/web/body): UI components, route, i18n, dashboard widget",
"type": "feat",
"scope": "mana/web/body",
"additions": 1439,
"deletions": 1,
"timestamp": "2026-04-09T16:28:55+02:00"
},
{
"hash": "8adef1b",
"short": "fix(shared-llm): fall back to message.reasoning when content is empty",
"type": "fix",
"scope": "shared-llm",
"additions": 11,
"deletions": 2,
"timestamp": "2026-04-09T16:29:22+02:00"
},
{
"hash": "3993400",
"short": "chore(infra): make cloudflared-config.yml the single source of truth",
"type": "chore",
"scope": "infra",
"additions": 225,
"deletions": 25,
"timestamp": "2026-04-09T16:37:21+02:00"
},
{
"hash": "92f8221",
"short": "docs(shared-llm): correct the mana-server tier topology in code + CLAUDE.md",
"type": "docs",
"scope": "shared-llm",
"additions": 26,
"deletions": 5,
"timestamp": "2026-04-09T16:40:34+02:00"
},
{
"hash": "77ad489",
"short": "fix(mana/web/who): set createdAt + use simple gameId index for messages",
"type": "fix",
"scope": "mana/web/who",
"additions": 24,
"deletions": 12,
"timestamp": "2026-04-09T16:41:36+02:00"
},
{
"hash": "b2f3b31",
"short": "feat(mana/web/body): exercise picker, routines, phases, progression chart",
"type": "feat",
"scope": "mana/web/body",
"additions": 1276,
"deletions": 38,
"timestamp": "2026-04-09T16:55:51+02:00"
},
{
"hash": "56130cd",
"short": "test(mana/web/body): integration tests for bodyStore mutations",
"type": "test",
"scope": "mana/web/body",
"additions": 294,
"deletions": 0,
"timestamp": "2026-04-09T16:56:17+02:00"
},
{
"hash": "63e1ef8",
"short": "fix(mana/web/who): chat bubble Tailwind classes — v3 → v4 syntax",
"type": "fix",
"scope": "mana/web/who",
"additions": 16,
"deletions": 16,
"timestamp": "2026-04-09T16:56:34+02:00"
},
{
"hash": "c2a75bb",
"short": "feat(shared-types): add Zod schemas for AI structured outputs",
"type": "feat",
"scope": "shared-types",
"additions": 399,
"deletions": 270,
"timestamp": "2026-04-09T16:59:28+02:00"
},
{
"hash": "0c0e31d",
"short": "refactor(api): use Vercel AI SDK + Zod for nutriphi/planta vision routes",
"type": "refactor",
"scope": "api",
"additions": 85,
"deletions": 95,
"timestamp": "2026-04-09T16:59:51+02:00"
},
{
"hash": "f9b8399",
"short": "refactor(mana/web): consume shared AI Zod schemas via z.infer",
"type": "refactor",
"scope": "mana/web",
"additions": 19,
"deletions": 42,
"timestamp": "2026-04-09T17:00:13+02:00"
},
{
"hash": "59b5114",
"short": "fix(mana/web/who): surface guestPrompt on JWT expiry",
"type": "fix",
"scope": "mana/web/who",
"additions": 25,
"deletions": 1,
"timestamp": "2026-04-09T17:10:03+02:00"
},
{
"hash": "4fab323",
"short": "fix(mana/web/news): use client-side API URL + snapshot $state arrays",
"type": "fix",
"scope": "mana/web/news",
"additions": 28,
"deletions": 19,
"timestamp": "2026-04-09T17:16:44+02:00"
},
{
"hash": "bd231cd",
"short": "feat(api/web): wire-format envelope versioning + Anthropic prompt-cache hints",
"type": "feat",
"scope": "api/web",
"additions": 238,
"deletions": 17,
"timestamp": "2026-04-09T17:17:18+02:00"
},
{
"hash": "967f938",
"short": "feat(mana/web/body): full i18n + calorie × weight correlation chart",
"type": "feat",
"scope": "mana/web/body",
"additions": 475,
"deletions": 3,
"timestamp": "2026-04-09T17:19:20+02:00"
},
{
"hash": "5110065",
"short": "feat(mana/web/sync): expose debug info, surface silent push failures",
"type": "feat",
"scope": "mana/web/sync",
"additions": 69,
"deletions": 3,
"timestamp": "2026-04-09T17:20:22+02:00"
},
{
"hash": "2804072",
"short": "docs(sync): add SYNC_DEBUG runbook with new debug API in Schritt C",
"type": "docs",
"scope": "sync",
"additions": 157,
"deletions": 0,
"timestamp": "2026-04-09T17:20:46+02:00"
},
{
"hash": "9d1b251",
"short": "fix(api/who): server-side validation of [IDENTITY_REVEALED] sentinel",
"type": "fix",
"scope": "api/who",
"additions": 51,
"deletions": 12,
"timestamp": "2026-04-09T17:21:14+02:00"
},
{
"hash": "5aeae87",
"short": "feat(api/web): wire-format envelope versioning + Anthropic prompt-cache hints",
"type": "feat",
"scope": "api/web",
"additions": 305,
"deletions": 16,
"timestamp": "2026-04-09T17:21:19+02:00"
},
{
"hash": "1b26623",
"short": "fix(api/Dockerfile): copy @mana/shared-types into the build context",
"type": "fix",
"scope": "api/Dockerfile",
"additions": 4,
"deletions": 1,
"timestamp": "2026-04-09T17:25:23+02:00"
},
{
"hash": "a50dc82",
"short": "chore(infra): tunnel id 1435166a (locally-managed rebuild result)",
"type": "chore",
"scope": "infra",
"additions": 2,
"deletions": 2,
"timestamp": "2026-04-09T17:29:29+02:00"
},
{
"hash": "77b2d1e",
"short": "chore(infra): smarter tunnel rebuild — apex via API + sane probes",
"type": "chore",
"scope": "infra",
"additions": 135,
"deletions": 4,
"timestamp": "2026-04-09T17:52:40+02:00"
},
{
"hash": "6c0f88f",
"short": "chore(infra): pre-commit validator for cloudflared-config.yml",
"type": "chore",
"scope": "infra",
"additions": 177,
"deletions": 0,
"timestamp": "2026-04-09T18:02:51+02:00"
},
{
"hash": "3ccfc3b",
"short": "fix(api): correct mana-llm path prefix and model name in vision routes",
"type": "fix",
"scope": "api",
"additions": 12,
"deletions": 4,
"timestamp": "2026-04-09T18:11:43+02:00"
},
{
"hash": "3ef095a",
"short": "fix(mana-llm/ollama): pass response_format to Ollama + strip markdown fences",
"type": "fix",
"scope": "mana-llm/ollama",
"additions": 58,
"deletions": 1,
"timestamp": "2026-04-09T18:12:01+02:00"
},
{
"hash": "0426b66",
"short": "fix(mana/web/nutriphi): widen goal state types from literal to number",
"type": "fix",
"scope": "mana/web/nutriphi",
"additions": 10,
"deletions": 7,
"timestamp": "2026-04-09T18:12:13+02:00"
},
{
"hash": "ff6118f",
"short": "fix(mana/web): migrate liveQuery hooks to useLiveQueryWithDefault",
"type": "fix",
"scope": "mana/web",
"additions": 82,
"deletions": 74,
"timestamp": "2026-04-09T18:12:15+02:00"
},
{
"hash": "b32de06",
"short": "fix(mana/web): coerce $page.params.* away from string|undefined",
"type": "fix",
"scope": "mana/web",
"additions": 22,
"deletions": 20,
"timestamp": "2026-04-09T18:12:54+02:00"
},
{
"hash": "9bf73ff",
"short": "fix(help): correct broken imports + tighten SupportedLanguage typing",
"type": "fix",
"scope": "help",
"additions": 22,
"deletions": 13,
"timestamp": "2026-04-09T18:13:18+02:00"
},
{
"hash": "7ba381f",
"short": "fix(mana/web/news): Bearer token + Dexie v4 schema upgrade",
"type": "fix",
"scope": "mana/web/news",
"additions": 61,
"deletions": 26,
"timestamp": "2026-04-09T18:42:49+02:00"
},
{
"hash": "05d9d19",
"short": "fix(shared-auth): proxy passkey/2FA/session methods through ManaAuthStore",
"type": "fix",
"scope": "shared-auth",
"additions": 81,
"deletions": 1,
"timestamp": "2026-04-09T18:48:00+02:00"
},
{
"hash": "697d96d",
"short": "fix(mana/web): unblock api-keys, reset-password, dashboard widgets, skilltree stats",
"type": "fix",
"scope": "mana/web",
"additions": 35,
"deletions": 50,
"timestamp": "2026-04-09T18:48:28+02:00"
},
{
"hash": "cb87d23",
"short": "fix(help): import search types from search-types, not content",
"type": "fix",
"scope": "help",
"additions": 1,
"deletions": 1,
"timestamp": "2026-04-09T18:48:39+02:00"
},
{
"hash": "5520f13",
"short": "fix(mana-llm): add response_format to ChatCompletionRequest model",
"type": "fix",
"scope": "mana-llm",
"additions": 26,
"deletions": 18,
"timestamp": "2026-04-09T18:50:54+02:00"
},
{
"hash": "3b035e9",
"short": "fix(mana/web/news): use getValidToken + guard prefs against locked vault",
"type": "fix",
"scope": "mana/web/news",
"additions": 18,
"deletions": 6,
"timestamp": "2026-04-09T18:52:51+02:00"
},
{
"hash": "958819f",
"short": "fix(api): default vision model to ollama/gemma3:4b",
"type": "fix",
"scope": "api",
"additions": 8,
"deletions": 6,
"timestamp": "2026-04-09T19:34:32+02:00"
},
{
"hash": "f3effe9",
"short": "fix(mana/web/news): instant onboarding handoff to feed branch",
"type": "fix",
"scope": "mana/web/news",
"additions": 56,
"deletions": 12,
"timestamp": "2026-04-09T19:41:31+02:00"
},
{
"hash": "55bf493",
"short": "fix(api): set supportsStructuredOutputs=true on mana-llm provider",
"type": "fix",
"scope": "api",
"additions": 10,
"deletions": 0,
"timestamp": "2026-04-09T19:44:13+02:00"
},
{
"hash": "acfbcfe",
"short": "feat(mana/web/news): \"interested\" keeps article visible + saved badge",
"type": "feat",
"scope": "mana/web/news",
"additions": 106,
"deletions": 19,
"timestamp": "2026-04-09T19:48:53+02:00"
},
{
"hash": "c172ce9",
"short": "fix(mana/web): replace h2/h3 with div in AiSettings + AiTierStep",
"type": "fix",
"scope": "mana/web",
"additions": 4,
"deletions": 4,
"timestamp": "2026-04-09T19:50:04+02:00"
},
{
"hash": "3c7bfc6",
"short": "feat(mana/web): register body, events, who, guides in workbench app registry",
"type": "feat",
"scope": "mana/web",
"additions": 121,
"deletions": 0,
"timestamp": "2026-04-09T20:18:30+02:00"
},
{
"hash": "83eaf71",
"short": "fix(macmini): clean up container conflicts in build-app.sh restart cycle",
"type": "fix",
"scope": "macmini",
"additions": 38,
"deletions": 1,
"timestamp": "2026-04-09T20:22:52+02:00"
},
{
"hash": "ab24db3",
"short": "fix(packages): cross-package broken imports + missing exports",
"type": "fix",
"scope": "packages",
"additions": 25,
"deletions": 26,
"timestamp": "2026-04-09T20:23:34+02:00"
},
{
"hash": "c31ce44",
"short": "fix(packages): modal keydown handlers, $derived.by usage, UserData fields",
"type": "fix",
"scope": "packages",
"additions": 26,
"deletions": 13,
"timestamp": "2026-04-09T20:24:05+02:00"
},
{
"hash": "80b23dd",
"short": "fix(mana/web): clear remaining type errors — long-tail sweep",
"type": "fix",
"scope": "mana/web",
"additions": 110,
"deletions": 66,
"timestamp": "2026-04-09T20:25:08+02:00"
},
{
"hash": "64b8ab3",
"short": "fix(mana-media): commit initial schema migration + run on startup",
"type": "fix",
"scope": "mana-media",
"additions": 697,
"deletions": 0,
"timestamp": "2026-04-10T02:51:41+02:00"
}
],
"review_state": "auto",
"llm": {
"model": null,
"generated_at": null
}
}