aboutsummaryrefslogtreecommitdiffstats
path: root/docs/MESHBAY_DESIGN.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-25 10:47:37 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-25 10:47:37 +0200
commit0bdce359c0bf19fa98f1b7f9975be32704abe1f0 (patch)
treec67c24b9751c3d8063fc9806a5d6650a3b8c03fb /docs/MESHBAY_DESIGN.md
parent950f4aa6d107e127fb6dc0579beedbff0e6f1af5 (diff)
downloadmeshbay-0bdce359c0bf19fa98f1b7f9975be32704abe1f0.tar.gz
feat(client): fetch the media apps, the player, settings and search on first use
apps.js registers Videos, Music, Photos and every settings pane through lazy.js; the group page does the same for the video player and the settings panel, and the shell for the search page. The first download goes from 49 modules / 386 KB gzip to 37 / 289 KB; opening Music now fetches music-app.js and media-tiles.js and nothing of Videos. test_first_load_is_lean holds the eager graph; test_spa_imports checks that every on-demand load names an export that exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/MESHBAY_DESIGN.md')
-rw-r--r--docs/MESHBAY_DESIGN.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md
index f260d6e..13e0cab 100644
--- a/docs/MESHBAY_DESIGN.md
+++ b/docs/MESHBAY_DESIGN.md
@@ -2449,7 +2449,12 @@ There is no folder-browsing protocol and this does not add one.
1. **`<name>-app.js`** exporting a component with the standard props shape.
2. **Register it** in the registry. `key` is the wire identifier: it must match the
node's allow-list and it is the row the application's directories are stored
- under. **One identifier per application, everywhere.**
+ under. **One identifier per application, everywhere.** Register the
+ component — and its settings pane — through `lazy(() => import('./<name>-app.js'),
+ 'Name')` (`lazy.js`), not a static import: the module is then fetched the first
+ time the tab is opened instead of with the first page, and
+ `test_first_load_is_lean.py` (add the file to its `ON_DEMAND` set) refuses a
+ static import that would bring it back.
3. **`<name>-app-settings.js`** if it has anything to configure. Do not import the
settings page — that is the cycle in §9.1.
4. **Add the key to the node's allow-list**, and — if the application keeps