Node.js20+npm10+
Check versions:
node -v
npm -vnpm install
npm run devDefault dev URL: http://localhost:5173.
npm run build
npm run previewBuild output directory: build/.
src/
routes/
+layout.svelte
+layout.ts
+page.svelte
lib/
components/ UI components
protocol/ WebChannel client + types + crypto
session/ orchestration + auth storage
stores/ session store
ui/ UI preferences
theme.ts themes/effects
- Use Svelte 5 runes (
$state,$derived,$effect) consistently. - Keep components thin; place orchestration/side effects in dedicated modules.
- Keep transport logic in
protocol/*+connection-controller. - Guard all unknown payloads (
asObject,asString,asBooleanstyle checks). - Isolate side effects (WebSocket, localStorage, document class mutations).
- Identify target layer:
- protocol event
- session model
- UI behavior
- Add or update protocol types/validation.
- Add handling in controller/store.
- Update UI component(s).
- Add/adjust tests.
- Run
npm run testandnpm run check.
- Use
StatusBar+ diagnostics modal to inspect endpoint/session state. - Force socket closures on backend to verify reconnect behavior.
- Inspect and reset localStorage when debugging restore logic.