Persist privacy-safe calendar free windows with Week Ahead #1258

Closed
opened 2026-08-22 09:33:47 +00:00 by rockachopa · 0 comments
Member

Problem

Calendar import computes privacy-safe seven-day free windows, but keeps them only in memory. Reloading or changing devices silently makes calendar export revert to manual contiguous timing, which can place work over meetings the operator already imported. This is distinct from #1210 (explicitly ephemeral import) and #1256 (weekday capacity defaults only). No open issue covers persisted free windows.

Vertical slice

Add explicit consent to retain only normalized date/time free windows with the encrypted, revisioned Week Ahead plan. Preserve them through offline pending state, reload, conflict adoption, and same-account sync. Never retain raw ICS or event metadata. Calendar export must consume restored windows and clearly distinguish saved availability from manual timing.

Acceptance tests

  • Import a 09:00–17:00 day with 10:00–11:00 busy time, opt in, apply, reload, and export work at 09:00–09:45 then 11:00 onward.
  • API/storage accepts only seven bounded ISO-date entries with valid non-overlapping HH:mm windows and keeps them inside the existing account-bound encrypted Week payload.
  • Pending/offline snapshots and conflict adoption preserve windows; raw ICS, titles, attendees, locations, and filenames are absent.
  • Without opt-in, current ephemeral behavior and manual fallback remain unchanged.
  • Mobile consent/action controls remain touch-safe and no horizontal overflow is introduced.
## Problem Calendar import computes privacy-safe seven-day free windows, but keeps them only in memory. Reloading or changing devices silently makes calendar export revert to manual contiguous timing, which can place work over meetings the operator already imported. This is distinct from #1210 (explicitly ephemeral import) and #1256 (weekday capacity defaults only). No open issue covers persisted free windows. ## Vertical slice Add explicit consent to retain only normalized date/time free windows with the encrypted, revisioned Week Ahead plan. Preserve them through offline pending state, reload, conflict adoption, and same-account sync. Never retain raw ICS or event metadata. Calendar export must consume restored windows and clearly distinguish saved availability from manual timing. ## Acceptance tests - Import a 09:00–17:00 day with 10:00–11:00 busy time, opt in, apply, reload, and export work at 09:00–09:45 then 11:00 onward. - API/storage accepts only seven bounded ISO-date entries with valid non-overlapping HH:mm windows and keeps them inside the existing account-bound encrypted Week payload. - Pending/offline snapshots and conflict adoption preserve windows; raw ICS, titles, attendees, locations, and filenames are absent. - Without opt-in, current ephemeral behavior and manual fallback remain unchanged. - Mobile consent/action controls remain touch-safe and no horizontal overflow is introduced.
timmy was assigned by rockachopa 2026-08-22 09:33:47 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#1258
No description provided.