feat(framework/tools): orchestration CI/dispatch helpers — lane-brief.sh + ci-wait.sh #546

Closed
opened 2026-06-18 18:30:01 +00:00 by jason.woltje · 0 comments
Owner

Two additive orchestration helpers for the framework tool suite, born from forensic analysis of a live U-Connect delivery session (wall-clock-first optimization lane).

lane-brief.sh (git/)

One call returns the CURRENT open issue set for a repo lane (milestone/label) straight from Gitea, classified for dispatch. Defeats the observed failure mode where workers self-report issue state from stale static briefs and report already-CLOSED issues as 'todo', forcing the orchestrator to re-verify each before dispatch. Closed issues are excluded by definition. Partitions open issues by PR-linkage (reliable) rather than assignee/dependency (this fleet leaves those empty in the provider, so 'unassigned' != 'available'). Login resolution: -L > $GITEA_LOGIN > owner inference > detect-platform.sh fallback (the shared default-login resolver is not owner-aware).

ci-wait.sh (woodpecker/)

Blocks until one or more Woodpecker pipelines reach terminal state, wrapping the existing pipeline-status.sh (which resolves repo->id correctly and is instance-aware). Replaces hand-authored while true; curl .../repos/1/pipelines/$n; sleep loops that HARDCODE Woodpecker repo id 1 and re-implement URL building with raw curl. Intended as the COMMAND of a Monitor/event-driven re-invoke (primary) + one long (>=1500s) timed fallback — never a tight <300s poll. Exit: 0=all success, 1=terminal non-success, 2=usage, 3=timeout.

Both tested live against usc/uconnect (lane-brief vs the open board; ci-wait vs pipeline 3943). README updated. No version bump (separate release PR per convention).

Two additive orchestration helpers for the framework tool suite, born from forensic analysis of a live U-Connect delivery session (wall-clock-first optimization lane). ## lane-brief.sh (git/) One call returns the CURRENT open issue set for a repo lane (milestone/label) straight from Gitea, classified for dispatch. Defeats the observed failure mode where workers self-report issue state from stale static briefs and report already-CLOSED issues as 'todo', forcing the orchestrator to re-verify each before dispatch. Closed issues are excluded by definition. Partitions open issues by PR-linkage (reliable) rather than assignee/dependency (this fleet leaves those empty in the provider, so 'unassigned' != 'available'). Login resolution: -L > $GITEA_LOGIN > owner inference > detect-platform.sh fallback (the shared default-login resolver is not owner-aware). ## ci-wait.sh (woodpecker/) Blocks until one or more Woodpecker pipelines reach terminal state, wrapping the existing pipeline-status.sh (which resolves repo->id correctly and is instance-aware). Replaces hand-authored `while true; curl .../repos/1/pipelines/$n; sleep` loops that HARDCODE Woodpecker repo id 1 and re-implement URL building with raw curl. Intended as the COMMAND of a Monitor/event-driven re-invoke (primary) + one long (>=1500s) timed fallback — never a tight <300s poll. Exit: 0=all success, 1=terminal non-success, 2=usage, 3=timeout. Both tested live against usc/uconnect (lane-brief vs the open board; ci-wait vs pipeline 3943). README updated. No version bump (separate release PR per convention).
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#546