gitea announces from the forge's events, not a poll: an edited base and a close are announced at once, one pass at start (issue 1422) #539

Merged
mesh-tools merged 1 commits from fix/1422-gitea-events into main 2026-10-28 11:16:46 +00:00
Member

The operator (2026-10-28): "quick-fix the polling of gitea". The module heard every webhook and published it on the bus, but its announcer acted only on opened/synchronized/reopened/merged; a retarget (edited) and a close waited for a poll every 5 min (30 s when events were not heard) and a 10-minute sweep. Issue 1422 notes 10-12.

  • actOn announces a pull request on forge.pull-request.edited (the @base key makes a retarget new) and a close without merge on forge.pull-request.closed (announceClosed, shared with the start pass).
  • The periodic poll and the sweep are gone; one serialised pass runs at start and once the receiver listens (a failed pass retried after 60 s); a failed event handler asks one catch-up pass 30 s later.
  • Pace keeps the loud 'events stop' detection; gitea_events says no timer asks the forge.

Quick vs thorough: quick, chosen as asked. Thorough (issue 1956): a heartbeat of the event path itself, so a forge whose webhooks stop is noticed without a poll; and the two timers left here (pollRepos 60 s, the main-rules keeper 10 min).
Tests: npm test 225/225; go vet and go test in modules/gitea. New rows in test/watch.test.ts (an edited event announces without a poll; no timer polls after start; a close is announced by its event; a start pass announces an unannounced head).

Reviewed-by: rev-gitea-events@shanks at 470687ea4c

The operator (2026-10-28): "quick-fix the polling of gitea". The module heard every webhook and published it on the bus, but its announcer acted only on opened/synchronized/reopened/merged; a retarget (edited) and a close waited for a poll every 5 min (30 s when events were not heard) and a 10-minute sweep. Issue 1422 notes 10-12. - actOn announces a pull request on forge.pull-request.edited (the @base key makes a retarget new) and a close without merge on forge.pull-request.closed (announceClosed, shared with the start pass). - The periodic poll and the sweep are gone; one serialised pass runs at start and once the receiver listens (a failed pass retried after 60 s); a failed event handler asks one catch-up pass 30 s later. - Pace keeps the loud 'events stop' detection; gitea_events says no timer asks the forge. Quick vs thorough: quick, chosen as asked. Thorough (issue 1956): a heartbeat of the event path itself, so a forge whose webhooks stop is noticed without a poll; and the two timers left here (pollRepos 60 s, the main-rules keeper 10 min). Tests: npm test 225/225; go vet and go test in modules/gitea. New rows in test/watch.test.ts (an edited event announces without a poll; no timer polls after start; a close is announced by its event; a start pass announces an unannounced head). Reviewed-by: rev-gitea-events@shanks at 470687ea4ccec7647ae921f63031355c9260bdf0
mesh-tools added 1 commit 2026-10-28 11:07:41 +00:00
Gitea announces from the forge's events and one pass at the start, not by polling (issue 1422)
mesh/delivery merged: source.main moved to novox/mesh-catalog@774fcdfa93ad
mesh/check being carried to 470687ea4cce on 774fcdfa93ad | from 2a03c106f4b9
470687ea4c
An edited pull request is announced into its new base at once; a close without a merge is announced by its event; the 30 s/5 min polls and the 10 min sweep are gone.
Author
Member

Delivery novox/mesh-catalog@470687ea4cce — merged since 2026-10-28T11:16:47Z

Source — source.main moved to novox/mesh-catalog@774fcdfa93. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-10-28 11:07 (new) → proposed (announced): novox/mesh-catalog#539's head announced
  • 2026-10-28 11:07 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-10-28 11:16 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@470687ea4cce` — **merged** since 2026-10-28T11:16:47Z **Source** — source.main moved to novox/mesh-catalog@774fcdfa93ad. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-10-28 11:07 (new) → proposed (announced): novox/mesh-catalog#539's head announced - 2026-10-28 11:07 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-10-28 11:16 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 774fcdfa93 into main 2026-10-28 11:16:46 +00:00
mesh-tools deleted branch fix/1422-gitea-events 2026-10-28 11:16:46 +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#539