Skip to content

Release v0.1.0

Choose a tag to compare

@github-actions github-actions released this 28 May 19:42
· 380 commits to main since this release

[0.1.0] - 2026-05-28

Added

  • Refresh current user data on dialog close if edited user matches current user
  • Keep Dashboard & Reports menu items + reset start_date on re-enable
  • Add deterministic test-data seeder
  • Encrypt data at rest with pg_tde and AES-encrypted backups
  • Add eslint-plugin-svelte and fix all lint errors
  • Role-based title and earliest-month nav bound
  • Unify start-date lower bounds across all report tiles
  • Enforce earliest-start-date as global lower bound
  • Structured detail fields instead of raw JSON
  • Lock year input and disable future navigation
  • Show weekday in flextime tooltip (Mo., 25.05.)
  • Group time entries by week, add subject user, responsive layout
  • Show ISO calendar week number and full Mon-Sun range everywhere
  • Surface current week status on submission tiles
  • Add submission reminders for admins and toggle functionality
  • Calendar team heading, weekend column hiding, and audit log mobile fix
  • Add reason field to reopen requests for better context
  • Enhance user email handling and notifications with full names
  • Remove per-entry change-request workflow; lock submitted weeks atomically
  • Swap submit-week button with request-edit when no drafts remain
  • Maximise hue distance among priority calendar colors
  • Rearrange calendar navigation for improved usability and aesthetics
  • Refactor routing to use dynamic imports for improved performance and maintainability
  • Enhance calendar view to include time entries for team leads and improve user visibility
  • Add functionality to check for pending submitted entries and improve absence visibility in calendar
  • Enhance absence chart to include weekend representation and improve labels
  • Add selected days calculation and display in absence dialog
  • Enhance user role management and validation for assistants
  • Update favicon and add AppLogo component for consistent branding
  • Enhance reopen request handling with advisory locks and improved approval logic
  • Update TestApp to support optional Postgres container for testing
  • Add test for non-admin lead batch rejection of own submitted time entry
  • Implement batch approval and rejection for time entries; update user guide and tests
  • Add batch rejection notification for timesheets with consolidated user notifications
  • Enhance role management and approval logic; normalize role handling across user and submission reminder workflows
  • Add assistant role with specific constraints and update user guide. language-specific decimal separator.
  • Send in-app notifications for self-approval/rejection by admin
  • Implement flextime reduction category and update time entry logic
  • Implement per-user configurable workdays_per_week
  • Implement carryover expiry logic for vacation days and update integration tests
  • Strikethrough cancelled absences in absence history
  • Unify dashboard approval tiles with typed labels and diffs
  • Implement change request approvals section with user interaction for approving and rejecting requests; enhance UI for better visibility of pending requests
  • Enhance user guide with detailed onboarding steps and role-based workflows; improve absence request notifications and submission status checks
  • Enhance absence management with effective workday validation and improve UI components for reporting and time tracking
  • Update report tests to include current day in hours and categories
  • Update date handling to include today in reports and calculations
  • Add flextime opening and closing balance to reports, update date handling
  • Add user deletion, show time in notifications, FK cascade fixes
  • Append app URL to outgoing notification emails
  • Update terminology for submission reminders to general reminders
  • Implement absence cancellation workflow and approval reminders
  • Add overtime reporting endpoint and update API router
  • Add cancellation pending status for absences
  • Implement mobile title bar and navigation slider for improved user experience
  • Implement multi-approver support for users and update related UI components
  • Add translations for login screen notifications and monthly reminders
  • Add automated submission reminders and favicon support
  • Update leave days handling and improve UI consistency across reports and user management
  • Implement pending vacation day overrides for new users
  • Implement per-IP rate limiting and connection timeouts for enhanced security
  • Update date handling to use UTC and improve concurrency controls
  • Implement region loading and error handling in AdminSettings; add tests for region selection functionality
  • Implement password reset functionality with email notifications
  • Update Reports layout to include help tooltip for overtime balance and adjust styling; remove dark/light mode toggle button
  • Add help tooltips for overtime in Reports and update translations; style rejected entries with strikethrough
  • Add TrendingUp icon and update translations for "Today" in English and German; adjust absence date range in Reports
  • Improve mobile keyboard handling and enhance login/setup flows with email pre-fill
  • Enhance credential storage for password manager and update input field names
  • Skip processing of rejected entries in build_range function
  • Update SQL query in categories function to exclude rejected entries
  • Enhance absence and change request handling with year validation and notifications
  • Implement submission reminders with configurable deadline and user notifications
  • Restrict non-admin user actions in absence and change request approvals, and enhance user access checks
  • Update CSV export to use translated category labels
  • Enhance user management by enforcing unique email and name constraints, and improve error handling in user creation and updates
  • Enhance non-admin user approval process by assigning orphaned users to the oldest active admin
  • Implement SMTP settings management and connection testing
  • Implement initial setup process for admin account creation with validation
  • Enhance admin setup process by adding first and last name fields and validation
  • Update admin settings endpoint to return detailed SMTP configuration
  • Implement SMTP settings management in admin panel and frontend
  • Add range report endpoint and enhance CSV export functionality
  • Add leave overrides management for users
  • Add overtime start balance to user model and update related functionalities
  • Enforce user start date for time entries and absences
  • Enhance localization and error handling in i18n
  • Enforce reason requirement for time entry rejection
  • Enhance backup functionality with validation for interval and retention settings
  • Update approval processes with transaction handling and improve backup service configuration
  • Implement SPA routing and static file serving in the API
  • Implement absence checks and advisory locks for time entries and absence creation
  • Enhance change request handling and user experience with new validations and translations
  • Seed country and region settings in test database for holiday API
  • Enhance time entry management and user settings
  • Enhance login navigation and error handling; add overtime balance feature in reports; update team settings for user roles; improve time entry loading and submission; refactor theme store management
  • Add local and public Docker Compose configurations with debug support
  • Add Info icon to Icons.svelte and integrate notification service
  • Enhance admin settings with default user settings and improve UI layout
  • Add Docker Compose configuration for PostgreSQL and Caddy services
  • Add start_local.sh and start_public.sh scripts for Docker Compose setup
  • Add mobile bottom navigation bar and pull-to-refresh
  • Enhance time entry management with upsert and remove functions; update dialog close handling
  • Enhance date and time validation in dialogs; update translations for error messages
  • Implement week reopen requests with auto-approval and notifications; add flextime reporting and chart
  • Enhance API and date formatting functions; update CI configuration and ignore files
  • Implement theme toggle functionality with dark/light mode support; add corresponding styles and translations
  • Enhance absence management with normalization and validation; update integration tests
  • Implement date parsing and workday counting functions; add tests for new functionality
  • Add auto-merge approval for Dependabot PRs with patch and minor updates

Changed

  • Split Dashboard into sub-components; fix clippy borrows; add TEST_REFERENCE_DATE docs
  • Correct bottom crop to 2630px (restore 40px, remove Chrome bar cleanly)
  • Fix bottom crop on all screenshots (remove Chrome address bar)
  • Replace screenshots with new crop (−113px top, −257px bottom)
  • Unify duplicated core logic across services and domain modules
  • Increase tour.gif frame delay to 7 seconds
  • Refresh screenshot tour with up-to-date English captures
  • Add screenshot tour to README
  • List supported UI languages in README
  • Update AGENTS.md for 3-layer architecture and parallel test setup
  • Clean up post-architecture-refactor and parallelise integration tests
  • Add static and dynamic badges to README
  • Complete Dialog.svelte migration for all remaining dialogs
  • Extract reusable Dialog.svelte component and eliminate boilerplate
  • Confine all sqlx usage to the repository layer
  • Reposition notification button in layout for improved UI consistency
  • Make /time-entries/all a strict team-only endpoint for non-admin leads
  • Remove legacy change request translations from i18n
  • Unify reopen terminology to edit request / Bearbeitungsanfrage
  • Replace unwrap() with ok() in JSON serialization for safer error handling
  • Update absence and report tests for clarity and accuracy
  • Enhance user visibility logic and improve carryover date handling
  • Update README and improve absence validation logic
  • Simplify run_loop function signature in approval reminders
  • Improve week handling and entry management
  • Consolidate annual leave management into a single table and remove obsolete schema
  • Rename leave-overrides to leave-days in API and UI for consistency
  • Streamline code for date parsing and validation in calendar and absence management functions
  • Rename normalization function to validation and update related logic for absences and time entries
  • Remove linting and formatting steps from CI workflow for Rust and frontend
  • Standardize SQL query formatting across multiple files
  • Remove shared components, time entry screens, and design tokens
  • Update design system colors and styles for improved aesthetics

Fixed

  • Revert cliff.toml template field to commit.message
  • Restore not-allowed cursor on disabled checkboxes
  • Remove width:auto overrides from AdminEmail checkboxes
  • Unify checkbox styling and clarify setup time tracking label
  • Guard pure-admin from blocked endpoints in absence/employee reports
  • Use reactive tracksOwnTime guard so first render isn't suppressed
  • Pg_restore timeout; postgres /tmp tmpfs; keyring recovery
  • Pg_dump timeouts + isolated helper-container mounts
  • Pre-clear stale restore dump in postgres container
  • Sweep stale keyring .tmp; explicit umask 077 in restore.sh
  • Set time_entries.updated_at to last lifecycle write; German categories
  • Clamp future absence timestamps and correct reopen reasons
  • Stage plaintext dump in tmpfs; harden restore checks
  • Add global key provider for pg_tde WAL encryption
  • Silence no-useless-assignment lints
  • Keyed on pathname instead of full path to preserve slider state
  • Exempt leads/admins from earliest-month nav bound
  • Exempt leads/admins from earliest-month nav bound
  • Fix 10 bugs in reports page (round 2)
  • Fix 10 bugs in reports page
  • Null instead of empty string for no min; role-aware earliest-start-date
  • Scope year-nav disable to month-mode only
  • Sick red one shade darker (#b91c1c red-700)
  • Use red-600 for sick to reduce similarity with negative area
  • Update button text from "Run" to "Show" in Reports component and tests
  • Eliminate TEST_REFERENCE_DATE race in start_date test + refactor shared test infra
  • Eliminate start_date test race against TEST_REFERENCE_DATE mutation
  • Two critical logic errors in time credited minutes and submission reminder
  • Update app name to use translation for consistency
  • Correct typo in content security policy header
  • Update astral-tokio-tar to 0.6.2 (RUSTSEC-2026-0145)
  • Correct reference date usage in integration tests
  • Move svelte:fragment slots to be direct Dialog children in UserDialog
  • Resolve test failures after Dialog.svelte refactoring
  • Critical logic errors in Dialog.svelte refactoring
  • Add reason field to reopen request test calls
  • Require user_id for employee category report (enforce 403 without it)
  • Various backend bugs and code quality improvements
  • Align absence workday error message with i18n key and tests
  • 5 bugs in absence and time management
  • Enforce exclude_self at API level for approval queue
  • Hide own submitted weeks from team lead approval queue
  • Unify calendar colors and fix Leadership Tasks clashing with holiday
  • Extend flextime chart bands across full day to next data point
  • Align flextime chart bands with data points and unify colors
  • Align empty edit request expectation
  • Align edit request test expectations
  • Align test assertions with actual workday error message
  • Align error message with integration test expectation
  • Update absence validation for assistants to allow submissions on any weekday
  • Render app logo with explicit size to fix invisible logo bug
  • Correct expected status for valid assistant update in integration test
  • Update notification body structure to JSON for frontend rendering
  • Adjust margin for stat card label help button for better alignment
  • Update notification titles and improve layout for consistency
  • Implement deterministic test infrastructure with reference date injection
  • Use weekday-safe dates in full_suite integration tests
  • Make PR approval optional in auto-merge workflow
  • Resolve CI test failures and update GitHub Actions to Node.js 24
  • Resolve CI failures
  • Update GitHub Actions to valid versions
  • Align remaining workday semantics and comments
  • Simplify vacation balance validation logic by removing unnecessary expiry date checks
  • Update date range validation to allow 366 days and adjust carryover expiry date checks
  • Improve clarity and detail in language-specific messages for week reopen and absence requests
  • Remove erroneous intermediate app.cleanup() calls in integration tests
  • Correct email body format and German grammar; refactor integration tests
  • Use spawn_blocking for Argon2 ops to prevent runtime starvation, harden flaky tests
  • Time tracking and reopen request edge cases and add comprehensive integration tests
  • Validate absence start date before workday checks
  • Resolve test timeout, missing translations, and null guard
  • Derive vacation day count from API instead of hardcoding
  • Translate info tooltips in Reports, stack submit buttons, add absence type to notifications
  • Reopen_requests FK constraint name and reports after_today boundary
  • Match active+role filter in assigned_user_ids CTE to get_approver_ids
  • Exclude cancelled absences from blocking time entry creation
  • Update date handling in Time.svelte and improve toast ID management in stores.js
  • Adjust report calculations to reflect accurate month-end data and improve entry categorization
  • Update pull-to-refresh test assertions to check for active state
  • Streamline pull-to-refresh popover handling for improved user experience
  • Enhance pull-to-refresh functionality with Popover API integration
  • Adjust weekly hours calculation to account for employee start date
  • Enhance sidebar layout for better organization name display
  • Update error messages for password reset flow and adjust related tests
  • Improve error handling in forgot password flow and enhance email pre-fill functionality
  • Return error for forgot_password when public URL is not configured
  • Ensure password reset token validation checks for weak passwords and adjust SQL queries for expiration
  • Update CSV and PDF export to display duration instead of minutes
  • Prevent division by zero in category progress bar width calculation
  • Update overtime balance handling to use hours instead of minutes in UserDialog
  • Refine self-cancellation logic for absences and update error message
  • Simplify cancellation logic for absences and enhance detail dialog functionality
  • Update styles for time week label and picker in Time component
  • Close absence detail dialog when resetting absenceDetail
  • Update layout and styles for time tracking components
  • Update error handling to use optional chaining for toast messages
  • Revert validate_range threshold and categories query to match integration tests
  • Lowercase Docker image tags in CI workflows
  • Restore sick kind change guard and categories status filter in CI tests
  • Pull-to-refresh indicator positioned as fixed overlay on mobile
  • Add --delete-branch to dependabot auto-merge workflow
  • Update testcontainers 0.23->0.27 to resolve RUSTSEC-2025-0111 (tokio-tar)
  • Resolve CI failures (cargo fmt, prettier, duplicate i18n keys)
  • Enhance debugging logs in login and app components; improve calendar and absence table styles
  • Format App.svelte, DatePicker.svelte, Dashboard.svelte with Prettier
  • Refactor routing logic in App.svelte and enhance mobile notification UI in Layout.svelte
  • Correct overlapping CR end_time in integration test; drop unused networkErr catch binding
  • Refactor DatePicker component and replace date inputs in Dashboard and Reports with DatePicker
  • Logic errors found during review + adapt to upstream renames
  • Comprehensive bug and defect fixes across frontend, backend, and CI
  • Add kz-table-wrap and week-grid-scroll-wrap for improved table and grid responsiveness
  • Add missing error handling across Dashboard, Time, AdminUsers, AdminSettings
  • Syntax error in App.svelte (dangling text after toast call)
  • Restore missing onMouseLeave in FlextimeChart (CI build failure)
  • Comprehensive bug sweep — toast type, notification panel mobile, chart touch, admin forms
  • UI bugs — remove overflow-x:clip (breaks Safari scroll), fix safe-area double-count in nav items, add week-grid scroll wrapper, remove dead CSS
  • Mobile responsiveness — overflow-x:clip, dashboard grid, admin tabs, reports filter wrap
  • Fix overflow:hidden on remaining table cards and duplicate height in bottom nav
  • Replace overflow:hidden with overflow-x:auto on all table cards (Reports)
  • Mobile layout — responsive overflow, nav colors, toast position, table scroll
  • Format FlextimeChart and Dashboard with Prettier
  • Use rm -rf for fingerprint directory in Docker build layer
  • Resolve CI failures - update Config struct and fix frontend formatting
  • Format frontend test files and backend source with prettier/cargo fmt
  • Prettier formatting & optimize CI to reuse pre-built Docker image
  • Update minimum password length to 12 characters in account settings
  • Remove unused image specification from docker-compose.yml
  • Update cargo build command to use --locked and refine session cleanup logic
  • Rustfmt formatting in auth.rs logout handler
  • Update auto-merge workflow to use pull_request_target and refine approval conditions for Dependabot PRs
  • Mark CodeQL job as continue-on-error (Code Scanning not enabled in repo settings)
  • Rustfmt - break long route line into multi-line format
  • Update axum route params from :param to {param} syntax for axum 0.8 compatibility
  • Update doc comment to reference SysRng instead of OsRng
  • Update code to be compatible with axum 0.8, rand 0.10, tower-http 0.6
  • Validate end_date and re-check overlap on edit