diff --git a/memory.log.md b/memory.log.md new file mode 100644 index 0000000..4c7c5a6 --- /dev/null +++ b/memory.log.md @@ -0,0 +1,44 @@ +# 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