CT8: the seat mesh-delivery-checker: the events owed per repository and number, and checked
Builds: design 47 G §162, §164, §260 (owed on mesh.seat.mesh-delivery-checker.event.owed.<repository>.<number>, kept 7 days and 64 MiB per §396; checked). Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
@@ -40,5 +40,52 @@
|
||||
"of": "holder-event:preview.written",
|
||||
"subject": "mesh.stream.mesh-delivery-checker.event.preview.written",
|
||||
"given": {}
|
||||
},
|
||||
{
|
||||
"name": "checked is said",
|
||||
"of": "event:checked",
|
||||
"subject": "mesh.seat.mesh-delivery-checker.event.checked",
|
||||
"given": {
|
||||
"group": "feat/47-G",
|
||||
"heads": "0123456789ab",
|
||||
"source": 3611,
|
||||
"catalog": 3612,
|
||||
"verdict": "pass",
|
||||
"entries": [
|
||||
{
|
||||
"module": "mesh-delivery-gate",
|
||||
"fp": "src2:1480985e"
|
||||
}
|
||||
],
|
||||
"at": "2026-11-09T20:30:00Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "checked is said when it could not run",
|
||||
"of": "event:checked",
|
||||
"subject": "mesh.seat.mesh-delivery-checker.event.checked",
|
||||
"given": {
|
||||
"group": "feat/47-G",
|
||||
"heads": "0123456789ab",
|
||||
"verdict": "could not run",
|
||||
"words": "the seat git's holder did not answer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "owed is said",
|
||||
"of": "event:owed",
|
||||
"subject": "mesh.seat.mesh-delivery-checker.event.owed.novox/mesh-sdk.178",
|
||||
"given": {
|
||||
"id": "status.novox/mesh-sdk#178.aaaaaaaaaaaa.mesh/check",
|
||||
"act": "status",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"context": "mesh/check",
|
||||
"state": "success",
|
||||
"description": "passed",
|
||||
"target": "https://forge.test/x",
|
||||
"said": "2026-11-09T20:30:00Z"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -176,7 +176,79 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"description": "The merge check's tries: start one, read one, end one. The checker's own events stay under its own subjects (ADR 0620 §2).",
|
||||
"description": "The merge check's tries: start one, read one, end one. The seat says each check's end as checked and what the checker owes the forge as owed; the checker's other events stay under its own subjects (ADR 0620 \u00a72).",
|
||||
"family": {
|
||||
"name": "mesh-delivery-checker.events",
|
||||
"max-age-days": 7
|
||||
},
|
||||
"events": [
|
||||
{
|
||||
"name": "checked",
|
||||
"body": {
|
||||
"type": "object",
|
||||
"description": "a candidate checked: its entries judged at the group's heads (design 47 *What each step says*)",
|
||||
"properties": {
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "the group, its branch"
|
||||
},
|
||||
"heads": {
|
||||
"type": "string",
|
||||
"description": "the heads checked, 12 hex digits, as the candidate's revisions are keyed"
|
||||
},
|
||||
"source": {
|
||||
"type": "integer",
|
||||
"description": "the source revision the heads are merged onto"
|
||||
},
|
||||
"catalog": {
|
||||
"type": "integer",
|
||||
"description": "the candidate's catalog graph revision judged, by its number on the seat mesh-catalog"
|
||||
},
|
||||
"verdict": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"pass",
|
||||
"fail",
|
||||
"could not run"
|
||||
],
|
||||
"description": "pass, fail, or could not run when a part the check needs did not answer"
|
||||
},
|
||||
"words": {
|
||||
"type": "string",
|
||||
"description": "what failed first, or the part not heard"
|
||||
},
|
||||
"entries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/defs/CheckedEntry"
|
||||
},
|
||||
"description": "the entries checked"
|
||||
},
|
||||
"at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "when"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"group",
|
||||
"heads",
|
||||
"verdict"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "owed",
|
||||
"subject": "owed.<repository>.<number>",
|
||||
"body": {
|
||||
"$ref": "#/defs/Owed"
|
||||
},
|
||||
"keep": {
|
||||
"max-age-days": 7,
|
||||
"max-mib": 64
|
||||
}
|
||||
}
|
||||
],
|
||||
"holder-events": [
|
||||
{
|
||||
"name": "verdict",
|
||||
@@ -746,5 +818,90 @@
|
||||
"description": "the previews of a head merged onto a trunk",
|
||||
"history": 5
|
||||
}
|
||||
]
|
||||
],
|
||||
"defs": {
|
||||
"Owed": {
|
||||
"type": "object",
|
||||
"description": "the status the checker owes the forge for a head, said under its id and safe to repeat (a status replaces what stands); the forge bridge performs it through the seat git's verb status (design 47 *What the gate owes the forge*)",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "the act's id, the same each time it is said again"
|
||||
},
|
||||
"act": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"status"
|
||||
],
|
||||
"description": "the act: always status"
|
||||
},
|
||||
"repository": {
|
||||
"type": "string",
|
||||
"description": "the repository, <owner>/<name>",
|
||||
"minLength": 1
|
||||
},
|
||||
"number": {
|
||||
"type": "integer",
|
||||
"description": "the pull request's number"
|
||||
},
|
||||
"head": {
|
||||
"type": "string",
|
||||
"description": "the pull request's head the status is on",
|
||||
"pattern": "^[0-9a-f]{40}$"
|
||||
},
|
||||
"context": {
|
||||
"type": "string",
|
||||
"description": "its context, mesh/check"
|
||||
},
|
||||
"state": {
|
||||
"type": "string",
|
||||
"description": "pending, success, failure or error"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "what it says"
|
||||
},
|
||||
"target": {
|
||||
"type": "string",
|
||||
"description": "the page it links to"
|
||||
},
|
||||
"said": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "when the checker first said it"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"act",
|
||||
"repository",
|
||||
"number",
|
||||
"head",
|
||||
"context",
|
||||
"state"
|
||||
]
|
||||
},
|
||||
"CheckedEntry": {
|
||||
"type": "object",
|
||||
"description": "one entry of the candidate checked: a module at its fingerprint",
|
||||
"properties": {
|
||||
"module": {
|
||||
"type": "string",
|
||||
"description": "the module"
|
||||
},
|
||||
"fp": {
|
||||
"type": "string",
|
||||
"description": "the entry's fingerprint"
|
||||
},
|
||||
"node": {
|
||||
"type": "string",
|
||||
"description": "the node it was composed for, when the check composed it on one"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"module",
|
||||
"fp"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user