Repository navigation
Releases: MorrisXDS/CanvasAssistant
Releases · MorrisXDS/CanvasAssistant
Release list
v1.1.9
What's Changed
- fix(sync): record sync_update for new announcements (canvas source_type) by @MorrisXDS in #156
- fix(courses): first focus press selects index 0, not 1 by @MorrisXDS in #157
- fix(grades): unify past-term null bucket label to "Unknown term" by @MorrisXDS in #158
- fix(notifications): persist due-date reminder dedup across restarts by @MorrisXDS in #159
- fix(files): reuse existing resource copy for duplicate attachment downloads by @MorrisXDS in #160
- docs(courses): cross-reference the no-term label between reader and drawer by @MorrisXDS in #161
- feat(sync): surface edited announcements in the updates feed by @MorrisXDS in #162
- test(sync): un-skip and de-flake the concurrent-sync guard test by @MorrisXDS in #163
- chore: bump version to 1.1.9 by @MorrisXDS in #164
Full Changelog: v1.1.8...v1.1.9
v1.1.8
What's Changed
- test: verify Settings change behavior (not just persist) + e2e UI-actuation by @MorrisXDS in #152
- test: exhaustive settings behavior + e2e UI-actuation sweep by @MorrisXDS in #153
- fix(sync): honor the Sync-files / Sync-announcements toggles by @MorrisXDS in #154
- feat(notifications): make notification settings real + remove dead settings (ADR-0016) by @MorrisXDS in #155
Full Changelog: v1.1.6...v1.1.8
v1.1.6
What's Changed
- feat(grades): term-aware grade history — past terms, credit-weighted cumulative, archived-by-term by @MorrisXDS in #151
Full Changelog: v1.1.5...v1.1.6
v1.1.5
What's Changed
- fix(settings): re-measure accordion content so async-grown sections aren't clipped by @MorrisXDS in #149
- fix(courses): size grid cards by 4:3 aspect-ratio instead of stretching to fill by @MorrisXDS in #150
Full Changelog: v1.1.4...v1.1.5
v1.1.4
What's Changed
- docs(readme): macOS Gatekeeper + Linux AppImage/deb/keychain install notes by @MorrisXDS in #145
- refactor: unify app name to canvas-assistant with first-run data migration by @MorrisXDS in #146
- feat(packaging): add Linux rpm + pacman targets and per-package-manager uninstall command by @MorrisXDS in #147
- fix(packaging): correct pacman artifact extension to .pacman by @MorrisXDS in #148
Full Changelog: v1.1.3...v1.1.4
v1.1.3
What's Changed
- feat(uninstaller): separate keep choices for downloads vs settings by @MorrisXDS in #139
- fix(sidebar): don't show "Not Synced" after sync when all courses hidden/archived by @MorrisXDS in #140
- feat(updates): opt-in update channel with interval + compatibility warning (ADR-0012) by @MorrisXDS in #141
- fix(downloads): user-writable downloads dir when packaged; don't crash startup if unwritable by @MorrisXDS in #142
- feat(auth): validity-based token checking with deferrable re-auth and app-wide sync gating by @MorrisXDS in #143
- fix(lifecycle): force-exit on quit so the app terminates cleanly on Linux by @MorrisXDS in #144
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- docs: add USER-GUIDE.md (page-by-page walkthrough) by @MorrisXDS in #137
- chore: bump version to 1.1.2 by @MorrisXDS in #138
Full Changelog: v1.1.1...v1.1.2
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 ...
v1.0.2
v1.0.1
What's Changed
- Claude/convert cid markdown i at1d by @MorrisXDS in #1
- Claude/convert cid markdown i at1d by @MorrisXDS in #2
New Contributors
- @MorrisXDS made their first contribution in #1
Full Changelog: v1.0.0...v1.0.1
Full Changelog: v1.0.0...v1.0.1