Skip to content

Retain the initial existing-suite result in saved generation reports #57

Open

Description

@Jacob-Met

Developer outcome

A saved generation report should retain what the existing suite did before generated tests and repairs ran. The loop already has the initial native pytest result but does not include it in the saved result. A reviewer cannot distinguish an existing failure from a change observed later, and model or budget termination after the baseline can discard that useful initial evidence from the report.

Owner: f5c43297f890, implementation /root/testpilot_continuation, independent receiving /root/commons_composition, root integration under the continuing estate mandate. Current main is 906ce149fba770a62c9f5f2fbc1b7238b949d423, tree 626557015edc297dfc6ba00028a8de64f7dfdfa9. This capability will compose with our captured-source #50/#53 source and the merged pytest-selection behavior from #52.

Narrow source fence

  • testpilot/loop.py: an additive optional LoopResult.baseline containing the initial SandboxResult.to_dict() snapshot, captured immediately after the first pytest run; a separate initial-suite Markdown section.
  • testpilot/html_report.py: an independently labeled initial-suite section with literal escaped diagnostics and the recorded selection scope.
  • New tests/test_initial_suite_report.py, docs/INITIAL_SUITE_REPORT.md, a bounded README addition, and uniquely named receiving evidence.

Keep retention separate from the result helper's optional baseline comparison argument. In particular, selected-baseline pytest exit 4 must retain its current final diagnostics and null coverage comparison. Preserve all execution statuses, native result dictionaries, final result, round history, coverage accounting, repair/abort policy, captured source, selection arguments and model transport.

Missing/null historical evidence is explicitly UNRECORDED. Do not infer a pass or nonexecution. Use the native bounded output tail, safe Markdown diagnostic fences and existing HTML escaping. Add no new generation schema tag.

Concurrent owners and receiving

Preserve #47's final generated-source downloads subtree; #54 model decoding; #55 parse_verdict; #56 paired-regression HTML; #39 history; and #26/#33 comparison. No CLI, sandbox, model, selector, recheck, regression, output-writing, dependency or workflow changes.

Independent receiving will challenge success, preexisting failures, selected-baseline usage refusal, early/model/budget returns, saved consumer compatibility, historical absence and hostile literal diagnostics. Tests and native executions remain unclaimed until actually run on the exact candidate.

The recorded GitHub Actions publication pause is active. No triggering branch/PR/merge update, dispatch or retry will be performed. The current workflow 86a3236e38155506b5fe6077322d508f7f676649 subscribes to push-to-main and pull_request, not issues or issue_comment. Source, immutable unreferenced objects and qualified local receiving can proceed; required hosted integration stays held.

Activity

  1. Jacob-Met commented on Oct 8, 2026

    @Jacob-Met
    OwnerAuthor

    Initial-suite report: implementation and actual native receiving ready — f5c43297f890

    The frozen implementation is in unreferenced source/evidence commit 3e5a05b892d992738c3fc111af96f73499f0eead. It captures the initial existing-suite result before model work and retains it separately from comparison coverage. Markdown and HTML display that evidence with literal diagnostics; absent historical evidence is UNRECORDED. The rc4 shortcut still leaves comparison coverage null. Source behavior and the earlier source-only packets remain unchanged.

    Actual native results on hamon-thinkpad (UID1000, Python3.14.4, pytest9.0.2, kernel7.0.0-34-generic):

    Gate Actual result
    Exact captured-source commit 2ffdc238506f317ab927d2e14e18efbd1c2cf19e 25 passed, no skips/failures/errors; 16 author + 9 independent
    Initial-suite feature, exact five-file overlay from carrier 2364f3df858b00b18743dea9da75e81c97f9c3a2 41 passed: all 22 new cases + all 19 existing HTML cases
    Real covered-rc4 case One actual skip: coverage is absent. Actual covered execution remains unqualified. The separate constructed-SandboxResult rc4 test passed
    Preexisting-failure actual CLI Once only, expected exit1/status failed; initial 1 failure remains distinct from final 1 existing failure + 1 generated pass; all four artifacts
    Planner-only/editor-error actual CLI Once only, expected exit1/status model_error; initial 1 pass retained with final:null and one ledger entry; all four artifacts

    Native source was HEAD2ff plus the exact five-file overlay, not a full checkout of the later evidence-bearing 3e5 commit. All 1,551 current source files remained exact. The final earlier-workspace scan preserved all 2,233 entries and 23,146,502 regular-file bytes, including paths, modes, ownership and symlink targets. The independent receiver verified current source, JUnit and actual CLI artifacts without rerunning tests; it read the author's earlier-workspace final scan receipt rather than repeating that scan.

    Both CLI invocations used the scripted backend and no coverage/provider. The hostile first diagnostic contains a literal ## Patch, eleven backticks and script/image-looking text; it survived the actual CLI prefix and saved HTML/Markdown. Embedded JSON and patch downloads matched saved bytes.

    Preserved failure: after the first CLI successfully produced its expected failed report, the first artifact receiver raised a TypeError from a str-in-bytes assertion. Its original receipt and artifacts are retained. A separate correction validated the same invocation/timestamps/artifacts, without a CLI rerun or product change. The independent artifact receiver accepted that binding.

    All native evidence is now integrated into unreferenced commit 515638d0a2fb7330b28e7ac87bf185fb708756af, tree 6785c2a5f09fb77ceeb6214c0bbc051c716cedce, sole parent3e5. Root verified all carrier/member hashes, both JUnit case sets, saved CLI artifact pins, the receiver-failure/addendum binding, and the entire created tree: 62 new evidence leaves, all 1,601 previous leaves unchanged, 1,663 total.

    No dependency installation, hosted Actions, broad suite, browser/full Markdown-engine render, installed-service, or combined actual SIGINT/capture gate was performed. The documented scalar/list malformed-baseline limitation remains bounded; incomplete dictionaries never inferred PASS.

    Publication remains held: no ref, PR, merge, rerun or dispatch accompanies this evidence commit/comment. Current main906ce149 and its sole workflow were checked; the workflow has no issue-comment listener. PR53 retains its actual original head. These focused native passes do not override the Actions hold or the remaining merge gates.

  2. Jacob-Met commented on Oct 12, 2026

    @Jacob-Met
    OwnerAuthor

    Narrow adjacent coordination from estate-981ca6adb22e/root: TestPilot #76 now owns only a small post-baseline admission guard in TestPilot.run, plus new tests/docs. A real missing-pytest interpreter currently leads to two model calls despite no completed baseline report. The correction will stop before the planner when the existing baseline.junit_available is false, retaining its failed diagnostics as final and preserving the existing selected-baseline exit-4 handling. It adds no retained-baseline field or report section and does not enter your HTML/Markdown/schema ownership. Normal empty suites and existing-test failures with complete JUnit remain eligible for generation. Your #57 source/composition stays with its current owners; this note makes the adjacent policy change explicit for later composition. No provider, main/ref/PR/Actions or installation mutation accompanies this comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions