Files
solelog/docs/sessions/2026-06-17-phase-1-web-client.md
2026-06-17 17:06:28 +02:00

2.9 KiB

Session: 2026-06-17 — Cleanup, Phase 1 (web client), dev account

Goal

Lean the workspace down, then deliver Phase 1 (worker timing) as something testable fast.

Work done

  1. Removed ngrok (@expo/ngrok + 40 binaries) — IT-flagged tunneling tool from Expo. (3f2c5f0)
  2. Full cleanup (workflow) — deleted the legacy Create export: apps/mobile, apps/web, publisher/, previous work.md, .easignore, .eslintignore, .yarn/patches/, and the mobile-only root resolutions/eslint devDeps. Port-worthy knowledge extracted first to docs/reference/ (legacy-mobile-app / legacy-backend / legacy-lessons-and-gotchas). CLAUDE.md + roadmap updated for the single-backend repo. (c720865, 64f8b2f, 384797d)
  3. Trimmed obsolete .yarnrc.yml logFilters — surfaced a real drizzle/better-auth peer-version skew (tracked as SL-9, non-blocking). (4e9a966)
  4. Phase 1 (workflow, after pivoting the client off Expo — see below):
    • Backend (apps/api): domain tables activities + work_sessions (migration 0001), zod contracts in @solelog/shared, user-scoped routes — activities CRUD, sessions start/stop/discard, history, active-recovery, CSV export, seed, CORS. (578099835f9aa5)
    • Worker client (apps/worker): fresh Vite + React + TS PWA (NO Expo), bearer-token auth, Dutch Stopwatch / Geschiedenis / Instellingen on the API. (3511fd8bd8e8af)
    • CORS + trusted origins now from CORS_ORIGINS env (phone testing = config-only). (34c48d6)
    • Dev login seeded by db:seed: worker@solelog.local / werkplaats123 (dev-only). (ec2bb7e)

Key decision — client is a web app, NOT Expo

Maintainer prefers a non-Expo client (Expo brought ngrok + baggage). Built a Vite+React PWA instead. Saved as memory client-web-not-expo. The first Phase 1 workflow (Expo) was stopped after its plan commit (27ae674); relaunched on the web track.

Current state — TESTABLE

  • apps/ = api + worker only. Working tree clean.
  • Verified: API 37 tests + typecheck green; worker 24 tests + typecheck + vite build green; live end-to-end round-trip (auth → activities → start/stop session → history → CSV) all pass.
  • Run it: terminal 1 yarn workspace @solelog/api db:migrate; db:seed; start (:3000); terminal 2 yarn workspace @solelog/worker dev (:5173). Log in with the dev account above.

Plane

  • SL-10 Phase 1 (+ SL-11 backend, SL-12 worker client) → Done.
  • SL-9 drizzle/better-auth peer mismatch → open (non-blocking).

Known non-blocking items

  • Set a real BETTER_AUTH_SECRET before any deploy (Phase 5).
  • Activities are global until per-user/role scoping in Phase 2.
  • CSV uses host timezone (carried from legacy).

Next

Phase 2 — Accounts & roles: worker/admin roles, admin-creates-users, per-user data scoping. (Its own spec → plan → build cycle. Roadmap: docs/roadmap.md §9.)