aboutsummaryrefslogtreecommitdiffstats
path: root/CLAUDE.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-12 13:48:09 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-12 16:36:54 +0200
commitef4842644a207c3d1b6d6f06c1ad1055270ae283 (patch)
tree965b3a5f5d27a10c25186b70c108fdcaf126fe1f /CLAUDE.md
parente16be41ce2862f78d98efc6b44f957dc98e96280 (diff)
downloadmeshbay-ef4842644a207c3d1b6d6f06c1ad1055270ae283.tar.gz
docs: AV16–AV17, and why node --check is not the check
AV16 the allowance that survives a restart and that an operator can see and change; AV17 the single worker. And a lesson that cost a full suite run: `node --check` reports success on a module-syntax error. An unclosed `.map(` inside a tagged template came back clean four times. `test_spa_syntax.py` says exactly this in its own docstring — copying to `.mjs` is what forces the module parser — and the reflex still reached for `node --check`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T4YmK41VsEURWFdop4EEeT
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md9
1 files changed, 8 insertions, 1 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 516228f..05fb318 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -122,7 +122,7 @@ that produced it.
| Looking for | Read |
|---|---|
| What a label means (`C1`, `H3`, `NS6`, `T3`, `C5b`, `W2`, `E9`, `F1`, `AV4`, …) | `docs/MESHBAY_DESIGN.md` §13 |
-| What one member can cost the others (`AV1`–`AV15`) | §13.5b — the newest category, and the one the first three reviews had no question for |
+| What one member can cost the others (`AV1`–`AV17`) | §13.5b — the newest category, and the one the first three reviews had no question for |
| Trust model, and what the project may and may not claim | §2 |
| Identity, devices, admission, recovery, the keypair bundle | §3 |
| Cryptography, key hierarchy, the group and chat envelopes | §4 |
@@ -148,6 +148,13 @@ These are about working on the tree rather than about the design:
interface, for the web and the app alike; `packages/meshbay-client/scripts/
sync-ui.js` copies it (`npm run sync-ui`) and CI fails if the copy drifts —
**never edit `packages/meshbay-client/ui/` by hand**
+- **`node --check` reports success on a module-syntax error, and a green one
+ cost a full suite run.** An unclosed `.map(` inside a tagged template came
+ back clean four times in a row. `test_spa_syntax.py` says this in its own
+ docstring — copying to `.mjs` first is what forces the module parser — and
+ it is still the reflex that reaches for `node --check`. Use
+ `node --input-type=module --eval "$(cat file.js)"`, or just run that test
+
- **A test fixture narrower than production tests the fixture — and when it
writes down *why* it has to be narrow, that is a bug report nobody filed.**
`test_federation.py` built its MHP envelopes by hand without an `aud`, and