Skip to content

Refresh completed rerun results by ID during existing collections - #20

Merged
zhaozhaozz merged 2 commits into
mainfrom
feature/ci-rerun-updates
Oct 19, 2026
Merged

zhaozhaozz merged 2 commits into
mainfrom
feature/ci-rerun-updates

Conversation

@zhaozhaozz

@zhaozhaozz zhaozhaozz commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

An older workflow run can pass after a rerun while its original creation time stays outside incremental polling. Refresh notified run IDs during the existing collection instead of adding another Actions-history scan or dispatch for each completion.

  • Fetch at most 20 nonsecret rerun hints from the configured bot with the existing collector identity. Prioritize direct run/attempt and necessary report reads before bulk backfill, within the current request, time and artifact budgets.
  • Keep the existing latest-attempt CI projection, report caches and historical attempts. Generate a receipt only after progress and public data are atomically committed; use a fresh OIDC identity to acknowledge the successful subset. Lookup, detail, budget or publication failures and lost acknowledgements leave hints pending.
  • Keep schedules, workflows, debounce, OIDC trust, token permissions and E2E record versions unchanged. An older/unavailable hint endpoint warns and leaves ordinary collection running.

Companion bot: ScienceDiscovery/sciencediscovery_bot#23. The endpoint can be deployed first; unavailable endpoints leave ordinary collection running and pending hints remain at the bot.

Validation at 88b87055a24688a720f3558fd490193de65ec381:

Type Command / scenarios Result
GitHub Actions Dashboard checks on this head PASS, verify in 1m12s
Regression tests PYTHONDONTWRITEBYTECODE=1 TMPDIR="$PWD/.tmp" python3 -m unittest discover -s tests PASS, 165 tests
CLI journey PYTHONDONTWRITEBYTECODE=1 python3 test/journey-rerun-collection.py; out-of-window failed run becomes green with its latest attempt and an atomic publication receipt PASS
Browser regression node .e2e/node_modules/playwright/cli.js test --config test/playwright.config.cjs; all dashboard journeys, including Real E2E marker geometry, carried/missing-score dashed lines and first-measurement boundaries PASS, 27 journeys
CLI recovery Same command; source lookup failure preserves the old conclusion; publication conflict creates no acknowledgement PASS, 3 journeys in total

The journeys run the real collector/publisher process against a local HTTP stand-in and check the Git publication and post-publication receipt. No live collection was triggered.

The existing Real E2E curve journey still expected the pre-October-15 .score-failed marker, a zero before the first measurement and a broken line across missing scores. Main already renders .score-x markers and dashed bridges after the first measured score. Update the regression assertions and documentation to this existing behavior, including marker coordinates, bridge geometry and missing-score explanations; production chart code and fixtures remain unchanged.

@zhaozhaozz
zhaozhaozz merged commit 1804ba1 into main Oct 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant