docs(events): what the integration kit's fifth chapter settled (Phase 15)
§F's Integration Kit paragraph gains what building it produced, and §H loses an
envelope member that does not exist.
**It is three chapters, not one.** The book taught a read-only data path end to
end and never told anyone to build a command path, so a chapter 5 teaching a
module to send an idempotency key would have addressed it to a sidecar with
nowhere to put it. Chapters 3 and 4 each gain one section, both skippable.
**Two defects, both found by running the template through core's real registry
and real dispatcher rather than by writing prose:**
* **An idempotency key belongs on a command, never on a question.** A read
carrying one is answered by an at-most-once store with the FIRST read's
reply, forever — the lease applied correctly and the module could no longer
see it.
* **§H named a `detail` member on an envelope and `classify()` has never read
one.** The sentence §H was making is right and its example was wrong: a
revert of something gone is `{ ok: true }`. Corrected in place, with the
finding recorded in §F.
That second one has a consequence outside this PR: **`module-uo` took §H at its
word twice.** `uo.item.grant` answers `detail: { granted, missed, why }` and
`uo.world.save` answers `detail: { started: true }`, and neither reaches a
screen or the ledger. The grant is the one that matters — which recipients did
not receive the item is reported nowhere else. Recorded here rather than fixed;
the fix is a Module-uo change and is the org lead's call.
Pairs with Integration-kit#10, which is red on `checkCoreApi` by design and
merges in the P16 cutover with its pin move.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4
This commit is contained in:
@@ -1796,6 +1796,16 @@ confirming it, and under-declaring `cost`.
|
||||
**Like Teams Phase 11, this cannot merge until the cutover exists** — the kit is pinned to a `main`
|
||||
sha, and the contract it teaches is not on `main` until then.
|
||||
|
||||
> **Built** as `Integration-kit#10` + `docs#226`, red on `checkCoreApi` by design. **It is three
|
||||
> chapters, not one, and the template gains code.** The book taught a read-only data path end to end
|
||||
> and never told anyone to build a command path, so chapters 3 and 4 gain one section each (§2a; *"A
|
||||
> command that changes the world runs at most once"*), both skippable until you want chapter 5. The
|
||||
> template ships one budget, one option source, one lease and one ledgering action plus
|
||||
> `server/sidecarClient.js` — named for the filename `noGameConnection.test.js` already anticipated,
|
||||
> with a real timeout, a real key passthrough and a simulated transport in one replaceable function.
|
||||
> Running those through core's REAL registry and dispatcher at `edge` is what found the two defects
|
||||
> §F now records; the prose found neither.
|
||||
|
||||
---
|
||||
|
||||
### Phase 16 — Acceptance walk and cutover
|
||||
|
||||
Reference in New Issue
Block a user