# Purpose: - Keep a concise append-only history of meaningful product, schema, UI, and flow changes. - Add short factual entries so future work can quickly recover what has already been done. Update rule: - Make a new numbered section, and append one (or more if necessary) short bullet per meaningful completed change. - Keep entries concise and factual. - Prefer grouped summaries over noisy file-by-file notes. --- ### 0 (genesis) - init ### 1 — Foundation & Domain Logic - Rewrote CLAUDE.md to be concise (conventions only, no obvious stuff) - Rewrote README.md with project description and implementation checklist - Implemented device domain: schema (db), data/errors/repository/controller (logic pkg) - Implemented link domain: schema (db), data/errors/repository/controller (logic pkg) - Device schema: id, title, version, status, isActive, containerId, host, wsPort - Link schema: id, token (unique), status, linkedDeviceId (FK nullable to device), expiresAt, lastAccessedAt - Link controller auto-generates nanoid(12) tokens, has validate/assign/revoke flows ### 2 — Admin Dashboard CRUD - Device CRUD page at /devices — list table, create dialog, delete with confirmation, status dots, refresh - Link CRUD page at /links — list table, generate link dialog (device select + expiry), revoke, delete, copy token - Remote functions for both domains (*SQ queries, *SC commands) - View models (*.vm.svelte.ts) with optimistic UI updates (create appends, delete filters locally) - Fixed bug: table not refreshing after create (was SvelteKit query cache — switched to optimistic local state) - Fixed bug: /links auth failure (hooks.server.ts path check matching "/link" inside "/links") ### 3 — ws-scrcpy Deployment - Created ws-scrcpy Dockerfile (dockerfiles/ws-scrcpy.Dockerfile) — clones NetrisTV/ws-scrcpy, builds, copies dist - Created apps/ws-scrcpy/config.yaml and entrypoint.sh (ADB connect + node index.js) - Resolved node-pty NAN build failure: node:25 incompatible, settled on node:22-bookworm - Deployed via Dokploy with Traefik domain routing - Networking: redroid on bridge, ws-scrcpy on dokploy overlay — connected via host bridge gateway (172.17.0.1:5555) - ws-scrcpy live and streaming redroid at iotam-ws-scrcpy.snapyra.com