aboutsummaryrefslogtreecommitdiffstats
path: root/poc
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-10 19:26:10 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-10 19:26:10 +0200
commit32a86417d0edc3bf5c4cf859243c9e34b29bf1ef (patch)
tree523cb5f2cc06f224c37765a31aaedaa0a3cafec1 /poc
parent2baebeebecd1c1a201d1ce5649ab5d0e04c3617b (diff)
downloadmeshbay-32a86417d0edc3bf5c4cf859243c9e34b29bf1ef.tar.gz
fix(node): the handshake ack dropped one app's directories
The ack was assembled from its own tuple of application names, a copy of the daemon's `APP_DIR_KEYS`, and the two had drifted: the copy was missing `helloworld`. So the reference application — the one that exists to prove a new application needs no special-casing — was the single application whose configured folders never reached a client, which made the plugin claim false exactly where it is demonstrated. Fixed by removing the copy rather than syncing it. The ack now emits whatever `<app>_directories` the group context carries, and `_app_directories_ctx` is the only thing that puts one there, so the two cannot disagree again. The transport names an application in one place, `ALLOWED_APPS`, which is enforcement rather than a directory list. The client had the same fault one layer up: `group-page.js` read three names by hand from the ack while the live-update path beside it was already generic. It derives the map from the ack's own keys now, so the fix reaches the settings pane instead of stopping at the wire. A first attempt moved the list to `roster.py`, where directory *storage* lives, and `test_helloworld_proves_the_plugin_claim.py` refused it: the roster, the ops, the config and the root set must name no application at all. That test is the architecture's own guard and it was right — the list belongs on the daemon, which is what wires a group's context, and everything downstream is derived from it. Two new tests, both verified to fail against the previous shape: the ack carries an application the node names nowhere else, and the ack keeps no list of its own. `test_the_lists_are_read_under_one_name_each` now asserts the shell names no application rather than that it names exactly three. Two stale comments went with it — the ack's, which described scalars removed in 07ff8b4, and the client's, which said those scalars still rode the wire for MNP 1.0 peers that can no longer connect. Full suite: 2258 passed, 4 skipped. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YVoHVCcfBqud6ZjG4db3y7
Diffstat (limited to 'poc')
0 files changed, 0 insertions, 0 deletions