Skip to content

fix(#65): MEDIUM: a failed CalDAV fetch renders as an empty calendar with HTTP 200 and no - #421

Merged
BeSovereign merged 1 commit into
mainfrom
fix/issue-65
Oct 15, 2026
Merged

BeSovereign merged 1 commit into
mainfrom
fix/issue-65

Conversation

@BeSovereign

Copy link
Copy Markdown
Contributor

Refs #65

GET /api/events now returns {events, errors}, naming every failed calendar/account even on partial failure; the client shows a per-calendar sidebar warning badge plus a toast, and partial results are not cached. parseCalendarList/parseEventList throw on anything that is not a complete DAV multistatus, event hrefs are no longer filtered by a case-sensitive '.ics' suffix, and getCalendarShares throws on 5xx/auth errors (404/405/501 still mean 'sharing unsupported' per #269). Product choices: no compat shim for the old array shape, account-level errors badge all of that account's calendars.

Driver gates (measured, not claimed)

  • Suites: lint: 1 passed, 0 failed | node: 1754 passed, 0 failed | python: 104 passed, 0 failed | e2e: 62 passed, 0 failed
  • Red/green check on declared tests: server/test/issue65_events_error_channel.test.js, e2e/calendar.spec.js, server/test/issue220_unsequenced_calendar_navigation.test.js, server/test/routes.test.js, server/test/issue128_custom_valarm_presets.test.js
red/green output
RED without the change:
5:5)
[WebServer]     at trim_prefix (/home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:328:13)
[WebServer]     at /home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:286:9
[WebServer]     at Function.process_params (/home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:346:12)
[WebServer]     at next (/home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:280:10)
[WebServer]     at /home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express-session/index.js:521:7
[WebServer] [MSGraph OAuth] authorization was not granted


GREEN with the change:
ktrees/issue-65/node_modules/express/lib/router/layer.js:95:5)
[WebServer]     at trim_prefix (/home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:328:13)
[WebServer]     at /home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:286:9
[WebServer]     at Function.process_params (/home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:346:12)
[WebServer]     at next (/home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express/lib/router/index.js:280:10)
[WebServer]     at /home/agent-user/Coding/Freeshard/vacation_framework/worktrees/issue-65/node_modules/express-session/index.js:521:7

🤖 Generated with Claude Code

GET /api/events now returns {events, errors}, naming every failed calendar/account even on partial failure; the client shows a per-calendar sidebar warning badge plus a toast, and partial results are not cached. parseCalendarList/parseEventList throw on anything that is not a complete DAV multistatus, event hrefs are no longer filtered by a case-sensitive '.ics' suffix, and getCalendarShares throws on 5xx/auth errors (404/405/501 still mean 'sharing unsupported' per #269). Product choices: no compat shim for the old array shape, account-level errors badge all of that account's calendars.

Refs #65

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