diff --git a/conductor/tracks.md b/conductor/tracks.md index b354172..a1c7da3 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -16,3 +16,8 @@ This file tracks all major tracks for the project. Each track has its own detail - [ ] **Track: Fix version inconsistency in PLUG.md and icalendar.plug.yaml and investigate plug-manager error.** *Link: [./tracks/fix_version_mismatch_20260219/](./tracks/fix_version_mismatch_20260219/)* + +--- + +- [ ] **Track: Fix issue where recurring meetings are not showing up.** + *Link: [./tracks/fix_recurring_visibility_20260219/](./tracks/fix_recurring_visibility_20260219/)* diff --git a/conductor/tracks/fix_recurring_visibility_20260219/index.md b/conductor/tracks/fix_recurring_visibility_20260219/index.md new file mode 100644 index 0000000..31822b9 --- /dev/null +++ b/conductor/tracks/fix_recurring_visibility_20260219/index.md @@ -0,0 +1,5 @@ +# Track fix_recurring_visibility_20260219 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) \ No newline at end of file diff --git a/conductor/tracks/fix_recurring_visibility_20260219/metadata.json b/conductor/tracks/fix_recurring_visibility_20260219/metadata.json new file mode 100644 index 0000000..be351e3 --- /dev/null +++ b/conductor/tracks/fix_recurring_visibility_20260219/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "fix_recurring_visibility_20260219", + "type": "bug", + "status": "new", + "created_at": "2026-02-19T00:00:00Z", + "updated_at": "2026-02-19T00:00:00Z", + "description": "Fix issue where recurring meetings are not showing up." +} \ No newline at end of file diff --git a/conductor/tracks/fix_recurring_visibility_20260219/plan.md b/conductor/tracks/fix_recurring_visibility_20260219/plan.md new file mode 100644 index 0000000..bcb4422 --- /dev/null +++ b/conductor/tracks/fix_recurring_visibility_20260219/plan.md @@ -0,0 +1,20 @@ +# Implementation Plan - Fix Recurring Meetings Visibility + +## Phase 1: Investigation & Reproduction +- [ ] Task: Create validation test case + - [ ] Add a test in `icalendar_test.ts` with a valid weekly recurring event starting in the past. + - [ ] Assert that it returns multiple occurrences within the 30-day window. + - [ ] Run the test to see if it fails (confirming the bug). +- [ ] Task: Conductor - User Manual Verification 'Investigation & Reproduction' (Protocol in workflow.md) + +## Phase 2: Fix Logic +- [ ] Task: Debug and Fix `expandRecurrences` + - [ ] Analyze the date window filtering logic (`filterStart`, `windowEnd`). + - [ ] Adjust logic if events are being filtered out incorrectly. + - [ ] Run the validation test case to confirm the fix. +- [ ] Task: Conductor - User Manual Verification 'Fix Logic' (Protocol in workflow.md) + +## Phase 3: Cleanup & Verification +- [ ] Task: Full Regression Check + - [ ] Run all tests in `icalendar_test.ts`. +- [ ] Task: Conductor - User Manual Verification 'Cleanup & Verification' (Protocol in workflow.md) diff --git a/conductor/tracks/fix_recurring_visibility_20260219/spec.md b/conductor/tracks/fix_recurring_visibility_20260219/spec.md new file mode 100644 index 0000000..ccff6be --- /dev/null +++ b/conductor/tracks/fix_recurring_visibility_20260219/spec.md @@ -0,0 +1,18 @@ +# Specification: Fix Recurring Meetings Visibility + +## Overview +Users report that all recurring meetings are missing from calendar views without any error messages. This suggests an issue with the expansion or indexing logic for recurring events, possibly introduced by recent changes. + +## Functional Requirements +- **Visibility:** Recurring events must appear in the calendar views. +- **Expansion:** The `expandRecurrences` function must correctly expand valid RRULE strings into occurrences within the specified window. + +## Implementation Steps +1. **Investigation:** Create a test case with a *valid* recurring event (unlike the previous invalid one) and verify if `expandRecurrences` produces the expected occurrences. +2. **Debugging:** Inspect the `filter` logic in `expandRecurrences` (specifically the `filterStart` and `windowEnd` logic). +3. **Fix:** Adjust the logic to ensure valid occurrences are returned. +4. **Verify:** Confirm the fix with the new test case. + +## Acceptance Criteria +- [ ] A new test case with a valid recurring event passes and returns the expected number of occurrences. +- [ ] Recurring events are visible in the calendar view (manual verification).