ESPSomfy-RTS/AGENTS.md
cjkas 99c6019431 feat: web UI protocol 2 client layer, JS and CSS bundles (step 2a)
- data-src/js: ProtoSchema (schema from the sync, short keys and names,
  defaults, cached by hash), ProtoModel (rooms, shades, groups, repeaters,
  header and status from the sync and the events) and ProtoClient (/ws,
  hello, sync with next, op() as a Promise of its reply, events, feeds,
  reconnect). Nothing uses them yet: 2b moves the UI onto them.
- minify.py joins js/*.js and index.js into index.js, and the three CSS
  files into app.css, so a page load opens fewer connections.
- test/js: node --test on the three modules, replaying the recorded
  fixtures; a CI job runs it and the firmware build waits for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 15:00:23 +01:00

836 B

Testing instructions

  • Fix any test or type errors until the whole suite is green.
  • Add or update tests for the code you change, even if nobody asked.
  • to test run pio test -e native
  • the web UI's protocol 2 client (data-src/js/): node --test "test/js/*.test.js". The minify step joins those files into index.js, so each one ends with a module.exports footer for Node and adds nothing global but its classes.

Building

  • Firmware builds need pioarduino's Core (pip install pioarduino, or the pioarduino IDE extension). Stock PlatformIO Core refuses the pinned platform, see ADR 0003.
  • The platform installs its Python packages into ~/.platformio/penv and fails on Windows while pio.exe from that env is running. Run builds as python -m platformio from that env's Python.