Phase 1 was mostly a phantom: correct doc 19 and the WBS
The protocol spec claimed the envelope and grant drifted across implementations. Inspection showed the wire agrees — envelope required headers match, the two optional ones are legitimately optional, and the grant wire (the contributions file) is identical on both sides. The disagreement was in dead types, now removed. So phase 1's 'make them agree' work is done by deletion and correction. What remains is a conformance fixture as prevention — pinning the envelope and the contributions file so a future change that breaks agreement fails a test — and a full per-capability suite is deferred until a third language actually needs it. Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
This commit is contained in:
@@ -32,20 +32,21 @@ The installer's own regressions (stale carried builder, a diagnostic on the pars
|
||||
fixed and committed. Whether it reaches a full green run is answered by the final lab run below,
|
||||
after the phases that change its build path are in — not before.
|
||||
|
||||
## Phase 1 — the protocol is one thing, and correct
|
||||
## Phase 1 — the protocol is one thing, and correct *(mostly done: the drift was dead types)*
|
||||
|
||||
**Why here.** The Go control plane and the TypeScript SDK disagree about what a grant carries
|
||||
(`consumer` is the module in one, the node in the other). That is exercised by the installer's own
|
||||
provisioning — the catalogue's database — so it belongs before more is built on it.
|
||||
|
||||
- [ ] 1.1 extract the wire contracts to one specification the two implementations both conform to
|
||||
- [ ] 1.2 make Go and TypeScript agree — one meaning for `consumer`, the envelope's six headers
|
||||
emitted by both
|
||||
- [ ] 1.3 an executable conformance suite, per capability, both existing SDKs made to pass it
|
||||
- [ ] 1.4 the `x-schema` header written, so a body's shape can version (ADR 0074)
|
||||
- [x] 1.1 the drift was not live — inspection showed the wire agrees (contributions file; envelope
|
||||
required headers). The dead types that disagreed are removed, ADR 0074 and doc 19 corrected
|
||||
- [ ] 1.2 a conformance fixture for the two live cross-language contracts — the event envelope and
|
||||
the contributions file — checked in both suites, as **prevention** rather than repair
|
||||
- [ ] 1.3 (deferred) a full per-capability suite when a third language is actually added; not
|
||||
needed to keep two honest
|
||||
|
||||
**Done when.** A fixture emitted by one implementation is read identically by the other, checked in
|
||||
both test suites.
|
||||
**Done when.** A fixture pins the envelope and the contributions file, and a change to either side
|
||||
that breaks agreement fails a test rather than a mesh.
|
||||
|
||||
## Phase 2 — the private package registry, and the SDK in it
|
||||
|
||||
|
||||
Reference in New Issue
Block a user