Files
banner/CHANGELOG.md
2026-01-31 10:04:27 -06:00

8.4 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

0.6.2 (2026-01-31)

Features

  • web: Implement smooth view transitions for search results (5729a82)

Bug Fixes

  • cli: Add proper flag validation for check script (2acf52a)
  • Re-add overflow hidden for page transitions, but with negative margin padding to avoid clipping (9e825cd)
  • Separate Biome format and lint checks to enable auto-format (ac8dbb2)
  • web: Prevent duplicate searches and background fetching on navigation (5dd35ed)

Code Refactoring

  • Migrate API responses from manual JSON to type-safe bindings (0ee4e8a)

Miscellaneous

  • Add dev-build flag for embedded vite builds (5134ae9)

0.6.1 (2026-01-31)

Features

  • build: Auto-regenerate TypeScript bindings on source changes (e203e8e)
  • course: Distinguish async from synchronous online courses (8bfc14e)
  • scraper: Improve dashboard clarity with stat tooltips (1ad614d)
  • scraper: Improve results visibility and loading states (c533768)

Bug Fixes

  • Avoid status flickering on subjects table (2689587)
  • ci: Add postgres container service for rust tests (ebb7a97)
  • ci: Fix rust/frontend/security job failures and expand local checks (dd148e0)
  • data: Decode HTML entities in course titles and instructor names (7d2255a)
  • metrics: Always emit baseline metrics on initial course insertion (16039e0)

Code Refactoring

  • terms: Move term formatting from frontend to backend (cbb0a51)
  • Use friendly term codes in URL query parameters (550401b)

Continuous Integration

  • Add Release Please automation for changelog and version management (6863ee5)
  • Split quality checks into parallel jobs with security scanning (3494341)

Miscellaneous

  • Add ts-rs generated bindings (2df0ba0)
  • Update frontend packages (acccaa5)

[Unreleased]

[0.6.0] - 2026-01-30

Added

  • User authentication system with Discord OAuth, sessions, admin roles, and login page with FAQ.
  • Interactive timeline visualization with D3 canvas, pan/zoom, touch gestures, and enrollment aggregation API.
  • Scraper analytics dashboard with timeseries charts, subject monitoring, and per-subject detail views.
  • Adaptive scraper scheduling with admin endpoints for monitoring and configuration.
  • Scrape job result persistence for effectiveness tracking.
  • WebSocket support for real-time scrape job monitoring with connection status indicators.
  • Course change auditing with field-level tracking and time-series metrics endpoint.
  • Audit log UI with smart JSON diffing, conditional request caching, and auto-refresh.
  • Calendar export web endpoints for ICS download and Google Calendar redirect.
  • Confidence-based RMP matching with manual review workflow and admin instructor UI.
  • RMP profile links and confidence-aware rating display.
  • Name parsing and normalization for improved instructor-RMP matching.
  • Mobile touch controls with gesture detection for timeline.
  • Worker timeout protection and crash recovery for job queue.
  • Build-time asset compression with encoding negotiation (gzip, brotli, zstd).
  • Smart page transitions with theme-aware element transitions.
  • Search duration and result count feedback.
  • Root error page handling.
  • Login page with FAQ section and improved styling.

Changed

  • Consolidated navigation with top nav bar and route groups.
  • Centralized number formatting with locale-aware utility.
  • Modernized Justfile commands and simplified service management.
  • Persisted audit log state in module scope for cross-navigation caching.
  • Relative time feedback and improved tooltip customization.

Fixed

  • Instructor/course mismatching via build-order-independent map for association.
  • Page content clipping.
  • Backend startup delays with retry logic in auth.
  • Banner API timeouts increased to handle slow responses.
  • i64 serialization for JavaScript compatibility, fixing avatar URL display.
  • Frontend build ordering with -e embed flag in Justfile.
  • Login page centering and unnecessary scrollbar.
  • ts-rs serde warnings.

[0.5.0] - 2026-01-29

Added

  • Multi-select subject filtering with searchable comboboxes.
  • Smart instructor name abbreviation for compact table display.
  • Delivery mode indicators and tooltips in location column.
  • Page selector dropdown with animated pagination controls.
  • FLIP animations for smooth table row transitions during pagination.
  • Time tooltip with detailed meeting schedule and day abbreviations.
  • Reusable SimpleTooltip component for consistent UI hints.

Changed

  • Consolidated query logic and eliminated N+1 instructor loads via batch fetching.
  • Consolidated menu snippets and strengthened component type safety.
  • Enhanced table scrolling with OverlayScrollbars and theme-aware styling.
  • Eliminated initial theme flash on page load.

[0.4.0] - 2026-01-28

Added

  • Web-based course search UI with interactive data table, multi-column sorting, and column visibility controls.
  • TypeScript type bindings generated from Rust types via ts-rs.
  • RateMyProfessors integration: bulk professor sync via GraphQL and inline rating display in search results.
  • Course detail expansion panel with enrollment, meeting times, and instructor info.
  • OverlayScrollbars integration for styled, theme-aware scrollable areas.
  • Pagination component for navigating large search result sets.
  • Footer component with version display.
  • API endpoints: /api/courses/search, /api/courses/:term/:crn, /api/terms, /api/subjects, /api/reference/:category.
  • Frontend API client with typed request/response handling and test coverage.
  • Course formatting utilities with comprehensive unit tests.

[0.3.4] - 2026-01

Added

  • Live service status tracking on web dashboard with auto-refresh and health indicators.
  • DB operation extraction for improved testability.
  • Unit test suite foundation covering core functionality.
  • Docker support for PostgreSQL development environment.
  • ICS calendar export with comprehensive holiday exclusion coverage.
  • Google Calendar link generation with recurrence rules and meeting details.
  • Job queue with priority-based scheduling for background scraping.
  • Rate limiting with burst allowance for Banner API requests.
  • Session management and caching for Banner API interactions.
  • Discord bot commands: search, terms, ics, gcal.
  • Intelligent scraping system with priority queues and retry tracking.

Changed

  • Type consolidation and dead code removal across the codebase.