All notable changes to this project will be documented in this file.
- (lessons) Create session on save, fix 1970 date in session list
- (calendar) Show dots only for sessions, colored by category
- (sessions) Remove isUtc: true to fix off-by-one date in table
- (database) Upsert sessions from grade entries on conflict
- (lessons) Show all notes instead of capping at 5
- (database) Migrate sessions from grade entries (v18)
- (database) Also seed sessions from attendance logs in v18 migration
- (settings) Add restore-from-backup button in backups section
- (settings) Show inline backup list with restore per entry
- (notes) Add search bar to global notes view
- (groups) Add CSV export for grades, attendance, homework and summary
- (groups) Let user choose save location for CSV exports
- (sessions) Remove category color circles from sessions table
- (sessions) Hide checkbox column in sessions table
- Add FAB clearance bottom padding in lesson mode screen
- Add checkout step to publish-playstore job
- (lesson) Enhance seating plan lesson actions
- (seating-plan) Improve edit mode moves
- (settings) Store settings in classi projects
- (app) Refine sync, update, and seating feedback
- Improve error handling and notify users on failure
- (database) Make v12/v13 attendance migrations idempotent
- (seating-plan) Prevent chip from snapping back on concurrent drag
- (seating-plan) Fix UNIQUE constraint error and remove dark background
- (seating-plan) Select next plan after deleting the active one
- (groups) Replace ListView with SingleChildScrollView in group detail
- (seating-plan) Add seating plan feature
- (seating-plan) Replace free-drag canvas with configurable grid
- (seating-plan) Auto-expand columns like rows
- (seating-plan) Default plan with star + auto-load on view switch
- (release) Update X-AppImage-Version in Linux desktop file on tag
- Align grade table header with rows using Expanded columns
- (lessons) Load grades reactively when category changes
- (android) Remove redundant edge-to-edge helper
- (lessons) Add lesson notes and attendance states
- Improve teacher UX with quick note, class average line, and attendance badge
- Add date-range filter and parent summary screen
- Custom date range filter, overflow fix, and summary screen filtering
- Add quick note FAB to parent summary screen
- (ui) Improve layout for desktop and wide screens
- (lessons) Add category-driven lesson planner
- (webdav) Avoid false newer-backup prompt
- (linux) Align AppImage app identity
- (changelog) Skip fastlane changelog commits and deduplicate entries
- (changelog) Use unique filter for cleaner deduplication
- (android) Add INTERNET permission to release manifest
- (linux) Close window when app is in lock mode
- (ci) Remove [skip ci] from fastlane changelog commit
- (backup) Clear pending-import flag after restore and show restoring state
- (setup) Overwrite prompt for duplicate DB names and WebDAV credential correction
- (sync) Improve WebDAV sync reliability and UX
- (backup) Test WebDAV connection using current field values
- (backup) Upload before locking and show progress indicator
- Update README and CHANGELOG for WebDAV backup and theme settings
- Remove section from changelog
- (settings) Add configurable theme setting (light/dark/auto)
- (backup) Replace local-folder backup with WebDAV support
- (backup) Restore from WebDAV with credential prompt when unconfigured
- (setup) Extract create database dialog into StatefulWidget
- Address code review issues in AppUpdater
- Address second round of code review issues in AppUpdater
- Add auto-update for desktop apps using updat package
- (students) Match displayed names to sort order
- Await delete before popping sheet and navigate cleanly after deletion
- (backup) Extend suspendBackgroundLock to cover all async state updates
- Add delete button to student edit sheet with confirmation dialog
- (backup) Use if/else to remove early return and dead code
- (setup) Show error snackbar if database creation fails
- Update changelog
- (android) Enable edge-to-edge for Android 15 compatibility
- Add PRIVACY_POLICY.md for Google Play Store
- Add fastlane metadata
- Remove publish-playstore from release job needs
- Add playstore release
- Prevent app from locking when file picker dialog is open
- Restore navigation context after app unlock
- Address review issues in list screens and student selection sheet
- Better lists
- (students) Add Lists tab to student detail screen
- (students) Extract _ListItemTile widget to avoid code duplication
- (ci) Replace invalid reactions permission with issues write
- (setup) Force folder selection and warn about storage risk on Android
- (setup) Extract default library name to a named constant
- (android) Use stable release keystore for signed APK builds
- Add archive: false to upload-artifact steps for direct download links
- Add missing biometricService argument to test constructors
- Prevent app from locking twice on background
- (ci) Add rocket reaction on build start and direct binary download links
- (ci) Restore upload-artifact for zip downloads, keep rocket reaction
- Cache PackageInfo future and unify shell quoting in Windows build step
- Add fingerprint/biometric unlock support on Android, iOS, and macOS
- Add PR build app name suffix and version info in settings
- (session) Centralize app session errors
- (ui) Replace raw error output
- (data) Query group student counts
- (lessons) Extract lesson sections
- (app) Cover session entry states
- (ci) Wait for changelog before building, fix release body linebreaks
- (ci) Bump pubspec.yaml version on release
- PR builds use .pr applicationId suffix to avoid overwriting the real app
- Enable swipe between tabs in Notes and Groups screens
- (setup) Dispose nameController and deduplicate path in dialog
- (ci) Use actions/upload-artifact@v7 to match release.yml
- (setup) Use descriptive validator error messages in wizard steps
- (setup) Allow folder and name selection when creating a database
- (ci) On-demand per-platform PR builds with artifact comment
- (ci) Trigger per-platform builds via PR comment with direct artifact link
- (setup) Convert SetupScreen into a 4-step database creation wizard
- (ci) Update upload artifact to v7
- (ci) Add PR build workflow for downloadable binaries