Commit Graph

152 Commits

Author SHA1 Message Date
Ulas Kalayci 00afd37c90 chore: release v0.23.12 2026-04-22 12:39:00 +02:00
Ulas Kalayci 420391286c chore: release v0.23.11 2026-04-22 11:51:20 +02:00
Ulas Kalayci ed2d47eae1 chore: release v0.23.10 2026-04-22 11:26:10 +02:00
Ulas Kalayci 88cd1b8d18 chore: release v0.23.9 2026-04-22 11:17:41 +02:00
Ulas Kalayci 6383f63f88 chore: release v0.23.8 2026-04-22 10:46:26 +02:00
Ulas Kalayci df9256ebff chore: release v0.23.7 2026-04-22 08:53:36 +02:00
Ulas Kalayci 372a51bdb1 chore: release v0.23.6 2026-04-22 08:50:43 +02:00
Ulas Kalayci a30a069d05 chore: release v0.23.5 2026-04-22 08:42:20 +02:00
Ulas Kalayci eaf48eb5fb chore: release v0.23.4 2026-04-22 07:57:11 +02:00
Ulas Kalayci a58e45683e chore: release v0.23.3 2026-04-22 07:40:47 +02:00
Ulas Kalayci 6a4ef09912 chore: release v0.23.2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 07:34:23 +02:00
Ulas Kalayci 8d92b59c73 chore: release v0.23.1 2026-04-22 00:05:34 +02:00
Ulas Kalayci cad779ffa4 chore: release v0.23.0 2026-04-21 23:40:09 +02:00
Konrad M. d3710c5276 docs(changelog): add Unreleased section and sync upstream entries up to v0.22.2 2026-04-21 22:18:14 +02:00
Ulas Kalayci 6416bbf245 chore(release): v0.22.3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 20:23:59 +02:00
Ulas Kalayci 9f321851f8 chore: release v0.22.2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 17:23:30 +02:00
Ulas Kalayci 40252ee0dc fix(sw): bump cache versions, add recipes to pre-cache, guard init IIFE
Resolves #72

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 15:41:46 +02:00
Ulas Kalayci a253f0a7fa chore: release v0.22.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 14:23:53 +02:00
Ulas Kalayci 41467a84b6 chore: release v0.21.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 14:03:33 +02:00
Ulas Kalayci b40f47bc8b chore: release v0.21.0
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 13:24:38 +02:00
Ulas Kalayci 7b663e08d4 chore: release v0.20.43
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 13:10:47 +02:00
Ulas Kalayci 8f55855364 chore: release v0.20.42 2026-04-21 10:38:45 +02:00
ulsklyc d1ec7367a0 fix(auth): resolve post-login navigate race condition and add version display (#68) (#70)
Root cause: when auth.me() failed during initial navigation, the catch block
called navigate('/login') without clearing _pendingLoginRedirect. The outer
finally then fired a second concurrent navigate('/login'), which held
isNavigating=true while running. If the user submitted the login form (or
iCloud Keychain autofilled credentials) before the second navigation
completed, navigate('/', user) was silently blocked by the isNavigating guard —
login appeared to succeed but the app never advanced to the dashboard.

Fix: clear _pendingLoginRedirect in the catch block so the finally handler
does not spawn the duplicate navigation.

Also adds a GET /api/v1/version endpoint (no auth required) and shows the
version on the login page, so users can verify their PWA has received the
latest cached JS.

Resolves #68

Co-authored-by: Ulas Kalayci <ulas.kalayci@googlemail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:19:53 +02:00
Ulas Kalayci c1bdd4361d chore: release v0.20.40 2026-04-21 06:55:52 +02:00
Ulas Kalayci a8a50d31c5 chore: release v0.20.39 2026-04-21 06:52:52 +02:00
Ulas Kalayci 1570703f47 chore: release v0.20.38 2026-04-21 00:07:12 +02:00
Ulas Kalayci 8559f98518 chore: release v0.20.37 2026-04-20 23:39:00 +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 583a1bdf23 refactor(calendar): extract ICS parser into shared ics-parser.js module 2026-04-20 23:25:50 +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
Konrad M. 14a5b4b76d Update CHANGELOG.md
update changelog
2026-04-20 12:46:21 +02: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
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 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
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