The interface registry, generated and checked discovery, typed dispatch with
automatic error answers, message builders, proactive events and typed
helpers for every error type; the 1.x API is kept and the examples of 1.5.2
run unchanged. docs/wire-changes.md lists what a 1.x caller can observe.
On 2026-09-28 a real Alexa account drove 33 test devices on this API through
the public Alex2MQTT service: Alexa accepted the discovery of all of them,
50 of 58 cases passed, 4 had no action in the control call and 4 failed on
what the check could see, none on an answer of the library. The readme table
names the interfaces that run covered. Voice commands were not tested yet.
307 tests.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The shell block under the quick start named the file without its
directory. Run from the repository root, as the rest of the readme
assumes, it failed with "Cannot find module". The command now matches
the header comment of examples/lamp.js and the recipe table.
The readme test compiles only the js blocks, so it did not see this.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The readme is rewritten for 2.0: what the library needs, install, the lamp
as quick start, concepts, the table of interfaces, recipes, the bridge
contract, errors, testing without Alexa, migration from 1.x and limits.
scripts/capability-table.js (npm run docs) writes the table from the
registry and the text of three example files into their code blocks;
"Through Alexa" names only the runs of 2026-09-28, made with 1.5.2.
test/readme.test.js fails on a stale table or file, runs
examples/testing/lamp.test.js (MemoryPublisher, no broker) and compiles the
other code blocks. package.json: description, keywords, CHANGELOG.md in files.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>