Skip to content

v0.8.4

Latest

Choose a tag to compare

@Xevion Xevion released this 17 Sep 17:42
5e634e4

0.8.4 (2026-09-17)

Features

  • admin: Add audit log for admin actions (00d2f82)
  • admin: Add retryable error panel, harden instructor query binds (dd1418b)
  • instructors: Detect and merge duplicate instructor records (9b5bac7)
  • instructors: Let duplicate review dismiss a pair as two people (14482aa)
  • instructors: Link between instructor, subject and admin views (d3998e0)

Bug Fixes

  • admin-rmp: Make candidate fields non-nullable, switch to query! macro (db488d9)
  • bindings: Rename TimeRange to TimelineRange and guard name clashes (424421f)
  • e2e: Return the Page envelope from the search stub (d962742)
  • instructors: Make instructor merges survive the next scrape (fec3353)
  • instructors: Show real source ratings and link names from cards (93be7f8)
  • rmp-matching: Close auto-link gaps around placeholder departments and re-links (966c539)
  • rmp-matching: Gate auto-linking on confirmed subject evidence (6e5ca17)
  • rmp: Stop review fetches from failing on RMP's own data (2263c0d)
  • web: Handle the navigations the router abandons (6b95872)
  • web: Update the stale search fixtures (e41fb64)

Performance Improvements

  • tests: Replace sqlx::test with cloned-template pools (ad760e0)
  • tooling: Cut backend check and dev-reload turnaround (1e2a5c8)

Code Refactoring

  • admin-scraper: Make schedule state a typed enum end to end (0af262a)
  • admin: Return typed errors instead of matching on messages (7e6c67f)
  • data: Move the data layer onto compile-time checked queries (fa918fb)
  • instructors: Share one card and make name order explicit (cd4b4f9)
  • lints: Adopt clippy pedantic with a burn-down allow-list (92b6274)
  • lints: Burn down too_many_lines with targeted expects and splits (b7c27e9)
  • lints: Enable clippy nursery and collapse table tests with rstest (9eadfcb)
  • rmp-matching: Derive instructor match status from a view (828509f)
  • rmp-matching: Split the matcher into a directory module (574607e)
  • runtime: Rename services module to runtime (ef7bf3b)
  • Split the longest functions into named helpers (067986b)
  • types: Carry Count and DurationMs through course enrollment and scrape results (69cb3e2)
  • types: Let the type system carry what convention was carrying (977f45a)
  • web: Fold bespoke shapes into the shared ones (3575268)
  • web: Read the router from the router, not from the load payload (2117ab5)

Continuous Integration

  • Catch stale sqlx metadata and TypeScript bindings (62e6ff9)

Build System

  • docker: Pin CI image builds to a portable target-cpu (8e945d3)
  • Pin the Rust toolchain instead of tracking a floating stable (4e77a98)
  • tempo: Prepare .sqlx against a migrations-only database (9476b71)

Miscellaneous

  • lint: Enable clippy pedantic across the workspace (d77c9c6)
  • Tidy the repository's public surface (c890397)
  • web: Drop unused @internationalized/date and overlayscrollbars-svelte (56ee1c0)