71 Commits
Author SHA1 Message Date
openclaw 70f1890641 feat: Phase 19 Haus - Vallox MV ventilation unit (profile, temperatures, profile switching)
- New device kind Ventilation with driver Vallox (WebSocket protocol of the unit's web UI:
  READ_TABLES/WRITE_DATA, checksum, big-endian table); no migration (enums stored as text)
- Read profile incl. remaining minutes, outdoor/supply/extract/exhaust air temperatures,
  humidity, CO2, fan speed; activate Home/Away/Boost/Fireplace (timed profiles use the
  duration configured on the unit)
- Same SSRF protection as Shelly (shared connection handler), permissions, action log, audit
- Admin dialog without generation/channel/credentials for ventilation, device card with
  values and profile buttons
- Tests: unit (protocol vs. reference bytes, driver, loopback WebSocket, SSRF, rules), bUnit
- ADR-0025, roadmap phase 19
2026-10-16 20:04:14 +02:00
JannisandClaude Sonnet 5.5 b23e92360b feat: Phase 18 Haus - cameras with MJPEG streaming, per-camera access, admin UI
CI / build-and-test (push) Failing after 1m19s
CI / docker-images (FamilyPlanner.Api) (push) Skipped
CI / docker-images (FamilyPlanner.MigrationService) (push) Skipped
CI / docker-images (FamilyPlanner.Web) (push) Skipped
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 20:38:14 +02:00
JannisandClaude Sonnet 5.5 0aa0947727 fix: house plan editor script scoping, single announcement of switch state, ADR note
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 16:22:11 +02:00
JannisandClaude Sonnet 5.5 0d9a03dcd5 feat: Phase 17 Haus - Shelly devices, per-device shares, floor plans with pins
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 16:18:14 +02:00
JannisandClaude Sonnet 5.5 13ab82d9d6 feat: Phase 16 reading passages and word problems
- LearningSet.Passage (plain text, <= 3000 chars, normalized, locked after the first attempt); true/false as fixed-option choice items
- passage shown with every question for the child (runner, result) and in parent review; photo/answer-check AI prompts get it as delimited material
- editor field, true/false helper, AI draft task kind (standard, reading comprehension, word problems) with prompt, schema and parser checks
- migration Phase16LearningText; unit, bUnit and integration tests; docs (ROADMAP, ARCHITECTURE, ADR-0021 addendum)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 15:35:22 +02:00
JannisandClaude Sonnet 5.5 ab505d4a4f feat: Phase 15 birthdays - user birth dates and calendar birthday template
- AppUser.BirthDate (optional): admin edits in user management, every user edits own via PUT /api/auth/me/birth-date; validator (not before 1900, not future); BirthdayRules (age, leap day 29.2. -> 28.2.)
- Privacy: directory BirthDate only for self, admin and family; audit log without the value
- Calendar template "Geburtstag": CalendarEvent.BirthDate, all-day yearly series enforced server-side, age and display title per occurrence, ICS/CalDAV export as single series with category, BirthDate kept on CalDAV PUT
- Migration Phase15Birthdays, tests (unit, bUnit, integration), docs (ROADMAP, ARCHITECTURE, ADR-0015 addendum)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 15:16:32 +02:00
JannisandClaude Sonnet 5.5 2ce15cb32d feat: AI prompts - disable system prompt, per-user admin AI settings, always-logged chat prompts and failures, admin-editable draft prompt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 14:55:30 +02:00
JannisandClaude Sonnet 5.5 0c886652cf feat: Google AI provider, provider fallback with notice, model lists, adult AI chat settings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 12:39:37 +02:00
Jannis 6f11f12c90 merge: 12c CalDAV 2026-10-10 22:31:28 +02:00
Jannis dec2371be1 merge: 12b AI log and web search 2026-10-10 22:31:20 +02:00
JannisandClaude Sonnet 5.5 ca82002bd6 feat: accept client-style CalDAV week start rules; test all-day, TZID and alarm payloads
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 22:30:48 +02:00
Jannis 49a0fb8ec5 feat: UI to connect phones via CalDAV app passwords 2026-10-10 22:18:08 +02:00
Jannis 58b3194878 fix: CalDAV hrefs with encoded slashes survive the proxy 2026-10-10 22:15:47 +02:00
JannisandClaude Sonnet 5.5 18231c24c1 docs: AI log and web search (ADR-0020/0022, architecture, roadmap phase 12b)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 22:11:26 +02:00
JannisandClaude Sonnet 5.5 7c4e1d2df5 feat: edit meal ingredients as a list with a per-ingredient shopping basket button
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 22:08:38 +02:00
Jannis 6b6cbe953d test: CalDAV integration tests 2026-10-10 22:07:28 +02:00
Jannis 8bd463ed55 test: unit tests for CalDAV protocol logic 2026-10-10 22:05:30 +02:00
Jannis f788f0b9d1 test: AI log, retention, web search adapters, prompt and UI 2026-10-10 22:00:33 +02:00
JannisandClaude Sonnet 5.5 ac38444e1e feat: put a whole learning sheet on paper in one step, also from the AI draft
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 21:58:03 +02:00
JannisandClaude Sonnet 5.5 e0fdfbbdda feat: persistent AI exchange log, web search opt-in on provider and request (backend)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 21:55:57 +02:00
JannisandClaude Sonnet 5.5 164e988906 fix: open the user menu on click of the initials (MudBlazor 9 custom activator)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 21:22:27 +02:00
JannisandClaude Sonnet 5.5 4a5703adce fix: stop Ollama thinking, allow longer chat replies and show prompt and raw AI answer to admins
Thinking models (qwen3) spent the token budget on reasoning and returned empty or
truncated content. Ollama requests now send think=false, chat replies get 3000 tokens
and <think> blocks are stripped. Admins see the last 20 AI exchanges (in memory only,
never the private AI chat) in the KI tab.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 20:39:17 +02:00
Jannis 24e9d37154 merge: Phase 11c learning auto 2026-10-10 19:27:52 +02:00
Jannis 375c314b6a merge: Phase 11b chat extras 2026-10-10 19:27:30 +02:00
Jannis 9796f86596 merge: Phase 11d meal wishlist 2026-10-10 19:27:14 +02:00
JannisandClaude Sonnet 5.5 3c0f6b4b7c docs: phase 11c in roadmap, architecture and ADR-0021; unit tests for schedule api helpers
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 19:21:08 +02:00
JannisandClaude Sonnet 5.5 8978cebd17 feat: schedule tab 'Automatisch' with dialog, pause, delete and run-now
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 19:19:14 +02:00
Jannis 5a4e4c2e88 test: integration tests for learning schedules 2026-10-10 19:14:59 +02:00
JannisandClaude Sonnet 5.5 dcbcac5ed8 feat: learning schedules (entities, rules, runner, endpoints, background service, migration Phase11cLearningAuto)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 19:09:48 +02:00
JannisandClaude Sonnet 5.5 5e67075f8a test: integration tests for AI chat channel and GIF feature flag
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 19:05:47 +02:00
Jannis 5be06b247c test: integration tests for dashboard notes and shopping plausibility 2026-10-10 19:03:25 +02:00
JannisandClaude Sonnet 5.5 3d22ed8747 test: unit tests for chat extensions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 18:59:17 +02:00
JannisandClaude Sonnet 5.5 bd6e272f57 feat: optional AI cross-check of unclear number answers
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 18:58:02 +02:00
JannisandClaude Sonnet 5.5 154e400d13 test: bUnit tests for emoji, GIF and AI chat
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 18:57:57 +02:00
Jannis 8dc923cd6e feat: dashboard info tile UI with edit dialog, quick-add confirmation, tests 2026-10-10 18:55:09 +02:00
JannisandClaude Sonnet 5.5 5ce407f401 test: cover the meal wishlist (rules, validators, bUnit, integration); fix: bind wishlist search and sort as expressions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 18:54:31 +02:00
Jannis b7dac20fc2 feat: rule-based plausibility check for children's shopping entries 2026-10-10 18:49:13 +02:00
JannisandClaude Sonnet 5.5 d2ef08e17b feat: show the confirmed grade in the head of the child's result page
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 18:48:36 +02:00
Jannis 2473ecd539 feat: dashboard info notes (entity, permission, endpoints, migration) 2026-10-10 18:47:52 +02:00
Jannis f98b1c21c4 test: adjust unit rule for numbers 2026-10-10 18:47:47 +02:00
JannisandClaude Sonnet 5.5 62b3afe9c8 feat: read numbers with units and euro/cent spellings tolerantly
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 18:47:17 +02:00
Jannis 81ab2af5e3 test: cover account settings page 2026-10-10 18:46:19 +02:00
JannisandClaude Sonnet 5.5 50854cf237 fix: describe the AI draft JSON shape in the prompt and accept a differently named item list
Local models may ignore the response schema (e.g. returning "exercises" instead of "items"), which made every draft fail.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 16:48:28 +02:00
JannisandClaude Sonnet 5.5 606db3990c test: share one fake AI api between learning bUnit tests after merging 10b and 10c
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 15:28:06 +02:00
JannisandClaude Sonnet 5.5 a8f763cfeb merge: Phase 10c paper solutions by photo
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 15:21:54 +02:00
JannisandClaude Sonnet 5.5 a6bc071efc fix: save AI photo suggestions one by one, allow long AI calls, plain AI reasons; docs: phase 10c in ADR-0021, roadmap, architecture
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 15:15:41 +02:00
JannisandClaude Sonnet 5.5 b3d0546d6b test: cover photo rules, AI grading, mapper leaks and photo/AI/retention endpoints
Unit tests for signature/size/retention rules, strict AI schema and confidence handling,
prompt content and child DTO leak checks; integration tests for rights (404 for strangers),
deadline 409, invalid files, fake-server AI grading including missing provider/opt-in cases,
and retention. Retention 0 deletes photos at confirmation; photos past retention are purged lazily.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 14:58:19 +02:00
JannisandClaude Sonnet 5.5 2cd976ee3e feat: add AI draft assistant to the learning UI
Adds the Mit KI erstellen dialog to the parent overview (shown from
GET /api/ai/status), a cloud privacy hint, the review report and a
KI-generiert, bitte pruefen notice in the set editor. bUnit coverage for
visibility, dialog states and escaped output.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 14:51:16 +02:00
JannisandClaude Sonnet 5.5 b68c708113 feat: add AI draft endpoint for learning sheets with server-side checks
POST /api/learning/sets/ai-draft (LearningManage + AiUse) builds a fixed system
prompt from validated parameters, validates every returned task, recomputes
number solutions and stores the result as an unassigned draft with provenance.
AiStatusDto reports whether the generation provider is a cloud provider.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 14:48:00 +02:00
JannisandClaude Sonnet 5.5 32091a825e feat: photo upload for paper tasks, photo review and AI photo grading UI
PhotoUpload component (camera and file picker, preview, replace/remove), photo next to task and
model solution in AttemptReview, parent-triggered AI grading button visible only when the status
offers photo grading, retention setting in the admin settings editor, bUnit coverage.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-10 14:44:40 +02:00