Skip to content

ci: observe nightly coordinator against complete run pairs - #2791

Merged
Chris0Jeky merged 66 commits into
mainfrom
issue-2334/nightly-coordinator-integration
Sep 9, 2026
Merged

ci: observe nightly coordinator against complete run pairs#2791
Chris0Jeky merged 66 commits into
mainfrom
issue-2334/nightly-coordinator-integration

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

CI Nightly now records the existing Smart CI coordinator's plan beside the full unconditional nightly jobs. The observer accepts a baseline only when authenticated Actions metadata proves that CI Nightly and Nightly Quality Signals both completed successfully on the same main head, every canonical real job completed successfully on the latest attempt, and the prior plan receipt matches that run's head and Git tree.

This is the CI10-2 observation vertical. It does not add job-level selection: both schedules and all twelve deep suites remain unconditional while the one-week observation evidence accumulates.

Implementation

  • add a bounded, fail-closed hosted adapter for run/job/artifact/commit metadata
  • pin the 13 CI Nightly and 3 Nightly Quality real job names to their twelve suite identities; reject missing, skipped, duplicate, unexpected, wrong-attempt, or wrong-head evidence
  • download only the one expected <=1 MiB plan artifact, read only its exact JSON receipt, and bind it to the authenticated run and commit metadata
  • cross-check the baseline ancestry/tree and current diff before materializing complete: true; the plan itself never grants completion
  • upload the current head/tree-bound plan receipt with 14-day retention
  • require explicit-offset/Z clocks and include container evidence for frontend changes in the observed plan

Verification

  • node --test scripts/ci/smart-ci/*.test.mjs — 144 passed
  • $env:BASH_BIN = 'C:\Program Files\Git\bin\bash.exe'; node --test --test-name-pattern='pins|bootstrap boundary|checksum verifier' scripts/ci/actionlint-bootstrap.test.mjs — 5 passed
  • node scripts/ci/smart-ci/action-pins.mjs --check — 156/156 external references SHA-pinned, 0 unpinned
  • node --check scripts/ci/smart-ci/nightly-baseline.mjs
  • node --check scripts/ci/smart-ci/nightly-coordinator.mjs
  • git diff --check origin/main...HEAD

The R4 proving gate remains the hosted run on this exact PR head. Local Actionlint was unavailable; the repository's static bootstrap contract passed and hosted CI must prove the workflow syntax.

Docs and follow-ups

Canonical STATUS / MASTERPLAN / TESTING updates remain coordinator-owned after this observer is accepted. The quiet-night receipt, one-week observation, later selective gate, weekly full sweep, release qualification, and clean-tag proof remain open under #2334. Mutation scheduling, release workflows, repository settings, and runners are unchanged.

Refs #2334

Coordinator record: docs and the open maintainer-review checkpoint are included at 02df894. ADR-0066 requires maintainer review for this new control-plane PR after independent review and exact-head hosted qualification. Full #2334 acceptance remains open.

dependabot Bot and others added 7 commits September 7, 2026 11:10
Bumps Sentry.AspNetCore from 6.9.0 to 6.10.0
Bumps Testcontainers.PostgreSql from 4.14.0 to 4.15.0

---
updated-dependencies:
- dependency-name: Sentry.AspNetCore
  dependency-version: 6.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-minor-patch
- dependency-name: Testcontainers.PostgreSql
  dependency-version: 4.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…y' into issue-1968/review-readonly-shortcuts
…y' into issue-1968/review-readonly-shortcuts
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-09T09:36:19.999655Z d9bce98 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1493089ceb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ci/smart-ci/nightly-baseline.mjs
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Independent HIGH-severity review at 02df894: no confirmed HIGH or CRITICAL findings. Confirmed: the observer remains non-gating; all 12 deep suites and both schedules remain unconditional. Baseline acceptance binds same-repository/main successful Nightly and Quality runs, full required job sets at the latest attempt, run/head/tree, a bounded exact JSON artifact, ancestry, and changed-file evidence; unavailable or inconsistent data produces a full-sweep receipt. The connector P2 is real and belongs on #2334: after more than 200 successful runs per workflow, bounded pagination refuses partial history and permanently chooses full sweep. This cannot create false qualification or suppress execution in this observation-only PR, so it is non-blocking and needs no new issue. Focused exact-head checks passed: node --test scripts/ci/smart-ci/nightly-baseline.test.mjs scripts/ci/smart-ci/nightly-coordinator.test.mjs (35/35); node scripts/ci/smart-ci/action-pins.mjs --check (156/156 pinned). Hosted exact-head CI and required maintainer control-plane review remain pending.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Refreshed against main 7ac99a7 as d9bce98. The only conflict was OUTSTANDING_TASKS.md: preserved both independent unresolved maintainer-review disclosures, with distinct J.1/J.2 headings. Nightly baseline/coordinator tests: 35 passed; docs links (670 files), governance and diff checks passed. Fresh base-interaction review and hosted CI are running. The explicit maintainer review gate remains open.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Fresh Terra base-interaction review completed against main 7ac99a7: no CRITICAL/HIGH blocker. Each current head was materialized and its merge tree reconciled cleanly. Original source/fix reviews remain applicable. For the control seams, control-trust tests passed 4/4 (#2792), nightly tests passed 35/35 with docs checks (#2791). Fresh current-head hosted CI remains required; this comment does not waive the maintainer-review gate on control paths.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d9bce980c0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

]);
const loadJobs = async (run) => paginate(
requestJson,
`/repos/${encodedRepo}/actions/runs/${run.id}/jobs?filter=latest`,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Retain failed attempts before qualifying the baseline

When a scheduled run fails and then succeeds after a full rerun, the successful run listing includes it, but filter=latest returns only jobs from the newest execution. selectQualifiedPair can consequently emit a complete: true baseline without retaining or classifying the original failure, allowing the flake to disappear from observation evidence and later selective-nightly decisions. This violates the repository invariant that reruns must not silently turn failed required runs green (docs/ci/SMART_CI.md:32,146-149); inspect all attempts and preserve/classify earlier failures before advancing the marker.

Useful? React with 👍 / 👎.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Maintainer ruling received in-session on 2026-09-09: "Delegate this four-PR batch; review afterward" for #2769, #2803, #2791 and #2792. The coordinator may perform final review and merge after fresh hosted CI, with maintainer review afterward. These source heads are preserved in integration PR #2815 so the complete combined tree receives one final exact-head qualification. Separate historical disclosures, repository settings and release decisions are not acknowledged or authorized by this ruling.

@Chris0Jeky
Chris0Jeky merged commit 17481cd into main Sep 9, 2026
35 checks passed
@Chris0Jeky
Chris0Jeky deleted the issue-2334/nightly-coordinator-integration branch September 9, 2026 10:57
@github-project-automation github-project-automation Bot moved this from Review to Done in Taskdeck Execution Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant