Skip to content

Select pytest cases consistently across generation and repair - #52

Merged
Jacob-Met merged 4 commits into
mainfrom
estate/a3425ebf9874-pytest-selection
Oct 8, 2026
Merged

Jacob-Met merged 4 commits into
mainfrom
estate/a3425ebf9874-pytest-selection

Conversation

@Jacob-Met

Copy link
Copy Markdown
Owner

A generation run can now use native pytest keyword and marker expressions consistently: run --pytest-k EXPR --pytest-m EXPR, or TestPilot(..., pytest_k=..., pytest_m=...). The same literal selection reaches the baseline, generated tests and every repair. A selected generated case must actually pass; selected existing passes or entirely deselected generated tests remain no_tests.

JSON, Markdown and HTML retain the literal execution scope and state that unselected tests were not verified. Model prompts receive the same context. Default behavior is unchanged, and saved-test recheck keeps its existing unfiltered configured-suite execution. A native usage refusal stops before model calls; its actual baseline coverage remains diagnostic data without inventing a before/after comparison.

Closes #46.

Validation and provenance:

  • Thirteen focused native producer cases and thirteen independently frozen consumer groups passed on the first candidate. The independent consumers include an unfiltered recheck that exposes two deliberately excluded failures and exact report downloads.
  • A real coverage-enabled refusal exposed a first-candidate reporting defect. A one-line correction omits the nonexistent comparison while retaining native coverage. An independently frozen before/after addendum confirms exactly one pytest session, exit 4, zero model calls, retained 100% native coverage and no comparison on the final source. The original failing addendum is retained.
  • Three bounded CLI controls passed on the current-parent composition, preserving the merged strict-diff and finite-timeout admission.
  • The first candidate's broad native run records 407 passed, 25 subtests passed and one failure in an unchanged 0.4-second helper-start precondition. The original unmodified baseline separately records its one-second startup-precondition failure and a passing isolated control. No broad native pass or retry is claimed; ordinary hosted CI gates the actual final combined source.
  • Current source preserves all 1,422 unrelated inherited leaves. Six owned paths are changed, and the original candidate remains reachable as source ancestry. Sandbox, generated collector, recheck, model transport, dependencies and workflows are unchanged.

The source-specific receipts, original failures, exact native/public bindings and independent review are retained under docs/receiving/pytest-selection-a3425ebf9874/.

Add keyword and marker expressions to the run CLI/API, preserve generated-case admission, and record literal execution scope in prompts and reports. Recheck retains its existing configured-suite behavior.

Source qualification: native first candidate 1cb5b358; 13 producer cases and 13 independently frozen consumer groups pass. Full native-suite outcome and ordinary CI remain separate gates.
Preserve current malformed-diff and finite-timeout admission. Keep one refused baseline's measured coverage as native diagnostics without inventing a before/after comparison, and add a real coverage regression.

The second parent retains the original source-bound candidate. Native current composition c97c0be3 and exact current-parent tree reconstruction are independently retained; source-specific receiving outcomes remain separate.

@Jacob-Met Jacob-Met left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Independent receiving ACCEPT, anchored to 42a8c9396ca14fcfbb8a1dbadbdab51e49bbf103.

I independently authored and froze the native consumer controls before candidate review. The original baseline retains its missing-selector failure. The first candidate 1cb5b358 passed all 13 consumer groups across 26 actual pytest sessions, including baseline/generation/repair selection, selected-generated admission, literal/empty/default behavior, exact report downloads, API prompt context and an unfiltered recheck that exposes two deliberately excluded failures. Those original groups explicitly disabled coverage.

The separately frozen real-coverage addendum preserves the first candidate's FAIL and the current native c97c0be3 PASS: exactly one pytest session, native exit 4, zero model calls or generated work, actual 100% final coverage retained, and no invented before/after comparison. Original/current receipts are c33396a1f68821e3e4e559d28c32d92c167eb44cd25745d6f2c550d63e5dd35d and 7a6bb89b437e2e0602c78aed04e54f673dc55897ef3f21e2f69d54712aa0c0ee. The original 13 groups are not relabeled as executions on the corrected source.

I read the complete original six-file diff and correction, verified all 94 original and 96 current native pins, and proved that reversing only the owned selector additions exactly recreates the whole current-parent CLI and README. Incoming timeout/diff admission remains exact. The loop differs from the original candidate by only the one-argument coverage correction; HTML, selection guide, sandbox and recheck retain their reviewed bytes.

Public binding is independently checked: actual source d9fdf111 has parents 513f1745 and original b16b27d; its tree contains only the six owned source changes while preserving all 1,422 unrelated inherited leaves. Actual bytes of all six published files match the current native SHA-256/Git pins. This final evidence-only commit preserves all 1,428 source leaves and adds eight inert evidence files, for tree e1cfc73b375bd74417c24cc5f2ccfc2ca810ad3e with 1,436 leaves.

My published review, manifest and custody receipt reproduce the original exact bytes. The peer archive Git blob 0c7c7f98007721d8bdff7488442fbb788e864450 binds the original 261 files unchanged plus the four review files and manifest; every archived member was read back without extraction when sealed. Deliberately failing fixture Python files remain inside the inert archive. Full disposition: independent/REVIEW.md.

I also read the actual hosted job steps and raw log: checkout 20c4654e9e1f7e8004135751b8ef6d721e9e50e6, independently verified parents 513f1745 + 42a8c939 and exact tree e1cfc73b; 467 passed and 25 subtests passed in 126.34 seconds, all steps successful. The earlier full native startup-precondition failures remain preserved as failures.

No remaining source finding blocks normal expected-head integration. No live model/provider or real customer-repository claim is made.

Compose the independently received selector source and eight exact evidence files with main's accepted cancellation handler. All fourteen selector contribution blobs and all 1,473 unrelated current-main leaves remain unchanged. Original source-specific native and hosted receipts retain their original commit bindings; ordinary synchronization CI qualifies this combined tree.

@Jacob-Met Jacob-Met left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Composition-only independent ACCEPT, anchored to 7bea3ed293fd06adfe84ac1fb26c9cd9c0a8b5d6, supplementing review 5462122062.

I independently read the actual current parent 6c1c4973 and successor Git objects and compared the complete trees. All 14 contribution source/evidence leaves are identical to the previously accepted 42a8c939. All 52 incoming cancellation paths exactly preserve current main. The combined tree 79585c12cf0dcd2be477ffdb95312412b0eaab3f has 1,487 leaves, including all 1,473 unrelated current-parent leaves unchanged. The original controls, failures, coverage correction, archives and prior acceptance remain intact.

The new ordinary CI job completed successfully. I read its raw log and all step results: checkout c345b3a8ef096ffbdc7ba4f7fe0aaf600bff084c, with independently verified parents 6c1c4973 + 7bea3ed2 and exactly the combined tree above; 471 passed and 25 subtests passed in 116.76 seconds. No new native rerun or retrospective relabeling of earlier results is claimed.

No remaining composition finding blocks normal expected-head integration at this commit.

@Jacob-Met
Jacob-Met merged commit e114902 into main Oct 8, 2026
1 check passed

Copy link
Copy Markdown
Owner Author

Merged and read back as e114902, with actual parents 6c1c4973 + 7bea3ed2 and exact qualified tree 79585c12cf0dcd2be477ffdb95312412b0eaab3f. Issue #46 is closed/completed. All six selector source files and all eight source-specific evidence files retain their qualified bytes; all 1,473 unrelated current-parent leaves, including the accepted cancellation change, are preserved.

The actual final ordinary CI job checked out synthetic merge c345b3a8ef096ffbdc7ba4f7fe0aaf600bff084c, whose complete tree equals the actual merge: 471 tests and 25 subtests passed. Both independent receiving and the current-parent composition are accepted in review 5462122062 and review 5462213485.

The original missing-selector witness, both native full-suite startup-precondition failures, the first-candidate coverage-comparison defect and its exact correction remain preserved in the receiving packet. No earlier result is relabeled as execution on a later source.

Final native integration custody: /srv/hamon-estate/receivers/estate-a3425ebf9874-testpilot-pytest-selection/receiving/integration-e114902b.json, 15,829 bytes, SHA-256 33d15938caf3163f03f482935d2363726135e46881ccd84c56686463f7abce90. The external source scope is released.

@Jacob-Met
Jacob-Met deleted the estate/a3425ebf9874-pytest-selection branch October 17, 2026 03:07
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.

Select native pytest keyword and marker scopes throughout generation and repair

1 participant