mesh-build-go reads a compose ask's gzip-packed request (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-catalog@503411e6289b
mesh/delivery-group group fix/1966-checker-compositions-objects merged: every member is merged
mesh/check checking 4e2a1a5a1f58 on 503411e6289b | novox/mesh-catalog#640 in group fix/1966-checker-compositions-objects

The checker sends a large node's request packed, as it passes the bus's message limit; compose reads either form through
ComposeJob.RequestBytes. Only mesh-build-go serves compose. Delivered as a group with the mesh-delivery change of the same
branch name: an older mesh-build-go refuses a packed ask naming that it holds no request object.

Claude-Session: https://claude.ai/code/session_01NcbgfFfQ4Z9UE5jK32PmE5
This commit is contained in:
2026-11-09 13:36:38 +01:00
parent 6a24e4d0c7
commit 4e2a1a5a1f
2 changed files with 9 additions and 1 deletions
@@ -62,7 +62,11 @@ func (m *Module) compose(ctx context.Context, fetch buildstep.StepFunc, a sdkste
if err != nil {
return nil, err
}
req, err := composer.Decode(job.Request)
body, err := job.RequestBytes()
if err != nil {
return nil, buildstep.Refuse("the compose ask %s: %v", a.ID, err)
}
req, err := composer.Decode(body)
if err != nil {
return nil, buildstep.Refuse("the compose ask %s: %v", a.ID, err)
}
@@ -81,6 +81,10 @@ func TestAKeptComposerIsRunWithTheManifestsFilled(t *testing.T) {
}
fetched := 0
fetch := func(context.Context, map[string]any) (any, error) { fetched++; return nil, nil }
// Issue 1966: the request arrives gzip-packed, as the checker sends one over the bus's message limit.
if err := a.Compose.PackRequest(a.Compose.Request); err != nil {
t.Fatal(err)
}
out, err := m.compose(context.Background(), fetch, a)
if err != nil {
t.Fatal(err)