A-102: the runner names the accepted kinds it puts steps on in invokes, and build joins the step inputs

The manifest's invokes names seat:mesh-builds.step, seat:mesh-wants.step and each build seat's check.step; the seat's
definition gives rerun, accept and why-carried inputs and the started pipeline's steps the value build, as the result's
step enum has it.

Builds: design 47 G §22, §24, A-97, A-99, A-102

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
This commit is contained in:
2026-11-11 23:38:37 +01:00
parent 977b69ce07
commit 53db5c8dd9
5 changed files with 22 additions and 6 deletions
@@ -522,6 +522,7 @@ const (
// The values of PipelineStartedStepsItem's step.
const (
PipelineStartedStepsItemStepBuild = "build"
PipelineStartedStepsItemStepLint = "lint"
PipelineStartedStepsItemStepUnit = "unit"
PipelineStartedStepsItemStepIntegration = "integration"
@@ -820,6 +821,7 @@ type WhyCarriedInput struct {
// The values of WhyCarriedInput's step.
const (
WhyCarriedInputStepBuild = "build"
WhyCarriedInputStepLint = "lint"
WhyCarriedInputStepUnit = "unit"
WhyCarriedInputStepIntegration = "integration"
@@ -881,6 +883,7 @@ type RerunInput struct {
// The values of RerunInput's step.
const (
RerunInputStepBuild = "build"
RerunInputStepLint = "lint"
RerunInputStepUnit = "unit"
RerunInputStepIntegration = "integration"
@@ -907,6 +910,7 @@ type AcceptInput struct {
// The values of AcceptInput's step.
const (
AcceptInputStepBuild = "build"
AcceptInputStepLint = "lint"
AcceptInputStepUnit = "unit"
AcceptInputStepIntegration = "integration"
@@ -215,6 +215,7 @@
"step": {
"type": "string",
"enum": [
"build",
"lint",
"unit",
"integration",
@@ -347,6 +348,7 @@
"step": {
"type": "string",
"enum": [
"build",
"lint",
"unit",
"integration",
@@ -398,6 +400,7 @@
"step": {
"type": "string",
"enum": [
"build",
"lint",
"unit",
"integration",
@@ -1157,6 +1160,7 @@
"step": {
"type": "string",
"enum": [
"build",
"lint",
"unit",
"integration",
+4 -4
View File
@@ -251,7 +251,7 @@ export interface PipelineEnded {
export interface PipelineStartedStepsItem {
"artifact"?: string;
"status": "required" | "optional" | "bypass";
"step": "lint" | "unit" | "integration" | "composition" | "review" | "approval";
"step": "build" | "lint" | "unit" | "integration" | "composition" | "review" | "approval";
}
/** a pipeline's start */
@@ -474,7 +474,7 @@ export interface WhyCarriedInput {
"artifact"?: string;
/** the pipeline's key */
"pipeline": string;
"step": "lint" | "unit" | "integration" | "composition" | "review" | "approval";
"step": "build" | "lint" | "unit" | "integration" | "composition" | "review" | "approval";
}
/** is what why-carried answers. */
@@ -517,7 +517,7 @@ export interface RerunInput {
"artifact"?: string;
/** the pipeline's key */
"pipeline": string;
"step": "lint" | "unit" | "integration" | "composition" | "review" | "approval";
"step": "build" | "lint" | "unit" | "integration" | "composition" | "review" | "approval";
/** why, written with the caller the runtime proves in the hand-act log */
"why": string;
}
@@ -533,7 +533,7 @@ export interface AcceptInput {
"artifact"?: string;
/** the pipeline's key */
"pipeline": string;
"step": "lint" | "unit" | "integration" | "composition" | "review" | "approval";
"step": "build" | "lint" | "unit" | "integration" | "composition" | "review" | "approval";
/** why, written with the caller the runtime proves in the hand-act log */
"why": string;
}
@@ -71,7 +71,10 @@ func TestManifest(t *testing.T) {
// RN3 (§53, §334): a publication's dependents behind.
"seat:mesh-catalog.outdated",
// A-74, A-89: who holds the seat operator-channel, whose state asks holds the router's record of the approval ask.
"seat:mesh-module-assigner.assignments"})},
"seat:mesh-module-assigner.assignments",
// A-102 (§22, §24): the accepted kinds the runner puts its steps on.
"seat:mesh-builds.step", "seat:mesh-wants.step", "seat:node-build-go.check.step", "seat:node-build-node.check.step",
"seat:node-build-image.check.step"})},
{"uses operator-channel", equalSets(m.Uses, []string{"operator-channel"})},
{"first-view tools", equalSets(m.Tools, []string{"pipeline_first_views", "pipeline_first_view_again"})},
// RN1/AC5 (§95, §130): the new assigner is delivered before the runner.
+6 -1
View File
@@ -45,7 +45,12 @@
"seat:mesh-catalog.revision",
"seat:mesh-hand-acts.hand-act",
"seat:mesh-catalog.outdated",
"seat:mesh-module-assigner.assignments"
"seat:mesh-module-assigner.assignments",
"seat:mesh-builds.step",
"seat:mesh-wants.step",
"seat:node-build-go.check.step",
"seat:node-build-node.check.step",
"seat:node-build-image.check.step"
],
"uses": [
"operator-channel"