From d7028f959b826ec431be2bd7de0e68ca50ed5d7a Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 18 Jun 2026 13:30:13 -0500 Subject: [PATCH] =?UTF-8?q?feat(framework/tools):=20orchestration=20helper?= =?UTF-8?q?s=20=E2=80=94=20lane-brief.sh=20+=20ci-wait.sh=20(#546)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two additive orchestration tools distilled from forensic analysis of a live U-Connect delivery session, both adopted by the live orchestrator before this contribution. lane-brief.sh (git/): one call returns the CURRENT open issue set for a repo lane (milestone/label) from Gitea, classified for dispatch. Defeats stale worker self-report (workers brief from static notes and report already-CLOSED issues as "todo"). Closed excluded by definition; partitions by PR-linkage (reliable) not assignee/dependency (empty in this fleet). Login resolution: -L > $GITEA_LOGIN > owner inference > detect-platform.sh fallback. ci-wait.sh (woodpecker/): blocks until pipeline(s) reach terminal state, wrapping pipeline-status.sh (resolves repo->id, instance-aware). Replaces hand-rolled `curl .../repos/1/pipelines/$n` loops that hardcode repo id 1. Intended as a Monitor command + long (>=1500s) timed fallback, not a tight poll. Exit 0=all success / 1=terminal non-success / 2=usage / 3=timeout. Tested live vs usc/uconnect. README updated. No version bump (separate release PR per convention). Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Kt2D8TsnDwhtzEAPijsNmR --- .../mosaic/framework/tools/git/lane-brief.sh | 98 +++++++++++++++++++ .../framework/tools/woodpecker/README.md | 4 + .../framework/tools/woodpecker/ci-wait.sh | 86 ++++++++++++++++ 3 files changed, 188 insertions(+) create mode 100755 packages/mosaic/framework/tools/git/lane-brief.sh create mode 100755 packages/mosaic/framework/tools/woodpecker/ci-wait.sh diff --git a/packages/mosaic/framework/tools/git/lane-brief.sh b/packages/mosaic/framework/tools/git/lane-brief.sh new file mode 100755 index 0000000..167dd98 --- /dev/null +++ b/packages/mosaic/framework/tools/git/lane-brief.sh @@ -0,0 +1,98 @@ +#!/usr/bin/env bash +# +# lane-brief.sh — live dispatch brief for a repo "lane" (milestone/label), straight +# from current Gitea state. Defeats stale worker self-report: workers brief from +# static notes and routinely report issues "todo" that are already CLOSED, forcing +# the orchestrator to re-verify each one before dispatch. This returns the CURRENT +# open set, classified for dispatch, in one call. +# +# Usage: +# lane-brief.sh -r [-m ] [-l