Releases
v0.8.0
Compare
Sorry, something went wrong.
No results found
Xevion
released this
11 Sep 01:54
0.8.0 (2026-09-11)
Features
backend: Add multi-layer per-IP rate limiting middleware (a106025 )
backend: Implement rate limit error handling with client-side retry (84bb179 )
bot: Add course watch notifications via Discord DMs (dfd30a1 )
bot: Paginate /search results with embeds and buttons (2523c38 )
course-table: Add a menu for building multi-key sorts (3d70274 )
course-table: Add end-time sort, span untimed rows, align clock parts (b338cec )
course-table: Redesign columns and add instructor sort cycle (d21e338 )
deploy: Add Helm chart for k3s deployment, drop Railway coupling (a3b2643 )
search: Order results by indexed columns instead of JSONB text (d479da0 )
web: Add DB-backed readiness probe and access log target (7ea8dea )
web: Redesign schedule/seats cells with a day-track visualization (b1d16e7 )
Bug Fixes
Add package overrides for minimatch and cookie vulnerabilities (9bbc97f )
backend: Exempt static assets from rate limiting (b34df19 )
ci: Remove deleted scripts/ dependency from security job (cbccebc )
deploy: Harden Helm chart against replica races and Discord redirect misconfig (2ea094a )
deps: Patch quinn-proto DoS and devalue prototype pollution (3faa801 )
deps: Suppress transitive advisories and pin trivy-action (0d49c69 )
filter-bar: Make the term and instructor pickers behave for keyboard and screen readers (9d8ca38 )
filter-bar: Stop the term, subject, and search boxes closing on their own (9de99c1 )
scraper: Replace single-page search with paginated search_all in subject job (0f44a82 )
search-autocomplete: Unwrap microfuzz CJS default under rolldown bundling (23b1172 )
security: Update svelte to 5.53.5 to patch XSS vulnerabilities (a5f163c )
ssr: Stop module-level caches from leaking across server requests (506310e )
stories: Stop addon-svelte-csf rendering bare components without props (f04bcef )
tempo: Recurse subdirectories when copying ts-rs bindings (c481aa8 )
Performance Improvements
backend: Deferred sync bot client init, non-blocking schedule cache load (f607403 )
backup: Replace in-memory dump+compress with streaming multipart upload (3b62a51 )
data: Add course_meetings table, eliminate JSONB schedule parsing (145d5f9 )
data: Precompute per-term aggregates and add maintenance jobs (95f9bfd )
Code Refactoring
Add error context to uncovered db operations and harden stream subscription lookup (4ae1409 )
admin: Give the scraper tables one cell definition each (3050359 )
admin: Share one matching table between bluebook and rmp (b71a6ea )
autocomplete: Pull the typeahead query and merge logic out of the components (11f2195 )
backend: Cleanup AppState, parallelize startup, move bg tasks, fix layering (708ab81 )
course-table: Key every column table on one ColumnId union (9a6749d )
course-table: Split cell components and extract shared state helpers (840a5a8 )
data: Derive the sort key list instead of writing it out (288d7b2 )
data: Move the sort layer into its own module (ef5b45f )
data: Replace fixed-parameter search functions with SearchFilter struct (7d31d0c )
data: Type JSONB columns and bind pagination parameters (a70c9ac )
Decompose routes.rs into focused handler modules (e3bd22c )
Delete dead code and correct stale RUST.md docs (2e6189d )
Extract database query functions into data layer (a6b00fd )
Extract reusable table components and deduplicate slow-op logging (8b5d052 )
scraper: Replace immediate retry with jittered backoff, bound SSR client (5907466 )
scripts: Replace bun script suite with tempo CLI (81a6a6b )
ssr: Replace Bun entrypoint script with Rust-supervised Node SSR (d1df760 )
Standardize data layer signatures to pool-first, use anyhow::Context (a4566cc )
tempo: Switch to 0.2.0 engine, rework bindings generation, add deploy secret sync tasks (5b2f9b9 )
web: Drop attributeMap from CourseDetailContext, modernize Storybook stories (c2b3928 )
web: Use get_all_terms in search options (6e5e924 )
Continuous Integration
e2e: Keep the artifacts that explain a browser failure (a7e4432 )
Replace the hand-rolled audits with the advisory scanner (d3ede7f )
Restore gha build cache (5292112 )
Switch docker build cache to GHCR, add mold/clang for faster builds (2c6df24 )
Miscellaneous
deploy: Pin kubectl for direct k3s cluster access (60f9f92 )
deps: Add undici as web dependency (5355461 )
deps: Bump quinn-proto to 0.11.16 (e79ad87 )
deps: Fix frontend security vulnerabilities in web deps (eb17de6 )
deps: Refresh dependencies and bound the cookie override (796ed77 )
deps: Update frontend dependencies (c53f40e )
deps: Update rust crate chrono to v0.4.45 (#11 ) (291f1fb )
deps: Update rust crate extension-traits to v2.0.2 (#12 ) (44961f3 )
renovate: Migrate matchPackagePatterns to matchPackageNames (7fe7870 )
You can’t perform that action at this time.