← Back to Clock Punch
Clock Punch Changelog
All notable changes to the Clock Punch app.
v3.7.1
2026-03-05
- Security: Block access to sensitive server-side files via HTTP — server code, database files, configuration, infrastructure scripts, and internal directories are no longer served to the browser
v3.7.0
2026-03-04
- Feature: Parent projects with subprojects can now be hidden from the Track tab — toggle "Hide parent" / "Show parent" in the Projects tab to control whether the parent punch button is visible
v3.6.2
2026-03-03
- UX: Time inputs now accept flexible formats — enter
1600 or 900 instead of 16:00 or 9:00; the colon is added automatically on blur
v3.6.1
2026-03-03
- Infra: Changed backup retention from 48-hour snapshots to 180-day daily backups — each day's last backup is kept
v3.6.0
2026-03-02
- New: Today's summary on Track tab — see total hours and per-project breakdown at a glance without switching to History
v3.5.1
2026-03-02
- Fix: Project tab buttons (Deactivate/Del) no longer overflow on mobile; items wrap to a second row on narrow screens
v3.5.0
2026-03-02
- Mobile-friendly UI: Comprehensive responsive design overhaul with two breakpoints (768px tablet, 480px phone) replacing the single 600px query
- Better touch targets: Buttons and interactive elements now meet mobile-friendly sizing guidelines
- Responsive layouts: Navigation tabs, punch grid, history filters, entry rows, modals, timesheet, and dashboard all adapt gracefully to smaller screens
- Calendar popup: Calendar widget centers on screen for small phones, preventing overflow
- Inline style cleanup: Moved inline width styles to CSS classes to enable proper media query overrides
v3.4.1
2026-03-01
- Consistent date format: History page date filters now use the same ISO date format (YYYY-MM-DD) and calendar widget as all other date fields, replacing the browser-native date picker which displayed locale-specific formats
v3.4.0
2026-03-01
- Quick add entry: Each project card on the Punch In/Out page now has a “+ add entry” link below it, opening the manual entry form pre-selected to that project
- Calendar picker: All date entry fields (manual entry, edit entry, adjust start time) now have a calendar icon that opens a month-view date picker for easier date selection
v3.3.1
2026-03-01
- History default range: History view now defaults to the current month instead of the last 7 days, giving a more useful overview when first opening the tab
v3.3.0
2026-03-01
- Cleaner history chart: Removed hours text labels from the daily bar chart in the History tab for a less cluttered view — hover tooltips still show exact hours
- Granular backups: Database backups now run every 15 minutes (was daily). Each run writes a “latest” copy and a timestamped snapshot. Snapshots are retained for 48 hours then automatically pruned
v3.2.0
2026-02-27
- Member entry details: Click any team member card on the Dashboard to expand and see their individual time entries — shows date, time range, project, notes, and duration
- Terminology: “Project leader” renamed to “Project manager” across the entire app (team list, member badges, error messages)
v3.1.0
2026-02-27
- Dashboard reliability: Fixed team member entries not appearing in manager dashboard due to silent API failures
- Error handling: API calls now catch network errors and show user-visible toast messages instead of failing silently
- Loading state: Dashboard shows “Loading…” indicator while fetching data and a retry prompt on failure
- Startup fix: Teams are now fully loaded before the app is interactive, preventing race conditions with the dashboard tab
v3.0.0
2026-02-27
- SQLite database: Migrated from JSON file storage to SQLite (via better-sqlite3) for faster queries, data integrity with foreign keys, and WAL mode for concurrent reads
- Prepared statements: All database queries use prepared statements for better performance and security
- On-demand CSV export: CSV files are now generated on-the-fly from database queries instead of being pre-cached on disk
- Removed S3 per-write uploads: No more S3 upload on every save — replaced with daily database backup
v2.16.0
2026-02-27
- Euro budgets: Projects can now have budgets in euros (€) instead of hours — enter “€5000” when setting a budget
- Missing salary warnings: Euro-budgeted projects show a warning when team members are missing salary cost, since budget status cannot be calculated without it
- Separate budget KPIs: Dashboard summary bar shows “Hour Budget” and “€ Budget” percentages separately when both budget types are in use
v2.15.0
2026-02-27
- Dedicated budget overview: New “Budgets” section in manager dashboard showing all budgeted projects with progress bars, used/remaining hours, and percentage — visible even when no entries in the current period
v2.14.0
2026-02-27
- Dashboard budget tracking: Project budget progress bars now shown in the manager dashboard per-project breakdown — color-coded green/orange/red based on usage
- Budget KPI: Dashboard summary bar shows overall budget utilization percentage and count of over-budget projects
v2.13.0
2026-02-27
- Logout state flush: Logging out now fully clears all in-memory data (projects, entries, teams, dashboard) so the next login starts completely fresh
- History filter: Project dropdown in History now includes assigned team projects, search filter matches assigned project names
- Cache control: HTML files now served with no-cache headers to prevent stale browser caches after updates
- Fix: Edit/manual entry modals no longer show a disabled separator as the only option when user has no personal projects
v2.12.0
2026-02-27
- Member salary costs: Project managers can set per-member salary costs on each assigned project — click the cost badge next to a member in the assignment list
- Revenue vs cost: Dashboard summary now shows revenue (from project hourly rates), salary cost, and margin separately
- Project & member cost breakdown: Dashboard project rows and member cards show salary costs; team time entries display salary amounts per entry
- Fix: Team members can now add and edit history entries for manager-assigned projects — previously the buttons did nothing due to an ID parsing bug
- Fix: Edit entry modal now includes assigned projects in the project dropdown
- Fix: Duplicate entry now works correctly for assigned project entries
v2.11.0
2026-02-27
- Manual entries for assigned projects: Historical entry form now includes team-assigned projects in the project dropdown, with team name labels
- Fix: Assigned projects now load correctly on fresh page visit — no longer requires switching tabs first
v2.10.0
2026-02-27
- Project budgets: Set hour budgets per project via clickable badge in project list
- Budget progress: History summary shows tracked vs budget hours with color-coded progress bar (green/yellow/red)
v2.9.0
2026-02-27
- Team Dashboard: New Dashboard tab for project managers with KPI summary (team hours, total cost, entries, active/total members, avg per member)
- Daily team chart: Bar chart showing daily team hours with tooltips displaying member count per day
- Member breakdown: Per-member cards with total hours, entry counts, top project tags, and relative hour bars — inactive members shown separately
- Project breakdown: Per-project rows with color-coded bars, time, cost, percentage, and member/entry counts
- Quick filters: This Week, Last Week, This Month, Last Month presets for fast date range selection in the dashboard
v2.8.0
2026-02-27
- Project assignments: Project managers can assign their projects to team members — members see assigned projects in the Track tab and can punch in/out on them
- Team time view: Managers can view all members' logged hours on assigned projects with date range and member filters
- Assignment management: Assign and unassign projects to specific team members from the team management modal
- History integration: Assigned project entries show team name badges in History view and are included in summary calculations
v2.7.0
2026-02-27
- Teams: Create teams, invite members by username, accept or decline invitations — foundational team infrastructure for future shared visibility features
- Team management: Rename teams, remove members, cancel pending invites, delete teams (manager only). Members can leave teams at any time
- Invite badge: Orange notification dot on Teams tab when you have pending invitations
v2.6.0
2026-02-26
- Cancel timer: Running timers now have a "cancel" link that discards the entry entirely — useful when you accidentally punch into the wrong project
v2.5.0
2026-02-26
- S3 backup: All time tracker data (user accounts, entries, CSV timelogs) is now automatically backed up to S3 on every save — versioned bucket provides full change history
v2.4.0
2026-02-26
- Error handling: API errors now show toast notifications instead of silently failing — success toasts no longer fire when operations fail
- Last Week filter: Added "Last Week" quick filter button to history for easy access to the previous week's entries
- CSV notes: CSV export now includes a Notes column with entry notes
- Timesheet filters: Weekly timesheet now respects the project filter and rounding settings from the filter bar
- Timesheet pricing: Weekly timesheet shows an Amount column with euro totals when projects have hourly rates set
v2.3.1
2026-02-26
- Date filter auto-refresh: Changing the From or To date in History now automatically refreshes entries, summary, and chart — no need to click the Filter button
v2.3.0
2026-02-26
- Punch-in note prompt: When punching in, a modal now asks what you're planning to work on — the note is included in the entry automatically. Input is optional (press Start or Enter to skip).
- Tab title: Running timer in the browser tab now shows hours and minutes only (no seconds), and includes the euro amount when the project has an hourly rate set.
v2.2.2
2026-02-26
- Timesheet fix: Fixed weekly timesheet shifting entries by one day (Monday hours shown on Tuesday, etc.) — caused by UTC/local timezone mismatch in date calculations
- Chart fix: Fixed daily hours bar chart where bars of similar height (e.g. 12h vs 11.5h) could appear very different — prevented value label text wrapping from affecting bar area height
v2.2.1
2026-02-26
- Chart fix: Fixed daily hours bar chart where bar heights didn't correctly correspond to daily hours — bars now scale proportionally within available space
v2.2.0
2026-02-26
- Search filter: Search entries by note text or project name in the History view — filters results, summary, and chart in real time
- Modal auto-focus: Input fields now auto-focus when opening modals (edit entry, add break, manual entry, adjust start time)
v2.1.1
2026-02-26
- Track tab fix: Fixed Track tab appearing empty on initial page load — punch buttons now render immediately after login
v2.1.0
2026-02-26
- Track tab default: The Track (punch in/out) tab is now the first tab and active by default when opening the app
v2.0.0
2026-02-26
- Multi-project filter: Select multiple projects at once in History view using checkboxes instead of the single-project dropdown
- Configurable rounding: Choose rounding interval in History view — None, 5 min, 10 min, 15 min (default), 30 min, or 1 hour
v1.9.0
2026-02-26
- Hourly pricing: Set an hourly rate per project — euro amounts shown on history entries, daily totals, and period summary
- Report options: Checkboxes to include/exclude breaks and pricing columns in PDF reports
- PDF encoding fix: Fixed garbled characters (em-dashes, special chars) in PDF reports by properly encoding to WinAnsiEncoding
v1.8.0
2026-02-26
- ISO date & 24h time: All date/time inputs now use explicit YYYY-MM-DD and HH:MM (24-hour) format instead of browser-locale-dependent datetime pickers
v1.7.0
2026-02-26
- Weekly timesheet: New Timesheet view in History tab — grid showing hours per project per day of the week, with totals. Navigate between weeks with arrow buttons. Great for billing and timesheets
v1.6.1
2026-02-26
- Login fix: Fixed password reset tool changes not taking effect until server restart — login now reloads credentials from disk
v1.6.0
2026-02-26
- Display name: Set a display name for your account — click your name in the top bar to edit. Used in PDF reports and CSV exports
- Password reset tool: Admin CLI tool (
node tools/reset-password.js) for resetting user passwords
- Server-side persistence: Active timers are saved to the server immediately on punch-in, so tracking survives browser crashes
- Timelog regeneration: CSV timelog files are regenerated on server startup for consistency
v1.5.0
2026-02-26
- Project colors: Assign colors to projects for visual identification across punch buttons, history entries, and summaries
- Running timer notes: Add or edit notes while a timer is active — click "add note" on any running timer
- Daily hours chart: Visual bar chart in History showing daily hours for the selected date range, colored by dominant project
- Color indicators: Color dots in history entries and summary breakdown for quick project identification
v1.4.0
2026-02-26
- Last Month filter: Quick filter button to set date range to the previous calendar month
- PDF report: Download a PDF report of the currently viewed history with summary, per-project breakdown, and daily entries
v1.3.0
2026-02-26
- Adjust active timer start: Click the "started HH:MM" label on any active timer to adjust its start time
v1.2.0
2026-02-26
- Quick filters: Today, This Week, and This Month buttons for fast date range selection
- CSV download: Download your time log as a CSV file directly from the History view
- Duplicate entries: Clone any completed entry with the Dup button to quickly create similar entries
- Tab title timer: Browser tab shows elapsed time and project name when punched in
v1.1.0
2026-02-26
- Manual entries: Add time entries with custom start/end times from the History view (+ Add Entry button)
- Entry notes: Add optional notes to time entries to describe what was worked on
- Period summary: Summary bar in History showing total time, entry count, days worked, average/day, and per-project breakdown
- Toast notifications: Visual feedback on all actions (punch in/out, save, delete, etc.)
- Keyboard shortcuts: Escape key closes any open modal
- Time validation: Prevents saving entries where end time is before start time
v1.0.0
2026-02-21
- Initial release: User authentication with PBKDF2-SHA512 password hashing
- Projects: Create top-level projects and subtasks, toggle active/inactive
- Punch in/out: Real-time elapsed time display, green active indicator
- History: Daily entry breakdown with date range and project filters, 15-minute rounding
- Entry editing: Modify start/end times, reassign projects, delete entries
- Breaks: Add breaks with duration and optional notes
- CSV export: Automatic per-user CSV file generation