BL12 / G-16 §588: the builder publishes reserved versions again, on an event by stream sequence and by builder_publish_again

The reservation keeps the fingerprint of the catalog entry it was made from (versions.Source, A-76). The state sections
publish-queue (max-mib 4) and acted (max-mib 1); a consumer acting once per message of the node-engine seat's running and
manifest-reads-changed (why returned) by its stream sequence, the running of every subject read at the start with
lastPerSubject; one queue per holder sent one at a time as the registry seat's publish with the digest and no parts, the
seat and the package name read from the entry (A-73, A-76); builder_publish_queue and the new builder_publish_again, a
hand act. The old form goes: build.NewPublishAgain / ModePublishAgain, versions.Acts.PublishAgain and the
Again* decision, and the integration step that refused it.

Builds: design 47 G §588, §369, §695, A-73, A-76 (G-16, G-18, G-20)

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
This commit is contained in:
2026-11-11 23:12:32 +01:00
parent 60b1479e8a
commit 5b6175714b
19 changed files with 1274 additions and 239 deletions
+27 -2
View File
@@ -22,6 +22,7 @@
"builder_floor_waits",
"builder_old_form",
"builder_publish_again",
"builder_publish_queue",
"builder_reserved",
"builder_release",
"builder_reserved_drop",
@@ -82,6 +83,7 @@
"seat:go-package-registry.remove",
"seat:go-package-registry.versions",
"seat:mesh-artifact-sweep.held",
"seat:mesh-catalog.entry",
"seat:mesh-catalog.versions",
"seat:mesh-hand-acts.hand-act",
"seat:mesh-watchdogs.presence",
@@ -97,7 +99,11 @@
"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_packages",
"seat:container-image-registry.publish",
"seat:go-package-registry.publish",
"seat:npm-package-registry.publish",
"seat:oci-artifact-registry.publish"
],
"state": [
{ "name": "builds", "history": 5 },
@@ -112,6 +118,8 @@
{ "name": "toolchains-heard", "history": 1 },
{ "name": "waits", "history": 1, "max-mib": 4 },
{ "name": "reserved", "history": 1 },
{ "name": "publish-queue", "history": 1, "max-mib": 4 },
{ "name": "acted", "history": 1, "max-mib": 1 },
{ "name": "reasks", "history": 1 },
{ "name": "versions", "history": 1 },
{ "name": "first-views", "history": 1 }
@@ -128,6 +136,14 @@
"maximum": 10080,
"trusted": false,
"default": 60
},
"republish-max-versions": {
"type": "number",
"description": "the most versions one event of a registry holder queues to publish again, newest first (design 47 G section 588); the rest wait for the next event or builder_publish_again.",
"minimum": 1,
"maximum": 10000,
"trusted": false,
"default": 50
}
},
"logs": [
@@ -173,6 +189,14 @@
"mode": "0600",
"content": "${config:toolchain-wait-minutes}"
},
{
"id": "republish-max",
"type": "file",
"path": "${dir:state}/republish-max-versions",
"owner": "mesh-delivery-builder",
"mode": "0600",
"content": "${config:republish-max-versions}"
},
{
"id": "builder",
"type": "process",
@@ -183,7 +207,8 @@
],
"env": {
"MESH_BROKER_FILE": "${dir:state}/broker",
"MESH_BUILDER_TOOLCHAIN_WAIT_FILE": "${dir:state}/toolchain-wait-minutes"
"MESH_BUILDER_TOOLCHAIN_WAIT_FILE": "${dir:state}/toolchain-wait-minutes",
"MESH_BUILDER_REPUBLISH_MAX_FILE": "${dir:state}/republish-max-versions"
},
"user": "mesh-delivery-builder",
"health": {