From 93ab250df63fdcc063d33e78812502634d2e985f Mon Sep 17 00:00:00 2001 From: Jacob Metoyer <150724801+Jacob-Met@users.noreply.github.com> Date: Thu, 8 Oct 2026 09:12:25 -0700 Subject: [PATCH 1/2] Add an offline readable result for saved-test rechecks --- README.md | 9 + docs/RECHECK.md | 18 ++ .../recheck-html-ae0a1ea0b247/README.md | 19 ++ .../author-evidence.tar.gz | Bin 0 -> 45455 bytes .../source-publication.json | 123 ++++++++++++ testpilot/recheck.py | 15 +- testpilot/recheck_html.py | 152 +++++++++++++++ tests/test_recheck.py | 2 +- tests/test_recheck_html.py | 184 ++++++++++++++++++ 9 files changed, 519 insertions(+), 3 deletions(-) create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/README.md create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/author-evidence.tar.gz create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json create mode 100644 testpilot/recheck_html.py create mode 100644 tests/test_recheck_html.py diff --git a/README.md b/README.md index 24a6c0f..0a302f3 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,15 @@ all four files: a later replacement error or a process/system failure can leave mixture of old and new files. Concurrent writers are not coordinated. Use a separate output directory when separate runs need independent saved results. +## Inspect a saved-test recheck + +The model-free `testpilot recheck` command also writes **`recheck.html`** beside +its existing JSON and Markdown. Open it directly to inspect the actual current +cases, diagnostics, retained test source, timing and source identity. Its exact +JSON download travels with the file. Missing JUnit stays unavailable, and the +original report's status stays historical. See the [recheck guide](docs/RECHECK.md) +for the command, execution boundaries and output-delivery limits. + ## Running on Nebius Token Factory Token Factory has an OpenAI-compatible API. Its quickstart (, read 2026-10-04) uses: diff --git a/docs/RECHECK.md b/docs/RECHECK.md index b7eff4e..7ac4a71 100644 --- a/docs/RECHECK.md +++ b/docs/RECHECK.md @@ -80,6 +80,24 @@ the source generation report is overwritten. Recheck writes: `test_files`, and `model_calls: 0`. - `recheck.md`: a concise current-result summary with source and retained-file identity. It does not repeat the old model's diagnosis as a new conclusion. +- `recheck.html`: a self-contained reading page with the current result, every + recorded test case and diagnostic, retained source and placement, timing, + selected Python and source-report identity. It needs no server or JavaScript. + +Open `recheck.html` directly and expand the case or source panels with a mouse, +keyboard or touch. **Download exact recheck JSON** retains the sibling JSON +artifact's exact bytes even when the HTML moves elsewhere. The page shows the +old source status separately from the actual current result. Missing JUnit +keeps case counts unavailable; an empty case list is not evidence of success. +The recorded pytest output remains labelled as its last 3,000-character tail. +Opening the page executes no tests, model calls, patch application or requests. + +Paths, test source and diagnostics are literal reading text. HTML-incompatible +controls and isolated surrogates have visible Unicode escapes in that reading +view; the JSON download retains the originals. Expand panels before printing +the source or diagnostics you want. This page adds no historical coverage +comparison, repository commit identity or guarantee against concurrent edits. +The existing JSON and Markdown output bytes and names remain unchanged. | Exit | Meaning | | --- | --- | diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/README.md b/docs/receiving/recheck-html-ae0a1ea0b247/README.md new file mode 100644 index 0000000..1f5212a --- /dev/null +++ b/docs/receiving/recheck-html-ae0a1ea0b247/README.md @@ -0,0 +1,19 @@ +# Offline saved-test recheck receiving + +This packet qualifies the six-path implementation for issue #37. The page consumes the exact newly serialized `testpilot.recheck/1` result. It does not rerun tests or generation, load project files, apply retained tests, or fetch external resources. + +## Source and author evidence + +The original baseline is `7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e`. The six contribution blobs and unchanged dependency closure are recorded in `source-publication.json`. `author-evidence.tar.gz` (45,455 bytes, SHA-256 `a72042ef969dbacfe75cef7d42330f17056cd73003022a5ead54ccebdad5bff8`) contains original and candidate changed source, exact receiving diffs, the author receipt and a nested original native baseline packet. Archive source files are evidence; normal tests are the repository's `tests/` files. + +The original native baseline driver runs actual saved-test rechecks against an authored buggy and corrected Python project. The buggy result has three passed and two failed selected-suite cases; the corrected result has five passed. Both have four collected retained cases and zero model calls. It preserves the exact JSON and Markdown artifacts, authored inputs and command output; the original implementation produces no HTML. This is an authored saved-input fixture, not provenance from a model-generated test run. + +The candidate's final native gate passes all 44 focused and existing recheck tests. It includes real buggy/fixed CLI execution, original JSON/Markdown serialization-byte equality, literal fields and exact raw JSON recovery, missing JUnit, timeout, no-tests, and visible control/surrogate rendering. A real POSIX file-size limit makes only HTML delivery fail after a passing recheck: native result remains `ok: true`, the command returns exit 2 with no success stdout, and partial output is not presented as completed delivery. Existing output-directory exclusivity and partial-delivery limits remain. + +The writer's narrow diff leaves all eleven other recheck function/class AST bodies unchanged. The existing recheck test file changes only its expected output filename set from two artifacts to three. CLI, sandbox, model, collector, selection, generation writer and workflow source are inherited unchanged. + +## Evidence limits + +The 44-test gate is the selected native recheck suite, not a claim that the full hosted suite ran. Temporary shared-storage capacity stops during metadata/archive retention are preserved separately in the author receipt; no product test failed in those stops. Original JSON/Markdown bytes stay exact. HTML cannot represent every control/surrogate as a literal text node, so the reading view shows explicit escapes while the downloadable JSON bytes retain the original representation. + +Independent browser/source receiving and the actual native hosted/integration results are recorded separately when complete. diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/author-evidence.tar.gz b/docs/receiving/recheck-html-ae0a1ea0b247/author-evidence.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9c9143b6da834d6b6bd6dc068f480e49ffe474e7 GIT binary patch literal 45455 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 Lxwt^s05Ados_=`t literal 0 HcmV?d00001 diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json b/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json new file mode 100644 index 0000000..b68e009 --- /dev/null +++ b/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json @@ -0,0 +1,123 @@ +{ + "schema": "testpilot.recheck-html.source/1", + "baseline_commit": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "baseline_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "source": [ + { + "path": "testpilot/recheck_html.py", + "bytes": 10184, + "sha256": "6cc81b1d1e63282708a4cad448224bac5359519c4955d82c6244afa80738e633", + "sha": "9b16cf829029e1b5d34392bb93f6d3a31e916a90" + }, + { + "path": "testpilot/recheck.py", + "bytes": 12115, + "sha256": "3eab07bd639994f897f76c0cd2b941d5e294c6d7c8132c82deb800e44d7079e6", + "sha": "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52" + }, + { + "path": "tests/test_recheck_html.py", + "bytes": 8685, + "sha256": "d14f0186aee3eef85dba24e6407232e276364ed97c94e40dbabed4b0e728f974", + "sha": "416ebc35d8c5bd6b9900abd9f4a9f07b08b3e438" + }, + { + "path": "tests/test_recheck.py", + "bytes": 13668, + "sha256": "a4d67bcdd9b6b386dd3417dc7ffe99da500cb77c87f16c7bb26d4e9cc14d0753", + "sha": "426085b7824979a764056c528d2ca2ccfc647d77" + }, + { + "path": "docs/RECHECK.md", + "bytes": 7125, + "sha256": "1742c8da5eb15e770ebcad06c4e0ac5e465e5d0bec79db2dd58c7c2e9b6e7ea4", + "sha": "7ac4a71d60add1ee718ab777c74aff887a453c29" + }, + { + "path": "README.md", + "bytes": 13171, + "sha256": "741d39d5951aa08550b16c0ffc294024e6a498c2411df8a57c888f3605b623b7", + "sha": "0a302f3dea5edc6688793e32da8dd5754ce2b907" + } + ], + "unchanged_dependency_closure": [ + { + "path": ".github/workflows/ci.yml", + "sha": "86a3236e38155506b5fe6077322d508f7f676649" + }, + { + "path": "pyproject.toml", + "sha": "952255ac87e2c7da57457fdbf3554914f17f6d05" + }, + { + "path": "testpilot/__init__.py", + "sha": "296210dd0d58703de4a4e4c9ad72a0944c9400ca" + }, + { + "path": "testpilot/__main__.py", + "sha": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a" + }, + { + "path": "testpilot/_pytest_generated.py", + "sha": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc" + }, + { + "path": "testpilot/diff.py", + "sha": "29dd325ab288ac1d43fd70f33b207281f5375d4b" + }, + { + "path": "testpilot/html_report.py", + "sha": "bb30d903542d836f5afe8e116ba894f93d9d3a0c" + }, + { + "path": "testpilot/loop.py", + "sha": "ed0f5f7f057c217b931a1756bd679ae087247e0a" + }, + { + "path": "testpilot/model.py", + "sha": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16" + }, + { + "path": "testpilot/sandbox.py", + "sha": "8ca4a4102c7890e89eae99548e28ba8325974f1e" + }, + { + "path": "tests/conftest.py", + "sha": "2a855d9fdb8debae0b082088580a4c41e499e33c" + }, + { + "path": "tests/test_html_report.py", + "sha": "655c4ce97b5ffbd2fe81f5b602a2ca12388c27b7" + } + ], + "unchanged_recheck_ast_bodies": [ + "RecheckError", + "SavedTests", + "_unique_object", + "_reject_constant", + "read_saved_tests", + "_placement", + "recheck_report", + "render_recheck", + "_output_destination", + "_write_console", + "run_recheck_command" + ], + "author_archive": { + "path": "author-evidence.tar.gz", + "bytes": 45455, + "sha256": "a72042ef969dbacfe75cef7d42330f17056cd73003022a5ead54ccebdad5bff8", + "git_blob": "9c9143b6da834d6b6bd6dc068f480e49ffe474e7" + }, + "author_gate": { + "tests": 44, + "elapsed_seconds": 3.29, + "command": "PYTHONDONTWRITEBYTECODE=1 PYTHONPATH= TMPDIR= -m pytest -q -p no:cacheprovider tests/test_recheck_html.py tests/test_recheck.py" + }, + "independent_review": { + "status": "in progress", + "pre_candidate_contract_sha256": "f6914c4de4e9555527f865adb6979034f828edc4dc8e2652fd2a21a55165f22d", + "fixture_builder_sha256": "1392d3346215b66a490d9539612505a6fa8ecadf438822120d847eb8c90523be", + "native_contract": "https://github.com/Jacob-Met/testpilot/issues/37#issuecomment-6064067702" + } +} diff --git a/testpilot/recheck.py b/testpilot/recheck.py index 4ab26cb..b5d0b70 100644 --- a/testpilot/recheck.py +++ b/testpilot/recheck.py @@ -7,6 +7,7 @@ from __future__ import annotations import hashlib +import io import json import math import os @@ -18,6 +19,7 @@ from datetime import datetime, timezone from pathlib import Path, PurePosixPath +from .recheck_html import render_recheck_html from .sandbox import run_pytest SCHEMA = "testpilot.recheck/1" @@ -225,10 +227,19 @@ def _output_destination(repo: str | Path, out_dir: str | Path) -> Path: def write_recheck_outputs(result: dict, out_dir: str | Path) -> dict[str, Path]: """Create separate results, leaving original reports and patches untouched.""" out = _output_destination(result["repo"], out_dir) + # Match the existing UTF-8 text writer's native newline bytes, and embed + # those exact JSON artifact bytes in the separate passive reading page. + with io.BytesIO() as raw: + with io.TextIOWrapper(raw, encoding="utf-8") as stream: + stream.write(json.dumps(result, indent=2, ensure_ascii=True) + "\n") + stream.flush() + json_bytes = raw.getvalue() + page = render_recheck_html(json_bytes) out.mkdir(parents=True, exist_ok=False) - paths = {"md": out / "recheck.md", "json": out / "recheck.json"} + paths = {"md": out / "recheck.md", "json": out / "recheck.json", "html": out / "recheck.html"} paths["md"].write_text(render_recheck(result), encoding="utf-8") - paths["json"].write_text(json.dumps(result, indent=2, ensure_ascii=True) + "\n", encoding="utf-8") + paths["json"].write_bytes(json_bytes) + paths["html"].write_text(page, encoding="utf-8") return paths diff --git a/testpilot/recheck_html.py b/testpilot/recheck_html.py new file mode 100644 index 0000000..9b16cf8 --- /dev/null +++ b/testpilot/recheck_html.py @@ -0,0 +1,152 @@ +"""Passive offline view of one completed native saved-test recheck. + +The supplied bytes are the JSON artifact, not an execution request. Rendering +never rechecks tests, follows file paths, calls a model or applies a patch. +""" +from __future__ import annotations + +import base64 +import hashlib +import html +import json + + +def _text(value: object) -> str: + text = str(value) + # HTML cannot faithfully retain NUL, CR or isolated surrogate code points. + # Make those visible in the reading view; the download retains exact bytes. + text = "".join( + f"\\u{ord(char):04x}" if ( + ord(char) < 32 and char not in "\n\t" + or 127 <= ord(char) <= 159 or 0xD800 <= ord(char) <= 0xDFFF + ) else char for char in text + ) + return html.escape(text, quote=True) + + +def _value(value: object) -> str: + if value is None: + return "Unavailable" + if isinstance(value, bool): + return "true" if value else "false" + return _text(value) + + +def _facts(items: list[tuple[str, object]]) -> str: + return '
' + "".join( + f"
{_text(label)}
{_value(value)}
" for label, value in items + ) + "
" + + +_STYLE = """ +:root{font:16px/1.55 system-ui,sans-serif;color:#172635;background:#f2f5f8} +*{box-sizing:border-box}body{margin:0}main{max-width:1080px;margin:auto;padding:36px 24px 64px} +h1{font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.15;margin:.35em 0} +h2{font-size:1.4rem;margin:0 0 .8rem}h3{font-size:1.05rem;margin:.25em 0} +p{max-width:78ch}.eyebrow{font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#466273} +nav{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}a{color:#075c86;text-underline-offset:3px} +nav a,.download{display:inline-block;border:1px solid #9bb2c3;border-radius:6px;padding:9px 13px;background:white} +a:focus-visible,summary:focus-visible{outline:3px solid #db8700;outline-offset:4px} +section{background:white;border:1px solid #cad7e0;border-radius:10px;padding:24px;margin:20px 0} +.status{font-size:1.35rem;font-weight:750}.note{border-left:4px solid #9bb2c3;padding:8px 14px;color:#374f60} +.facts{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:9px 20px;margin:16px 0} +dt{font-weight:650}dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap} +.table-scroll{overflow:auto;border:1px solid #d5dfe6;border-radius:6px} +table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:9px 12px;border-bottom:1px solid #d5dfe6;vertical-align:top} +th{background:#edf3f7}td:first-child{font-weight:600}tr:last-child td{border-bottom:0} +details{border:1px solid #cbd8e2;border-radius:7px;padding:12px 16px;margin:12px 0} +summary{cursor:pointer;font-weight:650;overflow-wrap:anywhere} +pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:#f3f6f9;border:1px solid #d6e0e8;border-radius:6px;padding:15px;font:13px/1.6 ui-monospace,monospace} +code{font-family:ui-monospace,monospace;overflow-wrap:anywhere}.muted{color:#4f6879} +@media(max-width:580px){main{padding:20px 12px 40px}section{padding:17px 14px}.facts{grid-template-columns:minmax(0,1fr);gap:3px}dd{margin-bottom:10px}details{padding:12px}th,td{padding:8px}} +@media print{:root{color:black;background:white}main{max-width:none;padding:0}section{border-radius:0;break-inside:avoid}nav,.download{display:none}details{break-inside:avoid}pre{background:white}a{color:inherit}} +""" + + +def render_recheck_html(raw: bytes) -> str: + """Render the native recheck JSON and embed that exact artifact for download.""" + if not isinstance(raw, bytes): + raise TypeError("recheck HTML requires the serialized JSON bytes") + data = json.loads(raw.decode("utf-8")) + if not isinstance(data, dict) or data.get("schema") != "testpilot.recheck/1": + raise ValueError("recheck HTML requires the native testpilot.recheck/1 result") + final = data["final"] + source = data["source_report"] + retained = data["retained_tests"] + observed = final["junit_available"] + encoded = base64.b64encode(raw).decode("ascii") + sections = [ + '', + '', + 'TestPilot saved-test recheck', + f"
", + '

TestPilot · saved-test recheck

', + '

Inspect the current test result

', + '

The saved tests were checked against the selected checkout. This page reads that completed result; opening it runs no tests or model calls.

', + f'Download exact recheck JSON
', + '', + '

Current result

', + f'

{_text(data["status"])}

', + _facts([ + ("Native success", data["ok"]), ("Native run summary", final["summary"]), + ("Return code", final["returncode"]), ("Timed out", final["timed_out"]), + ("Duration (seconds)", final["duration_s"]), ("Timeout (seconds)", final["timeout_s"]), + ("JUnit available", observed), ("New model calls", data["model_calls"]), + ]), + '

A passing selected suite alone does not qualify the retained tests: the native result also requires a retained case to pass. Historical status is shown separately below.

', + ] + if observed: + generated = final["generated"] + sections.append('
') + all_counts = [final[key] for key in ("passed", "failed", "errors", "skipped")] + sections.append('' + "".join(f"" for x in [*all_counts, len(final["cases"])])) + sections.append('' + "".join( + f"" + for key in ("passed", "failed", "error", "skipped", "collected") + ) + "
Recorded case counts
ScopePassedFailedErrorsSkippedCollected
Selected suite{_value(x)}
Retained tests{_value(generated.get(key) if generated is not None else None)}
") + else: + sections.append('

Case counts are unavailable because this run has no complete JUnit result. Empty recorded case lists and zero count fields are not evidence that no tests ran or that tests passed.

') + sections.extend([ + '

Recorded test cases

', + '

Cases remain in recorded order. Native retained-file attribution is shown independently of each case name.

', + ]) + for index, case in enumerate(final["cases"], 1): + sections.extend([ + f'
{index}. {_text(case["outcome"])} · {_text(case["nodeid"])}', + _facts([("Recorded node ID", case["nodeid"]), ("Outcome", case["outcome"]), + ("Retained-file attribution", case.get("generated_file"))]), + f'

Recorded diagnostic

{_text(case["message"])}
' if case["message"] else '

No diagnostic text was recorded for this case.

', + '
', + ]) + if not final["cases"]: + sections.append('

No individual case records are available in this result.

') + sections.extend([ + '

Exact retained test source

', + '

Source below is reading text. Nothing here applies files to a checkout or runs Python. Placement describes the original recheck; the JSON download retains the exact source characters.

', + ]) + for index, item in enumerate(retained, 1): + sections.extend([ + f'
{index}. {_text(item["path"])}', + _facts([("Path", item["path"]), ("Placement", item["placement"]), + ("UTF-8 bytes", item["bytes"]), ("SHA-256", item["sha256"])]), + f'
{_text(data["test_files"][item["path"]])}
', + ]) + sections.extend([ + '

Run and source identity

', + _facts([ + ("Schema", data["schema"]), ("Selected checkout path", data["repo"]), + ("Selected Python", data["python"]), ("Started at", data["started_at"]), + ("Finished at", data["finished_at"]), ("Source report path", source["path"]), + ("Source report SHA-256", source["sha256"]), + ("Historical source status (not this result)", source["recorded_status"]), + ("This recheck JSON SHA-256", hashlib.sha256(raw).hexdigest()), + ("Native scope", data["scope"]), + ]), + '

The source report status remains historical. This recheck adds no model diagnosis, comparison with historical coverage, repository commit identity or guarantee against concurrent checkout changes.

', + '

Recorded pytest output tail

', + '

This is the output tail retained by the native result (up to its last 3,000 characters), not a complete log.

', + f'
{_text(final["output"])}
', + '

All report content is local. Reading text visibly escapes HTML-incompatible controls and isolated surrogates; the exact JSON download remains unchanged. Expand source and diagnostics before printing the sections you need.

', + '
\n', + ]) + return "".join(sections) diff --git a/tests/test_recheck.py b/tests/test_recheck.py index 6ec7e36..426085b 100644 --- a/tests/test_recheck.py +++ b/tests/test_recheck.py @@ -226,7 +226,7 @@ def test_cli_skips_generation_and_recheck_output_is_reusable(project, tmp_path, assert cli.main(["recheck", "--repo", str(project), "--report", str(report), "--out", str(output)]) == 0 assert "New model calls: 0" in capsys.readouterr().out - assert sorted(p.name for p in output.iterdir()) == ["recheck.json", "recheck.md"] + assert sorted(p.name for p in output.iterdir()) == ["recheck.html", "recheck.json", "recheck.md"] current = json.loads((output / "recheck.json").read_text()) assert current["test_files"] == {TEST_PATH: content} again = recheck.recheck_report(project, output / "recheck.json", timeout_s=10) diff --git a/tests/test_recheck_html.py b/tests/test_recheck_html.py new file mode 100644 index 0000000..416ebc3 --- /dev/null +++ b/tests/test_recheck_html.py @@ -0,0 +1,184 @@ +"""Passive consumer controls and real saved-test CLI output receiving.""" +import base64 +import hashlib +from html.parser import HTMLParser +import json + +import pytest + +from testpilot.__main__ import main +from testpilot.recheck import render_recheck +from testpilot.recheck_html import render_recheck_html +from testpilot.sandbox import CaseResult, SandboxResult + + +class Page(HTMLParser): + def __init__(self, text): + super().__init__(convert_charrefs=True) + self.tags = [] + self.links = [] + self.parts = [] + self.feed(text) + + def handle_starttag(self, tag, attrs): + self.tags.append((tag, dict(attrs))) + if tag == "a": + self.links.append(dict(attrs)) + + def handle_data(self, text): + self.parts.append(text) + + @property + def text(self): + return "".join(self.parts) + + def download(self): + links = [a for a in self.links if a.get("download") == "recheck.json"] + assert len(links) == 1 + assert links[0]["href"].startswith("data:application/json;base64,") + return base64.b64decode(links[0]["href"].split(",", 1)[1], validate=True) + + +def sample(): + # Explicit consumer fixture using the native result serializer; it is not + # a claim that these counterfactual test cases were executed. + name = "tests/test_retained.py" + content = "# 原文\r\nassert ' & '\n" + final = SandboxResult( + 1, False, 0.125, 10, "output & text\n", + [CaseResult("spec.test_existing::test_ok", "passed"), + CaseResult("tests.test_retained::test_bad[<&>]", "failed", "actual < expected & 2\r\n", name)], + generated_files=[name], junit_available=True, + ).to_dict() + return { + "schema": "testpilot.recheck/1", "status": "failed", "ok": False, + "repo": "/authored/checkout", "python": "/authored/env/python", + "started_at": "2026-01-01T23:59:59+00:00", "finished_at": "2026-01-02T00:00:00+00:00", + "source_report": {"path": "/authored/original.json", "sha256": "a" * 64, "recorded_status": "passed"}, + "test_files": {name: content}, + "retained_tests": [{"path": name, "bytes": len(content.encode()), "sha256": hashlib.sha256(content.encode()).hexdigest(), "placement": "temporary"}], + "final": final, "model_calls": 0, + "scope": "Current selected-suite execution of exact retained tests; no new model calls or historical coverage comparison.", + } + + +def encoded(data): + return (json.dumps(data, ensure_ascii=True, indent=2) + "\n").encode() + + +def test_literal_case_source_identity_and_exact_download(): + data = sample() + raw = encoded(data) + page = Page(render_recheck_html(raw)) + assert page.download() == raw + assert hashlib.sha256(raw).hexdigest() in page.text + for value in [data["repo"], data["python"], data["started_at"], data["finished_at"], data["source_report"]["sha256"], "actual < expected & 2", "test_bad[<&>]", "assert ' & '"]: + assert value in page.text + assert "Historical source status (not this result)" in page.text + assert "Recorded pytest output tail" in page.text + assert "\\u000d" in page.text + assert not any(tag in {"script", "img", "iframe", "object", "form"} for tag, _ in page.tags) + assert all(a["href"].startswith(("#", "data:application/json;base64,")) for a in page.links) + assert encoded(data) == raw + + +def test_incomplete_junit_counts_stay_unavailable_and_timeout_stays_recorded(): + data = sample() + data["final"] = SandboxResult(None, True, 0.201, 0.2, "before timeout", generated_files=["tests/test_retained.py"]).to_dict() + page = Page(render_recheck_html(encoded(data))) + assert "Case counts are unavailable" in page.text + assert "No individual case records are available" in page.text + assert "TIMEOUT after 0.2s" in page.text + assert "before timeout" in page.text + assert not any(tag == "table" for tag, _ in page.tags) + + +def test_no_retained_pass_does_not_become_success(): + data = sample() + name = "tests/test_retained.py" + data["final"] = SandboxResult(0, False, .1, 2, "", [CaseResult("existing", "passed"), CaseResult("retained", "skipped", "not exercised", name)], generated_files=[name], junit_available=True).to_dict() + data["status"] = "no_tests" + page = Page(render_recheck_html(encoded(data))) + assert "no_tests" in page.text + assert "not exercised" in page.text + assert "0 passed of 1 collected" in page.text + assert page.download() == encoded(data) + + +def test_control_surrogate_and_raw_json_spelling_are_preserved_in_download(): + data = sample() + data["final"]["output"] = "NUL:\0 CR:\r surrogate:\ud800 DEL:\x7f original:原文" + raw = encoded(data).replace(b"\n", b"\r\n") + b" \t" + page = Page(render_recheck_html(raw)) + for code in ("\\u0000", "\\u000d", "\\ud800", "\\u007f"): + assert code in page.text + assert page.download() == raw + assert "original:原文" in page.text + + +@pytest.mark.parametrize("raw,error", [(b'{}', ValueError), (b'{"schema":"testpilot.recheck/9"}', ValueError), (b'not JSON', ValueError), ("not bytes", TypeError)]) +def test_other_report_inputs_are_not_presented_as_native_rechecks(raw, error): + with pytest.raises(error): + render_recheck_html(raw) + + +@pytest.mark.parametrize("fixed,exit_code", [(False, 1), (True, 0)]) +def test_actual_cli_writes_matching_json_and_md_plus_passive_page(tmp_path, fixed, exit_code): + project = tmp_path / "project" + project.mkdir() + (project / "subject.py").write_text("def result():\n return " + ("9" if fixed else "8") + "\n") + retained = "from subject import result\ndef test_result():\n assert result() == 9\n" + saved = tmp_path / "authored-saved.json" + saved.write_text(json.dumps({"status": "passed", "test_files": {"tests/test_retained.py": retained}})) + original = {p: p.read_bytes() for p in [project / "subject.py", saved]} + output = tmp_path / "out" + assert main(["recheck", "--repo", str(project), "--report", str(saved), "--out", str(output)]) == exit_code + raw = (output / "recheck.json").read_bytes() + data = json.loads(raw) + page = Page((output / "recheck.html").read_text()) + assert page.download() == raw + assert data["model_calls"] == 0 + assert data["status"] == ("passed" if fixed else "failed") + assert data["source_report"]["recorded_status"] == "passed" + # Compare the exact pre-existing serialization contract, including the + # platform's native text newlines, using independent reference files. + reference_json = tmp_path / "reference.json" + reference_md = tmp_path / "reference.md" + reference_json.write_text(json.dumps(data, indent=2, ensure_ascii=True) + "\n", encoding="utf-8") + reference_md.write_text(render_recheck(data), encoding="utf-8") + assert raw == reference_json.read_bytes() + assert (output / "recheck.md").read_bytes() == reference_md.read_bytes() + assert {p: p.read_bytes() for p in original} == original + assert not (project / "tests").exists() + assert sorted(p.name for p in output.iterdir()) == ["recheck.html", "recheck.json", "recheck.md"] + + +@pytest.mark.skipif(__import__("os").name != "posix", reason="POSIX authored file-size limit") +def test_actual_html_write_failure_is_delivery_failure_not_test_success(tmp_path): + import os + from pathlib import Path + import subprocess + import sys + + project = tmp_path / "project" + project.mkdir() + saved = tmp_path / "saved.json" + saved.write_text(json.dumps({"test_files": {"tests/test_retained.py": "def test_ok():\n assert True\n"}})) + out = tmp_path / "out" + # Bound this owned child only. Native JSON/Markdown fit; the newly rendered + # page exceeds the limit, exercising a real writer failure after pytest. + command = ( + "import resource,signal;" + "resource.setrlimit(resource.RLIMIT_FSIZE,(8192,8192));" + "signal.signal(signal.SIGXFSZ,signal.SIG_IGN);" + "from testpilot.__main__ import main;" + "raise SystemExit(main())" + ) + env = dict(os.environ, PYTHONDONTWRITEBYTECODE="1", PYTHONPATH=str(Path(__file__).resolve().parents[1])) + result = subprocess.run([sys.executable, "-c", command, "recheck", "--repo", str(project), "--report", str(saved), "--out", str(out)], env=env, capture_output=True, timeout=20) + assert result.returncode == 2 + assert b"cannot recheck saved tests" in result.stderr + assert result.stdout == b"" + assert json.loads((out / "recheck.json").read_text())["ok"] is True + assert (out / "recheck.html").stat().st_size == 8192 + assert not (out / "recheck.html").read_bytes().endswith(b"\n") From 0ff58452254a89969ccfced9444bff9f247280ca Mon Sep 17 00:00:00 2001 From: Jacob Metoyer <150724801+Jacob-Met@users.noreply.github.com> Date: Thu, 8 Oct 2026 09:25:20 -0700 Subject: [PATCH 2/2] Retain independent recheck consumer acceptance and hosted qualification --- .../recheck-html-ae0a1ea0b247/README.md | 15 +- .../recheck-html-ae0a1ea0b247/hosted-ci.json | 27 +++ .../hosted-ci.log.txt | 207 +++++++++++++++++ .../independent-recheck-html.tar.gz | Bin 0 -> 161908 bytes .../independent-review.json | 218 ++++++++++++++++++ .../source-publication.json | 41 +++- 6 files changed, 505 insertions(+), 3 deletions(-) create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.json create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.log.txt create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/independent-recheck-html.tar.gz create mode 100644 docs/receiving/recheck-html-ae0a1ea0b247/independent-review.json diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/README.md b/docs/receiving/recheck-html-ae0a1ea0b247/README.md index 1f5212a..1de67e8 100644 --- a/docs/receiving/recheck-html-ae0a1ea0b247/README.md +++ b/docs/receiving/recheck-html-ae0a1ea0b247/README.md @@ -16,4 +16,17 @@ The writer's narrow diff leaves all eleven other recheck function/class AST bodi The 44-test gate is the selected native recheck suite, not a claim that the full hosted suite ran. Temporary shared-storage capacity stops during metadata/archive retention are preserved separately in the author receipt; no product test failed in those stops. Original JSON/Markdown bytes stay exact. HTML cannot represent every control/surrogate as a literal text node, so the reading view shows explicit escapes while the downloadable JSON bytes retain the original representation. -Independent browser/source receiving and the actual native hosted/integration results are recorded separately when complete. +## Independent receiving + +The independent reviewer froze five inputs and their expected facts before reading the candidate: both exact native original CLI outputs, plus three explicitly authored vectors produced through the original `SandboxResult.to_dict`. Those authored vectors are consumer controls, not measured execution claims. + +All five groups passed once in actual Chromium 153.0.8010.0. Five genuine downloads reproduce their respective frozen JSON bytes exactly. The receiver checks every recorded case/message/source/placement/hash, current versus historical status, selected versus retained counts, missing JUnit and no-tests meaning, labelled output tail, source/run identity and literal markup. There were zero browser requests, page errors, dialogs or popups; all six candidate source blobs remained exact. + +`independent-recheck-html.tar.gz` retains all 46 members: frozen expectations and fixture builder, exact inputs, receiver, reports, DOM observations, downloads, source snapshots, two phone images and raw receipts. It is 161,908 bytes, SHA-256 `67f48f765f20f066ee89268eb54340b108e6bd99655980adc2ce97fd8c3d44ac`. The separate concise disposition is `independent-review.json`. + +Both phone images were visually accepted for layout and English readability. Installed CJK font coverage is incomplete; exact Unicode DOM/source/download fidelity passes. The pre-execution clarification retains the distinction between visible CR escapes in the reading view and exact CRLF bytes in the download. + +## Hosted qualification + +The unchanged repository workflow passed its full Python 3.12.15 suite: **372 tests and 18 subtests**, in 99.77 seconds. Run 37807062511 / job 113413995657 tested merge `a97a059fb27af0e753e84938cabcd0f7d0f7a442`, whose tree is byte-identical to the original published candidate `3e9c73052118f9f228247bc9133889fd43f8d852`. `hosted-ci.json` and the original decoded `hosted-ci.log.txt` retain the exact checkout and result. Later evidence-only head checks and actual source integration are recorded separately; this receipt does not relabel the original hosted checkout. + diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.json b/docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.json new file mode 100644 index 0000000..1299166 --- /dev/null +++ b/docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.json @@ -0,0 +1,27 @@ +{ + "schema": "testpilot.recheck-html.hosted/1", + "source_head": "93ab250df63fdcc063d33e78812502634d2e985f", + "actual_checkout": "a97a059fb27af0e753e84938cabcd0f7d0f7a442", + "actual_tree": "3e9c73052118f9f228247bc9133889fd43f8d852", + "ordered_parents": [ + "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "93ab250df63fdcc063d33e78812502634d2e985f" + ], + "run": { + "id": 37807062511, + "url": "https://github.com/Jacob-Met/testpilot/actions/runs/37807062511", + "event": "pull_request", + "status": "completed", + "conclusion": "success", + "created_at": "2026-10-08T16:13:13Z", + "updated_at": "2026-10-08T16:15:09Z" + }, + "job": { + "id": 113413995657, + "python": "3.12.15", + "pytest": "9.1.1", + "coverage": "7.16.2", + "result": "372 passed, 18 subtests passed in 99.77s (0:01:39)" + }, + "source_change_during_qualification": false +} diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.log.txt b/docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.log.txt new file mode 100644 index 0000000..22c7901 --- /dev/null +++ b/docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.log.txt @@ -0,0 +1,207 @@ +2026-10-08T16:13:16.8872876Z Current runner version: '2.337.0' +2026-10-08T16:13:16.8898599Z ##[group]Runner Image Provisioner +2026-10-08T16:13:16.8899596Z Hosted Compute Agent +2026-10-08T16:13:16.8900179Z Version: 20261002.596 +2026-10-08T16:13:16.8900813Z Commit: c3d12f3313a95f25162a1503be624f3b0617f8c0 +2026-10-08T16:13:16.8901529Z Build Date: 2026-10-02T22:28:27Z +2026-10-08T16:13:16.8902210Z Worker ID: {89233ef8-46ca-4bd7-ab8b-24731e18b597} +2026-10-08T16:13:16.8902921Z Region: centralus +2026-10-08T16:13:16.8903458Z Cloud: Azure +2026-10-08T16:13:16.8904529Z ##[endgroup] +2026-10-08T16:13:16.8906112Z ##[group]Operating System +2026-10-08T16:13:16.8906884Z Ubuntu +2026-10-08T16:13:16.8907534Z 24.04.5 +2026-10-08T16:13:16.8908122Z LTS +2026-10-08T16:13:16.8908747Z ##[endgroup] +2026-10-08T16:13:16.8909525Z ##[group]Runner Image +2026-10-08T16:13:16.8910351Z Image: ubuntu-24.04 +2026-10-08T16:13:16.8911099Z Version: 20261004.327.1 +2026-10-08T16:13:16.8912530Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261004.327/images/ubuntu/Ubuntu2404-Readme.md +2026-10-08T16:13:16.8914190Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261004.327 +2026-10-08T16:13:16.8915228Z ##[endgroup] +2026-10-08T16:13:16.8916467Z ##[group]GITHUB_TOKEN Permissions +2026-10-08T16:13:16.8919514Z Contents: read +2026-10-08T16:13:16.8920179Z Metadata: read +2026-10-08T16:13:16.8920864Z Packages: read +2026-10-08T16:13:16.8921404Z ##[endgroup] +2026-10-08T16:13:16.8923878Z Secret source: Actions +2026-10-08T16:13:16.8924803Z Cache mode: write +2026-10-08T16:13:16.8925768Z Prepare workflow directory +2026-10-08T16:13:16.9265199Z Prepare all required actions +2026-10-08T16:13:16.9316702Z Getting action download info +2026-10-08T16:13:17.2080612Z Download action repository 'actions/checkout@11d5960a326750d5838078e36cf38b85af677262' (SHA:11d5960a326750d5838078e36cf38b85af677262) +2026-10-08T16:13:17.3043814Z Download action repository 'actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065' (SHA:a26af69be951a213d495a4c3e4e4022e16d87065) +2026-10-08T16:13:17.5067086Z Complete job name: tests +2026-10-08T16:13:17.5799439Z ##[group]Run actions/checkout@11d5960a326750d5838078e36cf38b85af677262 +2026-10-08T16:13:17.5800463Z with: +2026-10-08T16:13:17.5801021Z repository: Jacob-Met/testpilot +2026-10-08T16:13:17.5805224Z token: *** +2026-10-08T16:13:17.5805733Z ssh-strict: true +2026-10-08T16:13:17.5806248Z ssh-user: git +2026-10-08T16:13:17.5806782Z persist-credentials: true +2026-10-08T16:13:17.5807361Z clean: true +2026-10-08T16:13:17.5807901Z sparse-checkout-cone-mode: true +2026-10-08T16:13:17.5808486Z fetch-depth: 1 +2026-10-08T16:13:17.5808969Z fetch-tags: false +2026-10-08T16:13:17.5809509Z show-progress: true +2026-10-08T16:13:17.5810040Z lfs: false +2026-10-08T16:13:17.5810568Z submodules: false +2026-10-08T16:13:17.5811073Z set-safe-directory: true +2026-10-08T16:13:17.5811626Z allow-unsafe-pr-checkout: false +2026-10-08T16:13:17.5812397Z ##[endgroup] +2026-10-08T16:13:17.6930895Z Syncing repository: Jacob-Met/testpilot +2026-10-08T16:13:17.6934491Z ##[group]Getting Git version info +2026-10-08T16:13:17.6935670Z Working directory is '/home/runner/work/testpilot/testpilot' +2026-10-08T16:13:17.6937424Z [command]/usr/bin/git version +2026-10-08T16:13:17.6938249Z git version 2.55.0 +2026-10-08T16:13:17.6955936Z ##[endgroup] +2026-10-08T16:13:17.6967540Z Temporarily overriding HOME='/home/runner/work/_temp/1a324ff1-59dd-486b-88a4-39e9c00f4be9' before making global git config changes +2026-10-08T16:13:17.6969607Z Adding repository directory to the temporary git global config as a safe directory +2026-10-08T16:13:17.6975237Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/testpilot/testpilot +2026-10-08T16:13:17.7033282Z Deleting the contents of '/home/runner/work/testpilot/testpilot' +2026-10-08T16:13:17.7039674Z ##[group]Initializing the repository +2026-10-08T16:13:17.7044611Z [command]/usr/bin/git init /home/runner/work/testpilot/testpilot +2026-10-08T16:13:17.7192068Z hint: Using 'master' as the name for the initial branch. This default branch name +2026-10-08T16:13:17.7194815Z hint: will change to "main" in Git 3.0. To configure the initial branch name +2026-10-08T16:13:17.7196063Z hint: to use in all of your new repositories, which will suppress this warning, +2026-10-08T16:13:17.7197238Z hint: call: +2026-10-08T16:13:17.7198605Z hint: +2026-10-08T16:13:17.7199575Z hint: git config --global init.defaultBranch +2026-10-08T16:13:17.7200479Z hint: +2026-10-08T16:13:17.7202169Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2026-10-08T16:13:17.7203402Z hint: 'development'. The just-created branch can be renamed via this command: +2026-10-08T16:13:17.7204815Z hint: +2026-10-08T16:13:17.7205717Z hint: git branch -m +2026-10-08T16:13:17.7206707Z hint: +2026-10-08T16:13:17.7207859Z hint: Disable this message with "git config set advice.defaultBranchName false" +2026-10-08T16:13:17.7209488Z Initialized empty Git repository in /home/runner/work/testpilot/testpilot/.git/ +2026-10-08T16:13:17.7213065Z [command]/usr/bin/git remote add origin https://github.com/Jacob-Met/testpilot +2026-10-08T16:13:17.7269212Z ##[endgroup] +2026-10-08T16:13:17.7270322Z ##[group]Disabling automatic garbage collection +2026-10-08T16:13:17.7273656Z [command]/usr/bin/git config --local gc.auto 0 +2026-10-08T16:13:17.7311430Z ##[endgroup] +2026-10-08T16:13:17.7312292Z ##[group]Setting up auth +2026-10-08T16:13:17.7322816Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-08T16:13:17.7357133Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-08T16:13:17.7784689Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-08T16:13:17.7825424Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-08T16:13:17.8053094Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-08T16:13:17.8090498Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-08T16:13:17.8320461Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2026-10-08T16:13:17.8411294Z ##[endgroup] +2026-10-08T16:13:17.8413250Z ##[group]Fetching the repository +2026-10-08T16:13:17.8424522Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +a97a059fb27af0e753e84938cabcd0f7d0f7a442:refs/remotes/pull/41/merge +2026-10-08T16:13:22.4291823Z From https://github.com/Jacob-Met/testpilot +2026-10-08T16:13:22.4294041Z * [new ref] a97a059fb27af0e753e84938cabcd0f7d0f7a442 -> pull/41/merge +2026-10-08T16:13:22.4298987Z ##[endgroup] +2026-10-08T16:13:22.4300756Z ##[group]Determining the checkout info +2026-10-08T16:13:22.4302779Z ##[endgroup] +2026-10-08T16:13:22.4303964Z [command]/usr/bin/git sparse-checkout disable +2026-10-08T16:13:22.4364536Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig +2026-10-08T16:13:22.4399720Z ##[group]Checking out the ref +2026-10-08T16:13:22.4402907Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/41/merge +2026-10-08T16:13:22.5076495Z Note: switching to 'refs/remotes/pull/41/merge'. +2026-10-08T16:13:22.5077610Z +2026-10-08T16:13:22.5078241Z You are in 'detached HEAD' state. You can look around, make experimental +2026-10-08T16:13:22.5079907Z changes and commit them, and you can discard any commits you make in this +2026-10-08T16:13:22.5081591Z state without impacting any branches by switching back to a branch. +2026-10-08T16:13:22.5082569Z +2026-10-08T16:13:22.5083156Z If you want to create a new branch to retain commits you create, you may +2026-10-08T16:13:22.5084816Z do so (now or later) by using -c with the switch command. Example: +2026-10-08T16:13:22.5086079Z +2026-10-08T16:13:22.5086553Z git switch -c +2026-10-08T16:13:22.5087351Z +2026-10-08T16:13:22.5087706Z Or undo this operation with: +2026-10-08T16:13:22.5088156Z +2026-10-08T16:13:22.5088390Z git switch - +2026-10-08T16:13:22.5088706Z +2026-10-08T16:13:22.5089346Z Turn off this advice by setting config variable advice.detachedHead to false +2026-10-08T16:13:22.5090392Z +2026-10-08T16:13:22.5091874Z HEAD is now at a97a059 Merge 93ab250df63fdcc063d33e78812502634d2e985f into 7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e +2026-10-08T16:13:22.5095548Z ##[endgroup] +2026-10-08T16:13:22.5133903Z [command]/usr/bin/git log -1 --format=%H +2026-10-08T16:13:22.5159453Z a97a059fb27af0e753e84938cabcd0f7d0f7a442 +2026-10-08T16:13:22.5579979Z ##[group]Run actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 +2026-10-08T16:13:22.5581246Z with: +2026-10-08T16:13:22.5581748Z python-version: 3.12 +2026-10-08T16:13:22.5582355Z check-latest: false +2026-10-08T16:13:22.5590775Z token: *** +2026-10-08T16:13:22.5591418Z update-environment: true +2026-10-08T16:13:22.5592088Z allow-prereleases: false +2026-10-08T16:13:22.5592737Z freethreaded: false +2026-10-08T16:13:22.5593318Z ##[endgroup] +2026-10-08T16:13:22.6964021Z ##[group]Installed versions +2026-10-08T16:13:22.7070832Z (node:2304) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-08T16:13:22.7074339Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-08T16:13:22.7120925Z Successfully set up CPython (3.12.15) +2026-10-08T16:13:22.7138080Z ##[endgroup] +2026-10-08T16:13:22.7281532Z ##[group]Run pip install "pytest>=8" "coverage>=7" +2026-10-08T16:13:22.7282799Z pip install "pytest>=8" "coverage>=7" +2026-10-08T16:13:22.7550867Z shell: /usr/bin/bash -e {0} +2026-10-08T16:13:22.7551936Z env: +2026-10-08T16:13:22.7552668Z pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:22.7554509Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig +2026-10-08T16:13:22.7556053Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:22.7557262Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:22.7558541Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:22.7559759Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib +2026-10-08T16:13:22.7560741Z ##[endgroup] +2026-10-08T16:13:23.7857661Z Collecting pytest>=8 +2026-10-08T16:13:23.8699695Z Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB) +2026-10-08T16:13:24.3294934Z Collecting coverage>=7 +2026-10-08T16:13:24.3402482Z Downloading coverage-7.16.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (8.2 kB) +2026-10-08T16:13:24.3655085Z Collecting iniconfig>=1.0.1 (from pytest>=8) +2026-10-08T16:13:24.3761537Z Downloading iniconfig-2.3.1-py3-none-any.whl.metadata (2.8 kB) +2026-10-08T16:13:24.4017642Z Collecting packaging>=22 (from pytest>=8) +2026-10-08T16:13:24.4123779Z Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB) +2026-10-08T16:13:24.4360300Z Collecting pluggy<2,>=1.5 (from pytest>=8) +2026-10-08T16:13:24.4462153Z Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB) +2026-10-08T16:13:24.4737995Z Collecting pygments>=2.7.2 (from pytest>=8) +2026-10-08T16:13:24.4843279Z Downloading pygments-2.21.0-py3-none-any.whl.metadata (2.5 kB) +2026-10-08T16:13:24.4999017Z Downloading pytest-9.1.1-py3-none-any.whl (386 kB) +2026-10-08T16:13:24.5617666Z Downloading pluggy-1.6.0-py3-none-any.whl (20 kB) +2026-10-08T16:13:24.5902757Z Downloading coverage-7.16.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (258 kB) +2026-10-08T16:13:24.6572001Z Downloading iniconfig-2.3.1-py3-none-any.whl (7.6 kB) +2026-10-08T16:13:24.6704943Z Downloading packaging-26.3-py3-none-any.whl (129 kB) +2026-10-08T16:13:24.6860298Z Downloading pygments-2.21.0-py3-none-any.whl (1.3 MB) +2026-10-08T16:13:24.7268351Z ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 28.6 MB/s 0:00:00 +2026-10-08T16:13:24.7873032Z Installing collected packages: pygments, pluggy, packaging, iniconfig, coverage, pytest +2026-10-08T16:13:25.8438198Z +2026-10-08T16:13:25.8451615Z Successfully installed coverage-7.16.2 iniconfig-2.3.1 packaging-26.3 pluggy-1.6.0 pygments-2.21.0 pytest-9.1.1 +2026-10-08T16:13:25.9250801Z ##[group]Run python -m pytest -q +2026-10-08T16:13:25.9251357Z python -m pytest -q +2026-10-08T16:13:25.9298410Z shell: /usr/bin/bash -e {0} +2026-10-08T16:13:25.9298850Z env: +2026-10-08T16:13:25.9299257Z pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:25.9300421Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig +2026-10-08T16:13:25.9300961Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:25.9301479Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:25.9302046Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64 +2026-10-08T16:13:25.9302556Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib +2026-10-08T16:13:25.9303016Z ##[endgroup] +2026-10-08T16:13:54.9074355Z ...................................................... [ 14%] +2026-10-08T16:14:31.0990263Z ........................................................................ [ 33%] +2026-10-08T16:14:42.7631803Z ........................................................................ [ 53%] +2026-10-08T16:14:50.3526983Z ........................................................................ [ 72%] +2026-10-08T16:14:53.3778524Z ........................................................................ [ 91%] +2026-10-08T16:15:06.0772287Z .............................. [100%] +2026-10-08T16:15:06.1338580Z 372 passed, 18 subtests passed in 99.77s (0:01:39) +2026-10-08T16:15:06.1456385Z Post job cleanup. +2026-10-08T16:15:06.2724553Z (node:3467) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. +2026-10-08T16:15:06.2725622Z (Use `node --trace-deprecation ...` to show where the warning was created) +2026-10-08T16:15:06.3035929Z Post job cleanup. +2026-10-08T16:15:06.4003253Z [command]/usr/bin/git version +2026-10-08T16:15:06.4046066Z git version 2.55.0 +2026-10-08T16:15:06.4091530Z Temporarily overriding HOME='/home/runner/work/_temp/703013e7-11d8-4016-a700-5c99359daf31' before making global git config changes +2026-10-08T16:15:06.4093263Z Adding repository directory to the temporary git global config as a safe directory +2026-10-08T16:15:06.4097861Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/testpilot/testpilot +2026-10-08T16:15:06.4178313Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2026-10-08T16:15:06.4226878Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2026-10-08T16:15:06.4476694Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2026-10-08T16:15:06.4502577Z http.https://github.com/.extraheader +2026-10-08T16:15:06.4514816Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2026-10-08T16:15:06.4550622Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2026-10-08T16:15:06.4781780Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: +2026-10-08T16:15:06.4814300Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url +2026-10-08T16:15:06.5219028Z Cleaning up orphan processes +2026-10-08T16:15:06.5483303Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@11d5960a326750d5838078e36cf38b85af677262, actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/independent-recheck-html.tar.gz b/docs/receiving/recheck-html-ae0a1ea0b247/independent-recheck-html.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6dcad3820246d3e9006e97474ddd5883a9451562 GIT binary patch literal 161908 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 literal 0 HcmV?d00001 diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/independent-review.json b/docs/receiving/recheck-html-ae0a1ea0b247/independent-review.json new file mode 100644 index 0000000..2967863 --- /dev/null +++ b/docs/receiving/recheck-html-ae0a1ea0b247/independent-review.json @@ -0,0 +1,218 @@ +{ + "schema": "testpilot.recheck-html.independent-review/1", + "reviewer": "ae0a1ea0b247/root", + "disposition": "ACCEPT", + "repository": "Jacob-Met/testpilot", + "issue": 37, + "pullRequest": 41, + "baselineCommit": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "reviewedHead": "93ab250df63fdcc063d33e78812502634d2e985f", + "reviewedTree": "3e9c73052118f9f228247bc9133889fd43f8d852", + "acceptedSource": [ + { + "path": "testpilot/recheck_html.py", + "bytes": 10184, + "sha256": "6cc81b1d1e63282708a4cad448224bac5359519c4955d82c6244afa80738e633", + "sha": "9b16cf829029e1b5d34392bb93f6d3a31e916a90" + }, + { + "path": "testpilot/recheck.py", + "bytes": 12115, + "sha256": "3eab07bd639994f897f76c0cd2b941d5e294c6d7c8132c82deb800e44d7079e6", + "sha": "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52" + }, + { + "path": "tests/test_recheck_html.py", + "bytes": 8685, + "sha256": "d14f0186aee3eef85dba24e6407232e276364ed97c94e40dbabed4b0e728f974", + "sha": "416ebc35d8c5bd6b9900abd9f4a9f07b08b3e438" + }, + { + "path": "tests/test_recheck.py", + "bytes": 13668, + "sha256": "a4d67bcdd9b6b386dd3417dc7ffe99da500cb77c87f16c7bb26d4e9cc14d0753", + "sha": "426085b7824979a764056c528d2ca2ccfc647d77" + }, + { + "path": "docs/RECHECK.md", + "bytes": 7125, + "sha256": "1742c8da5eb15e770ebcad06c4e0ac5e465e5d0bec79db2dd58c7c2e9b6e7ea4", + "sha": "7ac4a71d60add1ee718ab777c74aff887a453c29" + }, + { + "path": "README.md", + "bytes": 13171, + "sha256": "741d39d5951aa08550b16c0ffc294024e6a498c2411df8a57c888f3605b623b7", + "sha": "0a302f3dea5edc6688793e32da8dd5754ce2b907" + } + ], + "independence": { + "contractSha256": "f6914c4de4e9555527f865adb6979034f828edc4dc8e2652fd2a21a55165f22d", + "fixtureBuilderSha256": "1392d3346215b66a490d9539612505a6fa8ecadf438822120d847eb8c90523be", + "frozenBeforeCandidateDisclosure": true, + "nativeFreezeComment": 6064067702, + "source": "Reviewer read original native recheck/sandbox source and the actual old CLI outputs before freezing expectations. Candidate selectors were matched afterward without changing expected facts." + }, + "browser": { + "groups": 5, + "passed": 5, + "chromium": "153.0.8010.0", + "genuineDownloads": 5, + "requests": 0, + "pageErrors": 0, + "dialogs": 0, + "popups": 0, + "driverSha256": "b4d24bbdac94de7b5b90af23e9505c5f57056c8757eee207a91062a03ac1db7f", + "cases": [ + { + "name": "native-buggy", + "origin": "Exact recorded native CLI output; no new execution", + "status": "failed", + "caseCount": 5, + "retainedFiles": 1, + "download": { + "bytes": 4868, + "sha256": "91a3c8377aa1defb8ad9a15828f6de3b9b55eafa9ea69a32b70164c8808510d7", + "suggestedFilename": "recheck.json" + }, + "result": "PASS" + }, + { + "name": "native-fixed", + "origin": "Exact recorded native CLI output; no new execution", + "status": "passed", + "caseCount": 5, + "retainedFiles": 1, + "download": { + "bytes": 2912, + "sha256": "c832ffbf66b8f2169a0bc83938b5b883ed96ea7d16c9b5912709efe822a87d46", + "suggestedFilename": "recheck.json" + }, + "result": "PASS" + }, + { + "name": "literal-mixed", + "origin": "Authored consumer-only data using native baseline SandboxResult.to_dict; not executed tests", + "status": "failed", + "caseCount": 5, + "retainedFiles": 2, + "download": { + "bytes": 3943, + "sha256": "bbd347a6312c4536761f7b83683dfcd02d907b84f34902c1ed6434c44779ac2b", + "suggestedFilename": "recheck.json" + }, + "result": "PASS" + }, + { + "name": "missing-junit", + "origin": "Authored native-result consumer vector; missing JUnit, no measured run", + "status": "failed", + "caseCount": 0, + "retainedFiles": 2, + "download": { + "bytes": 2308, + "sha256": "70c4a2bf0b15d6a18fb2d542cbc3f9d486f1bfabec13bf7ed2a4f385b037f389", + "suggestedFilename": "recheck.json" + }, + "result": "PASS" + }, + { + "name": "no-tests", + "origin": "Authored native-result consumer vector; no measured run", + "status": "no_tests", + "caseCount": 0, + "retainedFiles": 2, + "download": { + "bytes": 2362, + "sha256": "96f6aa621b61ae107d3d81c39def2a3a7b38f481aeb9f4bf42c82978470d7443", + "suggestedFilename": "recheck.json" + }, + "result": "PASS" + } + ], + "receivedFacts": [ + "Current status is distinct from historical source status.", + "Selected-suite counts and retained-case counts match every frozen input independently.", + "Every recorded node identity, outcome, diagnostic, retained-file attribution, full retained source, placement, byte count and hash is preserved in the reading view.", + "Run/Python/repository/source identities, timestamps, timeout facts and recorded-tail label are exact.", + "Missing JUnit leaves case counts explicitly unavailable; no-tests is not success.", + "HTML-like data creates no elements, script execution, requests, dialogs or popups.", + "Each real JSON download equals the full original input bytes, including UTF-8 Unicode and CRLF serialization." + ] + }, + "sourceReview": { + "nativeSourceBindings": [ + "9b16cf829029e1b5d34392bb93f6d3a31e916a90", + "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52" + ], + "unchangedRecheckBodies": [ + "RecheckError", + "SavedTests", + "_unique_object", + "_reject_constant", + "read_saved_tests", + "_placement", + "recheck_report", + "render_recheck", + "_output_destination", + "_write_console", + "run_recheck_command" + ], + "existingOutputTestOnlyAddsFilename": true, + "allSixCandidateFilesUnchangedAfterBrowser": true, + "rendererImports": [ + "from __future__ import annotations", + "import base64", + "import hashlib", + "import html", + "import json" + ], + "observation": "Renderer is passive standard-library JSON-to-HTML, with no file reading, model call, subprocess, test execution or live request. Existing execution, admission, output path and CLI bodies are unchanged. Writer addition serializes through the native text encoding/newline mechanism and embeds the same bytes it writes." + }, + "visual": { + "viewports": [ + [ + 1280, + 900 + ], + [ + 390, + 844 + ] + ], + "accepted": true, + "phoneDocumentWidth": 390, + "phoneCountTable": { + "containerWidth": 334, + "scrollWidth": 506, + "overflowConfined": true + }, + "controlMinimumHeight": 44.796875, + "images": [ + { + "path": "evidence/phone-current-result.jpg", + "sha256": "41c36f286cfb4e7c474e9c9fe3e86b529970bdda9237a93522b0e33039512534", + "bytes": 39814 + }, + { + "path": "evidence/phone-retained-source.jpg", + "sha256": "950807eb6b749dca9809c07720932c0daa99a399a8d0b7f15e79091b2208bd0d", + "bytes": 55882 + } + ], + "observation": "Current failure, run facts, source identity and expanded literal source are readable with no clipped or overlapping controls. Long hashes/code wrap; the wide count table scrolls within its own container." + }, + "limits": [ + "The mixed-outcome, missing-JUnit and no-tests inputs are explicit consumer-only vectors built with original SandboxResult.to_dict, not measured executions. Only the buggy/fixed inputs are preserved actual native CLI outputs.", + "Before the first browser execution, the read-view oracle clarified the documented visible Unicode escape for carriage return. Exact JSON downloads still preserve all source code points and original serialized bytes. No case was rerun and no product change was needed.", + "Local CJK font glyph coverage is incomplete in the screenshots. Exact Unicode DOM text and downloaded source bytes were verified; general font coverage, accessibility, other browser/OS behavior and hosted service operation are not claimed.", + "The author actual CLI tests and their output-byte preservation are retained separately. This independent consumer review did not repeat the model/execution suite." + ], + "evidence": { + "archive": "independent-recheck-html.tar.gz", + "bytes": 161908, + "sha256": "67f48f765f20f066ee89268eb54340b108e6bd99655980adc2ce97fd8c3d44ac", + "gitBlob": "6dcad3820246d3e9006e97474ddd5883a9451562", + "members": 46 + } +} diff --git a/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json b/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json index b68e009..2823919 100644 --- a/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json +++ b/docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json @@ -115,9 +115,46 @@ "command": "PYTHONDONTWRITEBYTECODE=1 PYTHONPATH= TMPDIR= -m pytest -q -p no:cacheprovider tests/test_recheck_html.py tests/test_recheck.py" }, "independent_review": { - "status": "in progress", + "status": "accepted", "pre_candidate_contract_sha256": "f6914c4de4e9555527f865adb6979034f828edc4dc8e2652fd2a21a55165f22d", "fixture_builder_sha256": "1392d3346215b66a490d9539612505a6fa8ecadf438822120d847eb8c90523be", - "native_contract": "https://github.com/Jacob-Met/testpilot/issues/37#issuecomment-6064067702" + "native_contract": "https://github.com/Jacob-Met/testpilot/issues/37#issuecomment-6064067702", + "source_head": "93ab250df63fdcc063d33e78812502634d2e985f", + "groups": 5, + "downloads": 5, + "archive": { + "path": "independent-recheck-html.tar.gz", + "bytes": 161908, + "sha256": "67f48f765f20f066ee89268eb54340b108e6bd99655980adc2ce97fd8c3d44ac", + "git_blob": "6dcad3820246d3e9006e97474ddd5883a9451562", + "regular_members": 46 + }, + "browser": { + "name": "Chromium", + "version": "153.0.8010.0", + "requests": 0, + "page_errors": 0, + "dialogs": 0, + "popups": 0 + }, + "consumer_limits": [ + "Two vectors are exact original native CLI outputs; three additional vectors are authored through original SandboxResult.to_dict, not measured test execution.", + "Phone layout and English readability were visually accepted; installed CJK font coverage is incomplete, while Unicode DOM/source/download bytes remain exact.", + "Carriage returns are visible escaped text in the HTML reading view; the download retains exact CRLF artifact bytes." + ], + "concise_disposition": { + "path": "independent-review.json", + "bytes": 8627, + "sha256": "9eb1bf4c34ec16089f6565ac8ae7088d05a2838f9798e7010eb07971da3c05b0", + "git_blob": "2967863eda3490722356d75372250cd7ec048f00" + } + }, + "hosted_evidence": { + "receipt": "hosted-ci.json", + "log": "hosted-ci.log.txt", + "source_head": "93ab250df63fdcc063d33e78812502634d2e985f", + "run": 37807062511, + "job": 113413995657, + "result": "372 passed, 18 subtests passed in 99.77s (0:01:39)" } }