Skip to content

fix(#170): HIGH: every event load is a full refetch — the client event cache and the delta- - #385

Merged
BeSovereign merged 1 commit into
mainfrom
fix/issue-170
Oct 14, 2026
Merged

BeSovereign merged 1 commit into
mainfrom
fix/issue-170

Conversation

@BeSovereign

Copy link
Copy Markdown
Contributor

Refs #170

loadEvents() now runs an RFC 6578 delta check (syncCalendarDelta, now actually called) for every known calendar and serves a cached range without GET /api/events when nothing changed; any change, missing token, empty calendar list or failed check clears the cache and refetches, and events from an unknown calendar trigger a calendar-list reload. Replaced the grep-only #170 test with request-counting Playwright tests and a unit test of calendarsUnchanged; the #220/#226 harnesses now also pass in the new collaborators, and the #128 stub test runs with the service worker blocked.

Driver gates (measured, not claimed)

  • Suites: lint: 1 passed, 0 failed | node: 1560 passed, 0 failed | python: 51 passed, 0 failed | e2e: 40 passed, 0 failed
  • Red/green check on declared tests: e2e/calendar.spec.js, server/test/issue170_calendars_unchanged.test.js
red/green output
RED without the change:
pping undecryptable linked_accounts row id=35f68b0f-0b1c-4d24-8cd9-817801cd69ab: error:1C80006B:Provider routines::wrong final block length
[WebServer] [db] Skipping undecryptable linked_accounts row id=35f68b0f-0b1c-4d24-8cd9-817801cd69ab: error:1C80006B:Provider routines::wrong final block length
[WebServer] [db] Skipping undecryptable linked_accounts row id=35f68b0f-0b1c-4d24-8cd9-817801cd69ab: error:1C80006B:Provider routines::wrong final block length
[WebServer] [db] Skipping undecryptable linked_accounts row id=35f68b0f-0b1c-4d24-8cd9-817801cd69ab: error:1C80006B:Provider routines::wrong final block length
[WebServer] [Webcal] Refresh failed for subscription 18839de5-4f5a-4b18-85c3-143237979f63: Feed is not valid iCalendar: END:VCALENDAR missing (wrong content or truncated response)


GREEN with the change:
pping undecryptable linked_accounts row id=54e13238-760a-4dc0-bc0d-45eaa44a4d6c: error:1C80006B:Provider routines::wrong final block length
[WebServer] [db] Skipping undecryptable linked_accounts row id=54e13238-760a-4dc0-bc0d-45eaa44a4d6c: error:1C80006B:Provider routines::wrong final block length
[WebServer] [db] Skipping undecryptable linked_accounts row id=54e13238-760a-4dc0-bc0d-45eaa44a4d6c: error:1C80006B:Provider routines::wrong final block length
[WebServer] [db] Skipping undecryptable linked_accounts row id=54e13238-760a-4dc0-bc0d-45eaa44a4d6c: error:1C80006B:Provider routines::wrong final block length
[WebServer] [Webcal] Refresh failed for subscription 0f727376-9143-4c65-84eb-b6b3c48956b1: Feed is not valid iCalendar: END:VCALENDAR missing (wrong content or truncated response)

🤖 Generated with Claude Code

loadEvents() now runs an RFC 6578 delta check (syncCalendarDelta, now actually called) for every known calendar and serves a cached range without GET /api/events when nothing changed; any change, missing token, empty calendar list or failed check clears the cache and refetches, and events from an unknown calendar trigger a calendar-list reload. Replaced the grep-only #170 test with request-counting Playwright tests and a unit test of calendarsUnchanged; the #220/#226 harnesses now also pass in the new collaborators, and the #128 stub test runs with the service worker blocked.

Refs #170

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant