§610: the runner's seat definition drops every verb's named callers

Builds: design 47 G §610, A-75

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
This commit is contained in:
2026-11-11 23:31:26 +01:00
parent cdd1169bd4
commit fdf7387b8e
2 changed files with 26 additions and 50 deletions
@@ -16,10 +16,6 @@
{
"name": "run",
"description": "The run on request of one or more members, each a module at a named commit, through their pipelines; delivers nothing, replacing the checker's try (ADR 0666 section 18). Says run-started.",
"callers": [
"sessions",
"operator"
],
"input": {
"type": "object",
"properties": {
@@ -61,10 +57,6 @@
{
"name": "start",
"description": "A delivering pipeline for a watched branch's head, by hand; written in the hand-act log.",
"callers": [
"operator",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -101,11 +93,6 @@
{
"name": "show",
"description": "One pipeline whole: its steps, its step log and its outputs, with the stores' fill. Reads only.",
"callers": [
"persons",
"sessions",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -153,11 +140,6 @@
{
"name": "list",
"description": "The pipelines and runs of a module, a branch or a commit, newest first, with the store's fill. Reads only.",
"callers": [
"persons",
"sessions",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -200,11 +182,6 @@
{
"name": "stands",
"description": "What stands still, and since when: each step not ended and each wait held. Reads only.",
"callers": [
"persons",
"sessions",
"healers"
],
"input": {
"type": "object",
"properties": {}
@@ -228,11 +205,6 @@
{
"name": "why-carried",
"description": "Where a step's result was carried from, with the kept results it rests on. Reads only.",
"callers": [
"persons",
"sessions",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -279,11 +251,6 @@
{
"name": "kept",
"description": "The kept results, by digest, package or level, with the store's fill. Reads only.",
"callers": [
"persons",
"sessions",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -320,9 +287,6 @@
{
"name": "review",
"description": "A code review's result for a commit and fingerprint, taken from the reviewer's account and refused from the commit's author (ADR 0666 section 22).",
"callers": [
"sessions"
],
"input": {
"type": "object",
"properties": {
@@ -373,10 +337,6 @@
{
"name": "rerun",
"description": "One step again; its step-ended says it is a rerun and the caller the runtime proved. Written in the hand-act log.",
"callers": [
"operator",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -428,9 +388,6 @@
{
"name": "accept",
"description": "A failed optional step accepted, with who and why, in the hand-act log.",
"callers": [
"operator"
],
"input": {
"type": "object",
"properties": {
@@ -479,10 +436,6 @@
{
"name": "cancel",
"description": "A pipeline ended cancelled, its waiting asks dropped by each build seat's drop. Written in the hand-act log.",
"callers": [
"operator",
"healers"
],
"input": {
"type": "object",
"properties": {
@@ -516,9 +469,6 @@
{
"name": "ask-again",
"description": "A declined approval step asked again (ADR 0666 section 10). Written in the hand-act log.",
"callers": [
"operator"
],
"input": {
"type": "object",
"properties": {
@@ -1,6 +1,7 @@
package pipeline_test
import (
"encoding/json"
"os"
"slices"
"testing"
@@ -83,6 +84,31 @@ func TestManifest(t *testing.T) {
}
}
// §610, A-75: no verb of the runner's definition names its callers, so the class's default holds for each.
func TestNoVerbNamesItsCallers(t *testing.T) {
raw, err := os.ReadFile("../../contracts/seats/mesh-pipeline-runner/seat.json")
if err != nil {
t.Fatal(err)
}
var def struct {
Verbs []struct {
Name string `json:"name"`
Callers []string `json:"callers"`
} `json:"verbs"`
}
if err := json.Unmarshal(raw, &def); err != nil {
t.Fatal(err)
}
if len(def.Verbs) == 0 {
t.Fatal("the definition holds no verb")
}
for _, v := range def.Verbs {
if len(v.Callers) != 0 {
t.Errorf("the verb %s names callers %v; from G no verb does (§610)", v.Name, v.Callers)
}
}
}
func equalSets(a, b []string) bool {
x, y := slices.Clone(a), slices.Clone(b)
slices.Sort(x)