The build step part's request names both forms; the three build seats' contracts regenerated (issue 1966)
mesh/delivery-group group fix/1966-checker-compositions-objects rejected: composed together: the checker's verdict at the members' heads (9bbd6601a8c9): mesh-d…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: mesh-delivery-checker: no published of the tagged version of go-containerimageregistry of mesh-deliv… | 37258e6bec47 on a072d60cae1d

The compose job's `request` description now says it is the request object or the JSON string "gzip+base64:" followed by the
base64 of the gzip-compressed object, as ADR 0634 §1 puts a seat's messages in its contract. The field stays `any`;
seatgen regenerated node-build-go, node-build-node and node-build-image (Go and TypeScript), and its -check is clean.
ask.go's comment says the checker packs every request it sends.

Delivery: an old holder of node-build-go refuses the packed ask loudly (it holds no request object) until it runs the new
mesh-build-go; the checker is built by mesh-build-go after it (module graph edge), and every check composing ace or novox
fails today anyway.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
This commit is contained in:
2026-11-09 13:59:12 +01:00
parent 3add6ced20
commit 37258e6bec
8 changed files with 10 additions and 9 deletions
+1 -1
View File
@@ -485,7 +485,7 @@ type StepAskCompose struct {
Fetch Fetch `json:"fetch"`
Package string `json:"package"`
Reader string `json:"reader,omitempty"`
// the compose-candidate request
// the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string "gzip+base64:" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object
Request any `json:"request"`
}
@@ -485,7 +485,7 @@ type StepAskCompose struct {
Fetch Fetch `json:"fetch"`
Package string `json:"package"`
Reader string `json:"reader,omitempty"`
// the compose-candidate request
// the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string "gzip+base64:" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object
Request any `json:"request"`
}
+1 -1
View File
@@ -485,7 +485,7 @@ type StepAskCompose struct {
Fetch Fetch `json:"fetch"`
Package string `json:"package"`
Reader string `json:"reader,omitempty"`
// the compose-candidate request
// the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string "gzip+base64:" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object
Request any `json:"request"`
}
+1 -1
View File
@@ -161,7 +161,7 @@
"type": "string"
},
"request": {
"description": "the compose-candidate request"
"description": "the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string \"gzip+base64:\" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object"
},
"reader": {
"type": "string"
@@ -293,7 +293,7 @@ export interface StepAskCompose {
"fetch": Fetch;
"package": string;
"reader"?: string;
/** the compose-candidate request */
/** the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string "gzip+base64:" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object */
"request": unknown;
}
@@ -293,7 +293,7 @@ export interface StepAskCompose {
"fetch": Fetch;
"package": string;
"reader"?: string;
/** the compose-candidate request */
/** the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string "gzip+base64:" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object */
"request": unknown;
}
@@ -293,7 +293,7 @@ export interface StepAskCompose {
"fetch": Fetch;
"package": string;
"reader"?: string;
/** the compose-candidate request */
/** the compose-candidate request, in one of two forms: the request as a JSON object, or, for one near the bus's message limit, a JSON string "gzip+base64:" followed by the base64 of the request object gzip-compressed; a holder that does not know the packed form refuses it, naming that it holds no request object */
"request": unknown;
}
+3 -2
View File
@@ -288,8 +288,9 @@ type ComposeJob struct {
Fetch Fetch `json:"fetch"`
Dir string `json:"dir"`
Package string `json:"package"`
// Request is the composer's request: a JSON object, or, for one near the bus's message limit (issue 1966), a JSON
// string PackedRequestPrefix + the base64 of the object gzip-compressed. The part types it `any`, so both fit it; a
// Request is the composer's request: a JSON object, or a JSON string PackedRequestPrefix + the base64 of the object
// gzip-compressed (issue 1966; the checker packs every request it sends, and
// the part's `request` describes both forms). The part types it `any`, so both fit it; a
// build module that does not know the packed form refuses the ask naming that it holds no request object.
Request json.RawMessage `json:"request"`
Reader string `json:"reader,omitempty"`