Skip to content

Releases: ramteid/zerf-time-absence-management

Release v0.1.4

Choose a tag to compare

@github-actions github-actions released this 09 Aug 21:06

[0.1.4] - 2026-08-09

Added

  • Scope user list to approver relationships via /reports/users

Fixed

  • Fix custom-range mobile layout (employee row, then Von/Bis)
  • Clean side-by-side mobile filter layout via display:contents
  • Stop the period picker collapsing the employee select on mobile
  • Keep employee and period pickers side by side on mobile
  • Show the hours unit on the flextime balance tile
  • Stop filter controls overlapping on mobile
  • Group team report by role, fix flextime month-scope, fix mobile layout
  • Show real event times and drop sqlx query noise from System Log
  • Allow editing default days and expiry on a used category
  • Repair five regressions from the 41dd1b8 hardening pass
  • Repair five regressions from the 41dd1b8 hardening pass
  • Stop a blank period from fanning out 2000 API requests
  • Cap unbounded custom-range absence/holiday lookups
  • Correct deploy scripts flag quoting and tier2 clear
  • Resolve 30+ logic issues across backend and frontend

Release v0.1.3

Choose a tag to compare

@github-actions github-actions released this 07 Aug 20:42

[0.1.3] - 2026-08-07

⚠️ Breaking Changes

  • Document postgres named-volume breaking change and migration

The postgres container now mounts a named volume
(zerf_postgres_db_data) at /data/db. Existing deployments must copy their
PostgreSQL data directory from the previous anonymous volume into
zerf_postgres_db_data before upgrading, or the database will start empty.
See docs/UPGRADING.md.

Added

  • Render independent leave-account columns in the team report
  • Queue outbound email delivery with retry and a circuit breaker
  • Add manual "Back up now" trigger, fix Upload now placement
  • Couple leave-account access to entitlement and tile visibility
  • Include comment in the new absence request email
  • Align dashboard card and assistant relevance
  • Provisional manual sends, an exclusion list, and a status card
  • Use auto-growing textarea for recipient addresses
  • Auto-select absence categories, support multiple recipients
  • Show single entry edits individually, full detail for weeks
  • Email a monthly payroll report to the tax office
  • Record week approvals as one audit event per week
  • Deep-link from pending approvals and show entry comments
  • Support recurring manual holidays
  • Bundle backups into a single zip archive
  • Larger desktop typography via rem root font-size
  • Larger typography, centered page width cap, CSS modularization
  • Remove the 14-hour per-day cap
  • Central delivery facade and opt-in admin error alerts
  • Add System Log page and paginate the Audit Log
  • Require a valid share URL to enable backup upload
  • Add null-safe name comparison and update sorting logic in TeamUsers
  • Implement role-based avatar colors and sorting in user lists
  • Group the combined timesheet PDF export by role
  • Color avatars by role and group rosters by role
  • Zero leave days on assistant role selection, restore on switch back
  • Hide irrelevant fields for assistant role instead of disabling them
  • Add Playwright e2e suite with backup/restore verification
  • Self-load holidays for out-of-range years in request dialog
  • Capture pg_tde keyring with each backup for physical recovery
  • Replace wrapping settings tabs with mobile dropdown
  • Send email notification on admin password reset
  • Enable team lead assistant management by default
  • Preserve time data when disabling time tracking, add missing i18n
  • Restore lz4 compression on audit_log via migration 029
  • Add 10-year hard-coded retention for audit_log
  • Add user archiving and restore
  • Allow team leads to create and manage assistant users
  • Sort users alphabetically in all list views
  • Wire base annual_leave_days through user create/update
  • Per-employee category enable/disable
  • Persistent backup scheduling, count-based retention, and admin system-error notifications
  • Interval in days, run daily at 4am UTC
  • Redesign monthly PDF export as per-employee queue
  • Rename Nextcloud Upload tab to Nextcloud Backups
  • Nextcloud upload for DB backups and monthly timesheet PDFs
  • Add per-user submission auto-approval, make all auto-approvals silent
  • Per-option info icons in the AbsenceCategoryDialog
  • Make absence categories fully configurable
  • Extend automatic break deduction to two configurable tiers
  • Implement automatic break deduction
  • Add optional hire date for accurate leave-entitlement proration
  • Generate timesheet export PDFs in the backend

Changed

  • Simplify SMTP sending with a guarded send wrapper and timeout
  • Remove redundant leave-accounts card from Account page
  • Shrink shipped images and keep build cache off the layer graph
  • Simplify TeamReport component by removing leave account handling and updating test fixtures
  • Update team report response type and simplify absence record handling in tests
  • Update workday handling to support flexible scheduling and improve documentation
  • Move upload button to shared actions bar
  • Remove product name from email copy and harden restore selection
  • Simplify payroll and backup copy
  • Drop the "Sonstige Abwesenheit" catch-all category
  • Unify Reports page into Employee/Team tabs with shared toolbar
  • Centralize generated copy
  • Use query_scalar for the category active check
  • Remove system-error alert emails, keep in-app only
  • Remove redundant upload failure notification logic and update documentation
  • Move allow-team-lead-manage-assistants setting to Users page
  • Reorganize FlextimeSection layout and improve responsive design
  • Update development workflow guidelines in AGENTS.md
  • Update archived users section to match merged Users page
  • Unify 'member' terminology to 'user'
  • Merge archived users into Users settings page
  • Centralize post-auth data loading in one shared loader
  • Remove UPGRADING.md
  • Reflect current state (self-contained backup image, postgres caps)
  • Correct data-at-rest encryption docs and add recovery/migration guidance
  • Document postgres named-volume breaking change and migration
  • Replace user deactivation with archiving
  • Unify Admin and Team Settings into a single Settings menu item
  • Sync user-guide table of contents and fix duplicate table row
  • Fix several user-guide.md inaccuracies found during a full audit
  • Collapse cost flags into cost_type enum; drop team_visible
  • Remove jurisdiction references from break deduction comments
  • Extract inline styles to CSS utility classes

Dependencies

  • Refresh Cargo.lock via cargo update

Fixed

  • Retry queue-entry deletes after confirmed email delivery
  • Grant assistant category access before setting leave-account entitlement
  • Wait for the category list to load before clicking Add
  • Default new categories to the end of the sort order
  • Update leave-account card selector after tile redesign
  • Build docker images sequentially to avoid CI build races
  • Use numeric --chmod for static asset COPY
  • Compute automatic break deduction against the day's total, not per block
  • Keep "Back up now" responsive during failure backoff
  • Translate absence category, align hours table, drop absence total
  • Add padding and fix alignment on leave account cards
  • Add missing translations for team report vacation columns
  • Pre-pull postgres image with retry for integration tests
  • Enhance TeamReport table with wrapping-optimized headers and add corresponding test
  • Restore the custom date and time pickers on touch devices
  • Stop Safari collapsing the dialog body to its padding
  • Use native mobile time input fallback
  • Remove unused payroll report notice from AdminPayrollReport
  • Make payroll send status non-blocking
  • Harden dialog interaction handling
  • Complete entry dialog edge-case hardening
  • Harden entry dialog rendering and fallback behavior
  • Harden time entry dialog browser compatibility
  • Tile must require approval even when hours aren't reported
  • Show hours with two decimal places
  • Correct the dashboard card's sent state and colour split
  • Prevent approval queue card headers from overflowing on mobile
  • Match the established 'selected day' phrasing in the Send now hint
  • Clarify the Send now hint now that it doesn't skip the scheduled delivery
  • A manual send no longer replaces the scheduled delivery
  • Only mark categories unpaid explicitly, not by cost_type
  • Validate backup selection explicitly
  • Fix label overflow and upload actions layout
  • Land team leads on the leftmost tab, sort team users list
  • Fix payroll report category list translation and layout
  • Require full approval and pre-start correctness on the Nextcloud export too
  • Correct the flextime claim for no-cost absence days
  • Describe absence cost types from the employee's perspective
  • Restore shared input style and equal widths for flextime date pickers
  • Guard category-picker save against races and dropped edits
  • Remove sick-like qualifier from auto-approve label
  • Correct German case agreement in no-cost help text
  • Fix light-theme color-scheme so inputs stay light when OS is dark
  • Clarify no-cost absence category label and help text
  • Fix date picker input theme and flextime section overflow
  • Wrap dialog footer buttons onto multiple rows
  • Count pending weeks, not time-entry rows, in approval reminders
  • Make metadata cp best-effort in direct dump.enc path
  • Fix three logic errors in restore.sh
  • Preserve line breaks in notification body text
  • Remove redundant table-wrap on approval queue cards
  • Remove PasswordCredential API calls interfering with password managers
  • Translate error notification and report-upload alert text
  • Make absence dates weekend/holiday-safe, fix renamed audit-log selector
  • Require review for start-date reexports
  • Preserve timesheet export integrity
  • Remove orphaned test and unused import after notification removal
  • Improve handling of unexportable timesheet entries and enhance notification details
  • Update user-roster selector after settings card was added above list
  • Update assistant-setting test to use Users page
  • Resolve rejected entry lifecycle traps
  • Harden timesheet PDF export requeue
  • Hold report export for pending absences
  • Tighten export readiness checks
  • Close export and workflow edge cases
  • Four correctness defects in PDF, archive, weekly-status, and absence behavior
  • Harden reopen and reminder workflows
  • Remove -i from docker exec where no host stdin is needed
  • Correct backfill logic and add unit tests
  • Resolve 7 audit findings across submission, export, and reopen workflows
  • Correct phantom-year guard and update tests for pessimistic sourcing
  • Correct vacation/absence logic holes and backup/restore defects
  • Adjust bell position and sidebar width for improved layout
  • Scope team settings to assigned approvers
  • Enable allow_team_lead_manage_assistants before team lead tests
  • Harden backup restore flow
  • Restore PDF total break-adjustment and add archiving cancellation_pending test
  • Close archived-user leaks in reopen requests and approval reminders, unblock absence cancellation
  • Resolve remaining timesheet workflow issues
  • Resolve audit findings in absence calendar, archiving, holiday idempotency, and rep...
Read more

Release v0.1.2

Choose a tag to compare

@github-actions github-actions released this 07 Jun 20:54

[0.1.2] - 2026-06-07

Changed

  • Rename README title to Zerf Time & Absence Management
  • Simplify security section in README, move details to docs/security.md
  • Replace marketing language with factual descriptions
  • Trim sales language from Why Zerf section
  • Add security section and trim sales copy from README
  • Rewrite README overview, features, and quick setup sections
  • Add table of contents to user guide

Fixed

  • Tag release images with full vX.Y.Z version to match git tags
  • Suppress ghost danger active hint
  • Improve dashboard approval interactions
  • Freeze appTodayDate in Reports tests to avoid date-sensitive failures
  • Anchor sed patterns with ^ and $ to prevent partial variable name matches
  • Move Abmelden button to far right in mobile menu header
  • Show Abmelden label on logout button in mobile menu header
  • Move sign out button to profile row in mobile menu
  • Clip more sheet animation to overlay bounds so nav bar stays visible
  • Mobile more sheet no longer covers bottom nav bar
  • Always pull registry image when ZERF_VERSION is not dev

Release v0.1.1

Choose a tag to compare

@github-actions github-actions released this 29 May 06:31

[0.1.1] - 2026-05-29

Added

  • Add ZERF_VERSION=dev mode for local builds
  • Add version and git hash OCI labels to Docker image

Changed

  • Accept version arg in start scripts, replace debug compose with DEBUG env var
  • Replace debug script and compose overlay with DEBUG env var

Fixed

  • Sync Cargo.lock with Cargo.toml after release version injection
  • Remove redundant focus outline rules on checkbox
  • Suppress tap highlight and text-selection flash on checkbox labels
  • Show ZERF prefix in setup screen heading
  • Custom checkbox rendering without browser color or focus ring
  • Sync package-lock.json with package.json after release version injection
  • Sync Cargo.lock with Cargo.toml after release version injection
  • Use standard browser checkbox appearance instead of accent color

Release v0.1.0

Choose a tag to compare

@github-actions github-actions released this 28 May 19:42

[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 sin...
Read more