gitea: the checker's owed results are taken at once and written in the background, so the runner keeps the watch and every mesh/check reaches the forge (issue 1726) #468

Merged
jschoubben merged 1 commits from fix/1726-owed-watch-not-blocked into main 2026-10-23 22:35:33 +00:00
Member

Fixes issue 1726 (met a fifth time 2026-10-23 23:47): since novox's tool runner restarted at 23:26, no checker verdict reached the forge, so no Approve ask was raised. The gitea module's CheckStatuses.take awaited a forge write per owed key; with ~200 keys this outlasted the runner's 10 s for a watch's current values, the runner dropped the watch, and every later put was refused ('mesh/state names no watch of this bundle', 1755 lines 23:26-23:49).

  • check.ts: take() returns at once; writes run in the background, at most 4 at a time (WRITES_AT_ONCE), each key's writes in revision order, a refused write still retried.

Tests: modules/gitea/test/check-owed.test.ts — 200 owed values against a forge that does not answer (fails on main, passes here), and at most 4 writes at once. check-owed, bind and checks tests 18/18 locally. 12 other tests of the module could not run locally (the desktop's node_modules lacks the full @novox/mesh-sdk). try-1792792379103577588 still running after 31 min (no verdict), like other tries tonight while issue 1930's fix is undelivered.

Moves gitea (novox). On delivery the watch binds and writes mesh/check for every owed key, which should recover mesh-delivery #29, #30 and mesh-catalog #466 without new heads.

Reviewed-by: review-1726@shanks at 5a7076a6a2
Pushed-by: diag-1726@shanks

Fixes issue 1726 (met a fifth time 2026-10-23 23:47): since novox's tool runner restarted at 23:26, no checker verdict reached the forge, so no Approve ask was raised. The gitea module's `CheckStatuses.take` awaited a forge write per owed key; with ~200 keys this outlasted the runner's 10 s for a watch's current values, the runner dropped the watch, and every later put was refused ('mesh/state names no watch of this bundle', 1755 lines 23:26-23:49). - check.ts: `take()` returns at once; writes run in the background, at most 4 at a time (WRITES_AT_ONCE), each key's writes in revision order, a refused write still retried. Tests: modules/gitea/test/check-owed.test.ts — 200 owed values against a forge that does not answer (fails on main, passes here), and at most 4 writes at once. check-owed, bind and checks tests 18/18 locally. 12 other tests of the module could not run locally (the desktop's node_modules lacks the full @novox/mesh-sdk). try-1792792379103577588 still running after 31 min (no verdict), like other tries tonight while issue 1930's fix is undelivered. Moves gitea (novox). On delivery the watch binds and writes mesh/check for every owed key, which should recover mesh-delivery #29, #30 and mesh-catalog #466 without new heads. Reviewed-by: review-1726@shanks at 5a7076a6a25ec2f19c570fb8dc043b3c4ec8f50b Pushed-by: diag-1726@shanks
mesh-tools added 1 commit 2026-10-23 22:22:51 +00:00
The runtime gives a watch's current values 10 s and waits for each to be taken; a forge write per key made ~200 keys outlast it at every attempt, so after node-tools restarted on novox at 23:25:58 the watch never held and no verdict reached mesh/check. Writes now run in the background, a few at a time, each key's in revision order.
Author
Member

Delivery novox/mesh-catalog@5a7076a6a25e — delivered since 2026-10-23T22:48:37Z

Delivery plan — builds gitea → novox; no bus step

  • tier 0: gitea
  • novox: receives gitea
  • gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves

Machines

  • gitea on every machine running it: sent

Transitions

  • 2026-10-23 22:22 (new) → proposed (announced): novox/mesh-catalog#468's head announced
  • 2026-10-23 22:35 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
  • 2026-10-23 22:35 held → delivering (release): the operator's hand merge at 00:35, which by the operator's word of 2026-10-24 00:24 releases it (build, publish, deliver until the new setup works); reviewed at its head
  • 2026-10-23 22:48 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@5a7076a6a25e` — **delivered** since 2026-10-23T22:48:37Z **Delivery plan** — builds gitea → novox; no bus step - tier 0: gitea - novox: receives gitea - gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves **Machines** - gitea on every machine running it: sent **Transitions** - 2026-10-23 22:22 (new) → proposed (announced): novox/mesh-catalog#468's head announced - 2026-10-23 22:35 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on - 2026-10-23 22:35 held → delivering (release): the operator's hand merge at 00:35, which by the operator's word of 2026-10-24 00:24 releases it (build, publish, deliver until the new setup works); reviewed at its head - 2026-10-23 22:48 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben merged commit f836c021e1 into main 2026-10-23 22:35:33 +00:00
jschoubben deleted branch fix/1726-owed-watch-not-blocked 2026-10-23 22:35:34 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#468