feat(ci): synchronize pending plugins, sanitize exclude reason, and harden auto-bump workflow
Merged
TO
23m ago+826+826+012345678901234567890123456789-68-68-01234567890123456789
Summary
Hardens the backend tooling and workflows for automated upstream plugin bumps based on findings from PR #121:
-
**Synchronize ## Pending first build\ in \README.md**:
- \scripts/sync_docs.py\ now synchronizes both ## Currently active\ and ## Pending first build\ sections.
- Extracts existing annotations (e.g. _(workspace member crate...)\ or _(fork...)) and preserves them across syncs.
- Automatically detects when a plugin is bumped from active with cleared \erified_with\ and adds _(bumped from <old_version>)_.
- Updates tag and version when pending plugins are bumped.
-
**Validate Pending Plugins in \check_repo_consistency.py**:
- Enforces that all unverified active plugins in \manifest.json\ are present in ## Pending first build\ with exact matching repo, tag/commit, and version.
- Prevents review warnings and documentation drift.
-
**Sanitize Stale CI Citations in \xclude_reason**:
- \scripts/bump_manifest_from_upstream.py\ now automatically strips stale historical build run assertions (e.g. ; the remaining 3 targets are green on build run 30604641151) when bumping a plugin.
-
**Harden \daily-upstream-check.yml**:
- Adds a polling loop to wait for checks to report on the PR before executing \gh pr checks --watch, eliminating the premature
o checks reported\ abort. - Adds detailed error diagnostics if automated merge fails.
- Adds a polling loop to wait for checks to report on the PR before executing \gh pr checks --watch, eliminating the premature
-
Unit Tests:
- Added unit test coverage for _sanitize_exclude_reason_on_bump, \check_readme_pending, and \sync_readme\ pending synchronization.
Summary by cubic
Hardens the automated upstream plugin bump pipeline so pending plugins stay synchronized, stale CI assertions are stripped from excluded-reason text, and the workflow no longer aborts prematurely or leaves dangling PRs.
README Sync & Validation
sync_docs.pynow updates both "Currently active" and "Pending first build" README sections, preserving annotations like_(bumped from X)_and_(fork: ...)_and auto-adding them when a plugin is re-bumped.check_repo_consistency.pynow validates that every unverified manifest entry appears in the pending section with matching repo, tag/commit, and version.
Bump Pipeline Hardening
- Bumps now strip stale "green on build run N" assertions from
exclude_reasonand drop the field entirely when nothing remains. daily-upstream-check.ymlpolls until required checks report before watching, arms auto-merge only after checks pass, retries the merge up to three times, and on any failure prints PR status details and closes the PR instead of exiting silently.
Summary by CodeRabbit
-
Documentation
- Updated the “Pending first build” list with additional plugins and newer versions. Pending entries now retain relevant notes when the README is refreshed.
-
Bug Fixes
- Removed stale build-verification text from exclusion reasons when manifest entries are updated.
- Upstream pull requests now wait for required checks, retry merge attempts, and dispatch builds only after a confirmed merge. Failed or cancelled runs also attempt to close open pull requests and report unresolved failures.