Skip to content

v0.1.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Sep 11:09
a376f90

Highlights

First public release: a local-first desktop work-time tracker that keeps every entry in a Postgres
database you control.

Added

  • Dashboard with start, pause, resume, stop and project switching, day navigation, daily and weekly
    targets, a cumulative overtime balance and the time distribution per project.
  • Retroactive time management through quick-add buttons or durations such as 2h 45m; entries land
    in the first free slot of the day and never overlap.
  • Per-project hour budgets with a due date, including consumption and forecast in Reports.
  • Working-time support: breaks as entries of their own, warnings for break, daily maximum and rest
    period limits, a monthly CSV or PDF record per employee, and an audit trail of every change.
  • Absences for a day or a range as vacation, sick leave, unpaid leave or half day; a full-day
    absence drops that day's target to zero, a half day keeps half of it.
  • Settings for the weekly working time and the working days, with working-time limits that default
    to the German ArbZG and can be adjusted or restored.
  • Accounts with a strict password policy, Argon2id hashes, login lockout and per-user data
    isolation.
  • Installers for Windows and macOS plus portable archives for machines where nothing may be
    installed.

Upgrade impact

None: this is the first release. Installing it is described in
docs/installation.md.

Commits in this release
  • a376f90 ci(release): resolve tag SHA from local checkout instead of gh api (#147)
  • b68eb57 docs: clarify logging behavior and file locations in documentation
  • 95f7637 fix(logging): make redaction idempotent (#143)
  • 5a56f0a ci: run release fuzzing beside bundling and gate publication on it (#145)
  • 52b1860 ci: disable credential persistence in checkout steps (#144)
  • 98c5a85 ci(release): publish human-readable release notes from the changelog (#141)
  • 7074d83 docs: describe how to obtain, give feedback, and contribute (#139)
  • 3d08734 docs(contributing): state the requirements for acceptable contributions (#140)
  • ef70506 ci: gate releases on the fuzz targets (#142)
  • 6854557 feat(db): log each migration step (#136)
  • 3a7c8d8 chore: add codeowners file (#137)
  • b29999a feat(dashboard): block tracking on days that have not happened yet (#135)
  • 3770fcf fix(timer): apply the rounding rules when a session is stopped from the entry list (#131)
  • d2d461f fix(timer): keep rounded sessions from blocking the next start (#129)
  • ae43ccf fix(dashboard): show full project name as tooltip in Time by Project legend (#133)
  • e781d1d Delete .github/workflows/pr-title.yml
  • 0fdc77c ci(release): gate publish job on production environment approval (#127)
  • b35939f ci: deploy docs/site to github pages via actions (#125)
  • cfdb862 fix: remove hard-coded password literals in rust test fixtures (#122)
  • df6a481 chore: add overrides for esbuild dependency in package.json (#121)
  • 0a15331 fix: keep redacted log messages free of secrets (#120)
  • aaa683c build(deps): bump codecov/codecov-action from 5.5.5 to 7.0.0 (#119)
  • ed42af9 feat(security): enhance security checks with automated scans and reporting (#118)
  • abed3a3 feat(security): implement row level security policies and create application role (#117)
  • 488d9af feat(ci): integrate Codecov for coverage report uploads (#116)
  • 7c9cc1c docs(architecture): keep the decision records short and unnumbered
  • 2c269b1 docs: keep every rule in one document
  • 4ddd3cb docs: bundle the installation instructions in one guide
  • 5eed58d test(auth): count dummy verifications per thread
  • 147cd7f feat(portable): ship portable Windows and macOS builds for users without admin privileges (#115)
  • 2b71dfe fix: surface fatal startup errors in native dialog (#113)
  • 1f74102 docs: state hosted EU database and author access in the legal texts (#111)
  • 7d93fec feat(docs): add GitHub Pages landing site (#112)
  • fd550ba refactor: move postgres tables into wtt schema (#110)
  • c9d79bb test: speed up unit and e2e setup (#109)
  • 222762a feat(projects): archive projects and warn about overdue budgets while tracking (#105)
  • b06a04f feat: delete account from the settings menu (#107)
  • 66c47a8 docs(skills): add the code-review-and-quality review skill (#108)
  • 75eaeaa feat(ui): add terms of service and privacy policy to the burger menu (#102)
  • d380288 docs: audit repository documentation and comments (#101)
  • 418fd1d Support a remote Supabase Postgres for production images (#86)
  • d5304a0 fix(db): answer not found when a delete names a foreign record (#94)
  • 749aa83 fix(auth): end a session at its absolute lifetime (#95)
  • adb7020 fix(tauri): keep the devtools out of a release build (#96)
  • 2c8cc41 fix(auth): bind a session to the webview window that started it (#98)
  • e8bd4df fix(auth): keep the session id out of the storage of the webview (#99)
  • 1b0df8f fix(tauri): remove style-src 'unsafe-inline' and state the CSP directives explicitly (#100)
  • 1f10646 fix(build): bind the dev server to loopback by default (#97)
  • b762785 [WIP] Collapse all migration files into a single baseline migration (#84)
  • 677908c Record identity, project, budget and work-settings changes in an append-only security audit trail (#81)
  • 5172134 Ship release installers only for Windows and macOS (#83)
  • 55d855d docs: add AGENTS.md and conventional commit contribution guidelines (#78)
  • 4ece70e Update copyright statement in LICENSE (#82)
  • 1944b03 Add Audit Trails e2e coverage (#76)
  • 518ab6c Bump the npm group with 3 updates (#79)
  • 7939c90 feat/prod-container (#75)
  • 5a8c23e Ship the WorkTimeTracker logo as the application and web icon (#72)
  • 8b30f44 Add a read-only "Audit Trails" view under a new "Audit" navigation group (#68)
  • 4e40866 Expand Playwright e2e coverage across uncovered pages and cross-page workflows (#66)
  • f8dd0e4 Fix overlapping texts in the Overtime Overview dashboard card (#74)
  • fae654a Left-align sidebar navigation items on a single icon column (#70)
  • c541f92 Update Cargo.toml to remove unnecessary crate types and enhance CONTRIBUTING.md with detailed prerequisites
  • 51005eb Speed up npm run test:e2e from 2m29 to 1m07 (#65)
  • 4b63b45 Add end-to-end tests for the time rounding on timer stop (#62)
  • 5135baf Round the captured time to whole minutes when the timer is stopped (#61)
  • a913fe2 Add explicit and automatic overtime management (#58)
  • c9ed658 Isolate flaky Postgres login-attempt test (#56)
  • 9982db8 Document the Playwright E2E test cases and add traceability markers (#55)
  • e310e95 Centralize email plausibility validation (#52)
  • 068e24d Improve sidebar navigation accessibility and discoverability (#48)
  • d2a327e Harden shared dialog modal behavior (#49)
  • 2e43a55 Harden database access and CSV exports (#51)
  • ff3684e Add accessible Field wrapper and labelled Checkbox to input primitives; wire up inline validation across forms (#50)
  • eb88724 Add an original TimeTrack logo and use it on the auth screens and sidebar (#53)
  • fe3afef Fix ten architecture review findings across the Tauri backend and React frontend (#47)
  • e764b48 UC-4: Account for absences — vacation, sick leave, unpaid leave and half days (#44)
  • ad47094 Preserve input focus in project dialogs and picker (#45)
  • 821f189 Remove SQLite support and consolidate on Postgres (#41)
  • 68239c0 Document UI design principles and fix the accessibility, contrast and consistency findings (#42)
  • 80e2cb2 [WIP] Make database backend configurable for SQLite or PostgreSQL (#39)
  • 0a114ec UC-3: ArbZG break/rest compliance, monthly export and audit trail (#36)
  • 8deb52c UC-1: audit trail, crash-safe timer recovery, and retroactive start correction (#34)
  • 5877719 Document glib RUSTSEC-2024-0429 as an accepted, unreachable advisory (#37)
  • a09e2fc Add a cumulative overtime balance across weeks and months (#35)
  • 720080c docs: add C4-style logical data model of the persistence layer (#30)
  • 0c44b0b Add dedicated Week workspace with editable weekly bookings and read-only month-to-date analytics (#29)
  • 128ecfa Cut PR CI wall-clock time from ~2m30s to ~2 jobs in parallel by removing redundant work (#28)
  • 28ec498 Log all backend and frontend errors to a redacted log file (#27)
  • 850238b Add release-scoped third-party license notices (#25)
  • 3949fbc Persist development SQLite data in Compose (#26)
  • affb444 Add CONTRIBUTING.md and condense the README (#24)
  • b4733da test: raise frontend coverage to ~96% lines and enforce an 80% threshold (#22)
  • ec88400 Code-split pages with lazy imports to fix large chunk warning (#23)
  • 5181376 Harden architecture: typed IPC errors, session expiry, login lockout, and a shared domain rule contract (#21)
  • ed2a6fc Support multiple users with login, registration, and per-user data storage (#19)
  • 2b7f181 Add persistent footer with attribution and DB-stored app version (#17)
  • f15ba75 Add configurable weekly working time and working days to Settings (#15)
  • bbe446f Add Time Management page for quick-adding worked time to a project (#13)
  • c71d083 Add project hour budgets with consumption tracking and forecast in reports (#11)
  • 84b35f1 Add the time tracker dashboard (#4)
  • …and 7 more commits.

All commits up to v0.1.0

The full history is kept in CHANGELOG.md.