W12.5: the three build modules answer kept-artifact with the domain SDK's judgement (issue 1966)

Design 47 lines 1888-1906 at b229f5c4 (test 60): the verb sits in every build seat's definition.
Its judgement (what may be kept, the kept builds a node holds, the three refusals) is shared code of
one domain's modules, so it is the domain SDK's (sdk/buildstep KeptArtifact, ADR 0634 §2):
mesh-build-go keeps its store, sweep and tools and drops its own copy of the judgement and its table;
mesh-build-node and mesh-build-image keep no build and answer over none, so a module claiming no
oci-artifact-registry is refused and the holder is answered not kept. Their manifests serve the verb
and invoke seat:mesh-catalog.module, which the judgement asks.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ

(Joined from 42d364fe.)
Builds: design 47 G §271, §464 (BLD9)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 14:35:53 +01:00
parent cf383af441
commit d3781fd840
15 changed files with 183 additions and 140 deletions
+3 -2
View File
@@ -21,7 +21,7 @@
{
"name": "node-build-node",
"scope": "node",
"serves": ["current", "drop", "pause", "resume", "steps"]
"serves": ["current", "drop", "pause", "resume", "steps", "kept-artifact"]
}
],
"config": {
@@ -79,7 +79,8 @@
"seat:oci-artifact-registry.publish-part",
"seat:npm-package-registry.publish",
"seat:npm-package-registry.publish-part",
"seat:mesh-module-assigner.assignments"
"seat:mesh-module-assigner.assignments",
"seat:mesh-catalog.module"
],
"own-secrets": {
"broker": "${dir:state}/broker"