Commit graph

20 commits

Author SHA1 Message Date
88cc0553f6 refactor(variants): drop unused isWinner flag on variant results
Each variant emitted isWinner:false and the calculator set winner.isWinner
=true, but the UI marks the winner via variantId===winnerId, never the
flag. Only one test read it. Removed from the 6 variant returns, the empty
result, and the calculator.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 11:45:15 +02:00
cb46e8fb04 refactor(calculator): drop unused dutyDetails/totalDuties result fields
No UI reads them - app.js computes its own labels via isQualifyingDay/
getDayTypeLabel when rendering the duty list. Only the test-suite asserted
them; those asserts are removed too. buildDutyDetails goes with them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 11:43:09 +02:00
9a26d8b9ef Merge feature/bonus-varianten: 3 variants + vacation + date-stepper
Conflicts resolved:
- sw.js: bumped CACHE_NAME to dienstplan-pro-v4 (was v3 + v2). Both
  variants.js and image-import.js are in ASSETS.
- storage.js: kept STORAGE_KEY_DUTIES + STORAGE_KEY_VACATION (Feature B)
  alongside STORAGE_KEY_OPENROUTER_KEY/MODEL + DEFAULT_MODEL (Feature A).
- styles.css: appended Feature B variants/vacation/date-stepper rules
  after Feature A modal/key rules; both blocks coexist.
2026-05-12 18:45:31 +02:00
7839fd67d7 test(image-import): pin error-toast strings for HTTP/parse/network errors 2026-05-12 18:24:45 +02:00
3b6283ced1 feat(image-import): add resolveImports (pure) and commitImport persisting duties via DataStorage 2026-05-12 18:23:27 +02:00
68f35d3e3d feat: add dienstplan_vacation key + getVacationMode/setVacationMode + export/import 2026-05-12 18:21:31 +02:00
b921592f7e test: migrate Berechnung + Edge-Case tests to new variants result shape 2026-05-12 00:17:04 +02:00
20f63e07cd feat(image-import): add normalizeName, matchNames (exact+fuzzy), classify slot helper 2026-05-12 00:16:27 +02:00
773c286236 feat(image-import): add inline levenshtein distance helper 2026-05-12 00:15:39 +02:00
bc1d92937c refactor: BonusCalculator runs all 3 variants and picks winner 2026-05-12 00:15:38 +02:00
93e6b32fe9 feat(image-import): add parseResponse with fence-stripping and schema validation 2026-05-12 00:15:15 +02:00
f7153a5e53 feat: implement variant2 (1 sa + 2 weekday) 2026-05-12 00:14:50 +02:00
60e71d4a57 feat(image-import): add callVisionAPI with OpenRouter fetch + typed HTTP errors 2026-05-12 00:14:38 +02:00
591a2773cc feat: implement variant1 (1 fr+so + 3 weekday, fr-priority) 2026-05-12 00:14:21 +02:00
d8a3e9de86 feat(image-import): add compressImage with canvas resize + JPEG re-encode 2026-05-12 00:13:57 +02:00
a675763206 feat: implement variant3 (loose, pool fr+sa+so, fr-priority) 2026-05-12 00:13:51 +02:00
f7e8ccb5b6 feat(storage): add getApiKey/setApiKey/clearApiKey/getApiModel/setApiModel for OpenRouter integration 2026-05-12 00:13:20 +02:00
c460a20c00 feat: implement classifyDuties() aggregation by slot 2026-05-12 00:13:16 +02:00
4df56f7c30 test: add classify() spec example tests (red) 2026-05-12 00:12:44 +02:00
OpenClaw Agent
7116eb3466 feat: Unified PWA release 2026-02-02 11:51:11 +00:00