- New built-in classes Event and Contact (schema 65.37), plus a
Calendar View view type alongside table/list/gallery, backed by a new
fixed month-grid calendar-view component in components/views.cljs
reusing the existing scheduled/deadline properties.
- New worker/handler/caldav.cljs: a deliberately-scoped CalDAV
(VEVENT/VTODO) + CardDAV (VCARD) client against a single Nextcloud
calendar/addressbook collection, with its own minimal iCalendar/vCard
encoder-decoder and namespace-agnostic multistatus XML extraction
(no external ical/rrule/xml dependency exists in this project).
- RRULE <-> :logseq.property.repeat/* translation covers only the
`plus` (advance-from-scheduled) repeat mode with a bare FREQ(;INTERVAL)
rule -- dotted-plus/double-plus and anything with BYDAY/COUNT/UNTIL
are left untranslated on purpose rather than mistranslated.
- Credentials live in the platform keychain (save-secret-text!), never
in the graph. Sync runs Node-only, every 15 minutes per open repo,
started/stopped alongside the repo's lifecycle in db_core.cljs.
Conflicts are last-write-wins via ETag: a 412 on push is skipped and
retried after the next pull refreshes the stored ETag.
B3: registers :logseq.class/Project and :logseq.class/Area as
built-in page-like classes (the TODO in class.cljs already asked for
this), so users can tag pages/journals with them out of the box.
Fixed a markdown-mirror test whose "Custom Tag" fixture used to be
titled "Project" and collided with the new built-in class.
B4: adds :logseq.class/Citation plus /target and /context properties,
following the :logseq.class/Comments pattern. Since target is a
:node-typed ref, citation blocks automatically show up in the
existing block/citation reference graph without any changes there.
Establishes version control for the personal Logseq DB fork before
starting the server-client architecture migration and domain features
described in docs/agent-guide and the approved implementation plan.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>