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.
- 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
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.
This reverts commit 2aecd63850.
Reverting so that I can solve the indexing issue. Only marked assessments are getting indexed, which is incorrect behaviour that slipped testing when the plugin was first made.
- Add shared SEQTA fetch layer, extract helpers, passive JSON capture, many new index jobs
- Schema version + shared reset; auto-reset on extension update; fix manual reset (no dynamic import)
- Stabilize hybrid search: lexical title scoring, stale-query guard, vector guardrails, drop route from Fuse keys
- Improve passive titles/routing; tighten message/people handling
- Fix assignment/course indexing (lenient envelopes, subjects mode:list, student id fallback)
- Top bar: indexing label + stacked progress bar under quick search trigger