Repository navigation
v1.1.1
What's Changed
- Add Course Detail keyboard navigation by @MorrisXDS in #3
- Drop unrunnable CI test step; fix unused-var lint errors by @MorrisXDS in #4
- Ci/clean lint baseline by @MorrisXDS in #5
- Chore/secret scan skill by @MorrisXDS in #6
- Expand e2e harness (pages + Calendar); fix Updates focus indicator by @MorrisXDS in #8
- Wire Calendar quick-filter keyboard shortcuts by @MorrisXDS in #7
- Chore/remove dead calendar pages by @MorrisXDS in #9
- Track tests + gate CI on them; fix ambiguous title-merge by @MorrisXDS in #10
- Add sync pipeline integration tests (30 scenarios, A–G) by @MorrisXDS in #11
- Chore/tests in ci and merge fix by @MorrisXDS in #12
- Keyboard scope architecture: useKeymap + Files nav + registry by @MorrisXDS in #13
- Scope-aware two-tab help modal + Settings shortcuts by @MorrisXDS in #15
- Refactor remaining pages onto useKeymap by @MorrisXDS in #14
- Per-field merge selection + keyboard scoping in duplicate-warning modal by @MorrisXDS in #16
- Migrate ConfirmDialog to Modal primitive + delete dead TaskMergeDialog by @MorrisXDS in #17
- Add gitleaks CI workflow as secret-scan safety net by @MorrisXDS in #18
- Add 8 project skills covering common CanvasAssistant workflows by @MorrisXDS in #19
- Migrate shared modals to Modal primitive (FOLLOWUPS #2 batch 1) by @MorrisXDS in #20
- Fix state-duplication in CourseDetail (FOLLOWUPS #1) by @MorrisXDS in #21
- Migrate handwritten modals to Modal primitive (FOLLOWUPS — batch 2) by @MorrisXDS in #22
- Refactor TaskLinkDialog to Modal primitive + FieldMergeEditor (FOLLOWUPS batch 3 / final) by @MorrisXDS in #23
- Add test-matrix project skill by @MorrisXDS in #24
- Enrich canvas_data JSON in manual-test seed scripts by @MorrisXDS in #25
- Modal-stack-aware keyboard shortcuts (ADR-0006) by @MorrisXDS in #26
- Fix TaskLinkDialog regressions (recovery from PR #23) by @MorrisXDS in #27
- docs: add CONTEXT.md domain glossary by @MorrisXDS in #30
- refactor: rename VisibleDataProvider to VisibilityOracle by @MorrisXDS in #31
- fix(ipc): close visibility-bypass bugs via CourseReader (ADR-0007 PR-B) by @MorrisXDS in #32
- test(ipc): recover orphaned PR-B TDD tests by @MorrisXDS in #34
- refactor(store): centralize visibility-defense filter in selectors (ADR-0007 PR-C) by @MorrisXDS in #33
- test(selectors): cover mixed and empty states for visibleNotifications/visibleTasks (ADR-0007 PR-T1) by @MorrisXDS in #35
- test(coreDataSlice): regression coverage for PR-B's fetchCourses simplification (ADR-0007 PR-T3) by @MorrisXDS in #36
- feat(test-utils): createStore() factory + setupTestEnv() for component-integration tests (ADR-0007 PR-T4) by @MorrisXDS in #37
- test(Dashboard): real-store integration test for visibility selector (ADR-0007 PR-T5) by @MorrisXDS in #38
- test(Dashboard): IPC → store → component full chain (ADR-0007 PR-T6) by @MorrisXDS in #39
- ci: enforce per-PR test coverage via diff-coverage check (PR-Gate-1) by @MorrisXDS in #40
- ci(husky): enforce Conventional Commits + test-deletion acknowledgment (PR-Gate-2) by @MorrisXDS in #42
- feat(ipc-contract): FileEntity unified read contract (ADR-0008 PR-F.1) by @MorrisXDS in #43
- feat(l1-persistence): FileEntityProvider + readers + index migration (ADR-0008 PR-F.2) by @MorrisXDS in #44
- feat(ipc): FileEntity IPC channels + getAttachments migration (ADR-0008 PR-F.3) by @MorrisXDS in #45
- feat(ipc): TaskReader + CanvasTaskQueueReader + taskDataHandlers migration (ADR-0007 PR-D) by @MorrisXDS in #46
- feat(ipc): NotificationReader + notificationDataHandlers migration (ADR-0007 PR-E) by @MorrisXDS in #47
- chore(skills): add wait-for-pr skill by @MorrisXDS in #48
- feat(ipc): PolicyReader + policyHandlers migration (ADR-0007 PR-H) by @MorrisXDS in #49
- feat(arch): ADR-0007 enforcement via ratchet ceiling (Final PR) by @MorrisXDS in #50
- feat(ipc): migrate taskTypesHandlers off raw SQL (ADR-0007) by @MorrisXDS in #51
- feat(ipc): migrate taskLinkHandlers off raw SQL (ADR-0007) by @MorrisXDS in #52
- feat(ipc): migrate settingsHandlers off raw SQL (ADR-0007) by @MorrisXDS in #53
- feat(ipc): migrate csvExportHandlers off raw SQL (ADR-0007) by @MorrisXDS in #54
- feat(ipc): migrate exportHandlers off raw SQL (ADR-0007) by @MorrisXDS in #55
- feat(ipc): migrate htmlExportHandlers off raw SQL (ADR-0007) by @MorrisXDS in #56
- feat(ipc): migrate courseExportHandlers import pipeline (ADR-0007) by @MorrisXDS in #57
- feat(ipc): migrate courseAuthorityHandlers off raw SQL (ADR-0007) by @MorrisXDS in #58
- feat(ipc): migrate databaseExportHandlers off raw SQL (ADR-0007) by @MorrisXDS in #59
- refactor(calendar): relocate recomputeCalendarHashes out of ipc-handlers (ADR-0007) by @MorrisXDS in #60
- feat(ipc): migrate backupScheduleHandlers off raw SQL (ADR-0007) by @MorrisXDS in #61
- feat(ipc): migrate calendarEventHandlers off raw SQL (ADR-0007) by @MorrisXDS in #62
- feat(ipc): migrate calendarCrudHandlers off raw SQL (ADR-0007) by @MorrisXDS in #63
- feat(ipc): migrate pagesHandlers off raw SQL (ADR-0007) by @MorrisXDS in #64
- feat(ipc): migrate resourceHandlers off raw SQL (ADR-0007) by @MorrisXDS in #65
- feat(ipc): migrate syncUpdatesHandlers off raw SQL (ADR-0007) by @MorrisXDS in #66
- chore(test): cap jest at 2 workers to contain memory use by @MorrisXDS in #67
- feat(ipc): migrate htmlDependencyHandlers off raw SQL (ADR-0007) by @MorrisXDS in #68
- feat(ipc): migrate fileHandlers off raw SQL (ADR-0007) by @MorrisXDS in #69
- feat(ipc): migrate syncHandlers off raw SQL (ADR-0007 — final handler) by @MorrisXDS in #70
- feat(ipc): migrate courseExportHandlers export reads off raw SQL (ADR-0007) by @MorrisXDS in #71
- feat(ipc): migrate courseDataHandlers enrollment-terms read off raw SQL (ADR-0007) by @MorrisXDS in #72
- feat(ipc): migrate courseContentHandlers off raw SQL (ADR-0007) by @MorrisXDS in #73
- feat(ipc): migrate fileDataHandlers + flip enforcement test to hard-zero (ADR-0007 closeout) by @MorrisXDS in #74
- chore(db): drop 11 dead zombie tables (ADR-0003 cleanup, migration 105) by @MorrisXDS in #75
- refactor(sync): drop orphaned policy_announcements table (migration 106) by @MorrisXDS in #76
- feat(sync): record grade_history points so the grade-trend chart works by @MorrisXDS in #77
- refactor(ipc): remove dead course_policies read chain (ADR-0003) by @MorrisXDS in #78
- refactor(db): drop 6 vestigial scoring columns (migration 107, ADR-0003) by @MorrisXDS in #79
- fix(sync): persist conflict "remember choice" to the column sync reads by @MorrisXDS in #80
- refactor(db): drop dead grace_tokens / grace_token_usage / policy_rules (migration 109) by @MorrisXDS in #81
- refactor(sync): remove dead announcement policy-keyword detection (ADR-0003) by @MorrisXDS in #82
- fix(db): land page-dependency resources + fix createTestData session insert by @MorrisXDS in #83
- feat(db): foreign-key-off table rebuilds in the migration engine (ADR-0009) by @MorrisXDS in #84
- refactor(db): drop course_policies via FK-off notifications rebuild (migration 110) by @MorrisXDS in #85
- docs(context): mark course_task_groups accepted-dead, close zombie cleanup by @MorrisXDS in #86
- feat(ui): reveal announcement file references in the Files page (#29) by @MorrisXDS in #87
- refactor: remove dead policy types + config left by course_policies drop by @MorrisXDS in #88
- chore(skills): session-handoff writes a separate doc CLAUDE.md @imports by @MorrisXDS in #89
- ci: run affected tests only on PRs, full suite on push-to-main by @MorrisXDS in #90
- test(l6-ui): wrap afterEach store resets in act() to silence warnings by @MorrisXDS in #91
- test(l6-ui): clear Dashboard act() warnings + guard against regressions by @MorrisXDS in #92
- refactor(db): drop 3 dead notifications policy columns (migration 111) by @MorrisXDS in #93
- refactor(calendar): migrate ImportConfirmationModal to Modal primitive by @MorrisXDS in #94
- refactor(settings): migrate SettingsModal to Modal primitive by @MorrisXDS in #95
- refactor(sync): migrate SyncConflictModal to Modal primitive by @MorrisXDS in #96
- fix(export): migrate ExportDialog to Modal primitive and fix select-none by @MorrisXDS in #97
- refactor(calendar): migrate EventFormModal to Modal primitive by @MorrisXDS in #98
- refactor(settings): migrate nested settings sub-dialogs to Modal primitive by @MorrisXDS in #99
- refactor(shared): migrate InfoTrigger's InfoModal to Modal primitive by @MorrisXDS in #100
- refactor(tasks): migrate Add-Task modal to Modal primitive by @MorrisXDS in #101
- refactor(calendar): migrate event-detail quick-view to Modal primitive by @MorrisXDS in #102
- test(l6-ui): guard against new handwritten modals by @MorrisXDS in #103
- fix(backup): write manual scheduled backups to the canonical backup dir by @MorrisXDS in #104
- refactor(ui): add Z_INDEX scale and fix modal-occlusion strays by @MorrisXDS in #105
- refactor(constants): centralize straggler storage keys and color maps by @MorrisXDS in #106
- fix(lifecycle): handle macOS sleep/wake (wire IdleStateManager + fix resume deadlock) by @MorrisXDS in #107
- fix(reset): clear app_settings on reset-all-data (backup schedule survived) by @MorrisXDS in #108
- fix(keyboard): correct shortcut-registry drift so Help matches reality by @MorrisXDS in #109
- refactor(settings): consolidate app_settings into user_preferences (migration 112) by @MorrisXDS in #110
- fix(keyboard): resolve page-scope help + migrate announcement-detail to useKeymap by @MorrisXDS in #111
- feat(keyboard): add useSectionScope + SectionBar foundation (no-op) by @MorrisXDS in #112
- feat(keyboard): migrate CourseDetail to useSectionScope + SectionBar (section-nav Phase 1) by @MorrisXDS in #113
- feat(keyboard): migrate Calendar to useSectionScope + rebind course-filter to Alt+Shift+1-9 by @MorrisXDS in #114
- feat(keyboard): migrate CoursesPage to useSectionScope + codify §2 section-nav rule by @MorrisXDS in #115
- chore: ignore agent scratch dirs and workspace briefs by @MorrisXDS in #116
- fix(ui): replace nonexistent --color-primary with --color-navy by @MorrisXDS in #117
- chore: remove dead write-only canvasTimezone SQL path by @MorrisXDS in #118
- fix(keyboard): migrate TaskDetailModal to useModalHotkeys (ADR-0006) by @MorrisXDS in #119
- fix(keyboard): migrate Calendar Alt+Shift to useStackAwareHotkeys (ADR-0006) by @MorrisXDS in #120
- feat(keyboard): add W/S and arrow aliases for Updates row-nav by @MorrisXDS in #121
- refactor(cleanup): remove dead CalendarGrid quick-view path + ExportSchedule.destination by @MorrisXDS in #122
- refactor(cleanup): remove dead L3 Constants + fix Dashboard shortcut registry drift by @MorrisXDS in #123
- test(hotkeys): add no-raw-useHotkeys fitness guard (ADR-0006 step 3) by @MorrisXDS in #124
- fix(keyboard): de-dup section-nav help + e.code digit fallback for intl layouts by @MorrisXDS in #125
- fix(e2e): correct stale Calendar Alt+1 spec + add e2e type-check by @MorrisXDS in #126
- test(e2e): expand suite to 33 specs — route gaps, mutations, ADR-0006 deep modal-stack by @MorrisXDS in #127
- test(e2e): trace+screenshot on failure, html report, forbidOnly guard by @MorrisXDS in #128
- test(e2e): deterministic generated seed — portable, skip-free (ADR-0011) by @MorrisXDS in #129
- test(e2e): coverage breadth — visibility invariant, ADR-0006 deep specs, calendar CRUD, conflicts by @MorrisXDS in #130
- test(e2e): add sync-pull spec with mock Canvas + Playwright projects by @MorrisXDS in #131
- docs(readme): rewrite root README + publish ADRs and testing guide by @MorrisXDS in #132
- docs(readme): regenerate screenshots from synthetic demo data by @MorrisXDS in #133
- docs: add ARCHITECTURE.md + CONTRIBUTING.md by @MorrisXDS in #134
- docs(readme): add production build steps; drop status/author sections by @MorrisXDS in #135
- chore: remove redundant tracked files by @MorrisXDS in #136
Full Changelog: v1.0.2...v1.1.1