Commit Graph

1550 Commits

Author SHA1 Message Date
AdenMGB 95da84ff16 fix: appease the ci godas 2026-06-27 15:31:12 +09:30
AdenMGB d34333ca38 feat: support outlook for calendar plus minor fixes 2026-06-27 15:07:10 +09:30
AdenMGB 2163f06de9 tweak: update rolling perofrmance 2026-06-27 14:24:08 +09:30
AdenMGB eae2e0587c feat: tweak calendar and clean it up 2026-06-27 14:19:28 +09:30
AdenMGB fe1c2f0250 fix: add missing parseCssColor and verboseLog modules for calendar sync build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 12:03:56 +09:30
AdenMGB e6b8be6821 feat: add Google Calendar timetable sync via accounts OAuth
OAuth flows through accounts.betterseqta.org with token exchange server-side. Sync runs in the content script to avoid MV3 service worker timeouts. Adds Svelte calendar sync UI on the timetable page, extension asset URL helper, and excludes calendar tokens from cloud sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 11:51:48 +09:30
Aden Lindsay bd13042fe4 Merge pull request #464 from AdoLovesChicken/gradeSliderRange-input
feat(GradeRangeSlider): add typeable min/max inputs
2026-06-27 07:39:33 +09:30
AdoLovesChicken 174f47f8c2 feat(GradeRangeSlider): add typeable min/max inputs
- Add inputs alongside the slider so values can be
  typed directly, not just dragged
- Clamp typed/dragged values to [min, max]
- Animate the slider with a sine ease when a value is typed,
  keeping the drag unanimated
- Meet min/max values instead of letting fields swap mid-keystroke
- Combine min/max handlers into one `onInput` function
2026-06-26 20:59:33 +10:00
Aden Lindsay c368d89295 Merge pull request #452 from BetterSEQTA/deep-reform
fix: harden extension security and plugin reliability
2026-06-26 19:46:56 +09:30
AdenMGB ca4cbea0f0 chore: reduce complexity 2026-06-26 19:41:27 +09:30
AdoLovesChicken a409dc3f20 feat(FontPickerModal): each font option uses own font 2026-06-24 20:35:32 +10:00
SethBurkart123 ecc89e864c chore: bump version to 3.7.2 and update changelog 2026-06-19 15:00:29 +10:00
AdenMGB a3bdb0fe09 fix: fix assement overview 2026-06-17 18:52:35 +09:30
AdenMGB 5d8cb55b94 fix: fix settings not scrolling all the way 2026-06-17 18:12:03 +09:30
AdenMGB d10fca6c0f perf: reduce startup work and fix grade analytics bar chart animation
Batch settings storage writes, tier plugin startup, lazy-load heavy UI
chunks, and optimize global search indexing. Stop tweening bar height in
grade analytics to prevent invalid negative SVG rect values.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 11:33:30 +09:30
AdenMGB 62ed702e64 fix: escape backslashes in PDF script injection strings
Resolve CodeQL incomplete string escaping alerts by centralizing escJsSingleQuoted for all values embedded in injected script content.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 11:06:17 +09:30
AdenMGB 8a5424c5a4 fix: harden extension security and plugin reliability
Address audit findings across background handlers, openers,
plugins, and UI: URL allowlists, XSS reductions, popup lifecycle
fixes, plugin dispose/cleanup, cloud sync hardening, global search
mathjs sandbox, and settings storage fixes.
2026-06-17 10:52:43 +09:30
AdenMGB 0e696e0175 fix: add safer dom for analytics 2026-06-17 10:09:21 +09:30
AdenMGB b8709f6391 fix: fix analytics page breaking built @sethBurkart123 2026-06-16 17:29:30 +09:30
SethBurkart123 20a4078f60 feat: update update image 2026-06-16 17:37:09 +10:00
AdenMGB ce3468e2ab chore: update image for new layout 2026-06-16 16:56:32 +09:30
AdenMGB b3a4182a52 fix: allow hovering tooltip for forcast analyitics 2026-06-16 16:53:34 +09:30
SethBurkart123 7d18b2483f Remove the one-time SEQTA Engage support startup toast. 2026-06-16 16:25:33 +10:00
SethBurkart123 9bfd1bbf0e Improve grade analytics layout, controls, and forecast chart rendering.
Move filters into a left sidebar, tighten spacing, match homepage checkboxes, fix forecast line domain/looping, and remove the redundant page subtitle. Also fix crxjs dev service worker live reload after Vite upgrade.
2026-06-16 14:32:29 +10:00
SethBurkart123 feaf4dced5 Fix crxjs dev service worker crashes after Vite upgrade.
Downgrade to Vite 6 with crxjs 2.6, add dev-only CSP for HMR, and stop the background script from importing Svelte plugin UI into the service worker.
2026-06-16 12:45:56 +10:00
SethBurkart123 70ccf89756 Merge origin/main into fixcloudsync
Resolve grade analytics conflicts by keeping grade forecast UI from main
and combining layout fixes from both branches.
2026-06-15 10:38:17 +10:00
AdenMGB 62a3d56bed feat: grade forecast 2026-06-13 21:22:50 +09:30
AdenMGB 14a322a128 fix: fix analyitics page for @SethBurkart123 2026-06-13 19:36:04 +09:30
AdenMGB 160407dde6 Merge origin/main and combine changelog updates in OpenWhatsNewPopup.
EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-13 19:27:06 +09:30
AdenMGB c024fa1e5d chore: stuff 2026-06-13 19:25:18 +09:30
StroepWafel 57a1965a6d add aden's requested changes 2026-06-10 11:00:09 +09:30
StroepWafel ec94376e1f nightly build 2026-06-10 01:25:51 +09:30
StroepWafel 9166bebef7 all settings sync 2026-06-10 01:17:13 +09:30
Aden Lindsay c9672b4d85 Merge pull request #450 from Jaxx7594/assessmentsAverage-reindex
feat(assessmentsAverage): fingerprint-based reindex to harden against changed weightings
2026-06-09 10:28:03 +09:30
Seth Burkart 7a867ec8f4 Merge pull request #447 from StroepWafel/Popout-TOTM
super clean popout for TOTM + PFP caching
2026-06-08 17:33:21 +10:00
Jaxx7594 ad67903b2d chore: Add weighting fingerprint reindexing to changelog 2026-06-07 23:25:26 +08:00
Jaxx7594 8b470d6817 feat(assessmentsAverage): fingerprint-based reindex with non-blocking refresh
- Add WEIGHTING_SCHEMA_VERSION constant; bump to force a global lazy reindex
 - Migrate legacy Record<id, string> storage to { weight, fingerprint, pluginVersion }
 - Fingerprint per-assessment on status, graded, availability, score, due, title (sourced from the React fiber)
 - Refetch weighting only when fingerprint or schema version mismatches
 - Preserve previous weight as refreshing placeholder during background refetch
 - Render subject average immediately from cache; run parseAssessments off the critical path
 - Coalesce concurrent renderSubjectAverage calls instead of dropping them
 - Dispatch betterseqta:weightingsChanged on refetch start and completion
 - Show row-level refresh indicator and "Refreshing weightings" notice while refreshing
 - Leave weightingOverrides untouched by all reindex paths
2026-06-07 23:14:15 +08:00
Jaxx7594 984719ce28 feat: Improved navigation in courses (via a plugin)
What it does:
 - Makes the course navigator focused on the currently selected lesson instead of the top upon opening
 - Adds arrows to the course page, to allow for easier navigation.
2026-06-06 23:12:30 +08:00
StroepWafel 3f1910f610 release build and other CI 2026-06-05 16:58:11 +09:30
AdenMGB b535e87023 chore: update changelog 2026-06-05 10:00:38 +09:30
AdenMGB dd0830d349 feat: add new copy rubric button 2026-06-05 09:31:42 +09:30
AdenMGB b4a59330c5 fix: fix assement overview not choosing actuve subjects and improve styling 2026-06-05 09:18:33 +09:30
AdenMGB 314c555d87 fix: ensure the ability to override weightings 2026-06-05 08:55:06 +09:30
StroepWafel bc75c9a2c7 PFP caching 2026-06-04 20:05:34 +09:30
StroepWafel a755d442bc Merge branch 'BetterSEQTA:main' into Popout-TOTM 2026-06-04 19:53:08 +09:30
StroepWafel 824812ea9e super clean popout 2026-06-04 14:33:52 +09:30
StroepWafel 0878910043 Sync PFP on change 2026-06-04 12:44:34 +09:30
SethBurkart123 ce18412405 fix: text on analytics page reload button 2026-06-03 10:32:36 +10:00
AdenMGB 4f6c978043 finalise compat 2026-06-02 13:33:45 +09:30
AdenMGB 9093553ff1 compat: improve compat for nueromphic theme 2026-06-02 13:11:34 +09:30