Ulas Kalayci
9762db8d0f
chore: release v0.48.3
2026-05-06 16:24:22 +02:00
Ulas Kalayci
367770e05c
chore: release v0.48.2
2026-05-06 14:51:38 +02:00
Ulas Kalayci
9ef93987d6
chore: release v0.48.1
2026-05-06 10:39:53 +02:00
Ulas Kalayci
1a51c14d0d
chore: release v0.48.0
2026-05-06 10:08:01 +02:00
Ulas Kalayci
2a48fb7af0
feat: multi-person assignment for tasks and calendar events
...
- DB migration v32: task_assignments and event_assignments join tables
with CASCADE delete; existing assigned_to data migrated automatically
- Tasks API: accepts assigned_to as array, returns assigned_users[]
with json_group_array; filter uses EXISTS on task_assignments
- Calendar API: same pattern via event_assignments; serializeEvent
includes assigned_users array
- Recurring task completion copies all assignments to the new instance
- Frontend: shared UserMultiSelect component with avatar stack display
(renderAvatarStack, renderUserMultiSelect, getSelectedUserIds,
bindUserMultiSelect); tasks.js and calendar.js use it in modals
and card/agenda views
- CSS: user-multi-select.css with avatar-stack and user-ms classes
- 14 new tests covering CRUD, JSON aggregation, EXISTS filter,
and CASCADE behavior for both task and event assignments
Closes #125
2026-05-06 10:04:41 +02:00
Ulas Kalayci
f0503f3df1
chore: release v0.47.5
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-06 07:37:49 +02:00
Ulas Kalayci
2da5295f87
chore: release v0.47.4
2026-05-06 07:00:40 +02:00
Ulas Kalayci
56b2fd471d
chore: release v0.47.3
2026-05-06 01:45:38 +02:00
Ulas Kalayci
704e75260f
Füge Puppeteer als dev dependency hinzu für Screenshot-Generierung
...
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-05-05 12:55:36 +02:00
Ulas Kalayci
289b079f47
chore: bump version to 0.47.2
...
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-05-05 07:06:29 +02:00
dependabot[bot]
46aa5774e8
chore(deps): bump the production-dependencies group with 2 updates ( #124 )
...
Bumps the production-dependencies group with 2 updates: [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit ) and [tsdav](https://github.com/natelindev/tsdav ).
Updates `express-rate-limit` from 8.4.1 to 8.5.0
- [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases )
- [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v8.4.1...v8.5.0 )
Updates `tsdav` from 2.1.8 to 2.2.0
- [Release notes](https://github.com/natelindev/tsdav/releases )
- [Changelog](https://github.com/natelindev/tsdav/blob/main/CHANGELOG.md )
- [Commits](https://github.com/natelindev/tsdav/compare/v2.1.8...v2.2.0 )
---
updated-dependencies:
- dependency-name: express-rate-limit
dependency-version: 8.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
- dependency-name: tsdav
dependency-version: 2.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: production-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-05 07:04:14 +02:00
Ulas Kalayci
fd5423f6c5
chore: bump version to 0.47.1
...
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-05-04 22:28:17 +02:00
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