Skip to content

Add isolated quick A/A and A/B performance workflow - #357

Open
DanRod1999 wants to merge 6 commits into
danrod1999-performance-comparison-statisticsfrom
danrod1999-quick-ab-performance-workflow
Open

Add isolated quick A/A and A/B performance workflow#357
DanRod1999 wants to merge 6 commits into
danrod1999-performance-comparison-statisticsfrom
danrod1999-quick-ab-performance-workflow

Conversation

@DanRod1999

Copy link
Copy Markdown
Contributor

Summary

  • add an isolated-process comparison CLI for deterministic fixture preparation, one-arm execution, one-pair orchestration, A/A pool aggregation, and calibrated A/B reporting
  • enforce one warm-up plus three measured executions per arm, median-collapse each arm to one independent pair log-ratio, and discard the whole pair on child failure, timeout, malformed output, semantic mismatch, or identity mismatch
  • load each explicit baseline/candidate transformer build with one arm-local core-backend graph, while keeping fixture preparation and verification outside measured timing
  • add a manual-only GitHub Actions workflow with three independent A/A jobs in AB/BA/AB order and explicit prior-calibration download for A/B
  • publish raw arm samples, pair observations, pool/band JSON, summary JSON, Markdown, refs/SHAs, runtime package hashes, fingerprint identity, order, medians, quality, verdict, and discard reasons

Stack

This is stack layer 4 targeting danrod1999-performance-comparison-statistics, above #356, #354, and #353. It does not modify native stack metadata.

Validation

  • pnpm --dir packages/transformer build:cjs
  • pnpm --dir packages/performance-tests build
  • changed-file ESLint and Prettier checks
  • pnpm --dir packages/performance-tests test:comparison (37 passing, including all layer-3 comparison tests)
  • local reduced-fixture isolated A/A smoke: 8 executions, one valid median-collapsed pair; smoke fingerprint is distinct from calibration

Limitations

The workflow is informational-only and cannot be dispatched until its file reaches the default branch. Calibration intentionally rejects mismatched fixture, workload, execution, package, environment, or hosted-runner image identities; heterogeneous hosted runners may therefore require another calibration dispatch. Only changeset-scanning is supported in this layer, and the explicitly labeled reduced fixture is smoke-only rather than calibration evidence.

generated with GPT-5.6 Sol

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
DanRod1999 and others added 2 commits July 28, 2026 23:36
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
DanRod1999 added a commit that referenced this pull request Jul 29, 2026
## Summary

- migrate the weekly performance regression suite from Mocha to
serialized Vitest execution
- remove performance-tests ownership of Mocha, `@types/mocha`, Chai 4,
and `ts-node`
- preserve the weekly report and authentication contracts

### New test helpers

These helpers are not required by Vitest. They make behavior that was
embedded in the previous Mocha suite explicit and independently
testable:

- `Cleanup.ts` guarantees that every registered teardown task is
attempted, including database closure, report export, `IModelHost`
shutdown, and authorization sign-out. If the operation and cleanup both
fail, it preserves both errors instead of allowing teardown to hide the
primary failure.
- `RegressionTestRegistration.ts` constructs the supported
test-case/transformer-module combinations synchronously before Vitest
registers tests. It skips modules that do not implement the operation
required by a test case, preserving the old conditional Mocha
registration behavior without asynchronous collection callbacks.
- `Cleanup.test.ts` and `RegressionTestRegistration.test.ts` provide
focused, non-credentialed coverage for those behaviors.

This PR targets `main` and is intended as the new bottom layer beneath
the existing quick-performance PRs #353, #354, #356, and #357. It does
not modify those branches or their stack metadata.

## Validation

- `pnpm --dir packages/transformer build`
- `pnpm --dir packages/performance-tests build`
- `pnpm --dir packages/performance-tests lint`
- `CI=true pnpm --dir packages/performance-tests exec vitest run
test/unit/Cleanup.test.ts test/unit/RegressionTestRegistration.test.ts`
(4 tests passed)
- verified the performance-tests manifest and lockfile importer no
longer declare Mocha, `@types/mocha`, Chai 4, or `ts-node`

The credentialed Hub-backed weekly runtime suite was intentionally not
run locally. Hosted weekly Azure validation remains deferred, consistent
with the source migration handoff.

*generated with GPT-5.6 Sol*

---------

Co-authored-by: Nam Le <50554904+hl662@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Daniel Rodriguez <DanRod1999@users.noreply.github.com>
DanRod1999 and others added 3 commits July 29, 2026 17:05
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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