From d2581afd26d1976cdfe4f44c89df49a772524d1e Mon Sep 17 00:00:00 2001 From: Agent Control Runner Date: Fri, 16 Oct 2026 19:28:26 +0900 Subject: [PATCH] =?UTF-8?q?P23-03:=20=E7=94=9F=E6=B4=BB=E3=81=AE=E8=A6=B3?= =?UTF-8?q?=E5=AF=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../p23-03/REPAIR37_PORTABLE_FIXTURE.md | 21 ++++++++++++ .../p23-03/recorded-badge-negative.json.gz | Bin 0 -> 83518 bytes tools/test_p23_life_observation_evidence.py | 30 ++++++++++++++---- 3 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 docs/plans/original-completion-2026-10-02/execution/p23-03/REPAIR37_PORTABLE_FIXTURE.md create mode 100644 tests/fixtures/p23-03/recorded-badge-negative.json.gz diff --git a/docs/plans/original-completion-2026-10-02/execution/p23-03/REPAIR37_PORTABLE_FIXTURE.md b/docs/plans/original-completion-2026-10-02/execution/p23-03/REPAIR37_PORTABLE_FIXTURE.md new file mode 100644 index 0000000..d447291 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p23-03/REPAIR37_PORTABLE_FIXTURE.md @@ -0,0 +1,21 @@ +# Repair37 portable recorded negative fixture + +Candidate starts at `059c2f743be655c11627a2b19d8eab9f86a000a6` under the unchanged P23-03 contract. No Git write or Runner operation was performed. + +`tests/fixtures/p23-03/recorded-badge-negative.json.gz` is copied byte-for-byte from Root's `.runtime/P23-03/build/audit-support/badge-repair37-portable-fixture/PROPOSED_PORTABLE_FIXTURE.json.gz` in the parent worktree directory. SHA256: `17b1596fb1dca0436cd656ac21a9dc754c75b4485335a0aebe533f70e1c1b5ac`; gzip length 83,518 bytes; decompressed length 3,490,211 bytes. Repeated decompression yields identical bytes. + +The bundle records observed source `26f60095bff015efbf7d7cf89b5b0bbab1fec31e`, observed tested commit `dfe0dc44b0b88ace598c1b8bd05283c6084cb081`, and original PID 87103. These are preserved negative-input provenance, not acceptance evidence for 059 or this candidate. Original relative paths below are relative to the preserved `p23-normal-os-26f-r17` evidence root: + +| Payload | Original relative path | Bytes | SHA256 | +| --- | --- | ---: | --- | +| request | `os-pair/B/writer-request-0021/request.json` | 655285 | `f9cd2d5ff9dd63d9cf7ae4a295ccef8eea16f75ac784696dc40906703731e1d8` | +| state | `os-pair/B/writer-stream/objects/724d8fe362ba3e05eddd83c4b7c54da101899df6cd91ae88250feea3d4feff82.json` | 1867011 | `724d8fe362ba3e05eddd83c4b7c54da101899df6cd91ae88250feea3d4feff82` | +| manifest | `os-pair/B/writer-request-0021/review-image-0/manifest.json` | 75726 | `a98782ec1263aba400d542862dd084d2f1dd4cf7a0851cf7f0679867e545a338` | + +The loader verifies all three payload lengths and hashes on every call. Request uses JSON, report and state use the existing typed decoder; state retains the whole-Dictionary check. There is no runtime lookup, fallback, cache, extraction, or skip. + +Local validation: all 146 Python tests pass; AST audit against 059c2f7 confirms 145 test methods are source-byte and AST identical, and the remaining method is AST identical after replacing only the manifest assignment value with the same fixed placeholder. Python syntax compilation passes. A fresh isolated copy of Git-tracked candidate files plus the fixture, without `.runtime`, passes Repair36LabelTests 4/4. Separate corrupt-payload and missing-fixture controls fail with fatal errors. No extra fixture is retained. + +Frozen whole-file SHA256 values remain unchanged: renderer `4bc49a19a38b9c3b4d6bfc243ddf46f1f25469a8273adb5e812911ef9424a1f2`; checker `e41479ae51bccdfab3f31bd348794b441c2f341179bbe33222e2aacdf88f987f`. + +Native and OS checks are still pending. Root's final local run on the new tested commit, raw geometry/native checks, new normal OS run, every indexed-image review, mandatory full 179, formal all 7, integration and ledger remain pending. No Godot or full suite was run by this worker. diff --git a/tests/fixtures/p23-03/recorded-badge-negative.json.gz b/tests/fixtures/p23-03/recorded-badge-negative.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..510726689fdda1f4175850465e7e755c6fd797e4 GIT binary patch literal 83518 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
    R} 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 u|v1H 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 O*|gS*oirOWnZE$JL%fmz literal 0 HcmV?d00001 diff --git a/tools/test_p23_life_observation_evidence.py b/tools/test_p23_life_observation_evidence.py index 2b8b1f1..53b292d 100644 --- a/tools/test_p23_life_observation_evidence.py +++ b/tools/test_p23_life_observation_evidence.py @@ -8,6 +8,7 @@ import contextlib import io import json import hashlib +import gzip import struct import zlib import tempfile @@ -2294,14 +2295,29 @@ class FrameReviewTests(unittest.TestCase): class Repair36LabelTests(unittest.TestCase): - inputs = check.ROOT.parent / '.runtime/P23-03/build/audit-support/badge-repair36-exact-inputs' + inputs = check.ROOT / 'tests/fixtures/p23-03/recorded-badge-negative.json.gz' + + def _recorded_payloads(self): + bundle = json.loads(gzip.decompress(self.inputs.read_bytes())) + expected = { + 'request': (655285, 'f9cd2d5ff9dd63d9cf7ae4a295ccef8eea16f75ac784696dc40906703731e1d8'), + 'state': (1867011, '724d8fe362ba3e05eddd83c4b7c54da101899df6cd91ae88250feea3d4feff82'), + 'manifest': (75726, 'a98782ec1263aba400d542862dd084d2f1dd4cf7a0851cf7f0679867e545a338'), + } + payloads = {} + for name, (length, digest) in expected.items(): + payload = bundle['files'][name]['raw_utf8'].encode('utf-8') + check.require(len(payload) == length and hashlib.sha256(payload).hexdigest() == digest, + 'recorded fixture payload mismatch: ' + name) + payloads[name] = payload + return payloads def recorded(self): - request = json.loads((self.inputs/'bad-native-request/request.json').read_bytes()) - stream = self.inputs.parent.parent/'p23-normal-os-26f-r17/os-pair/B/writer-stream' - capture = next(json.loads(line) for line in (stream/'manifest.jsonl').read_text().splitlines() - if json.loads(line).get('label') == 'writer-request-0021') - return request, check.read_object(stream, capture['state']), check.decode(request['report']) + payloads = self._recorded_payloads() + request = json.loads(payloads['request']) + typed_state = json.loads(payloads['state']) + check.require(typed_state.get('type') == 'Dictionary', 'whole dictionary required') + return request, check.decode(typed_state), check.decode(request['report']) def resolved(self, report): result = copy.deepcopy(report) @@ -2321,7 +2337,7 @@ class Repair36LabelTests(unittest.TestCase): check.compare_badges(state, report) check.compare_actor_geometry(state, report) queue = next(b for b in report['landing_badges'] if b['visible_count'] == 0) - manifest = json.loads((self.inputs/'bad-native-request/review-image-0/manifest.json').read_bytes()) + manifest = json.loads(self._recorded_payloads()['manifest']) original = manifest['rows'][5] self.assertEqual(queue['anchor'], original['local_rect'][:2]) self.assertEqual(original['screenshot_rect'][:2], [642,469])