Ulas Kalayci
1859d6a55b
fix(calendar): use dedicated resetToast key, explicit user_modified === 1 check
2026-04-21 00:06:53 +02:00
Ulas Kalayci
4aa8eefb51
feat(calendar): show reset link for user-modified ICS events in event popup
2026-04-21 00:04:29 +02:00
Ulas Kalayci
55cac140ef
fix(settings): move ICS card below Apple Calendar, fix toast messages, use syncing key
2026-04-21 00:03:14 +02:00
Ulas Kalayci
4f10f334fb
feat(settings): add ICS subscription management UI and i18n keys
2026-04-21 00:00:33 +02:00
Ulas Kalayci
21f1a382c8
feat(i18n): add ICS subscription locale keys
2026-04-20 23:58:35 +02:00
Ulas Kalayci
3cd5f31c0d
fix(calendar): NaN guard on subscription IDs, user_modified for all external sources
2026-04-20 23:57:15 +02:00
Ulas Kalayci
ed0618cf75
fix(calendar): apply ICS visibility filter to /upcoming endpoint
2026-04-20 23:55:20 +02:00
Ulas Kalayci
466860074a
feat(calendar): add ICS subscription routes and sync integration
...
- Add CRUD routes for /subscriptions (GET, POST, PATCH, DELETE)
- Add manual sync trigger: POST /subscriptions/:id/sync
- Add ICS visibility filter to GET /calendar (private vs. shared)
- Set user_modified=1 on PUT /:id for ICS events
- Add POST /:id/reset to clear user_modified on ICS events
- Wire icsSubscription.sync() into runSync() in server/index.js
2026-04-20 23:53:53 +02:00
Ulas Kalayci
3445e504a2
fix(ics): add color to ON CONFLICT DO UPDATE and per-iteration try/catch in sync loop
2026-04-20 23:46:06 +02:00
Ulas Kalayci
4d585fb288
fix(calendar): extend SSRF guard to cover fd00::/8 IPv6 ULA range
2026-04-20 23:40:38 +02:00
Ulas Kalayci
8559f98518
chore: release v0.20.37
2026-04-20 23:39:00 +02:00
Ulas Kalayci
7f1a199e33
feat(calendar): add ICS subscription service (fetchAndParse, sync, CRUD)
2026-04-20 23:38:46 +02:00
Ulas Kalayci
a4250b46ab
fix(calendar): add IF NOT EXISTS to idx_calendar_sub_extid unique index
2026-04-20 23:36:48 +02:00
Ulas Kalayci
8e042ad932
fix(calendar): add missing idx_calendar_sub to db-schema-test MIGRATIONS_SQL[11]
2026-04-20 23:34:41 +02:00
Ulas Kalayci
a64635b669
feat(calendar): add ics_subscriptions table and calendar_events columns (migrations v10-v11)
2026-04-20 23:32:42 +02:00
Ulas Kalayci
8479072afd
refactor(calendar): fix ics-parser module header and test chain consistency
2026-04-20 23:29:28 +02:00
Ulas Kalayci
583a1bdf23
refactor(calendar): extract ICS parser into shared ics-parser.js module
2026-04-20 23:25:50 +02:00
Ulas Kalayci
faa3c0159b
docs: add ICS subscription implementation plan
2026-04-20 23:18:00 +02:00
Ulas Kalayci
2419efbeaf
docs: add reviewed ICS subscription v2 spec
2026-04-20 23:06:44 +02:00
Ulas Kalayci
0b8c0213a1
docs: fix ambiguities in ICS subscription spec
2026-04-20 22:53:34 +02:00
Ulas Kalayci
a68b02ca04
docs: add ICS subscription design spec
2026-04-20 22:53:08 +02:00
ulsklyc
9ad1165d48
fix(auth): skip auth:expired dispatch for 401 on /auth/login ( #69 )
...
On Safari/iOS PWA cold start or after cookie clear, logging in with wrong
credentials triggered auth:expired, re-rendering the login page and losing
the error message. The login endpoint returns 401 for invalid credentials,
not for session expiry, so apiFetch must not fire auth:expired in that path.
Resolves #68
Co-authored-by: Ulas Kalayci <ulas.kalayci@googlemail.com >
2026-04-20 21:37:29 +02:00
Ulas Kalayci
554024b67c
chore: release v0.20.33
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 13:12:43 +02:00
ulsklyc
c6e5d3cb4f
Fix Min/Max Temperature Aggregation for Forecast in Weather Widget ( #67 )
...
Fix Min/Max Temperature Aggregation for Forecast in Weather Widget
2026-04-20 13:12:04 +02:00
Konrad M.
14a5b4b76d
Update CHANGELOG.md
...
update changelog
2026-04-20 12:46:21 +02:00
Konrad M.
573e1553b8
fix weather forecast min/max values aggregation
2026-04-20 10:36:42 +00:00
Ulas Kalayci
4f7b73cf81
chore: release v0.20.32
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 12:05:40 +02:00
Ulas Kalayci
ecd4453b71
chore: release v0.20.31
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 11:02:00 +02:00
Ulas Kalayci
66f4cda41b
chore: release v0.20.30
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 10:53:56 +02:00
Ulas Kalayci
24dca4ed19
chore: release v0.20.29
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 10:50:55 +02:00
Ulas Kalayci
09b339e5f9
fix: use CSS media query as authoritative dark mode source for system preference
2026-04-20 10:37:24 +02:00
Ulas Kalayci
ca3da0eccd
fix: system theme selection immediately applies OS preference instead of reverting to light
2026-04-20 10:20:18 +02:00
Ulas Kalayci
e92487f464
feat: add FAB to meals page for quick meal creation ( #62 )
2026-04-20 10:15:04 +02:00
Ulas Kalayci
30d3d6cd13
fix: theme reverts to light on reload when system preference stored ( #61 )
2026-04-20 10:08:07 +02:00
Ulas Kalayci
e48d249fbe
chore: release v0.20.24
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 10:05:12 +02:00
Ulas Kalayci
aae895d704
feat: filter panel + english category keys
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 09:50:55 +02:00
Ulas Kalayci
b867917995
feat: kanban touch drag, swipe undo, dashboard task deep-link
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 09:44:50 +02:00
Ulas Kalayci
c8e20b22c8
chore: release v0.20.21
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 07:36:07 +02:00
Ulas Kalayci
87be39364d
chore: release v0.20.20
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 07:17:30 +02:00
Ulas Kalayci
40fc080c3a
chore: release v0.20.19
2026-04-20 07:09:07 +02:00
Ulas Kalayci
51fcac3cfe
chore: release v0.20.18
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 06:56:51 +02:00
ulsklyc
01ebf20a62
Merge pull request #59 from baragoon/dev
...
Unify shopping category localization and limit meal ingredient categories to food-relevant options
2026-04-20 06:56:29 +02:00
Ulas Kalayci
a65de31dda
fix: 'Sonstiges' aus Meal-Kategorie-Ausschluss entfernen, EOF-Newline ergänzen
...
'Sonstiges' ist DEFAULT_CATEGORY_NAME und dient als allgemeiner Fallback für
Zutaten (Gewürze, Saucen etc.). Beim Ausschluss würde die Kategorie bestehender
Zutaten beim Bearbeiten einer Mahlzeit lautlos überschrieben (Datenintegrität).
Nur haushaltsfremde Kategorien (Haushalt, Drogerie) werden ausgeblendet.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 06:56:24 +02:00
Ulas Kalayci
18c90653d4
refactor: dark-mode token deduplication via private-variable indirection (v0.20.17)
...
All tokens with dark-mode overrides gain a private --_name counterpart in :root.
Public tokens (--color-*, --module-*, --glass-* etc.) become stable var(--_name)
references. Both dark blocks now only override compact private tokens — no more
manual two-block sync for every future colour change.
Also removes the redundant --color-surface-2 dark override (already auto-derived
via var(--neutral-50)). No visual change.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 06:53:08 +02:00
Ulas Kalayci
3f989c3bff
fix: merge resolve-issue-56 — keep main's icon-wrap nav-badge implementation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 22:24:35 +02:00
Ulas Kalayci
e89f4259bc
chore: complete colour-redesign follow-up — PWA theme sync, glass tokens, print normalisation (v0.20.16)
...
- index.html: theme-color #2563EB → #4F46E5 (Indigo-600)
- oikos-install-prompt.js: CSS fallback #2554C7 → #4338CA; #fff → var(--color-text-on-accent)
- tokens.css: add --glass-inset-{soft,base,medium,elevated,strong} tokens
- glass.css: replace 9 inset rgba() literals with --glass-inset-* token refs
- tasks.css: replace 1 inset rgba() literal with --glass-inset-base
- layout.css: normalise @media print shorthand hex to six-digit notation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 22:22:30 +02:00
ulsklyc
1113959768
fix: nav-badge visibility fix + Indigo colour redesign (v0.20.15)
...
fix: nav-badge bleibt auf allen Seiten sichtbar
2026-04-19 22:16:31 +02:00
Ulas Kalayci
c567ff17e4
chore: release v0.20.15 — colour redesign + nav-badge visibility fix
...
Bundles the Indigo accent migration, module-colour decoupling, WCAG
contrast improvements and nav-badge base-style relocation into one
release. See CHANGELOG.md [0.20.15] for full details.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 22:16:07 +02:00
Ulas Kalayci
888cd05437
fix: move nav-badge styles to layout.css so badge stays visible on all pages
...
The .nav-badge base styles (background, size, color) were defined in tasks.css,
which is dynamically unloaded when navigating away from /tasks. This caused the
overdue badge in the nav to become invisible on every other page, even though
the badge element remained in the DOM.
Also refactors subtask checkbox icon to use a CSS class instead of inline styles.
Resolves #56
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 22:10:06 +02:00
Serhiy Bobrov
819d9e8b1d
Unify shopping category localization and limit meal ingredient categories to food-relevant options
2026-04-19 19:14:46 +03:00