146 Commits
Author SHA1 Message Date
JannisandClaude Sonnet 5.5 1da4423c52 feat: add AI service with Ollama, Claude and OpenAI-compatible adapters and admin API
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 11:03:28 +02:00
JannisandClaude Sonnet 5.5 14241c45f1 feat: add AI provider domain, rules and Phase9Ai migration
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 11:03:28 +02:00
JannisandClaude Sonnet 5.5 6790243689 docs: plan AI integration and learning tasks as phases 9 and 10
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 10:42:55 +02:00
JannisandClaude Sonnet 5.5 cc4f65b32d docs: document chat decisions and update roadmap
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:48:07 +02:00
JannisandClaude Sonnet 5.5 aa9b5e332a test: cover chat rules, UI and end-to-end behavior
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:48:07 +02:00
JannisandClaude Sonnet 5.5 e802ccf760 feat: add chat UI with unread badges, paging, images and reactions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:48:07 +02:00
JannisandClaude Sonnet 5.5 65d4f13773 feat: add chat API with live events, typing relay and dashboard unread count
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:48:07 +02:00
JannisandClaude Sonnet 5.5 0678a0e460 feat: add chat domain, persistence and Phase8Chat migration
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:48:07 +02:00
JannisandClaude Sonnet 5.5 0fb8382765 docs: document dashboard decision and update roadmap
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:10:30 +02:00
JannisandClaude Sonnet 5.5 1b1657c925 test: cover dashboard rules, tiles, live refresh and role visibility
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:10:30 +02:00
JannisandClaude Sonnet 5.5 655439afe3 feat: add dashboard tiles with quick shopping add and live refresh
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:10:30 +02:00
JannisandClaude Sonnet 5.5 eca07988f6 feat: add dashboard API with role-aware tiles and task selection rules
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 08:10:30 +02:00
JannisandClaude Opus 5.5 4d366e5ae5 docs: document calendar, ICS feed and CalDAV decisions and update roadmap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 07:56:52 +02:00
JannisandClaude Opus 5.5 f83a9304d6 test: cover calendar rules, ICS generation/import, UI and feeds end to end
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 07:56:52 +02:00
JannisandClaude Opus 5.5 b4f01f974f feat: add calendar UI with agenda, day, week and month views and subscriptions
Agenda by default on phones and week on desktop, person colors and filters, task layer, quick entry dialog with recurrence editor and series scope prompt, subscription page with webcal/https links, copy and QR, admin calendar and token management, ICS import dialog. Blazor now boots with retries for _framework resources.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 07:56:52 +02:00
JannisandClaude Opus 5.5 42e893bf3c feat: add calendar API with ICS feeds, import and live updates
Range/upcoming/CRUD endpoints with occurrence or series scope, admin calendar management, token-protected ICS feeds with ETag/Last-Modified/304 and rate limiting, own VTIMEZONE writer (Ical.Net 5.2.3 emits a broken DAYLIGHT block), ICS import with UID duplicate detection, QR codes via QRCoder and CalendarChanged notifications only to readers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 07:56:51 +02:00
JannisandClaude Opus 5.5 26dc3a9d45 feat: add calendar domain with access rules, series expansion and feed tokens
FamilyCalendar with per-role/per-user grants capped by the role matrix, CalendarEvent with UTC storage, person tags, RRULE series, EXDATE and overrides, IcsFeed with hashed tokens; expansion reuses the Phase 5 recurrence evaluator in wall-clock time. Seeds the default calendar and adds migration Phase6Calendar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 07:56:51 +02:00
JannisandCopilot 5d121b212a docs: document task decisions and update roadmap
ADR-0014 (own RRULE subset vs. Ical.Net, next-instance modes, private task visibility, chore approval and points, per-user live updates, offline scope, web push preparation), architecture (data model, permission TasksApprove, API, live updates, offline, web push), README (VAPID setup) and phase 5 ticked in the roadmap with consciously deferred parts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 21:58:11 +02:00
JannisandCopilot 2e461b0ef8 test: cover recurrence, task rules, task UI and task API end to end
Unit tests for the RRULE parser/evaluator (DST in Europe/Berlin, month end, leap years, COUNT/UNTIL), next-instance scheduling, status/approval/points rules, visibility and permissions, views, validators, field application and Web Push crypto (RFC 8291 test vector, VAPID JWT, endpoint allowlist); bUnit tests for the tasks page, editor, kid view, approvals, dialogs, offline store and notifications page; integration tests for CRUD, per-role 403/404, private task invisibility, chore approval with points, recurring instances, idempotency, SignalR and push subscriptions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 21:58:11 +02:00
JannisandCopilot f7843fab2b feat: add task UI with kid view, offline outbox and push opt-in
Tasks page with quick add and expandable editor (due date/time, reminder, priority, category, assignment, private, chores/points/approval, recurrence builder, checklist), views Meine/Familie/Nach Person/Überfällig/Diese Woche with filters and sorting, approval panel, points panel, history and edit dialogs, kid-friendly card view, TaskStore with localStorage cache and outbox for offline create and status changes, live task events, notifications page with service worker push handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 21:58:11 +02:00
JannisandCopilot 18a0a06e06 feat: add task API with approval, points, live updates and web push
Minimal API slice /api/tasks (idempotent create with client ids, versioned updates, state-based status changes, checklist, parent approval/rejection, points overview and audited adjustments, recurring next instance), per-user SignalR broadcasts that respect private tasks, /api/push subscription endpoints, a dependency-free Web Push sender (RFC 8291/8292) and a minimal reminder service. VAPID keys via Aspire parameters and deploy/.env (tools/generate-vapid-keys.cs); integration test login limit raised.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 21:58:10 +02:00
JannisandCopilot 5e0458ac83 feat: add task domain with recurrence rules, chores and push model
Own RRULE subset (DAILY/WEEKLY/MONTHLY/YEARLY, INTERVAL, BYDAY with ordinals, BYMONTHDAY, BYMONTH, COUNT/UNTIL) with a wall-time evaluator for Europe/Berlin, task entities (assignments, checklist, history, points ledger), visibility and permission rules, status/approval workflow, next-instance scheduling, views and web push subscriptions. New permission TasksApprove, shared contracts and validators, migration Phase5Tasks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 21:57:55 +02:00
JannisandCopilot 35c30fe223 feat: let children see all meal wishes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:58:09 +02:00
JannisandCopilot 3592fe9a3e fix: return 400 problem details for malformed request bodies
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:58:09 +02:00
JannisandCopilot 844122140d docs: document meal planner decisions and update roadmap
ADR-0013 (slots, upsert with version check, move/swap, wish workflow, ingredients to shopping list, live updates), architecture and README updates, phase 4 ticked in the roadmap (offline editing intentionally deferred).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:47:32 +02:00
JannisandCopilot d16036a8cf test: cover meal planner rules, UI, permissions and realtime sync
Unit tests for period, meal types, move/swap, recipe URLs, ingredient transfer, wish rules and validators; bUnit tests for list/grid rendering, dialogs, child/guest permissions, drag and drop, move menu and live updates; integration tests for CRUD with version conflicts, 403s, the wish workflow, swaps, ingredients to the shopping list and SignalR broadcasts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:47:32 +02:00
JannisandCopilot 15b1eff622 feat: add responsive meal planner UI with drag and drop and wishes
Day list on phones and week grid on desktop, entry dialog with autocomplete from previous dishes, note, recipe link and ingredients, drag and drop between slots (swap when occupied) plus a move menu for touch and keyboard, ingredients-to-shopping dialog, wish dialog for children and accept/reject for family. Live updates via the shared SignalR connection.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:47:32 +02:00
JannisandCopilot e899e396cf feat: add meal planner API with wishes, moves and shopping transfer
Minimal API slice /api/meals: plan for a period, upsert per slot with version check (409 with current entry), soft delete, move with swap in a transaction, dish suggestions, ingredients to a shopping list (parser, learned categories, duplicates skipped) and the wish workflow (children propose and see only their own wishes, family/admin accept into a slot or reject). Permissions are enforced server-side; changes are broadcast via /hubs/live (meals group, wishes as payload-free notification to the family group).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:47:32 +02:00
JannisandCopilot 695a5d8c16 feat: add meal planner domain, persistence and contracts
MealPlanEntry (one active entry per day + meal via filtered unique index, row version, soft delete), Dish catalog for autocomplete and MealWish workflow (open/accepted/rejected). MealPlanRules cover the 7-10 day period, effective meal types, move/swap planning, recipe URL validation and object-level wish permissions; IngredientTransfer reuses the quantity parser for shopping items. Meal plan days are now limited to 7-10 (migration Phase4MealPlanner adjusts existing settings). Shared DTOs and FluentValidation validators for API and client.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-09 20:47:31 +02:00
JannisandClaude Opus 5.5 82c611242b docs: document offline sync and shopping decisions, update roadmap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:51:54 +02:00
JannisandClaude Opus 5.5 10118881a5 test: cover shopping parser, permissions, offline store and realtime sync
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:51:54 +02:00
JannisandClaude Opus 5.5 fe1680104b feat: add offline-capable shopping list UI
Quick entry with parsing and suggestion chips, items grouped by aisle, tap to check, swipe or button to remove, list management dialog, live/offline/pending status. ShoppingStore keeps a localStorage cache and an idempotent outbox that syncs on reconnect, online events and periodically; LiveConnection reconnects endlessly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:51:54 +02:00
JannisandClaude Opus 5.5 637acec600 feat: add shopping list API with realtime broadcasts
Endpoints for lists, items, clear-done and suggestions with idempotent add/delete, state-based check-off, row-version conflicts (409 with current state), learned categories and SignalR events to the shopping group.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:51:53 +02:00
JannisandClaude Opus 5.5 f3a07243ff feat: add shopping list domain, quantity parser and categories
ShoppingList, ShoppingItem (client id, row version, soft delete) and ShoppingSuggestion entities, quantity parser for quick entry, aisle-ordered default categories with keyword matching, delete rules for children, seeded default lists and migration Phase3Shopping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:51:53 +02:00
JannisandClaude Opus 5.5 ccf3aea7f2 docs: document phase 2 decisions and update roadmap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:54:02 +02:00
JannisandClaude Opus 5.5 045ca38931 test: cover permission matrix, admin rules and admin endpoints
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:54:02 +02:00
JannisandClaude Opus 5.5 b465d2e551 feat: add admin UI for users, settings and audit log
MudBlazor admin area with user table (mobile cards), create/edit dialog with shared validation, color and avatar upload, password reset and PIN dialogs, settings editor and paged audit log. Client policies use effective permissions from /api/auth/me.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:54:01 +02:00
JannisandClaude Opus 5.5 22142d1433 feat: add user administration, settings and audit API
Permission policies with settings-aware handler and expiry check in the fallback policy; admin endpoints for create/update/delete (soft delete), password reset, unlock, PIN and avatar upload with signature validation; last-active-admin guard; settings and paged audit log; user directory; PIN login behind Features:PinLogin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:54:01 +02:00
JannisandClaude Opus 5.5 fc95abf112 feat: add permission matrix, user lifecycle, settings and audit log model
PermissionMatrix maps every requirement row to Full/Restricted/None per role, with guest exceptions from family settings. AppUser gets soft delete, AppSignInManager rejects inactive/expired accounts, new UserAvatar and AuditLogEntry entities, task categories in settings, shared FluentValidation validators and migration Phase2AdminAndSettings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:54:01 +02:00
JannisandClaude Opus 5.5 fe7067be93 docs: update roadmap, architecture, ADRs and README for phase 1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:25:11 +02:00
JannisandClaude Opus 5.5 3b36dce605 build: add Dockerfile, compose deployment and CI pipeline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:25:11 +02:00
JannisandClaude Opus 5.5 36d64ccf0b test: add unit, bUnit and Aspire integration tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:25:10 +02:00
JannisandClaude Opus 5.5 6c845615e3 feat: add Blazor WASM shell with BFF proxy, login and PWA scaffold
Web host serves the WebAssembly app without prerendering and proxies /api, /hubs and /ics to the Api via YARP. MudBlazor shell with German UI, dark mode, drawer and bottom navigation, login and forced password change, manifest, icons and service worker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:25:10 +02:00
JannisandClaude Opus 5.5 80e6ad26a4 feat: add domain model, persistence, migrations service and auth API
EF Core context with Identity, audit interceptor, soft-delete filters and data protection keys; migrations worker seeds roles, settings and the initial admin. Auth endpoints (login, logout, me, change password) with lockout, rate limiting, CSRF header and role-based policies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:25:10 +02:00
JannisandClaude Opus 5.5 6e92523afd build: add solution, central package management and Aspire AppHost
AppHost orchestrates SQL Server (persistent volume), migrations worker, Api and Web and registers the Docker Compose environment. ServiceDefaults expose /health and /alive in all environments.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:25:10 +02:00
JannisandClaude Opus 5.5 9c35a3c5b7 docs: add architecture, roadmap, ADRs and CLAUDE.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:53:33 +02:00