Ulas Kalayci
10ef7006cd
chore: bump version to v0.47.0
...
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-05-04 21:51:21 +02:00
Ulas Kalayci
43225ee20c
chore: bump version to v0.46.0
2026-05-04 20:32:26 +02:00
Ulas Kalayci
d371e2b554
chore: release v0.45.0
...
CardDAV contacts integration with multi-value fields
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-05-04 19:11:20 +02:00
Ulas Kalayci
9c4f876c5b
Merge branch 'feature/cardav-contacts'
...
# Conflicts:
# package-lock.json
2026-05-04 19:10:13 +02:00
Ulas Kalayci
db5f95059f
chore: release v0.44.1
...
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-05-04 16:39:16 +02:00
Ulas Kalayci
3f77fdb11d
Fix Migration 30 code quality issues
...
C1 (CRITICAL): Refactor test-carddav.js to import migrations
- Import MIGRATIONS from server/db.js instead of duplicating SQL
- Export MIGRATIONS array from server/db.js
- Use better-sqlite3 to apply Migration 30 dynamically
- Ensures future changes to Migration 30 are reflected in tests
I1 (IMPORTANT): Add UNIQUE index on carddav_uid
- Create idx_contacts_carddav_uid_unique partial index
- Prevents duplicate CardDAV contacts per account+addressbook
- WHERE clause excludes NULL values (manual contacts allowed)
- Add test to verify unique constraint enforcement
I3 (IMPORTANT): Rename cardav → carddav (RFC 6352 compliance)
- Table: cardav_accounts → carddav_accounts
- Table: cardav_addressbook_selection → carddav_addressbook_selection
- Column: contacts.cardav_* → contacts.carddav_*
- Index: idx_cardav_* → idx_carddav_*
- Test file: test-cardav.js → test-carddav.js
- Package.json: test:cardav → test:carddav
- All test assertions updated
All 25 tests pass.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 10:55:30 +02:00
Ulas Kalayci
18310dbfe5
feat(cardav): add Migration 30 for CardDAV contacts schema
...
Add comprehensive database schema for CardDAV multi-account contacts sync:
New tables:
- cardav_accounts: Store CardDAV server credentials
- cardav_addressbook_selection: Per-account addressbook enable/disable
- contact_phones: Multiple phone numbers per contact with labels
- contact_emails: Multiple email addresses per contact with labels
- contact_addresses: Multiple postal addresses per contact with labels
Extended contacts table with 9 new columns:
- organization, job_title, birthday, website, photo, nickname
- cardav_account_id (FK to cardav_accounts, ON DELETE SET NULL)
- cardav_uid (vCard UID from server)
- cardav_addressbook_url (source addressbook URL)
Features:
- UNIQUE constraints on (cardav_url, username) and (account_id, addressbook_url)
- CASCADE delete for addressbook selection and contact sub-tables
- Performance indices for cardav_uid and email lookups
- Support for manual contacts (NULL cardav_account_id)
- is_primary flag for phone/email/address selection
Test coverage:
- 23 comprehensive tests verify all tables, constraints, indices
- FK CASCADE delete behavior validated
- UNIQUE constraints enforced
- Data integrity scenarios tested
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 10:47:16 +02:00
Ulas Kalayci
dc0352545a
chore: release v0.44.0
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 08:53:01 +02:00
Ulas Kalayci
4bca84a609
test(caldav): add test suite for CalDAV multi-account sync
...
Add comprehensive test coverage for CalDAV multi-account functionality:
- Schema validation for caldav_accounts and caldav_calendar_selection tables
- UNIQUE constraint enforcement on account credentials
- Foreign key CASCADE delete behavior
- Calendar selection enable/disable filtering
- Target calendar columns in calendar_events table
All 7 tests pass using Node.js in-memory SQLite.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 08:44:06 +02:00
Ulas Kalayci
4bce97dd04
chore: release v0.43.0
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 07:03:41 +02:00
Ulas Kalayci
9b29d1847c
feat: automatische geplante Backups mit Rotation
...
Phase 1.3 - Automatische Backups:
- Cron-basierter Scheduler (Standard: täglich 2 Uhr)
- Konfigurierbar über .env (Zeitplan, Verzeichnis, Anzahl)
- Automatische Rotation: behält nur letzte N Backups (Standard: 7)
- UI in Settings → Backup: Status-Anzeige und manueller Trigger
- Tests: 7 erfolgreiche Tests für Scheduler-Funktionalität
Neue Umgebungsvariablen:
- BACKUP_ENABLED (Standard: true)
- BACKUP_SCHEDULE (Standard: 0 2 * * *)
- BACKUP_DIR (Standard: ./backups)
- BACKUP_KEEP (Standard: 7)
- TZ (für Zeitzone)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 07:02:38 +02:00
Ulas Kalayci
99a2280c02
chore: release v0.42.0
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-04 06:52:35 +02:00
Ulas Kalayci
6eae4bae24
chore: release v0.41.0
2026-05-01 18:40:24 +02:00
Ulas Kalayci
2c948eb235
chore: release v0.40.1
2026-05-01 17:57:30 +02:00
Ulas Kalayci
f21c6b0ca9
chore: release v0.40.0
2026-05-01 17:43:32 +02:00
Ulas Kalayci
2588cc43f1
chore: release v0.39.2
2026-05-01 09:46:54 +02:00
Ulas Kalayci
270c8cda9d
chore: release v0.39.1
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 08:24:30 +02:00
Ulas Kalayci
ef1f9e9383
chore: release v0.39.0
2026-04-30 19:54:44 +02:00
Ulas Kalayci
f926babe38
chore: release v0.38.4
2026-04-30 17:25:31 +02:00
Ulas Kalayci
1615b6bd0a
chore: release v0.38.3
2026-04-30 13:16:13 +02:00
Ulas Kalayci
4a050e92a8
chore: release v0.38.2
...
Fix recurring events with FREQ=WEEKLY;INTERVAL=N;BYDAY ignoring the
interval when crossing a week boundary (e.g. Friday → Monday).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 10:51:01 +02:00
Ulas Kalayci
a6ecf7e9ca
chore: release v0.38.1
2026-04-30 10:42:51 +02:00
Ulas Kalayci
a02063a9f0
chore: release v0.38.0
2026-04-30 09:19:46 +02:00
Ulas Kalayci
5a93ac36aa
chore: release v0.37.2
2026-04-30 08:20:36 +02:00
Ulas Kalayci
3cd6eb40d4
chore: release v0.37.1
2026-04-30 07:44:30 +02:00
Ulas Kalayci
3a99734b4c
chore: release v0.37.0
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-30 07:16:03 +02:00
Ulas Kalayci
4f80903b04
chore: release v0.36.1
2026-04-29 21:33:10 +02:00
Ulas Kalayci
3f69c7c698
chore: release v0.36.0
2026-04-29 21:15:26 +02:00
Ulas Kalayci
137bc9ba23
chore: release v0.35.0
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 20:49:08 +02:00
Ulas Kalayci
6575aed1d6
chore: release v0.34.1
2026-04-29 20:15:30 +02:00
Ulas Kalayci
7215fae6a3
chore: release v0.34.0
2026-04-29 20:02:43 +02:00
Ulas Kalayci
7e137d1c21
feat: add kitchen-tabs utility, CSS, token and test
2026-04-29 19:55:28 +02:00
Ulas Kalayci
a872ac52a9
chore: release v0.33.1
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 19:03:04 +02:00
Ulas Kalayci
02e12bad54
chore: release v0.33.0
2026-04-29 16:54:53 +02:00
Ulas Kalayci
bf498b0a12
chore: release v0.32.3
2026-04-29 16:48:06 +02:00
Ulas Kalayci
6c069fc99c
chore: release v0.32.2
2026-04-29 13:13:19 +02:00
Ulas Kalayci
8ea0c870a7
chore: release v0.32.1
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 12:25:02 +02:00
Ulas Kalayci
94e145198b
chore: release v0.32.0
2026-04-29 12:14:55 +02:00
Ulas Kalayci
df35845038
chore: release v0.31.2
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 10:39:54 +02:00
Ulas Kalayci
f9b796ca13
chore: release v0.31.1
2026-04-29 10:29:07 +02:00
Ulas Kalayci
7940ea4ded
release: v0.31.0 — family-contacts integration & settings restructure
...
- Family member records now store phone, email, and birthday, auto-synced
to Contacts and Birthdays modules (PR #99 by @rafaelfoster)
- Settings gets dedicated Family and API Tokens tabs (admin-only)
- Avatar editor redesigned with icon buttons; tab bar fits standard width
- Dentist calendar icon normalised to 'tooth'; theme reset bug fixed
- i18n: missing family field translations added to 12 locales
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-29 07:20:53 +02:00
Ulas Kalayci
6f8cc712a7
chore: release v0.30.3
2026-04-28 22:40:36 +02:00
Ulas Kalayci
801c77dec6
fix(calendar): restore native date picker on iOS (type=date)
2026-04-28 18:46:54 +02:00
Ulas Kalayci
bea0c0407d
chore: release v0.30.1 — el.json typo fix
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-28 15:50:33 +02:00
Ulas Kalayci
7d0c520104
chore: release v0.30.0 — recipe i18n across 13 locales
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-28 14:55:31 +02:00
Ulas Kalayci
774d9e87ef
fix(dashboard): weather widget white-on-white in light mode
2026-04-28 12:46:49 +02:00
Ulas Kalayci
d88133c503
chore: release v0.29.2 — documentation catch-up
2026-04-28 12:35:59 +02:00
Ulas Kalayci
9cdfb03cc5
chore: release v0.29.1 — dependency update
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-28 07:49:11 +02:00
ulsklyc
d51cb22efe
Merge pull request #94 from ulsklyc/dependabot/npm_and_yarn/production-dependencies-682e126eb9
...
chore(deps): bump express-rate-limit from 8.3.2 to 8.4.1 in the production-dependencies group
2026-04-28 07:48:51 +02:00
Ulas Kalayci
40403218a9
chore: release v0.29.0 — calendar event icons & enhanced reminders
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-28 07:46:30 +02:00