The checker's fixed names of the build modules (buildmodules.go in its program, rules and check) go: the Examiner finds each build module by the language its seat's acting rule builds (buildrun.BuildSeats over the seat list's definitions and the holders the indexer's modules name by their manifests' claims), the facts carry the language where a level counts by it, and the program's manifest reads the steps and toolchains of the seats and hears their toolchain-reported. The tools read the steps of each holder and follow the seat list as the view does. Timers stay (A-118). Builds: design 47 G A-82, A-118, §204 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
198 lines
5.7 KiB
JSON
198 lines
5.7 KiB
JSON
{
|
|
"module": "mesh-delivery-checker",
|
|
"version": "0.1",
|
|
"slug": "checker",
|
|
"claims": [
|
|
{
|
|
"name": "mesh-delivery-checker",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"try",
|
|
"try-read",
|
|
"try-end",
|
|
"input"
|
|
]
|
|
}
|
|
],
|
|
"consumes": [
|
|
"mesh-catalog.catalog-revision",
|
|
"mesh-catalog.seat-definition-changed",
|
|
"mesh-catalog.seat-definition-removed",
|
|
"mesh-delivery-assigner.views.assignments",
|
|
"mesh-delivery-indexer.views.candidates",
|
|
"mesh-delivery-indexer.views.manifests",
|
|
"mesh-delivery-indexer.views.modules",
|
|
"mesh-delivery-indexer.views.packages",
|
|
"mesh-delivery-indexer.views.predefined",
|
|
"mesh-delivery-indexer.views.seat-definitions",
|
|
"mesh-conditions.findings-asked",
|
|
"node-build-go.toolchain-reported",
|
|
"node-build-node.toolchain-reported",
|
|
"node-engine.running"
|
|
],
|
|
"streams": [
|
|
{ "name": "checks", "events": ["preview.**", "owed.**", "try.**"] },
|
|
{ "name": "asks", "events": ["verdict"], "retention": "history" },
|
|
{ "name": "mesh-delivery-checker-findings", "events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"], "max-age-days": 7, "max-mib": 16 }
|
|
],
|
|
"state": [
|
|
{ "name": "asks", "history": 1 },
|
|
{ "name": "hearing", "history": 1 },
|
|
{ "name": "inputs", "ttl-seconds": 86400 },
|
|
{ "name": "compositions", "ttl-seconds": 259200 },
|
|
{ "name": "kept", "history": 1 },
|
|
{ "name": "owed", "history": 5 },
|
|
{ "name": "previews", "history": 5 },
|
|
{ "name": "tries", "history": 1 },
|
|
{ "name": "verdicts", "history": 5 },
|
|
{ "name": "first-views", "history": 1 },
|
|
{ "name": "findings", "history": 1 },
|
|
{ "name": "could-not-run", "history": 1 }
|
|
],
|
|
"reads": [
|
|
"mesh-delivery-builder.builds",
|
|
"mesh-delivery-watchman.presence",
|
|
"node-engine.have",
|
|
"seat:node-build-go.steps",
|
|
"seat:node-build-go.toolchains",
|
|
"seat:node-build-node.steps",
|
|
"seat:node-build-node.toolchains"
|
|
],
|
|
"uses": [
|
|
"node-build-go",
|
|
"node-build-node"
|
|
],
|
|
"tools": [
|
|
"checker_ask_again",
|
|
"checker_composition_requests",
|
|
"checker_inputs",
|
|
"checker_kept",
|
|
"checker_previews",
|
|
"checker_pull",
|
|
"checker_status",
|
|
"checker_first_views",
|
|
"checker_first_view_again",
|
|
"checker_tries",
|
|
"checker_try",
|
|
"checker_try_end",
|
|
"checker_try_read",
|
|
"checker_verdicts"
|
|
],
|
|
"invokes": [
|
|
"mesh-delivery-assigner.assigner_read_assignments",
|
|
"mesh-delivery-indexer.indexer_read_candidates",
|
|
"mesh-delivery-indexer.indexer_read_manifests",
|
|
"mesh-delivery-indexer.indexer_read_modules",
|
|
"mesh-delivery-indexer.indexer_read_packages",
|
|
"mesh-delivery-indexer.indexer_read_predefined",
|
|
"mesh-delivery-indexer.indexer_read_seat_definitions",
|
|
"seat:git.file",
|
|
"seat:mesh-catalog.revision",
|
|
"seat:mesh-catalog.seat-definitions",
|
|
"seat:mesh-config.renames",
|
|
"seat:mesh-hand-acts.hand-act",
|
|
"seat:mesh-module-assigner.assignments",
|
|
"seat:node-build-go.drop",
|
|
"seat:node-build-node.drop",
|
|
"seat:node-engine.compose-candidate"
|
|
],
|
|
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-checker",
|
|
"config": {
|
|
"compose-answer-bound": {
|
|
"type": "number",
|
|
"description": "seconds a check waits for each placed node's engine to answer compose-candidate (novox/hq ADR 0593 §7, §9); a node that has not answered by then is named in the verdict as not composed on that node: no answer, and the check passes with that warning.",
|
|
"minimum": 1,
|
|
"maximum": 600,
|
|
"trusted": false,
|
|
"default": 60
|
|
},
|
|
"build-wait-bound": {
|
|
"type": "number",
|
|
"description": "seconds a check waits for the builder's builds of its candidate to end before it composes with them (novox/hq ADR 0603 §10); a build failed fails the check, naming it, and a build not ended by then is named in the verdict and the check composes without it.",
|
|
"minimum": 60,
|
|
"maximum": 7200,
|
|
"trusted": false,
|
|
"default": 1800
|
|
}
|
|
},
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-checker",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-checker"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-checker",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "settings",
|
|
"type": "file",
|
|
"path": "${dir:state}/settings.json",
|
|
"mode": "0600",
|
|
"owner": "mesh-delivery-checker",
|
|
"takes-config": [
|
|
"compose-answer-bound",
|
|
"build-wait-bound"
|
|
],
|
|
"merge": "json",
|
|
"template": "files/settings.json"
|
|
},
|
|
{
|
|
"id": "checker",
|
|
"type": "process",
|
|
"name": "mesh-delivery-checker",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-checker"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker",
|
|
"MESH_CHECKER_SETTINGS": "${dir:state}/settings.json"
|
|
},
|
|
"user": "mesh-delivery-checker",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-checker",
|
|
"binary": "mesh-delivery-checker"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-checker-tools",
|
|
"binary": "mesh-delivery-checker-tools",
|
|
"loads": [
|
|
"mesh-delivery-checker-tools"
|
|
]
|
|
},
|
|
{
|
|
"name": "files",
|
|
"kind": "archive",
|
|
"from": "files"
|
|
}
|
|
]
|
|
}
|
|
}
|