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

909 lines
22 KiB
JSON

{
"date": "2026-04-07",
"day_number": 76,
"weekday": "Dienstag",
"commits": 89,
"authors": [
{
"name": "Till JS",
"count": 89
}
],
"additions": 38365,
"deletions": 22177,
"net_lines": 16188,
"files_changed": 679,
"new_files": 0,
"deleted_files": 0,
"session": {
"first_commit_at": "2026-04-07T10:26:10.000Z",
"last_commit_at": "2026-04-07T22:00:52.000Z",
"total_span_minutes": 695,
"active_minutes": 483,
"pauses": [
{
"from": "14:57",
"to": "15:36",
"minutes": 39
},
{
"from": "16:20",
"to": "17:05",
"minutes": 45
},
{
"from": "17:37",
"to": "18:19",
"minutes": 42
},
{
"from": "20:03",
"to": "20:37",
"minutes": 34
},
{
"from": "20:37",
"to": "21:29",
"minutes": 52
}
],
"longest_focus_minutes": 151
},
"top_dirs": [
{
"path": "apps/mana/apps/web",
"pct": 55
},
{
"path": "apps/mana/apps/landing",
"pct": 5
},
{
"path": "apps/docs/src/content",
"pct": 3
},
{
"path": "services/mana-events/src",
"pct": 3
},
{
"path": "services/mana-auth/src",
"pct": 2
}
],
"top_extensions": [
{
"ext": ".ts",
"count": 403
},
{
"ext": ".md",
"count": 157
},
{
"ext": ".svelte",
"count": 119
},
{
"ext": ".json",
"count": 62
},
{
"ext": ".mdx",
"count": 27
},
{
"ext": ".astro",
"count": 17
}
],
"tags": ["mana/web", "cycles", "dreams", "events", "crypto"],
"commits_list": [
{
"hash": "22a7394",
"short": "chore: complete ManaCore → Mana rename (docs, go modules, plists, images)",
"type": null,
"scope": null,
"additions": 2288,
"deletions": 4417,
"timestamp": "2026-04-07T12:26:10+02:00"
},
{
"hash": "b900df5",
"short": "docs(mana/web): add data layer audit report",
"type": "docs",
"scope": "mana/web",
"additions": 169,
"deletions": 0,
"timestamp": "2026-04-07T12:50:56+02:00"
},
{
"hash": "0909538",
"short": "fix(mana/web): sprint 1 data integrity (LWW, retry, atomic cascades)",
"type": "fix",
"scope": "mana/web",
"additions": 228,
"deletions": 61,
"timestamp": "2026-04-07T12:51:10+02:00"
},
{
"hash": "28942ab",
"short": "fix(mana/web): sprint 2 — auth-aware data layer + guest migration",
"type": "fix",
"scope": "mana/web",
"additions": 182,
"deletions": 47,
"timestamp": "2026-04-07T13:07:12+02:00"
},
{
"hash": "a9529bc",
"short": "fix(mana-sync): enable row-level security on sync_changes",
"type": "fix",
"scope": "mana-sync",
"additions": 124,
"deletions": 75,
"timestamp": "2026-04-07T13:07:26+02:00"
},
{
"hash": "af9b1f9",
"short": "fix(mac-mini): make startup.sh idempotent and non-destructive",
"type": "fix",
"scope": "mac-mini",
"additions": 29,
"deletions": 9,
"timestamp": "2026-04-07T13:19:46+02:00"
},
{
"hash": "ce04f43",
"short": "fix(timeblocks): type errors from recurrence migration",
"type": "fix",
"scope": "timeblocks",
"additions": 26,
"deletions": 11,
"timestamp": "2026-04-07T13:22:59+02:00"
},
{
"hash": "9e0ade4",
"short": "fix(mana/web): sprint 3 — type-safe sync protocol + tests",
"type": "fix",
"scope": "mana/web",
"additions": 671,
"deletions": 219,
"timestamp": "2026-04-07T13:38:23+02:00"
},
{
"hash": "3ffbf37",
"short": "fix(shared-branding): dedupe duplicate manaSvg from rename collision",
"type": "fix",
"scope": "shared-branding",
"additions": 0,
"deletions": 4,
"timestamp": "2026-04-07T13:39:40+02:00"
},
{
"hash": "fc743a4",
"short": "fix: type errors from ManaCore→Mana rename and stale templates",
"type": null,
"scope": null,
"additions": 10,
"deletions": 69,
"timestamp": "2026-04-07T13:42:17+02:00"
},
{
"hash": "440f650",
"short": "fix: extract types from .svelte files for proper named re-exports",
"type": null,
"scope": null,
"additions": 143,
"deletions": 135,
"timestamp": "2026-04-07T13:53:13+02:00"
},
{
"hash": "21681a2",
"short": "chore(mana/web): raise eslint heap to 8GB to prevent OOM",
"type": "chore",
"scope": "mana/web",
"additions": 1,
"deletions": 1,
"timestamp": "2026-04-07T13:53:33+02:00"
},
{
"hash": "e974761",
"short": "chore(workspace): unify vitest to ^4.1.2 across all packages",
"type": "chore",
"scope": "workspace",
"additions": 7182,
"deletions": 11701,
"timestamp": "2026-04-07T13:58:29+02:00"
},
{
"hash": "b9fdf08",
"short": "fix(cards-database): add .js extensions to relative imports for NodeNext",
"type": "fix",
"scope": "cards-database",
"additions": 30,
"deletions": 30,
"timestamp": "2026-04-07T14:01:44+02:00"
},
{
"hash": "8e71096",
"short": "feat(dreams): scaffold Traumtagebuch module",
"type": "feat",
"scope": "dreams",
"additions": 1287,
"deletions": 4,
"timestamp": "2026-04-07T14:07:12+02:00"
},
{
"hash": "22d3d2b",
"short": "feat(dreams): quick wins — date/time picker, filter tabs, symbol filtering",
"type": "feat",
"scope": "dreams",
"additions": 303,
"deletions": 12,
"timestamp": "2026-04-07T14:12:12+02:00"
},
{
"hash": "30022e8",
"short": "feat(events): scaffold social events module (Phase 1a, local-only)",
"type": "feat",
"scope": "events",
"additions": 1717,
"deletions": 5,
"timestamp": "2026-04-07T14:12:41+02:00"
},
{
"hash": "733dca4",
"short": "fix(mana/web): sprint 4 — perf, quota, telemetry, indexed queries",
"type": "fix",
"scope": "mana/web",
"additions": 458,
"deletions": 155,
"timestamp": "2026-04-07T14:18:22+02:00"
},
{
"hash": "feb1674",
"short": "docs(mana/web): mark sprints 1-4 complete in data layer audit",
"type": "docs",
"scope": "mana/web",
"additions": 118,
"deletions": 97,
"timestamp": "2026-04-07T14:22:05+02:00"
},
{
"hash": "980a5e9",
"short": "feat(dreams): symbol library with detail view, meaning, mood stats",
"type": "feat",
"scope": "dreams",
"additions": 1018,
"deletions": 223,
"timestamp": "2026-04-07T14:22:17+02:00"
},
{
"hash": "2167467",
"short": "feat(events): add mana-events service + public RSVP flow (Phase 1b)",
"type": "feat",
"scope": "events",
"additions": 1764,
"deletions": 11,
"timestamp": "2026-04-07T14:27:48+02:00"
},
{
"hash": "771721c",
"short": "feat(dreams): polish symbol library — sort, auto-save, merge, navigation",
"type": "feat",
"scope": "dreams",
"additions": 420,
"deletions": 65,
"timestamp": "2026-04-07T14:28:05+02:00"
},
{
"hash": "575c5c3",
"short": "feat(mana/web): subscribe data layer events to toasts + Sentry + scheduler",
"type": "feat",
"scope": "mana/web",
"additions": 151,
"deletions": 9,
"timestamp": "2026-04-07T14:34:18+02:00"
},
{
"hash": "fbab96c",
"short": "feat(cycles): add menstrual cycle tracking module",
"type": "feat",
"scope": "cycles",
"additions": 1780,
"deletions": 0,
"timestamp": "2026-04-07T14:35:33+02:00"
},
{
"hash": "836c969",
"short": "fix(events): tech debt — self-heal snapshots, tombstones, polling cleanup, RSVP i18n",
"type": "fix",
"scope": "events",
"additions": 283,
"deletions": 59,
"timestamp": "2026-04-07T14:36:11+02:00"
},
{
"hash": "578c9f3",
"short": "feat(dreams): voice capture via mana-stt",
"type": "feat",
"scope": "dreams",
"additions": 632,
"deletions": 1,
"timestamp": "2026-04-07T14:39:11+02:00"
},
{
"hash": "ae64865",
"short": "test(mana/web): unbreak three pre-existing test files",
"type": "test",
"scope": "mana/web",
"additions": 30,
"deletions": 6,
"timestamp": "2026-04-07T14:48:30+02:00"
},
{
"hash": "85fda7b",
"short": "fix(mana/web): three runtime regressions from sprint 1-3 data layer rewrite",
"type": "fix",
"scope": "mana/web",
"additions": 49,
"deletions": 13,
"timestamp": "2026-04-07T14:50:19+02:00"
},
{
"hash": "473b8c0",
"short": "feat(cycles): auto-detect period start and end",
"type": "feat",
"scope": "cycles",
"additions": 315,
"deletions": 20,
"timestamp": "2026-04-07T14:52:06+02:00"
},
{
"hash": "42c9eb1",
"short": "perf(mana/web): index updatedAt for recent-X dashboard widgets",
"type": "perf",
"scope": "mana/web",
"additions": 56,
"deletions": 16,
"timestamp": "2026-04-07T14:55:11+02:00"
},
{
"hash": "333855c",
"short": "feat(cycles): edit and delete past day entries",
"type": "feat",
"scope": "cycles",
"additions": 130,
"deletions": 20,
"timestamp": "2026-04-07T14:55:17+02:00"
},
{
"hash": "ad02158",
"short": "perf(mana/web): pipeline SSE reads against sequential apply",
"type": "perf",
"scope": "mana/web",
"additions": 61,
"deletions": 31,
"timestamp": "2026-04-07T14:57:21+02:00"
},
{
"hash": "82559f6",
"short": "feat(mana/web): local activity log + periodic prune",
"type": "feat",
"scope": "mana/web",
"additions": 448,
"deletions": 149,
"timestamp": "2026-04-07T15:36:37+02:00"
},
{
"hash": "984c516",
"short": "feat(cycles): extract UI strings to svelte-i18n",
"type": "feat",
"scope": "cycles",
"additions": 369,
"deletions": 48,
"timestamp": "2026-04-07T15:45:27+02:00"
},
{
"hash": "63a6f62",
"short": "fix(dreams): proxy tolerates octet-stream + invalid form bodies",
"type": "fix",
"scope": "dreams",
"additions": 13,
"deletions": 3,
"timestamp": "2026-04-07T15:48:36+02:00"
},
{
"hash": "a6828a1",
"short": "fix(dreams): explain why the mic prompt isn't appearing",
"type": "fix",
"scope": "dreams",
"additions": 63,
"deletions": 4,
"timestamp": "2026-04-07T15:55:05+02:00"
},
{
"hash": "f7a5bb8",
"short": "fix(dreams): macOS-aware mic deny message + force-retry escape hatch",
"type": "fix",
"scope": "dreams",
"additions": 72,
"deletions": 12,
"timestamp": "2026-04-07T16:10:44+02:00"
},
{
"hash": "b97e2b5",
"short": "test(cycles): integration tests with fake-indexeddb",
"type": "test",
"scope": "cycles",
"additions": 297,
"deletions": 0,
"timestamp": "2026-04-07T16:11:04+02:00"
},
{
"hash": "59a9c05",
"short": "feat(cycles): symptom management UI",
"type": "feat",
"scope": "cycles",
"additions": 444,
"deletions": 9,
"timestamp": "2026-04-07T16:19:29+02:00"
},
{
"hash": "e7585fb",
"short": "fix(mana-events): cascade rate buckets when an event is unpublished",
"type": "fix",
"scope": "mana-events",
"additions": 3,
"deletions": 1,
"timestamp": "2026-04-07T16:20:05+02:00"
},
{
"hash": "b0a9dfe",
"short": "feat(cycles): month calendar view with phase coloring",
"type": "feat",
"scope": "cycles",
"additions": 347,
"deletions": 0,
"timestamp": "2026-04-07T17:05:20+02:00"
},
{
"hash": "0896b1a",
"short": "test(cycles): i18n key parity across all 5 locales",
"type": "test",
"scope": "cycles",
"additions": 72,
"deletions": 0,
"timestamp": "2026-04-07T17:12:17+02:00"
},
{
"hash": "9e802b1",
"short": "feat(cycles): dashboard widget with phase + countdown",
"type": "feat",
"scope": "cycles",
"additions": 179,
"deletions": 1,
"timestamp": "2026-04-07T17:37:27+02:00"
},
{
"hash": "1ba5948",
"short": "feat(mana/web): encryption foundation — phase 1 (no-op)",
"type": "feat",
"scope": "mana/web",
"additions": 816,
"deletions": 0,
"timestamp": "2026-04-07T18:19:41+02:00"
},
{
"hash": "343804b",
"short": "refactor(cycles): make date formatting locale-aware",
"type": "refactor",
"scope": "cycles",
"additions": 79,
"deletions": 15,
"timestamp": "2026-04-07T18:23:58+02:00"
},
{
"hash": "4d46cbb",
"short": "i18n(cycles): real translations for it/fr/es",
"type": "i18n",
"scope": "cycles",
"additions": 180,
"deletions": 180,
"timestamp": "2026-04-07T18:28:31+02:00"
},
{
"hash": "3a4c665",
"short": "test(events): playwright e2e specs + flake-resistant config",
"type": "test",
"scope": "events",
"additions": 328,
"deletions": 0,
"timestamp": "2026-04-07T18:36:45+02:00"
},
{
"hash": "e991542",
"short": "feat(mana-auth): encryption vault — phase 2 (server-side master key custody)",
"type": "feat",
"scope": "mana-auth",
"additions": 913,
"deletions": 5,
"timestamp": "2026-04-07T18:38:09+02:00"
},
{
"hash": "4d9bf78",
"short": "docs(cycles): add ROADMAP with future feature ideas",
"type": "docs",
"scope": "cycles",
"additions": 194,
"deletions": 0,
"timestamp": "2026-04-07T18:39:38+02:00"
},
{
"hash": "c5aeaf5",
"short": "feat(memoro): voice recording → mana-stt transcription pipeline",
"type": "feat",
"scope": "memoro",
"additions": 568,
"deletions": 8,
"timestamp": "2026-04-07T18:48:41+02:00"
},
{
"hash": "354cbcb",
"short": "feat(mana/web): encryption phase 3 — vault client + record helpers + layout wire-up",
"type": "feat",
"scope": "mana/web",
"additions": 840,
"deletions": 0,
"timestamp": "2026-04-07T18:49:22+02:00"
},
{
"hash": "6402425",
"short": "fix(events): production wiring + polling resilience (quick wins)",
"type": "fix",
"scope": "events",
"additions": 116,
"deletions": 5,
"timestamp": "2026-04-07T18:53:29+02:00"
},
{
"hash": "bed08a1",
"short": "feat(mana/web): encryption phase 4 — notes pilot live",
"type": "feat",
"scope": "mana/web",
"additions": 298,
"deletions": 30,
"timestamp": "2026-04-07T19:00:11+02:00"
},
{
"hash": "897256c",
"short": "test(mana-events): 35 server tests covering routes + sweeper",
"type": "test",
"scope": "mana-events",
"additions": 794,
"deletions": 29,
"timestamp": "2026-04-07T19:02:54+02:00"
},
{
"hash": "3eabbc5",
"short": "i18n(events): RSVP page in it/fr/es + extract e2e helper",
"type": "i18n",
"scope": "events",
"additions": 143,
"deletions": 24,
"timestamp": "2026-04-07T19:11:59+02:00"
},
{
"hash": "af92720",
"short": "feat(mana/web): encryption phase 5 — rollout to chat/dreams/memoro/contacts/cycles/finance",
"type": "feat",
"scope": "mana/web",
"additions": 537,
"deletions": 131,
"timestamp": "2026-04-07T19:28:26+02:00"
},
{
"hash": "6a60e22",
"short": "feat(events): bring list (wer bringt was?) — Phase 2",
"type": "feat",
"scope": "events",
"additions": 1296,
"deletions": 16,
"timestamp": "2026-04-07T19:31:39+02:00"
},
{
"hash": "b2bddfe",
"short": "docs(events): roadmap of remaining Phase 2 work + tech debt",
"type": "docs",
"scope": "events",
"additions": 139,
"deletions": 0,
"timestamp": "2026-04-07T19:35:16+02:00"
},
{
"hash": "73f294b",
"short": "feat(mana/web): encryption phase 6.1 — cards, presi, inventar, planta",
"type": "feat",
"scope": "mana/web",
"additions": 106,
"deletions": 43,
"timestamp": "2026-04-07T19:44:38+02:00"
},
{
"hash": "42bd2a3",
"short": "chore(deploy): wire MANA_STT_URL/API_KEY into mana-web container",
"type": "chore",
"scope": "deploy",
"additions": 5,
"deletions": 0,
"timestamp": "2026-04-07T19:47:42+02:00"
},
{
"hash": "5d4123d",
"short": "fix(mana/web): commit module-registry + module.config.ts files (build-critical)",
"type": "fix",
"scope": "mana/web",
"additions": 526,
"deletions": 1,
"timestamp": "2026-04-07T19:49:58+02:00"
},
{
"hash": "de33ed8",
"short": "fix(mana/web): disable prerender on /offline (FIXME)",
"type": "fix",
"scope": "mana/web",
"additions": 10,
"deletions": 1,
"timestamp": "2026-04-07T19:50:32+02:00"
},
{
"hash": "6b8e2c7",
"short": "feat(mana/web): encryption phase 6.2/6.3 — settings page + onboarding banner",
"type": "feat",
"scope": "mana/web",
"additions": 659,
"deletions": 9,
"timestamp": "2026-04-07T19:54:09+02:00"
},
{
"hash": "28395b3",
"short": "docs: GPU tunnel setup, STT env wiring, and 2026-04-07 postmortem",
"type": null,
"scope": null,
"additions": 411,
"deletions": 14,
"timestamp": "2026-04-07T19:59:04+02:00"
},
{
"hash": "4bdf423",
"short": "docs(mana/web): roundup data layer audit through encryption phase 6",
"type": "docs",
"scope": "mana/web",
"additions": 211,
"deletions": 60,
"timestamp": "2026-04-07T20:03:43+02:00"
},
{
"hash": "c875b4e",
"short": "feat(crypto): phase 7.1 — encrypt timeBlocks-coupled tasks + calendar events",
"type": "feat",
"scope": "crypto",
"additions": 360,
"deletions": 174,
"timestamp": "2026-04-07T20:37:59+02:00"
},
{
"hash": "40b7069",
"short": "feat(crypto): phase 7.2 — encrypt storeless modules (questions, links, documents, meals)",
"type": "feat",
"scope": "crypto",
"additions": 152,
"deletions": 73,
"timestamp": "2026-04-07T21:29:32+02:00"
},
{
"hash": "be611cd",
"short": "feat(crypto): phase 8 — encrypt remaining tables (storage, picture, music, events, guests)",
"type": "feat",
"scope": "crypto",
"additions": 194,
"deletions": 74,
"timestamp": "2026-04-07T21:44:18+02:00"
},
{
"hash": "25aabc3",
"short": "docs(audit): roll up Phase 7 + 8 in DATA_LAYER_AUDIT.md",
"type": "docs",
"scope": "audit",
"additions": 79,
"deletions": 43,
"timestamp": "2026-04-07T21:55:04+02:00"
},
{
"hash": "2f48f86",
"short": "feat(crypto): phase 9 milestone 1 — recovery code primitives",
"type": "feat",
"scope": "crypto",
"additions": 542,
"deletions": 0,
"timestamp": "2026-04-07T22:00:43+02:00"
},
{
"hash": "f46d132",
"short": "feat(mana-auth): phase 9 milestone 2 — vault recovery wrap + zero-knowledge",
"type": "feat",
"scope": "mana-auth",
"additions": 647,
"deletions": 39,
"timestamp": "2026-04-07T22:05:49+02:00"
},
{
"hash": "c27cb84",
"short": "fix(mana/web): bundle rrule into SSR build to fix /calendar 500",
"type": "fix",
"scope": "mana/web",
"additions": 7,
"deletions": 1,
"timestamp": "2026-04-07T22:29:55+02:00"
},
{
"hash": "3a47389",
"short": "chore(mana/web): pre-launch cleanup — remove ghost backend API clients",
"type": "chore",
"scope": "mana/web",
"additions": 42,
"deletions": 2758,
"timestamp": "2026-04-07T22:30:24+02:00"
},
{
"hash": "171fbd1",
"short": "chore(mana/web): pre-launch module cleanup — schema collapse, dead code, lazy search",
"type": "chore",
"scope": "mana/web",
"additions": 162,
"deletions": 451,
"timestamp": "2026-04-07T22:31:08+02:00"
},
{
"hash": "a94abd3",
"short": "chore(macmini): pin COMPOSE_PROJECT_NAME=manacore-monorepo",
"type": "chore",
"scope": "macmini",
"additions": 12,
"deletions": 0,
"timestamp": "2026-04-07T22:31:25+02:00"
},
{
"hash": "85e3817",
"short": "chore(macmini/scripts): runbook hardening — status diff + ingress walk",
"type": "chore",
"scope": "macmini/scripts",
"additions": 147,
"deletions": 85,
"timestamp": "2026-04-07T22:31:53+02:00"
},
{
"hash": "4cfa869",
"short": "docs: PRE_LAUNCH_CLEANUP.md — what we removed before launch and why",
"type": null,
"scope": null,
"additions": 630,
"deletions": 0,
"timestamp": "2026-04-07T22:32:14+02:00"
},
{
"hash": "a55aae6",
"short": "chore(macmini): infra cleanup — compose env, blackbox mem, prometheus gpu probes",
"type": "chore",
"scope": "macmini",
"additions": 31,
"deletions": 25,
"timestamp": "2026-04-07T22:59:38+02:00"
},
{
"hash": "6de0193",
"short": "feat(vault-client): phase 9 milestone 3 — recovery + zero-knowledge flows",
"type": "feat",
"scope": "vault-client",
"additions": 396,
"deletions": 13,
"timestamp": "2026-04-07T23:01:16+02:00"
},
{
"hash": "56312ff",
"short": "feat(settings): phase 9 milestone 4 — zero-knowledge UI section",
"type": "feat",
"scope": "settings",
"additions": 363,
"deletions": 0,
"timestamp": "2026-04-07T23:03:35+02:00"
},
{
"hash": "78d949d",
"short": "feat(crypto): vault status endpoint + settings page hydration",
"type": "feat",
"scope": "crypto",
"additions": 205,
"deletions": 10,
"timestamp": "2026-04-07T23:19:49+02:00"
},
{
"hash": "a48b2d5",
"short": "feat(layout): lock-screen recovery code unlock modal",
"type": "feat",
"scope": "layout",
"additions": 258,
"deletions": 2,
"timestamp": "2026-04-07T23:24:32+02:00"
},
{
"hash": "ea165c8",
"short": "docs(audit): roll up Phase 9 in DATA_LAYER_AUDIT.md",
"type": "docs",
"scope": "audit",
"additions": 145,
"deletions": 35,
"timestamp": "2026-04-07T23:28:06+02:00"
},
{
"hash": "c2c9601",
"short": "test(mana-auth): vault service integration tests against real postgres",
"type": "test",
"scope": "mana-auth",
"additions": 501,
"deletions": 5,
"timestamp": "2026-04-07T23:39:48+02:00"
},
{
"hash": "24001e9",
"short": "feat(vault): rotate recovery code while zero-knowledge is active",
"type": "feat",
"scope": "vault",
"additions": 166,
"deletions": 1,
"timestamp": "2026-04-07T23:43:10+02:00"
},
{
"hash": "05ae348",
"short": "fix(macmini): blackbox-exporter uses 1.1.1.1/8.8.8.8 directly for DNS",
"type": "fix",
"scope": "macmini",
"additions": 11,
"deletions": 0,
"timestamp": "2026-04-07T23:47:57+02:00"
},
{
"hash": "109de61",
"short": "feat(picture,storage): pre-wired insert helpers for future generate/upload flows",
"type": "feat",
"scope": "picture,storage",
"additions": 62,
"deletions": 0,
"timestamp": "2026-04-07T23:52:20+02:00"
},
{
"hash": "a7e5b39",
"short": "feat(picture): encrypt boards + boardItems",
"type": "feat",
"scope": "picture",
"additions": 59,
"deletions": 16,
"timestamp": "2026-04-07T23:57:54+02:00"
},
{
"hash": "b961453",
"short": "docs(audit): roll up Phase 9 backlog sweep",
"type": "docs",
"scope": "audit",
"additions": 63,
"deletions": 48,
"timestamp": "2026-04-08T00:00:52+02:00"
}
],
"review_state": "auto",
"llm": {
"model": null,
"generated_at": null
}
}