Changelist

Timemoz changelist

Released changes to the Timemoz time tracker and sales tracker across the backend API, the web dashboard and the desktop app, with commit references for developers. Desktop changes are listed once their version reaches the auto-update.

Prefer the plain-language version? Read the devlog.

Backend API

Added

  • Indonesian onboarding emails. A "trial ends in 4 days" email goes out on day 10, and a "trial ended" email on day 14 for the time tracker plan. The pricing link matches the product.Commits:fd1ec77
  • Per-company activity tracking setting (useActivityTrack), returned in /auth/me.Commits:1f810f525fe4c36f953cd1ef2c6a
  • Manual time approval settings per company. Three modes: no approval, everything needs approval (default), or auto-approve up to a limit per period. Employees can be exempted, and entries that end in the future are rejected in every mode.Commits:f5df9ad
  • Per-employee auto-approve limits. PUT /v1/manual-time-settings accepts customLimits and returns 422 MANUAL_TIME_CUSTOM_LIMIT_RANGE for an out-of-range value. Limit changes are audited.Commits:461492de2b704e
  • GET /trackings includes the manual time approval status.Commits:de6e443
  • POST /auth/web-session exchanges a desktop session token for a web token, and returns 401 if the device session was revoked.Commits:431fe47
  • Overtime (PP 35) improvements.
    • New endpoints GET /v1/overtime/approvals/quota and GET /v1/overtime/approvals/:id.
    • Submitting more than a day of overtime returns 400 OVERTIME_DURATION_EXCEEDS_DAY.
    • Report rows flag daily and weekly limit breaches.
    • New PDF report and a payroll-ready Excel export.
    Commits:df5bfb54d2894508e9fee8ae28bc

Changed

  • Shared report links now default to 365 days (was 1 day).Commits:edcebec
  • Daily jobs now run on Jakarta time (WIB), outside working hours. Because the server runs on UTC, they used to run between 07:00 and 18:00 WIB. Heavy jobs now run 00:05–04:00 WIB and emails go out around 21:45 WIB.Commits:cefd354069a884
  • Activity timeline. Rows for the same app merge within one timeline, so window-title changes no longer split durations.Commits:adb67653461285ee492e8

Fixed

  • Twin timelines and ignored session updates. Two identical requests arriving together could both pass the duplicate check and create twin timelines. Every later update was then ignored as an overlap, so the session stopped growing. Creates and updates now take a per-tracking lock and deactivate twins. This is the server half of the desktop sync fix.Commits:45cfba2ebeb6d56dc08157e696053af3d836bc3aea
  • Live tracking wins over approved manual time. Overlapping approved manual time is trimmed, split or removed instead of freezing the live session. Project budgets are recalculated.Commits:6d438bf096239c
  • Manual time approvals:
    • Only the part not already recorded is approved, and the same entry can't be approved twice.
    • Zero-length entries are rejected.
    • Auto-approve respects working hours and budgets.
    • Quota and double-count gaps are closed.
    Commits:8f4b8cfc1e88ecee4ec5bb7ee52c5b58399f9ce0d397566fa5bf18f295c8328
  • Screenshots were empty in a dashboard opened from the desktop app.Commits:093de53
  • /auth/me reads cheat detection from the company setting.Commits:d33ca4a41b1dd6
  • Sales tracker: product import errors are handled correctly again.Commits:129e4d2

Performance

  • The desktop's project poll is much lighter. Desktop polls GET /projects/:uuid every 60 s while tracking. Device requests now get a light response, with the sum cached for 60 s and computed only for fixed-hours projects.Commits:33cc6b7
  • A lighter GET /trackings for desktop sessions. Report and screenshot jobs run strictly one at a time. New indexes for app reports and timelines.Commits:c34dc4e2b11ec21ae28abed30921

Web dashboard

Added

  • Manual Time tab on the Company page (admins only).
    • Choose the approval mode.
    • Set a limit per employee, or mark an employee as always needing approval.
    • Apply one setting to everyone at once.
    • Auto-approved entries are labelled in approvals and timesheets.
    Commits:2fa5c5cb00c5103a0b4ba
  • English version of the sales tracker user guide.Commits:3d03bbc
  • Error screen with a way out. A crash now shows Reload and Sign out buttons, instead of a blank "Application error" page that could only be escaped by clearing browser storage.Commits:01f8b1a

Changed

  • The Activity table is sorted by start time. The Activity menu is hidden for companies without activity tracking.Commits:c85b3994cc7c7d

Fixed

  • "Open in browser" from the desktop app now gets its own web session. The dashboard no longer logs out together with the desktop, screenshots load, and the token is removed from the URL.Commits:c0cf025
  • The manual time dialog on the Screenshots page no longer gets cut off on mobile.Commits:2900c1d