From 4851475773cd861ef0478f930fc168c3f2e86ef9 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 18:23:48 +0100 Subject: [PATCH] Asker rename R1: a build seat's streamed kind is sent on its queue's subject, the kind in the body MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The generator wrote `accept..` for a kind that rides a stream (step on check and delivery, run on check), so the runner's step landed under the named worker `accept.check.*` with `step` read as its asker. A-170 has the kind in the body only: the generated accept subject of a streamed kind is the queue's, `accept.`; its generated names stay `.`. The three build seats' contracts and fixtures are regenerated. Builds: design 47 G §600, A-170, A-184 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- .../go/seats/nodebuildgo/contract.go | 6 +++--- .../go/seats/nodebuildgo/contract_test.go | 12 ++++++------ .../go/seats/nodebuildimage/contract.go | 4 ++-- .../go/seats/nodebuildimage/contract_test.go | 8 ++++---- .../go/seats/nodebuildnode/contract.go | 4 ++-- .../go/seats/nodebuildnode/contract_test.go | 8 ++++---- .../seats/node-build-go/fixtures/states.json | 6 +++--- .../node-build-image/fixtures/states.json | 4 ++-- .../seats/node-build-node/fixtures/states.json | 4 ++-- .../ts/seats/nodebuildgo/index.d.ts | 6 +++--- .../ts/seats/nodebuildgo/index.js | 6 +++--- .../ts/seats/nodebuildimage/index.d.ts | 4 ++-- .../ts/seats/nodebuildimage/index.js | 4 ++-- .../ts/seats/nodebuildnode/index.d.ts | 4 ++-- .../ts/seats/nodebuildnode/index.js | 4 ++-- modules/mesh-delivery-sdk/seatgen/gogen.go | 18 +++++++++++++++--- .../mesh-delivery-sdk/seatgen/layout_test.go | 6 +++--- modules/mesh-delivery-sdk/seatgen/tsgen.go | 2 +- 18 files changed, 61 insertions(+), 49 deletions(-) diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract.go b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract.go index 35ac9ee6..7ed4f8fe 100644 --- a/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract.go +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract.go @@ -97,16 +97,16 @@ const AcceptSubjectDelivery = "mesh.seat.node-build-go.accept.delivery" const AcceptSubjectCheck = "mesh.seat.node-build-go.accept.check" // AcceptSubjectCheckStep is where check.step is sent. -const AcceptSubjectCheckStep = "mesh.seat.node-build-go.accept.check.step" +const AcceptSubjectCheckStep = "mesh.seat.node-build-go.accept.check" // AcceptSubjectDeliveryStep is where delivery.step is sent. -const AcceptSubjectDeliveryStep = "mesh.seat.node-build-go.accept.delivery.step" +const AcceptSubjectDeliveryStep = "mesh.seat.node-build-go.accept.delivery" // AcceptSubjectRecheck is where recheck is sent. const AcceptSubjectRecheck = "mesh.seat.node-build-go.accept.recheck" // AcceptSubjectCheckRun is where check.run is sent. -const AcceptSubjectCheckRun = "mesh.seat.node-build-go.accept.check.run" +const AcceptSubjectCheckRun = "mesh.seat.node-build-go.accept.check" const ( StateSteps = "steps" diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract_test.go b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract_test.go index 96a64d80..3b540616 100644 --- a/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract_test.go +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildgo/contract_test.go @@ -79,12 +79,12 @@ func TestFixtures(t *testing.T) { decode: func(b []byte) (any, error) { var v StepsByNodeIDValue; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil}, {name: "an ask dropped by the caller that no longer waits", subject: "", given: "{\"at\":\"2026-11-05T10:00:00Z\",\"by\":\"mesh-delivery-builder\",\"v\":1,\"why\":\"a newer fingerprint supersedes it\"}", wire: "{\"at\":\"2026-11-05T10:00:00Z\",\"by\":\"mesh-delivery-builder\",\"v\":1,\"why\":\"a newer fingerprint supersedes it\"}", decode: func(b []byte) (any, error) { var v PausesByDroppedIDValue; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil}, - {name: "a step ask of the runner with its kept results", subject: "mesh.seat.node-build-go.accept.check.step", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v CheckStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-go\\.accept\\.check\\.step$")}, - {name: "a recovery's step ask of the runner, on the stream delivery", subject: "mesh.seat.node-build-go.accept.delivery.step", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v DeliveryStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-go\\.accept\\.delivery\\.step$")}, - {name: "a run ask of the runner, the program built from the change and run over its heads", subject: "mesh.seat.node-build-go.accept.check.run", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-05T10:00:00Z\",\"id\":\"r5e6\",\"kind\":\"run\",\"language\":\"go\",\"run\":{\"args\":[\"-verdict\"],\"heads\":[{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-delivery\"},{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-sdk\"}],\"input\":{\"digest\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"size\":7,\"verb\":\"seat:mesh-delivery-checker.input\"},\"program\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"dir\":\"modules/mesh-delivery-checker\",\"package\":\"./cmd/mesh-checking-program\",\"repository\":\"novox/mesh-delivery\"},\"reader\":\"checking program of mesh-delivery head\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-05T10:00:00Z\",\"id\":\"r5e6\",\"kind\":\"run\",\"language\":\"go\",\"run\":{\"args\":[\"-verdict\"],\"heads\":[{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-delivery\"},{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-sdk\"}],\"input\":{\"digest\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"size\":7,\"verb\":\"seat:mesh-delivery-checker.input\"},\"program\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"dir\":\"modules/mesh-delivery-checker\",\"package\":\"./cmd/mesh-checking-program\",\"repository\":\"novox/mesh-delivery\"},\"reader\":\"checking program of mesh-delivery head\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v CheckRunAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-go\\.accept\\.check\\.run$")}, + {name: "a step ask of the runner with its kept results", subject: "mesh.seat.node-build-go.accept.check", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v CheckStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-go\\.accept\\.check$")}, + {name: "a recovery's step ask of the runner, on the stream delivery", subject: "mesh.seat.node-build-go.accept.delivery", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"go\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v DeliveryStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-go\\.accept\\.delivery$")}, + {name: "a run ask of the runner, the program built from the change and run over its heads", subject: "mesh.seat.node-build-go.accept.check", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-05T10:00:00Z\",\"id\":\"r5e6\",\"kind\":\"run\",\"language\":\"go\",\"run\":{\"args\":[\"-verdict\"],\"heads\":[{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-delivery\"},{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-sdk\"}],\"input\":{\"digest\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"size\":7,\"verb\":\"seat:mesh-delivery-checker.input\"},\"program\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"dir\":\"modules/mesh-delivery-checker\",\"package\":\"./cmd/mesh-checking-program\",\"repository\":\"novox/mesh-delivery\"},\"reader\":\"checking program of mesh-delivery head\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-05T10:00:00Z\",\"id\":\"r5e6\",\"kind\":\"run\",\"language\":\"go\",\"run\":{\"args\":[\"-verdict\"],\"heads\":[{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-delivery\"},{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-sdk\"}],\"input\":{\"digest\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"size\":7,\"verb\":\"seat:mesh-delivery-checker.input\"},\"program\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"dir\":\"modules/mesh-delivery-checker\",\"package\":\"./cmd/mesh-checking-program\",\"repository\":\"novox/mesh-delivery\"},\"reader\":\"checking program of mesh-delivery head\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v CheckRunAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-go\\.accept\\.check$")}, {name: "an artifact's detected steps", subject: "", given: "{\"at\":\"2026-11-10T10:00:00Z\",\"fingerprint\":\"fp-0123\",\"steps\":[{\"step\":\"lint\"},{\"packages\":[\"./modules/nats/a\"],\"step\":\"unit\"}],\"v\":1}", wire: "{\"at\":\"2026-11-10T10:00:00Z\",\"fingerprint\":\"fp-0123\",\"steps\":[{\"step\":\"lint\"},{\"packages\":[\"./modules/nats/a\"],\"step\":\"unit\"}],\"v\":1}", decode: func(b []byte) (any, error) { var v DetectedStepsByModuleArtifactValue diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract.go b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract.go index e65af144..d2136e78 100644 --- a/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract.go +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract.go @@ -98,10 +98,10 @@ const AcceptSubjectDelivery = "mesh.seat.node-build-image.accept.delivery" const AcceptSubjectCheck = "mesh.seat.node-build-image.accept.check" // AcceptSubjectCheckStep is where check.step is sent. -const AcceptSubjectCheckStep = "mesh.seat.node-build-image.accept.check.step" +const AcceptSubjectCheckStep = "mesh.seat.node-build-image.accept.check" // AcceptSubjectDeliveryStep is where delivery.step is sent. -const AcceptSubjectDeliveryStep = "mesh.seat.node-build-image.accept.delivery.step" +const AcceptSubjectDeliveryStep = "mesh.seat.node-build-image.accept.delivery" // AcceptSubjectRecheck is where recheck is sent. const AcceptSubjectRecheck = "mesh.seat.node-build-image.accept.recheck" diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract_test.go b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract_test.go index dd1cf3d9..27a4e8d1 100644 --- a/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract_test.go +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildimage/contract_test.go @@ -63,10 +63,10 @@ func TestFixtures(t *testing.T) { decode: func(b []byte) (any, error) { var v StepsByNodeIDValue; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil}, {name: "an ask dropped by the caller that no longer waits", subject: "", given: "{\"at\":\"2026-11-05T10:00:00Z\",\"by\":\"mesh-delivery-builder\",\"v\":1,\"why\":\"a newer fingerprint supersedes it\"}", wire: "{\"at\":\"2026-11-05T10:00:00Z\",\"by\":\"mesh-delivery-builder\",\"v\":1,\"why\":\"a newer fingerprint supersedes it\"}", decode: func(b []byte) (any, error) { var v PausesByDroppedIDValue; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil}, - {name: "a lint step ask of the runner with the names", subject: "mesh.seat.node-build-image.accept.check.step", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v CheckStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-image\\.accept\\.check\\.step$")}, - {name: "a recovery's step ask of the runner, on the stream delivery", subject: "mesh.seat.node-build-image.accept.delivery.step", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v DeliveryStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-image\\.accept\\.delivery\\.step$")}, + {name: "a lint step ask of the runner with the names", subject: "mesh.seat.node-build-image.accept.check", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v CheckStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-image\\.accept\\.check$")}, + {name: "a recovery's step ask of the runner, on the stream delivery", subject: "mesh.seat.node-build-image.accept.delivery", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"image\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"lint\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v DeliveryStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-image\\.accept\\.delivery$")}, {name: "an artifact's detected steps", subject: "", given: "{\"at\":\"2026-11-10T10:00:00Z\",\"fingerprint\":\"fp-0123\",\"steps\":[{\"step\":\"lint\"},{\"packages\":[\"./modules/nats/a\"],\"step\":\"unit\"}],\"v\":1}", wire: "{\"at\":\"2026-11-10T10:00:00Z\",\"fingerprint\":\"fp-0123\",\"steps\":[{\"step\":\"lint\"},{\"packages\":[\"./modules/nats/a\"],\"step\":\"unit\"}],\"v\":1}", decode: func(b []byte) (any, error) { var v DetectedStepsByModuleArtifactValue diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract.go b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract.go index 7903f90a..47ca8f1d 100644 --- a/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract.go +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract.go @@ -98,10 +98,10 @@ const AcceptSubjectDelivery = "mesh.seat.node-build-node.accept.delivery" const AcceptSubjectCheck = "mesh.seat.node-build-node.accept.check" // AcceptSubjectCheckStep is where check.step is sent. -const AcceptSubjectCheckStep = "mesh.seat.node-build-node.accept.check.step" +const AcceptSubjectCheckStep = "mesh.seat.node-build-node.accept.check" // AcceptSubjectDeliveryStep is where delivery.step is sent. -const AcceptSubjectDeliveryStep = "mesh.seat.node-build-node.accept.delivery.step" +const AcceptSubjectDeliveryStep = "mesh.seat.node-build-node.accept.delivery" // AcceptSubjectRecheck is where recheck is sent. const AcceptSubjectRecheck = "mesh.seat.node-build-node.accept.recheck" diff --git a/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract_test.go b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract_test.go index 89444942..34f44af0 100644 --- a/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract_test.go +++ b/modules/mesh-delivery-contracts/go/seats/nodebuildnode/contract_test.go @@ -67,10 +67,10 @@ func TestFixtures(t *testing.T) { decode: func(b []byte) (any, error) { var v StepsByNodeIDValue; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil}, {name: "an ask dropped by the caller that no longer waits", subject: "", given: "{\"at\":\"2026-11-05T10:00:00Z\",\"by\":\"mesh-delivery-builder\",\"v\":1,\"why\":\"a newer fingerprint supersedes it\"}", wire: "{\"at\":\"2026-11-05T10:00:00Z\",\"by\":\"mesh-delivery-builder\",\"v\":1,\"why\":\"a newer fingerprint supersedes it\"}", decode: func(b []byte) (any, error) { var v PausesByDroppedIDValue; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil}, - {name: "a step ask of the runner with its kept results", subject: "mesh.seat.node-build-node.accept.check.step", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v CheckStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-node\\.accept\\.check\\.step$")}, - {name: "a recovery's step ask of the runner, on the stream delivery", subject: "mesh.seat.node-build-node.accept.delivery.step", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", - decode: func(b []byte) (any, error) { var v DeliveryStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-node\\.accept\\.delivery\\.step$")}, + {name: "a step ask of the runner with its kept results", subject: "mesh.seat.node-build-node.accept.check", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v CheckStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-node\\.accept\\.check$")}, + {name: "a recovery's step ask of the runner, on the stream delivery", subject: "mesh.seat.node-build-node.accept.delivery", given: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", wire: "{\"asker\":\"mesh-delivery-pipeline\",\"at\":\"2026-11-10T10:00:00Z\",\"id\":\"m2kx9a1b3c4d5e\",\"kind\":\"step\",\"language\":\"typescript\",\"step\":{\"artifact\":\"nats:program\",\"branch\":\"main\",\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"fetch\":{\"commit\":\"0123456789abcdef0123456789abcdef01234567\",\"repository\":\"novox/mesh-catalog\"},\"fingerprint\":\"fp-0123\",\"kept\":[{\"digest\":\"sha256:bbbb\",\"level\":\"unit\",\"package\":\"./modules/nats/a\",\"pipeline\":\"main.11.nats\"}],\"module\":\"nats\",\"pipeline\":\"main.12.nats\",\"revision\":12,\"step\":\"unit\"},\"v\":1}", + decode: func(b []byte) (any, error) { var v DeliveryStepAccept; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.node-build-node\\.accept\\.delivery$")}, {name: "an artifact's detected steps", subject: "", given: "{\"at\":\"2026-11-10T10:00:00Z\",\"fingerprint\":\"fp-0123\",\"steps\":[{\"step\":\"lint\"},{\"packages\":[\"./modules/nats/a\"],\"step\":\"unit\"}],\"v\":1}", wire: "{\"at\":\"2026-11-10T10:00:00Z\",\"fingerprint\":\"fp-0123\",\"steps\":[{\"step\":\"lint\"},{\"packages\":[\"./modules/nats/a\"],\"step\":\"unit\"}],\"v\":1}", decode: func(b []byte) (any, error) { var v DetectedStepsByModuleArtifactValue diff --git a/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/states.json b/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/states.json index 5280f8c7..5de39c10 100644 --- a/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/states.json +++ b/modules/mesh-delivery-contracts/seats/node-build-go/fixtures/states.json @@ -405,7 +405,7 @@ { "name": "a step ask of the runner with its kept results", "of": "accept:check.step", - "subject": "mesh.seat.node-build-go.accept.check.step", + "subject": "mesh.seat.node-build-go.accept.check", "given": { "v": 1, "id": "m2kx9a1b3c4d5e", @@ -440,7 +440,7 @@ { "name": "a recovery's step ask of the runner, on the stream delivery", "of": "accept:delivery.step", - "subject": "mesh.seat.node-build-go.accept.delivery.step", + "subject": "mesh.seat.node-build-go.accept.delivery", "given": { "v": 1, "id": "m2kx9a1b3c4d5e", @@ -475,7 +475,7 @@ { "name": "a run ask of the runner, the program built from the change and run over its heads", "of": "accept:check.run", - "subject": "mesh.seat.node-build-go.accept.check.run", + "subject": "mesh.seat.node-build-go.accept.check", "given": { "v": 1, "id": "r5e6", diff --git a/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/states.json b/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/states.json index e2537e2a..4fabde9e 100644 --- a/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/states.json +++ b/modules/mesh-delivery-contracts/seats/node-build-image/fixtures/states.json @@ -121,7 +121,7 @@ { "name": "a lint step ask of the runner with the names", "of": "accept:check.step", - "subject": "mesh.seat.node-build-image.accept.check.step", + "subject": "mesh.seat.node-build-image.accept.check", "given": { "v": 1, "id": "m2kx9a1b3c4d5e", @@ -148,7 +148,7 @@ { "name": "a recovery's step ask of the runner, on the stream delivery", "of": "accept:delivery.step", - "subject": "mesh.seat.node-build-image.accept.delivery.step", + "subject": "mesh.seat.node-build-image.accept.delivery", "given": { "v": 1, "id": "m2kx9a1b3c4d5e", diff --git a/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/states.json b/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/states.json index fa812041..b95d9f58 100644 --- a/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/states.json +++ b/modules/mesh-delivery-contracts/seats/node-build-node/fixtures/states.json @@ -202,7 +202,7 @@ { "name": "a step ask of the runner with its kept results", "of": "accept:check.step", - "subject": "mesh.seat.node-build-node.accept.check.step", + "subject": "mesh.seat.node-build-node.accept.check", "given": { "v": 1, "id": "m2kx9a1b3c4d5e", @@ -237,7 +237,7 @@ { "name": "a recovery's step ask of the runner, on the stream delivery", "of": "accept:delivery.step", - "subject": "mesh.seat.node-build-node.accept.delivery.step", + "subject": "mesh.seat.node-build-node.accept.delivery", "given": { "v": 1, "id": "m2kx9a1b3c4d5e", diff --git a/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.d.ts index de2a047f..832ba06e 100644 --- a/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.d.ts +++ b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.d.ts @@ -58,13 +58,13 @@ export declare const deliverySubject: "mesh.seat.node-build-go.accept.delivery"; export declare const checkSubject: "mesh.seat.node-build-go.accept.check"; -export declare const checkStepSubject: "mesh.seat.node-build-go.accept.check.step"; +export declare const checkStepSubject: "mesh.seat.node-build-go.accept.check"; -export declare const deliveryStepSubject: "mesh.seat.node-build-go.accept.delivery.step"; +export declare const deliveryStepSubject: "mesh.seat.node-build-go.accept.delivery"; export declare const recheckSubject: "mesh.seat.node-build-go.accept.recheck"; -export declare const checkRunSubject: "mesh.seat.node-build-go.accept.check.run"; +export declare const checkRunSubject: "mesh.seat.node-build-go.accept.check"; export declare const states: { readonly steps: "steps"; diff --git a/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.js index a007e1cb..f9118fb5 100644 --- a/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.js +++ b/modules/mesh-delivery-contracts/ts/seats/nodebuildgo/index.js @@ -64,13 +64,13 @@ export const deliverySubject = "mesh.seat.node-build-go.accept.delivery"; export const checkSubject = "mesh.seat.node-build-go.accept.check"; -export const checkStepSubject = "mesh.seat.node-build-go.accept.check.step"; +export const checkStepSubject = "mesh.seat.node-build-go.accept.check"; -export const deliveryStepSubject = "mesh.seat.node-build-go.accept.delivery.step"; +export const deliveryStepSubject = "mesh.seat.node-build-go.accept.delivery"; export const recheckSubject = "mesh.seat.node-build-go.accept.recheck"; -export const checkRunSubject = "mesh.seat.node-build-go.accept.check.run"; +export const checkRunSubject = "mesh.seat.node-build-go.accept.check"; export const states = { steps: "steps", diff --git a/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.d.ts index c6790130..d666dae8 100644 --- a/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.d.ts +++ b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.d.ts @@ -57,9 +57,9 @@ export declare const deliverySubject: "mesh.seat.node-build-image.accept.deliver export declare const checkSubject: "mesh.seat.node-build-image.accept.check"; -export declare const checkStepSubject: "mesh.seat.node-build-image.accept.check.step"; +export declare const checkStepSubject: "mesh.seat.node-build-image.accept.check"; -export declare const deliveryStepSubject: "mesh.seat.node-build-image.accept.delivery.step"; +export declare const deliveryStepSubject: "mesh.seat.node-build-image.accept.delivery"; export declare const recheckSubject: "mesh.seat.node-build-image.accept.recheck"; diff --git a/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.js index 17048b39..869093bc 100644 --- a/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.js +++ b/modules/mesh-delivery-contracts/ts/seats/nodebuildimage/index.js @@ -63,9 +63,9 @@ export const deliverySubject = "mesh.seat.node-build-image.accept.delivery"; export const checkSubject = "mesh.seat.node-build-image.accept.check"; -export const checkStepSubject = "mesh.seat.node-build-image.accept.check.step"; +export const checkStepSubject = "mesh.seat.node-build-image.accept.check"; -export const deliveryStepSubject = "mesh.seat.node-build-image.accept.delivery.step"; +export const deliveryStepSubject = "mesh.seat.node-build-image.accept.delivery"; export const recheckSubject = "mesh.seat.node-build-image.accept.recheck"; diff --git a/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.d.ts b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.d.ts index 59f62b62..ba191dda 100644 --- a/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.d.ts +++ b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.d.ts @@ -57,9 +57,9 @@ export declare const deliverySubject: "mesh.seat.node-build-node.accept.delivery export declare const checkSubject: "mesh.seat.node-build-node.accept.check"; -export declare const checkStepSubject: "mesh.seat.node-build-node.accept.check.step"; +export declare const checkStepSubject: "mesh.seat.node-build-node.accept.check"; -export declare const deliveryStepSubject: "mesh.seat.node-build-node.accept.delivery.step"; +export declare const deliveryStepSubject: "mesh.seat.node-build-node.accept.delivery"; export declare const recheckSubject: "mesh.seat.node-build-node.accept.recheck"; diff --git a/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.js b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.js index f5591f99..5e472b0f 100644 --- a/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.js +++ b/modules/mesh-delivery-contracts/ts/seats/nodebuildnode/index.js @@ -63,9 +63,9 @@ export const deliverySubject = "mesh.seat.node-build-node.accept.delivery"; export const checkSubject = "mesh.seat.node-build-node.accept.check"; -export const checkStepSubject = "mesh.seat.node-build-node.accept.check.step"; +export const checkStepSubject = "mesh.seat.node-build-node.accept.check"; -export const deliveryStepSubject = "mesh.seat.node-build-node.accept.delivery.step"; +export const deliveryStepSubject = "mesh.seat.node-build-node.accept.delivery"; export const recheckSubject = "mesh.seat.node-build-node.accept.recheck"; diff --git a/modules/mesh-delivery-sdk/seatgen/gogen.go b/modules/mesh-delivery-sdk/seatgen/gogen.go index a1179943..ff386b58 100644 --- a/modules/mesh-delivery-sdk/seatgen/gogen.go +++ b/modules/mesh-delivery-sdk/seatgen/gogen.go @@ -201,7 +201,7 @@ func goWhole(m *Module, d seatdef.Definition) ([]byte, []byte, error) { } } for _, a := range d.Accepts { - subj := seatdef.AcceptSubject(d.Seat, acceptName(a)) + subj := acceptSubject(d.Seat, a) if a.ByCaller { fmt.Fprintf(&b, "// AcceptSubject%s is where one caller sends %s.\nfunc AcceptSubject%s(caller string) string { return %q + caller }\n\n", ident(acceptName(a)), acceptName(a), ident(acceptName(a)), subj+".") @@ -440,6 +440,9 @@ func fixtureTarget(d seatdef.Definition, kind, name string) (string, string, err if kind == "event" && len(msg.Parts()) > 0 { return ident(name) + suffix, partsPattern(d.Seat, msg), nil } + if kind == "accept" { + subj = acceptSubject(d.Seat, msg) + } p := "^" + regexp(subj) if msg.ByCaller { p += `\.[A-Za-z0-9_-]+` @@ -466,8 +469,8 @@ func fixtureTarget(d seatdef.Definition, kind, name string) (string, string, err return "", "", fmt.Errorf("the definition has no %s %q", kind, name) } -// acceptName is an accepted kind's name as the generated names and its subject carry it: the plain kind, or for a -// kind on a stream `.` (design 47 G §455), so `step` on `check` and on `delivery` stay two. +// acceptName is an accepted kind's name as the generated names carry it: the plain kind, or for a kind on a stream +// `.` (design 47 G §455), so `step` on `check` and on `delivery` stay two; its subject is acceptSubject. func acceptName(m seatdef.Message) string { if m.Stream != "" { return m.Stream + "." + m.Name @@ -475,6 +478,15 @@ func acceptName(m seatdef.Message) string { return m.Name } +// acceptSubject is where an accepted kind is sent: `accept.`, or for a kind on a stream its queue alone, +// `accept.`, since the kind is in the body only (design 47 G §600, A-170); `step` on `check` and `check` share it. +func acceptSubject(seat string, m seatdef.Message) string { + if m.Stream != "" { + return seatdef.AcceptSubject(seat, m.Stream) + } + return seatdef.AcceptSubject(seat, m.Name) +} + func acceptNames(ms []seatdef.Message) []string { out := make([]string, len(ms)) for i, m := range ms { diff --git a/modules/mesh-delivery-sdk/seatgen/layout_test.go b/modules/mesh-delivery-sdk/seatgen/layout_test.go index ebef2b55..0d86fa16 100644 --- a/modules/mesh-delivery-sdk/seatgen/layout_test.go +++ b/modules/mesh-delivery-sdk/seatgen/layout_test.go @@ -355,8 +355,8 @@ func TestBodiesAreTypesAndAcceptedKindsRideStreams(t *testing.T) { for _, want := range []string{ "type Finding struct", "Related []Finding", "type PeekAnswer = Finding", `"check.step"`, `"delivery.step"`, `"check.run"`, - `const AcceptSubjectCheckStep = "mesh.seat.a-registry.accept.check.step"`, - `const AcceptSubjectDeliveryStep = "mesh.seat.a-registry.accept.delivery.step"`, + `const AcceptSubjectCheckStep = "mesh.seat.a-registry.accept.check"`, + `const AcceptSubjectDeliveryStep = "mesh.seat.a-registry.accept.delivery"`, // the queue alone: the kind is in the body (A-170) "type CheckStepAccept struct", "type DeliveryStepAccept", } { if !strings.Contains(src, want) { @@ -373,7 +373,7 @@ func TestBodiesAreTypesAndAcceptedKindsRideStreams(t *testing.T) { t.Errorf("index.d.ts lacks %q:\n%s", want, dts) } } - if !strings.Contains(js, `"mesh.seat.a-registry.accept.delivery.step"`) { + if !strings.Contains(js, `deliveryStepSubject = "mesh.seat.a-registry.accept.delivery";`) { t.Errorf("index.js lacks the delivery stream's subject:\n%s", js) } } diff --git a/modules/mesh-delivery-sdk/seatgen/tsgen.go b/modules/mesh-delivery-sdk/seatgen/tsgen.go index 352c2cb5..2229a46f 100644 --- a/modules/mesh-delivery-sdk/seatgen/tsgen.go +++ b/modules/mesh-delivery-sdk/seatgen/tsgen.go @@ -121,7 +121,7 @@ func tsFiles(m *Module, out map[string][]byte) error { tsSubject(o, tsName(e.Name), seatdef.EventSubject(d.Seat, e.Name), e.ByCaller) } for _, a := range d.Accepts { - tsSubject(o, tsName(acceptName(a)), seatdef.AcceptSubject(d.Seat, acceptName(a)), a.ByCaller) + tsSubject(o, tsName(acceptName(a)), acceptSubject(d.Seat, a), a.ByCaller) } if len(d.HolderEvents) > 0 { tsNames(o, "holderEvents", holderNames(d.HolderEvents))