Skip to content

feat(ci): publish branchless performance reports - #317

Merged
zoeyrose merged 2 commits into
mainfrom
feat/benchmark-pages
Aug 14, 2026
Merged

feat(ci): publish branchless performance reports#317
zoeyrose merged 2 commits into
mainfrom
feat/benchmark-pages

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Aug 14, 2026

Copy link
Copy Markdown
Member

Summary

  • repair the trusted daily benchmark to run the exact complete client-benchmark matrix and preserve explicit early-failure diagnostics
  • replace generated-branch persistence with a bounded, digest-validated, no-JavaScript Pages site and versioned JSON checkpoint
  • retain detailed points separately from compact trend/state, enforce 90-point, cohort, file, and byte bounds, and physically prune aged files
  • validate the last successful Pages deployment or the recorded final generated-data commit before deterministic projection
  • isolate benchmark/projection, Pages deployment, and alert permissions; remove every report-path contents: write
  • reconcile regression issues idempotently only after a successful deployment
  • document interpretation, bootstrap, rerun/backfill, recovery, provider outage, and post-merge activation

Supports #311. The issue remains the manual post-merge close path because its 30-consecutive-point rollout criterion cannot be satisfied by merging code.

Governance companion: atrinik/github-settings#71

Coordinates

  • Base: main at 1f98d430a03e6d9fbf6f27f4ca1356542d905d08
  • Head: feat/benchmark-pages at aaf359d3aae4c41f2c5d89395b9f4410b1b7a62e
  • Worktree: /workspaces/atrinik/workspace/worktrees/classic/issue-311-benchmark-pages
  • Commits: 2279042 feat(ci): publish branchless performance reports; aaf359d fix(ci): harden performance checkpoint recovery
  • Frozen bootstrap commit: bab40ecefefa5b6052d42eab6390c504b9482e81

Validation

  • python3 -m unittest discover -s tools/tests -p 'test_*.py' — 233 passed
  • python3 -m compileall -q tools/ci tools/tests
  • python3 tools/verify_import_history.py — five imported histories verified
  • actionlint .github/workflows/*.yml
  • exact frozen-data bootstrap rehearsal — generation 1 retained historical run 31755454661 plus a fresh compatible projection
  • git diff --check 1f98d430a03e6d9fbf6f27f4ca1356542d905d08..HEAD

Two complete whole-diff review rounds finished with zero known actionable findings. The focused tests cover byte-stable reconstruction, split projection, manifest/detailed-point/report binding, higher-attempt replacement, watermarks and global pruning, HTML escaping/no JavaScript, tamper and stale-file failure, synthetic alert regression/recovery, partial-operation retry deduplication, ambiguous issue ownership, exact matrix/trust restrictions, pinned Actions, and job permission isolation.

Verification and activation

Gameplay runtime is not applicable: this change owns CI evidence projection and static publication, not client/server behavior. Before merge, use the validation commands above.

After this PR and the governance companion merge, an organization owner follows the governance runbook to switch the exact Classic Pages site to the Actions source. Then dispatch Daily Classic client performance from main once with checkpoint_source=final-benchmark-data, verify the raw/checkpoint artifacts and deployed endpoints, and use checkpoint_source=pages for every later manual run. Do not delete or update benchmark-data; its final commit remains rollback evidence.

The prior site remains live on benchmark, predecessor, projection, validation, or deployment failure. Human rollout evidence—manual bootstrap, scheduled continuity, synthetic live alert transition, and at least 30 compatible daily points—remains tracked on #311 after merge.

@codecov

codecov Bot commented Aug 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 59.72461% with 234 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
tools/ci/daily_performance_site.py 57.64% 139 Missing and 52 partials ⚠️
tools/ci/reconcile_performance_alerts.py 63.15% 25 Missing and 10 partials ⚠️
tools/ci/daily_performance_report.py 77.14% 4 Missing and 4 partials ⚠️

📢 Thoughts on this report? Let us know!

@zoeyrose
zoeyrose marked this pull request as ready for review August 14, 2026 17:40
@zoeyrose

Copy link
Copy Markdown
Member Author

Final whole-diff review is complete at aaf359d3aae4c41f2c5d89395b9f4410b1b7a62e.

  • zero known actionable findings remain after two review/fix rounds
  • all 233 local tooling tests, compile checks, import-history verification, actionlint, and diff checks passed
  • the exact frozen benchmark-data bootstrap rehearsal produced a valid generation-1 site retaining historical run 31755454661 and a fresh point
  • all latest-head required checks passed, including the Classic validation aggregator, native Windows security, CodeQL, and patch coverage
  • rendered PR body, unchanged base, mergeability, comments, and review threads were rechecked; no unresolved threads exist

The Codecov informational comment was reviewed. Its required codecov/patch status is successful, and the new corruption, stale-state, identity, retry, pruning, and legacy-bootstrap boundaries have explicit regression coverage.

This PR is ready to merge. Issue #311 intentionally remains open for its post-merge activation and 30-compatible-point rollout evidence.

@zoeyrose zoeyrose moved this to Review in Atrinik work Aug 14, 2026
@zoeyrose
zoeyrose merged commit de9255a into main Aug 14, 2026
23 checks passed
@zoeyrose
zoeyrose deleted the feat/benchmark-pages branch August 14, 2026 19:19
@github-project-automation github-project-automation Bot moved this from Review to Done in Atrinik work Aug 14, 2026
zoeyrose added a commit to atrinik/github-settings that referenced this pull request Aug 14, 2026
## Summary

- record the provider-managed `atrinik/classic` Pages site and exact
`github-pages` environment as manual desired state
- validate repository/site/source/workflow-marker/environment identity
and fail closed on drift
- permit only the exact legacy `main`-root source while the immutable
deployment marker is absent from the default branch
- require the Actions source as soon as the reviewed Classic workflow
marker lands
- document the read-only preflight, post-merge source switch, bootstrap,
verification, and rollback boundary

Closes #70.
Related to atrinik/classic#311.
Consuming workflow: atrinik/classic#317

## Coordinates

- Base: `main` at `4e24785c734d819af47422c0747cbe35c7251c40`
- Head: `chore/classic-pages-governance` at
`2a358367540be20a1db79efffe1851c1ee9651ba`
- Worktree:
`/workspaces/atrinik/workspace/worktrees/github-settings/issue-70-classic-pages`
- Commits: `a208b71 chore(governance): record Classic Pages settings`;
`2a35836 fix(governance): constrain empty environment secrets`

## Validation

- `bin/validate`
- `tests/validate-manual-environments.sh`
- `tests/verify-manual-settings.sh`
- `bash -n bin/validate bin/verify-manual-settings
tests/validate-manual-environments.sh tests/verify-manual-settings.sh`
- `shellcheck bin/validate bin/verify-manual-settings
tests/validate-manual-environments.sh tests/verify-manual-settings.sh`
- `bin/verify-manual-settings` against live GitHub: expected `PENDING`
legacy Pages source; both environments and other manual settings
converged
- `bin/publish` plan: no unexpected deletion or policy relaxation;
manual settings remain explicitly non-applied
- `git diff --check 4e24785..HEAD`

A fresh complete post-fix review found zero known actionable findings.
The schema regression suite confirms that only the exact `github-pages`
environment may declare an empty secret set.

## Activation boundary

This PR does not mutate live Pages. It may merge before the consuming
Classic PR. After both are merged, an organization owner must follow the
documented runbook to switch only `atrinik/classic` Pages to the Actions
source, run the live verifier, and bootstrap the report from the
recorded final generated-data commit.
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