-
472fcf82b8
docs: finalize domain-test-checklist + session log + roadmap (test safety net, 100% coverage)
main
Bas van Rossem
2026-07-23 15:40:49 +02:00
-
a53a253f91
test(admin): cover lib/api fetch wrapper (close Phase C coverage gap)
Bas van Rossem
2026-07-23 15:39:25 +02:00
-
a30441b2a2
test(worker): Stopwatch + reconcile — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 15:33:03 +02:00
-
75c5a9f350
test(admin): Activities + app/nav — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 15:18:59 +02:00
-
8a6bc9ea7d
test(admin): Users — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 15:07:12 +02:00
-
5aa6febd65
test(admin): Reports + date-range — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:53:38 +02:00
-
e7eefe8f62
test(admin): Sessions + SessionForm — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:44:32 +02:00
-
77db308e41
test(admin): Live view — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:30:26 +02:00
-
64911a0052
test(admin): Auth (admin-only gate) — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:25:04 +02:00
-
e174c29a77
test(worker): lib/api + app/nav — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:15:48 +02:00
-
32bdaa3e31
test(worker): Account — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:07:14 +02:00
-
13cbc50c4f
test(worker): History — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 14:03:04 +02:00
-
36d4754722
test(worker): Auth (context/storage/login) — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 13:50:33 +02:00
-
9c99d56f99
test(api): Admin users — fill gaps + lifecycle test
Bas van Rossem
2026-07-23 13:43:59 +02:00
-
31d13a8381
test(api): Reports + admin export — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 13:03:04 +02:00
-
bdf65ae685
test(api): Admin sessions — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 12:41:52 +02:00
-
b72076ee15
test(api): Worker export/CSV — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 12:24:04 +02:00
-
9ecbf952d3
test(api): Work-sessions — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 12:14:32 +02:00
-
af7251398c
test(api): Activities — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 12:01:03 +02:00
-
e6e4ca0a1e
test(api): Auth & /me — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 11:50:32 +02:00
-
2fa8aa9154
test(api): Infra (health/db/schema/seed/env/migrate) — fill gaps + lifecycle test
Bas van Rossem
2026-07-22 11:39:34 +02:00
-
0564fab1e6
docs: domain-test-checklist skeleton + coverage baseline (Plane SL-70)
Bas van Rossem
2026-07-22 11:28:01 +02:00
-
f872daf117
test(api): add resetDb helper + per-test isolation (proof: sessions suite)
Bas van Rossem
2026-07-22 11:28:01 +02:00
-
3c79e51e99
test: add @vitest/coverage-v8 + test:coverage to all workspaces
Bas van Rossem
2026-07-22 11:28:01 +02:00
-
715e3c9e30
docs(plan): per-domain test safety net implementation plan
Bas van Rossem
2026-07-22 11:20:02 +02:00
-
32412fa88b
docs(spec): set near-100% per-domain coverage as the working target
Bas van Rossem
2026-07-22 11:14:58 +02:00
-
f547cef8e8
docs(spec): per-domain test safety net design
Bas van Rossem
2026-07-22 11:12:13 +02:00
-
37f7bd695c
docs: Phase 4 descoped — QR is an external app-URL link, no workbench build
Bas van Rossem
2026-07-22 10:51:36 +02:00
-
8d303dabcb
docs: phase 3b.3 user-management session log + roadmap (Phase 3 complete)
Bas van Rossem
2026-06-24 23:14:59 +02:00
-
b9aa24c5ae
harden(api): adminGuard rejects banned admins; fix mixed-case create + real last-admin guard coverage
Bas van Rossem
2026-06-24 23:12:40 +02:00
-
0f42960f00
feat(admin): Gebruikers screen (list, create, role, password, deactivate)
Bas van Rossem
2026-06-24 23:03:34 +02:00
-
4b80898b0e
feat(api): admin reset-password endpoint
Bas van Rossem
2026-06-24 22:57:35 +02:00
-
40977f8abd
feat(api): deactivate/reactivate users (ban + revoke sessions) with guards
Bas van Rossem
2026-06-24 22:54:02 +02:00
-
88b7773317
feat(api): set user role with self-demote + last-admin guards
Bas van Rossem
2026-06-24 22:50:52 +02:00
-
2b4b633961
feat(api): admin-users router with enriched roster + user creation
Bas van Rossem
2026-06-24 22:46:59 +02:00
-
a32406de69
refactor(api): extract adminGuard + add user-management contracts
Bas van Rossem
2026-06-24 22:42:35 +02:00
-
4463a2e41a
docs(plan): phase 3b.3 user management implementation plan
Bas van Rossem
2026-06-24 22:39:15 +02:00
-
6e4ce6b472
docs(spec): phase 3b.3 user management design
Bas van Rossem
2026-06-24 22:33:59 +02:00
-
bbf29120ac
docs: phase 3b.2 reports/export session log + roadmap note
Bas van Rossem
2026-06-24 16:44:17 +02:00
-
8d75be0462
feat(admin): Rapporten screen with filters, totals, breakdowns + CSV export
Bas van Rossem
2026-06-24 16:40:25 +02:00
-
8ad2e69ec3
feat(admin): reports API client (useReport + downloadExport)
Bas van Rossem
2026-06-24 16:33:28 +02:00
-
d33fcb7cce
feat(api): admin all-users filtered CSV export
Bas van Rossem
2026-06-24 16:30:17 +02:00
-
4b213e25a8
feat(api): admin report endpoint + ReportResponse contracts
Bas van Rossem
2026-06-24 16:25:36 +02:00
-
01fa18f401
refactor(api): extract buildSessionsCsv shared by worker + admin exports
Bas van Rossem
2026-06-24 16:22:06 +02:00
-
eac1eed71a
docs(plan): phase 3b.2 reports + all-users export implementation plan
Bas van Rossem
2026-06-24 16:18:15 +02:00
-
3eccdef313
docs(spec): phase 3b.2 reports + all-users export design
Bas van Rossem
2026-06-24 15:46:24 +02:00
-
84677080fc
docs: phase 3b.1 manual-sessions session log + roadmap note
Bas van Rossem
2026-06-17 22:54:18 +02:00
-
7d3daaa760
feat(worker): poll + reconcile stopwatch to server (admin stop/cancel)
Bas van Rossem
2026-06-17 22:50:31 +02:00
-
f1ec249ee7
feat(admin): stop/cancel an active session from the live view
Bas van Rossem
2026-06-17 22:47:05 +02:00
-
69b46bee04
feat(admin): manual session create/edit form
Bas van Rossem
2026-06-17 22:44:06 +02:00
-
b5366413b6
feat(admin): sessions management screen (list + filter + actions)
Bas van Rossem
2026-06-17 22:38:28 +02:00
-
53c66ee144
feat(api): admin manual-session create/edit/stop/discard + users roster
Bas van Rossem
2026-06-17 22:32:58 +02:00
-
7d1e816fe2
feat(ci): set database location to local folder
Bas van Rossem
2026-06-17 22:28:55 +02:00
-
00993c67da
feat(shared): manual-session create/update contracts
Bas van Rossem
2026-06-17 22:28:02 +02:00
-
9d21576014
docs: spec + plan for phase 3b.1 manual session entry/edit + admin stop/fix
Bas van Rossem
2026-06-17 22:25:28 +02:00
-
70ac27ec8e
style: align oxfmt to trailing-comma 'all' and normalize code
Bas van Rossem
2026-06-17 21:36:18 +02:00
-
1807f2b6d6
docs: pause-accounting + reorder session log
Bas van Rossem
2026-06-17 21:24:16 +02:00
-
e48df48376
feat(admin): reorder handelingen with up/down arrows
Bas van Rossem
2026-06-17 21:18:07 +02:00
-
0b0a6bd073
feat(admin): show paused sessions in live view; reset to live on logout
Bas van Rossem
2026-06-17 21:14:15 +02:00
-
a7c8925b3c
feat(deploy): build + serve worker and admin as static nginx images
Bas van Rossem
2026-06-17 21:11:32 +02:00
-
1765f4036c
fix(worker): show paused time in history; reset to stopwatch on logout
Bas van Rossem
2026-06-17 21:10:01 +02:00
-
ce396ecf2d
feat(worker): server-authoritative pause/resume on the stopwatch
Bas van Rossem
2026-06-17 21:06:10 +02:00
-
56e0162230
feat(api): orderable activities + admin reorder endpoint
Bas van Rossem
2026-06-17 20:58:06 +02:00
-
974ecb120d
feat(api): server-authoritative pause/resume + worked-time stop + CSV paused
Bas van Rossem
2026-06-17 20:54:42 +02:00
-
0d82b6efbc
feat(shared,api): add pause + sort_order columns and contracts
Bas van Rossem
2026-06-17 20:49:56 +02:00
-
eae9a53a26
fix(docker): drop COPY .yarn/ — dir is gitignored, absent in CI builds
Bas van Rossem
2026-06-17 20:45:53 +02:00
-
cbfcb4a414
docs: spec + plan for pause accounting, reorder, login-tab fix
Bas van Rossem
2026-06-17 20:43:19 +02:00
-
660cbe50c8
ci(docker): build and push image to Gitea registry on push to main
Bas van Rossem
2026-06-17 20:42:58 +02:00
-
76ad235c9f
docs(admin): phase 3a session log + roadmap status
Bas van Rossem
2026-06-17 19:17:20 +02:00
-
c0d9d21991
feat(admin): activity management (handelingen CRUD)
Bas van Rossem
2026-06-17 19:11:50 +02:00
-
67dd0d398f
feat(admin): live active-work view (5s refresh)
Bas van Rossem
2026-06-17 19:07:36 +02:00
-
286e2d29db
feat(admin): sidebar shell + routing
Bas van Rossem
2026-06-17 19:03:35 +02:00
-
77659edf8e
feat(admin): bearer auth with admin-only gate + login screen
Bas van Rossem
2026-06-17 18:59:43 +02:00
-
682a9dce44
feat(admin): scaffold Vite+React admin workspace
Bas van Rossem
2026-06-17 18:56:28 +02:00
-
02b7522b87
feat(api): include role in /api/me + allow admin origin in CORS
Bas van Rossem
2026-06-17 18:53:39 +02:00
-
bb0a0b2a57
docs(admin): fold admin-origin CORS into phase 3a Task 1
Bas van Rossem
2026-06-17 18:49:16 +02:00
-
7cdc88e824
docs(admin): phase 3a spec + implementation plan
Bas van Rossem
2026-06-17 18:46:11 +02:00
-
6fce7a7197
docs(roadmap): fold activity-management UI port into Phase 3 scope
Bas van Rossem
2026-06-17 18:29:40 +02:00
-
7d7af335dd
docs: log Phase 2 follow-up (worker logout + Account screen)
Bas van Rossem
2026-06-17 18:24:07 +02:00
-
1631c1698d
feat(worker): add logout + replace admin-only settings with Account screen
Bas van Rossem
2026-06-17 18:23:42 +02:00
-
3d8524c827
docs: Phase 2 accounts & roles — roadmap, README, session log
Bas van Rossem
2026-06-17 18:04:19 +02:00
-
7d200eb8fc
feat(worker): login-only client (admin creates users)
Bas van Rossem
2026-06-17 17:53:20 +02:00
-
bd2d859e92
feat(api): seed dev admin + worker via admin createUser
Bas van Rossem
2026-06-17 17:50:18 +02:00
-
dc8f550665
feat(api): admin-only cross-user work-session views (/api/admin/sessions)
Bas van Rossem
2026-06-17 17:47:17 +02:00
-
f2cc0973c7
feat(api): role-aware session helper + admin-only activity writes
Bas van Rossem
2026-06-17 17:43:37 +02:00
-
c73fa0f898
feat(api): add better-auth admin plugin + close public sign-up (migration 0002)
Bas van Rossem
2026-06-17 17:36:26 +02:00
-
f6bd8eb036
test(api): centralize auth helpers on server-side createUser
Bas van Rossem
2026-06-17 17:29:46 +02:00
-
8bfdfb736e
feat(shared): add Role enum + admin user fields on WorkSession contract
Bas van Rossem
2026-06-17 17:23:20 +02:00
-
decb158044
docs: session log for cleanup + Phase 1 (web client)
Bas van Rossem
2026-06-17 17:06:28 +02:00
-
ec2bb7eec9
feat(api): seed a dev login account (worker@solelog.local) for testing
Bas van Rossem
2026-06-17 17:05:56 +02:00
-
34c48d6353
feat(api): drive CORS + trusted origins from CORS_ORIGINS env
Bas van Rossem
2026-06-17 16:50:21 +02:00
-
bd8e8aff2a
docs(worker): run instructions and Phase 1 verification
Bas van Rossem
2026-06-17 16:37:28 +02:00
-
134e01a2e8
feat(worker): Geschiedenis screen with session list and CSV export
Bas van Rossem
2026-06-17 16:30:34 +02:00
-
5af5a9c2bb
feat(worker): server-authoritative Stopwatch screen with active-session recovery
Bas van Rossem
2026-06-17 16:24:56 +02:00
-
1ecad6bbb4
feat(worker): Instellingen screen — activities CRUD per zooltype
Bas van Rossem
2026-06-17 16:17:37 +02:00
-
75679256cd
feat(worker): auth gate, Dutch login screen, router and 3-tab shell
Bas van Rossem
2026-06-17 16:11:18 +02:00
-
3511fd8a89
feat(worker): scaffold Vite+React PWA with token storage and typed API client
Bas van Rossem
2026-06-17 16:03:41 +02:00
-
35f9aa5574
feat(api): seed reference activities and enable CORS for the worker SPA
Bas van Rossem
2026-06-17 15:54:52 +02:00
-
85184d3287
feat(api): user-scoped CSV export matching legacy format
Bas van Rossem
2026-06-17 15:49:20 +02:00
-
b067bb65b0
feat(api): session history and active-session recovery endpoints
Bas van Rossem
2026-06-17 15:45:08 +02:00