CT7: the seat mesh-delivery: source, recovery, groups with acts, owed and the record events; table, recheck, close and the milestone events removed

Builds: design 47 G §304, §305 (verbs source with a branch, recovery; groups; events
owed, pinned, freed, heads-replaced, record-opened, record-ended, filling, full, room,
source-moved, recovery-merged; table, recheck, close and the three milestone events
removed), §15, §162 (owed per repository and number, 7 days, 64 MiB), §431 (asks,
turns and the five verbs of release 6, checks and settle leave the definition),
§394 (recovery is of class act: the operator and sessions), §391 (class).

Open, left as the dev branch built it: the state merges is kept (no line says the
merge states of the gate go whole).

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 10:47:13 +01:00
parent 0c37cd6402
commit 71afa10f4d
4 changed files with 954 additions and 320 deletions
@@ -0,0 +1,170 @@
[
{
"name": "owed is said, a merge",
"of": "event:owed",
"subject": "mesh.seat.mesh-delivery.event.owed.novox/mesh-sdk.178",
"given": {
"id": "merge.feat=47-G.0123456789ab.novox/mesh-sdk#178",
"act": "merge",
"repository": "novox/mesh-sdk",
"number": 178,
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"group": "feat/47-G",
"ask": "merge.feat=47-G.0123456789ab",
"said": "2026-11-09T20:00:00Z"
}
},
{
"name": "owed is said, a status",
"of": "event:owed",
"subject": "mesh.seat.mesh-delivery.event.owed.novox/mesh-sdk.178",
"given": {
"id": "status.novox/mesh-sdk#178.aaaaaaaaaaaa.mesh/merge-gate",
"act": "status",
"repository": "novox/mesh-sdk",
"number": 178,
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"context": "mesh/merge-gate",
"state": "pending",
"description": "waits for the operator's Approve",
"target": "https://forge.test/x"
}
},
{
"name": "pinned is said",
"of": "event:pinned",
"subject": "mesh.seat.mesh-delivery.event.pinned",
"given": {
"record": "47-G",
"milestone": "47/G",
"catalog": [
3610
],
"assignment": [
1204
]
}
},
{
"name": "freed is said",
"of": "event:freed",
"subject": "mesh.seat.mesh-delivery.event.freed",
"given": {
"record": "47-G",
"milestone": "47/G",
"catalog": [
3610
],
"assignment": [
1204
],
"why": "past its retention of 90 days"
}
},
{
"name": "heads-replaced is said",
"of": "event:heads-replaced",
"subject": "mesh.seat.mesh-delivery.event.heads-replaced",
"given": {
"group": "feat/47-G",
"heads": "0123456789ab",
"repository": "novox/mesh-sdk",
"number": 178,
"head": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"at": "2026-11-09T20:05:00Z"
}
},
{
"name": "heads-replaced is said for a closed pull request",
"of": "event:heads-replaced",
"subject": "mesh.seat.mesh-delivery.event.heads-replaced",
"given": {
"group": "feat/47-G",
"heads": "0123456789ab",
"repository": "novox/mesh-sdk",
"number": 178,
"closed": true
}
},
{
"name": "record-opened is said",
"of": "event:record-opened",
"subject": "mesh.seat.mesh-delivery.event.record-opened",
"given": {
"record": "47-G",
"milestone": "47/G",
"at": "2026-11-09T18:00:00Z"
}
},
{
"name": "record-ended is said",
"of": "event:record-ended",
"subject": "mesh.seat.mesh-delivery.event.record-ended",
"given": {
"record": "47-G",
"milestone": "47/G",
"away": [
{
"node": "laptop",
"since": "2026-11-09T18:00:00Z"
}
],
"at": "2026-11-09T21:00:00Z"
}
},
{
"name": "filling is said",
"of": "event:filling",
"subject": "mesh.seat.mesh-delivery.event.filling",
"given": {
"store": "records",
"bytes": 650000000,
"cap": 805306368
}
},
{
"name": "full is said",
"of": "event:full",
"subject": "mesh.seat.mesh-delivery.event.full",
"given": {
"store": "records",
"bytes": 805306368,
"cap": 805306368,
"refused": "the next record"
}
},
{
"name": "room is said",
"of": "event:room",
"subject": "mesh.seat.mesh-delivery.event.room",
"given": {
"store": "records",
"bytes": 400000000,
"cap": 805306368
}
},
{
"name": "main moved to its next source revision",
"of": "event:source-moved",
"subject": "mesh.seat.mesh-delivery.event.source-moved.main",
"given": {
"v": 1,
"branch": "main",
"revision": 3590,
"at": "2026-11-10T10:00:00Z"
}
},
{
"name": "a recovery merged",
"of": "event:recovery-merged",
"subject": "mesh.seat.mesh-delivery.event.recovery-merged",
"given": {
"v": 1,
"repository": "novox/mesh-sdk",
"commit": "0123456789abcdef0123456789abcdef01234567",
"why": "the live delivery was broken",
"by": "jochen",
"at": "2026-11-11T10:00:00Z"
}
}
]
@@ -1,7 +1,7 @@
[
{
"name": "the source revision",
"of": "state:source/main",
"of": "state:source/<branch>",
"given": {
"v": 1,
"group": "feat/registry",
@@ -27,24 +27,6 @@
]
}
},
{
"name": "an ask",
"of": "state:asks/merge.<group>.<heads>",
"given": {
"v": 1,
"group": "feat/registry",
"heads": [
{
"repository": "novox/mesh-sdk",
"number": 1,
"head": "cccccccccccccccccccccccccccccccccccccccc"
}
],
"ask": {
"headline": "merge"
}
}
},
{
"name": "an act owed",
"of": "state:owed/<repository>.<number>.<head>.<act>",
@@ -52,21 +34,5 @@
"v": 1,
"act": "view"
}
},
{
"name": "a turn",
"of": "state:turns/<repository>",
"given": {
"v": 1,
"repository": "novox/mesh-sdk",
"waiting": [
{
"group": "feat/registry",
"heads": "0123456789ab",
"approved": "2026-11-05T10:00:00Z",
"since": "2026-11-05T10:01:00Z"
}
]
}
}
]
@@ -0,0 +1,117 @@
[
{
"name": "groups asks for one group",
"of": "verb:groups.input",
"given": {
"group": "feat/47-G"
}
},
{
"name": "groups answers a group with its members and acts",
"of": "verb:groups.answer",
"given": {
"groups": [
{
"id": "feat/47-G",
"state": "merging",
"why": "novox/mesh-sdk#178 merges first",
"check": "pass",
"members": [
{
"id": "novox/mesh-sdk#178",
"repository": "novox/mesh-sdk",
"number": 178,
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"base": "main",
"state": "merging",
"open": true
}
],
"acts": [
{
"owed": {
"id": "merge.feat=47-G.0123456789ab.novox/mesh-sdk#178",
"act": "merge",
"repository": "novox/mesh-sdk",
"number": 178,
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"group": "feat/47-G",
"ask": "merge.feat=47-G.0123456789ab",
"said": "2026-11-09T20:00:00Z"
},
"outcome": "performed",
"at": "2026-11-09T20:01:00Z"
},
{
"owed": {
"id": "status.novox/mesh-sdk#178.aaaaaaaaaaaa.mesh/merge-gate",
"act": "status",
"repository": "novox/mesh-sdk",
"number": 178,
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"context": "mesh/merge-gate",
"state": "pending",
"description": "waits for the operator's Approve",
"target": "https://forge.test/x"
}
}
]
}
]
}
},
{
"name": "groups answers a group it does not know with no groups",
"of": "verb:groups.answer",
"given": {}
},
{
"name": "source is asked with nothing",
"of": "verb:source.input",
"given": {
"branch": "main"
}
},
{
"name": "source answers each repository's trunk and head",
"of": "verb:source.answer",
"given": {
"group": "feat/47-G",
"revision": 42,
"repositories": [
{
"repository": "novox/mesh-sdk",
"trunk": "main",
"head": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
],
"branch": "main"
}
},
{
"name": "source answers an error when it cannot be read",
"of": "verb:source.answer",
"given": {
"error": "source.main is not readable"
}
},
{
"name": "recovery names a merge and why",
"of": "verb:recovery.input",
"given": {
"repository": "novox/mesh-sdk",
"commit": "0123456789abcdef0123456789abcdef01234567",
"why": "the live delivery was broken"
}
},
{
"name": "recovery answers the caller the runtime proved",
"of": "verb:recovery.answer",
"given": {
"repository": "novox/mesh-sdk",
"commit": "0123456789abcdef0123456789abcdef01234567",
"recovery": true,
"by": "jochen"
}
}
]
File diff suppressed because it is too large Load Diff