{ "date": "2026-03-27", "day_number": 66, "weekday": "Freitag", "commits": 66, "authors": [ { "name": "Till JS", "count": 66 } ], "additions": 57251, "deletions": 126214, "net_lines": -68963, "files_changed": 1709, "new_files": 0, "deleted_files": 0, "session": { "first_commit_at": "2026-03-27T10:17:58.000Z", "last_commit_at": "2026-03-28T02:15:29.000Z", "total_span_minutes": 958, "active_minutes": 287, "pauses": [ { "from": "13:10", "to": "16:48", "minutes": 218 }, { "from": "16:48", "to": "17:35", "minutes": 47 }, { "from": "17:35", "to": "21:03", "minutes": 207 }, { "from": "22:43", "to": "02:02", "minutes": 199 } ], "longest_focus_minutes": 112 }, "top_dirs": [ { "path": "services/mana-core-auth/src", "pct": 11 }, { "path": "packages/bot-services/src", "pct": 3 }, { "path": "apps/todo/apps/web", "pct": 3 }, { "path": "apps/inventar/apps/web", "pct": 3 }, { "path": "apps/presi/apps/backend", "pct": 3 } ], "top_extensions": [ { "ext": ".ts", "count": 1100 }, { "ext": ".svelte", "count": 245 }, { "ext": ".json", "count": 161 }, { "ext": ".go", "count": 125 }, { "ext": ".md", "count": 85 }, { "ext": "", "count": 43 } ], "tags": ["infra", "auth", "apps", "local-first", "services"], "commits_list": [ { "hash": "2e4bb9b", "short": "feat(local-first): add local-first architecture with Dexie.js, Go sync server, and Todo pilot", "type": "feat", "scope": "local-first", "additions": 4388, "deletions": 340, "timestamp": "2026-03-27T11:17:58+01:00" }, { "hash": "86d1da3", "short": "feat(inventar): add configurable inventory management app", "type": "feat", "scope": "inventar", "additions": 5050, "deletions": 0, "timestamp": "2026-03-27T11:21:36+01:00" }, { "hash": "cc50c0c", "short": "feat(auth): add password strength indicator and magic links", "type": "feat", "scope": "auth", "additions": 430, "deletions": 1, "timestamp": "2026-03-27T11:23:09+01:00" }, { "hash": "c6b1f83", "short": "test(auth): add tests for audit log, magic links, and security events", "type": "test", "scope": "auth", "additions": 547, "deletions": 0, "timestamp": "2026-03-27T11:29:24+01:00" }, { "hash": "63376c1", "short": "fix(mana-sync): correct JWKS URL to /api/auth/jwks", "type": "fix", "scope": "mana-sync", "additions": 1, "deletions": 1, "timestamp": "2026-03-27T11:38:00+01:00" }, { "hash": "17df7b3", "short": "feat(auth): add Gilden (guilds) shared Mana pool system", "type": "feat", "scope": "auth", "additions": 1900, "deletions": 969, "timestamp": "2026-03-27T11:38:19+01:00" }, { "hash": "2624e5a", "short": "feat(pricing): migrate to Mana Quelle S-XXL subscription tiers with new Stripe products", "type": "feat", "scope": "pricing", "additions": 834, "deletions": 440, "timestamp": "2026-03-27T11:43:43+01:00" }, { "hash": "8f56feb", "short": "feat(auth): session management UI and improved account lockout feedback", "type": "feat", "scope": "auth", "additions": 898, "deletions": 4, "timestamp": "2026-03-27T11:49:17+01:00" }, { "hash": "b85c32f", "short": "feat(todo): wire up browser sync with Go server", "type": "feat", "scope": "todo", "additions": 62, "deletions": 1, "timestamp": "2026-03-27T11:50:43+01:00" }, { "hash": "bac0a82", "short": "docs(auth): document Gilden endpoints and architecture in CLAUDE.md", "type": "docs", "scope": "auth", "additions": 71, "deletions": 0, "timestamp": "2026-03-27T11:50:56+01:00" }, { "hash": "fe8f0a2", "short": "fix(pricing): update remaining content pages to Mana Quelle naming and new prices", "type": "fix", "scope": "pricing", "additions": 42, "deletions": 46, "timestamp": "2026-03-27T11:52:59+01:00" }, { "hash": "b16e245", "short": "feat(zitare): migrate to local-first with Dexie.js", "type": "feat", "scope": "zitare", "additions": 649, "deletions": 671, "timestamp": "2026-03-27T12:05:01+01:00" }, { "hash": "3a13355", "short": "fix(auth): add GuildPoolService mock to credits unit tests", "type": "fix", "scope": "auth", "additions": 27, "deletions": 12, "timestamp": "2026-03-27T12:21:37+01:00" }, { "hash": "d4c6f25", "short": "docs: add devlog for 2026-03-25 and update 2026-03-26", "type": null, "scope": null, "additions": 332, "deletions": 217, "timestamp": "2026-03-27T12:33:06+01:00" }, { "hash": "427195d", "short": "feat(todo): add Hono + Bun server for compute-only endpoints", "type": "feat", "scope": "todo", "additions": 543, "deletions": 0, "timestamp": "2026-03-27T12:40:28+01:00" }, { "hash": "2c9a368", "short": "feat(apps): migrate Calendar, Clock, Contacts, ManaDeck to local-first", "type": "feat", "scope": "apps", "additions": 1594, "deletions": 764, "timestamp": "2026-03-27T13:10:07+01:00" }, { "hash": "8f40de2", "short": "docs: update CLAUDE.md and migration plan for local-first architecture", "type": null, "scope": null, "additions": 62, "deletions": 4, "timestamp": "2026-03-27T16:48:19+01:00" }, { "hash": "ce51fd5", "short": "feat(apps): migrate Presi, Picture, Inventar, NutriPhi, Planta, Storage to local-first", "type": "feat", "scope": "apps", "additions": 1621, "deletions": 209, "timestamp": "2026-03-27T17:35:38+01:00" }, { "hash": "819568c", "short": "feat(infra): consolidate 21 Matrix bots into Go binary + add Go API gateway", "type": "feat", "scope": "infra", "additions": 9927, "deletions": 47044, "timestamp": "2026-03-27T21:03:00+01:00" }, { "hash": "3589558", "short": "fix(gateway): change api-gateway port to 3030 (3010 used by mukke-backend)", "type": "fix", "scope": "gateway", "additions": 3, "deletions": 3, "timestamp": "2026-03-27T21:05:00+01:00" }, { "hash": "7d1842e", "short": "fix(gateway): use port 3060 (3010 = mukke, 3030 = chat)", "type": "fix", "scope": "gateway", "additions": 3, "deletions": 3, "timestamp": "2026-03-27T21:07:55+01:00" }, { "hash": "a70359d", "short": "fix(gateway): use correct database name 'mana' + sslmode=disable", "type": "fix", "scope": "gateway", "additions": 1, "deletions": 1, "timestamp": "2026-03-27T21:09:27+01:00" }, { "hash": "8d880f1", "short": "feat(apps): migrate Chat, Questions, Mukke, Context, Photos to local-first", "type": "feat", "scope": "apps", "additions": 826, "deletions": 173, "timestamp": "2026-03-27T21:17:56+01:00" }, { "hash": "c81527c", "short": "fix(matrix-bot): remove port 4000 host mapping (conflicts with synapse)", "type": "fix", "scope": "matrix-bot", "additions": 20, "deletions": 2, "timestamp": "2026-03-27T21:25:19+01:00" }, { "hash": "a31ccc6", "short": "feat(infra): add api.mana.how route + Prometheus scrape targets for Go services", "type": "feat", "scope": "infra", "additions": 434, "deletions": 95, "timestamp": "2026-03-27T21:27:04+01:00" }, { "hash": "7754cf6", "short": "refactor(skilltree): replace custom idb storage with @manacore/local-store", "type": "refactor", "scope": "skilltree", "additions": 217, "deletions": 471, "timestamp": "2026-03-27T21:32:47+01:00" }, { "hash": "16e0d99", "short": "feat(gpu-server): complete GPU server setup with AI services, monitoring, and public access", "type": "feat", "scope": "gpu-server", "additions": 1245, "deletions": 7, "timestamp": "2026-03-27T21:35:30+01:00" }, { "hash": "97ef728", "short": "docs: update local-first migration plan and CLAUDE.md to reflect 19/19 completion", "type": null, "scope": null, "additions": 38, "deletions": 21, "timestamp": "2026-03-27T21:36:02+01:00" }, { "hash": "c67ed0d", "short": "feat(gpu-server): add API key auth, VRAM management, and Piper TTS voices", "type": "feat", "scope": "gpu-server", "additions": 65, "deletions": 6, "timestamp": "2026-03-27T21:54:35+01:00" }, { "hash": "4b0f5a2", "short": "feat(mana-search): rewrite search service from NestJS to Go", "type": "feat", "scope": "mana-search", "additions": 1607, "deletions": 3594, "timestamp": "2026-03-27T21:58:40+01:00" }, { "hash": "02bd9d3", "short": "feat(apps): integrate GPU services into Picture and Chat apps", "type": "feat", "scope": "apps", "additions": 239, "deletions": 3, "timestamp": "2026-03-27T21:59:46+01:00" }, { "hash": "15deaf4", "short": "feat(services): create mana-credits service (Hono + Bun)", "type": "feat", "scope": "services", "additions": 2373, "deletions": 0, "timestamp": "2026-03-27T22:08:43+01:00" }, { "hash": "28bbd7b", "short": "fix(mana-search): Go best practices hardening", "type": "fix", "scope": "mana-search", "additions": 41, "deletions": 19, "timestamp": "2026-03-27T22:09:31+01:00" }, { "hash": "64f7f76", "short": "feat(infra): add Go web crawler (mana-crawler-go)", "type": "feat", "scope": "infra", "additions": 1599, "deletions": 0, "timestamp": "2026-03-27T22:10:45+01:00" }, { "hash": "b0009c2", "short": "refactor(credits): route credit calls to mana-credits service", "type": "refactor", "scope": "credits", "additions": 59, "deletions": 33, "timestamp": "2026-03-27T22:13:21+01:00" }, { "hash": "3e2558a", "short": "fix(crawler): use background context for crawl jobs (outlive HTTP request)", "type": "fix", "scope": "crawler", "additions": 3, "deletions": 2, "timestamp": "2026-03-27T22:15:36+01:00" }, { "hash": "c079871", "short": "refactor(auth): remove credits, gifts, and credit-webhooks from mana-core-auth", "type": "refactor", "scope": "auth", "additions": 63, "deletions": 4185, "timestamp": "2026-03-27T22:19:42+01:00" }, { "hash": "fa16f1f", "short": "feat(apps): add GPU server fallback to all LLM-using apps", "type": "feat", "scope": "apps", "additions": 13, "deletions": 7, "timestamp": "2026-03-27T22:21:20+01:00" }, { "hash": "feeebfb", "short": "feat(infra): add mana-credits to docker-compose, fix port to 3061", "type": "feat", "scope": "infra", "additions": 48, "deletions": 9, "timestamp": "2026-03-27T22:21:54+01:00" }, { "hash": "68004aa", "short": "feat(infra): add mana-crawler Go service to docker-compose", "type": "feat", "scope": "infra", "additions": 30, "deletions": 0, "timestamp": "2026-03-27T22:23:37+01:00" }, { "hash": "d0ef667", "short": "fix(crawler): set SSL_CERT_FILE for HTTPS in Alpine container", "type": "fix", "scope": "crawler", "additions": 3, "deletions": 0, "timestamp": "2026-03-27T22:24:56+01:00" }, { "hash": "585cdc1", "short": "feat(mana-notify): rewrite notification service from NestJS to Go", "type": "feat", "scope": "mana-notify", "additions": 2853, "deletions": 1, "timestamp": "2026-03-27T22:28:19+01:00" }, { "hash": "313779f", "short": "fix(crawler): skip TLS verification for outgoing crawl requests", "type": "fix", "scope": "crawler", "additions": 13, "deletions": 1, "timestamp": "2026-03-27T22:31:03+01:00" }, { "hash": "ef19018", "short": "feat(infra): add mana-sync and mana-notify-go to docker-compose", "type": "feat", "scope": "infra", "additions": 908, "deletions": 2876, "timestamp": "2026-03-27T22:35:05+01:00" }, { "hash": "21a5f87", "short": "docs: add comprehensive overview of local-first migration and service extraction", "type": null, "scope": null, "additions": 154, "deletions": 0, "timestamp": "2026-03-27T22:38:13+01:00" }, { "hash": "d56737f", "short": "fix(infra): remove clock-backend references from docker-compose", "type": "fix", "scope": "infra", "additions": 3, "deletions": 5, "timestamp": "2026-03-27T22:38:21+01:00" }, { "hash": "0bf5a90", "short": "fix(infra): change mana-notify port to 3041 (3040 used by picture-backend)", "type": "fix", "scope": "infra", "additions": 3, "deletions": 3, "timestamp": "2026-03-27T22:39:36+01:00" }, { "hash": "82de694", "short": "fix(infra): change mana-notify port to 3042 (3041 used by citycorners)", "type": "fix", "scope": "infra", "additions": 8, "deletions": 8, "timestamp": "2026-03-27T22:40:06+01:00" }, { "hash": "32939fb", "short": "refactor(infra): remove zitare + clock NestJS backends, add shared-hono package", "type": "refactor", "scope": "infra", "additions": 1237, "deletions": 2728, "timestamp": "2026-03-27T22:43:46+01:00" }, { "hash": "5c33962", "short": "feat(local-first): migrate tags + task stores to reactive liveQuery across all apps", "type": "feat", "scope": "local-first", "additions": 2348, "deletions": 4389, "timestamp": "2026-03-28T02:02:52+01:00" }, { "hash": "dd2f814", "short": "refactor(presi): replace NestJS backend with lightweight Hono server", "type": "refactor", "scope": "presi", "additions": 393, "deletions": 3038, "timestamp": "2026-03-28T02:08:40+01:00" }, { "hash": "e7a8567", "short": "feat(services): create mana-subscriptions, remove from mana-core-auth", "type": "feat", "scope": "services", "additions": 14, "deletions": 8727, "timestamp": "2026-03-28T02:11:42+01:00" }, { "hash": "d7799ec", "short": "refactor(photos): remove NestJS backend, use local-first + direct mana-media", "type": "refactor", "scope": "photos", "additions": 243, "deletions": 1816, "timestamp": "2026-03-28T02:18:03+01:00" }, { "hash": "ced7dd7", "short": "feat(monitoring): add mana-sync, mana-notify, mana-crawler to Prometheus", "type": "feat", "scope": "monitoring", "additions": 21, "deletions": 0, "timestamp": "2026-03-28T02:18:21+01:00" }, { "hash": "30e124e", "short": "feat(local-first): migrate 9 apps to reactive useLiveQuery reads", "type": "feat", "scope": "local-first", "additions": 2514, "deletions": 3122, "timestamp": "2026-03-28T02:27:46+01:00" }, { "hash": "753c685", "short": "feat(services): create mana-analytics, remove feedback/analytics/ai from auth", "type": "feat", "scope": "services", "additions": 562, "deletions": 83, "timestamp": "2026-03-28T02:29:24+01:00" }, { "hash": "d0848ea", "short": "test(go-services): add unit tests for mana-search-go and mana-notify-go", "type": "test", "scope": "go-services", "additions": 1376, "deletions": 0, "timestamp": "2026-03-28T02:33:59+01:00" }, { "hash": "4ff3ceb", "short": "harden(mana-sync): fix WebSocket auth, add validation, tests, and docs", "type": "harden", "scope": "mana-sync", "additions": 760, "deletions": 32, "timestamp": "2026-03-28T02:41:56+01:00" }, { "hash": "924c152", "short": "feat(local-first): migrate remaining 6 apps to reactive useLiveQuery reads", "type": "feat", "scope": "local-first", "additions": 1818, "deletions": 1540, "timestamp": "2026-03-28T02:42:13+01:00" }, { "hash": "61ee1ae", "short": "feat(services): create mana-auth (Hono + Bun) — Phase 5 auth rewrite", "type": "feat", "scope": "services", "additions": 1518, "deletions": 0, "timestamp": "2026-03-28T02:43:44+01:00" }, { "hash": "4318948", "short": "feat(mana-auth): add guilds, api-keys, me, security, auth routes", "type": "feat", "scope": "mana-auth", "additions": 681, "deletions": 125, "timestamp": "2026-03-28T02:57:22+01:00" }, { "hash": "8d36aba", "short": "feat(infra): add Forgejo for self-hosted Git + CI/CD", "type": "feat", "scope": "infra", "additions": 298, "deletions": 97, "timestamp": "2026-03-28T03:00:50+01:00" }, { "hash": "14099cc", "short": "docs(infra): add PORT_SCHEMA.md + update Prometheus scrape targets", "type": "docs", "scope": "infra", "additions": 169, "deletions": 14, "timestamp": "2026-03-28T03:02:12+01:00" }, { "hash": "5b67328", "short": "feat(infra): delete mana-core-auth (NestJS), replace with mana-auth (Hono+Bun)", "type": "feat", "scope": "infra", "additions": 43, "deletions": 36123, "timestamp": "2026-03-28T03:04:01+01:00" }, { "hash": "b37a451", "short": "refactor(stores): rewrite NutriPhi + Mukke stores to use IndexedDB", "type": "refactor", "scope": "stores", "additions": 1327, "deletions": 2126, "timestamp": "2026-03-28T03:12:37+01:00" }, { "hash": "28bf9e5", "short": "fix(shared-auth): add explicit AuthServiceInterface to fix TS inference truncation", "type": "fix", "scope": "shared-auth", "additions": 79, "deletions": 3, "timestamp": "2026-03-28T03:15:29+01:00" } ], "review_state": "auto", "llm": { "model": null, "generated_at": null } }