docs(chord): mistakes that wait are reported at once; no per-link call limit

This commit is contained in:
Mario Zechner 2026-11-03 06:39:27 +00:00
parent 9c9ce8547e
commit fc7d91f4e8
2 changed files with 18 additions and 0 deletions

View file

@ -2419,6 +2419,20 @@ validation and copies the v2 kernel added around Delta.
(10) the phone gets it after 1-2 days on slayer, about 10 minutes down, rollback by checkout; (11) a small shim
reloads pages left open across the deploy, removed with v1. Server, workers, the terminal bundle and the web bundle
switch in one deploy (v1 and v2 links do not talk); prep and cleanup steps deploy on their own.
- **Mistakes that wait are reported at once (owner, 2026-11-03: "yes"; p2 port footguns 1, 2, 9,
`/home/badlogic/p2-port/chord-footguns.md`):** requests keep waiting for providers (slice 7a), but a mistake no
longer looks like slowness. (a) `get`, `hold` and `registry` on a host that has not loaded throw at once ("call
`host.load` first"; a client host with nothing to load calls `load([])`). (b) When a load or reload publishes, a
registry with contributions and no provider is reported through `onError` at once, naming the registry and its
contributors. (c) A request waiting unbound (`not_served`, `waiting`) is reported once through `onError` after 5 s,
naming what it waits for; it keeps waiting until its `readyTimeout` as before. (d) An invalid plugin name is a
programming error: `load` and `reload` throw instead of listing it in the report's `failed`.
- **No limit on calls in progress per link; references in a method act as the caller (owner, 2026-11-03: "i guess
it's fine without, guess we document it"; p2 port footguns 7, 11):** v1's `maxCalls` per link has no counterpart and
gets none (the call window N bounds calls per origin; part limits bound sizes); documented. `ctx.get` in a method
acts as the method's caller (decision of slice 4a, unchanged): a server object acting as itself towards a worker
takes the reference with `self.get` in its own object or a server root; documented with p2's `Search.rebuildIndex`
example in the guide and the porting notes.
- **A plugin's npm dependencies are bundled; external only by opt-in (owner, 2026-10-29: "explicit opt in + (a)"):**
a plugin's `dependencies` are installed into its own `node_modules` (`npm install --ignore-scripts`) and bundled into
each facet that imports them (host packages, its `peerDependencies`, stay external and are passed in). On Node a

View file

@ -195,6 +195,10 @@ deleted (the slice's spec and code are the record). Moved here from `carry-over.
### After slice 11
- **Mistakes that wait are reported at once** (decision of 2026-11-03): (a) use before `load` throws, (b) an unserved
registry with contributions reported at publication, (c) a request waiting unbound reported after 5 s, (d) an
invalid plugin name throws; tests for each; the guide documents no per-link call limit and `ctx.get` acting as the
caller (the `Search.rebuildIndex` example).
- **Messages and languages in the app kit** (decision "Messages and languages in the app kit", proposal
`docs/i18n/`): `defineMessages`, `t.message`/`t.render`, `MessagesOf`, the `Translations` registry with
fallbacks and conflicts, the locale preference per principal (default from the device, live switch, `lang`/`dir` on