From f3bb68abcaeaa7bab4ecb86709d1a5ea32c0223e Mon Sep 17 00:00:00 2001 From: EHotwagner Date: Mon, 5 Oct 2026 08:22:00 +0200 Subject: [PATCH] Fence consumed fourth seed root and select fresh v5 --- docs/roadmaps/barc-01-useful-play.md | 14 ++++++++++++++ .../helper/mapping_profile.py | 8 ++++---- .../helper/test_mapping_profile.py | 6 +++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/roadmaps/barc-01-useful-play.md b/docs/roadmaps/barc-01-useful-play.md index 262248f..af7fdc9 100644 --- a/docs/roadmaps/barc-01-useful-play.md +++ b/docs/roadmaps/barc-01-useful-play.md @@ -609,3 +609,17 @@ A fresh sealed copy source and separate admission remain required; this mapping change supplies no census exception or runtime authority. Final source rereads, complete destination custody and immutable directory finalization remain unproved. Native useful play remains 0/6. + +### Fourth copy cancellation and pending generation fence (2026-10-05) + +Root cancelled the owned fourth copy after a source audit found a missing +immediate refusal when the same pending PID changed generation between two +incomplete classification sweeps. The consumed v4 attempt remains failed, with +no completion receipt. Its source and partial output remain preserved. + +The next finite mapping selects fresh v5 and rejects all four consumed roots; +117 portable controls passed. The private census successor fences pending PID +generation changes immediately and retains both the original unresolved +generation and later hard-failure evidence. Its separately reviewed seal and +exact admission remain prerequisites for another copy. This source correction +grants no runtime authority; native useful play remains 0/6. diff --git a/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/mapping_profile.py b/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/mapping_profile.py index cc3eac4..c3dfd91 100644 --- a/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/mapping_profile.py +++ b/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/mapping_profile.py @@ -28,13 +28,13 @@ def admitted_pins(p): HISTORICAL_PROFILE_SHA='b2d3dd34b88a838a073fa64aa514681c01f1dfee0bd4388fea8441a87bc93dcf' BASELINE_SHA='11224181c3b33d6894a35cc7e32f655b2087442e4ba4958ef7700dc2c333cad0' HISTORICAL_ROWS_SHA='8b5d4e2c59978b2e5f0d3d6457a3276935de52859279a0047102017ebd11324c' -RESULT_ROWS_SHA='6c7bc4e89e6e23f6a56b310afc5983fd5a9cbef3cb2f98f1ae4796b4e81a7a79' -SUCCESSOR_BASE_ALLOWED_SHA='75e212e74bb1840d2e0671141e2c477d14bf5b0b5527c88dbc07e6748dce617d' -SUCCESSOR_MAPPING_DELTA_SHA='86090cd171d9e9dddabf1b8dfec6d8a81b1245069b20e05bd4b3356c415ef85b' +RESULT_ROWS_SHA='0aae6afd32d312b7aa271cf7973b3867c7cc5c8b80c73d85185653de20550227' +SUCCESSOR_BASE_ALLOWED_SHA='b22c2afdb46bb6534d03a76afa9103da9fc39abccdd41cb3b4bc4f40b0f6ab93' +SUCCESSOR_MAPPING_DELTA_SHA='b8db16f596da16a8375f5f632b53dd96abf69e91f72099e6cb0a247d22ca59f3' RETAINED_PHYSICAL_ROWS_SHA='33f0adb4e40baf2da15d1794e46311b66ecb1bbb2c80cf517ce98d2f83d0d07a' BASE='/home/developer/.local/share/fs-gg-private' HISTORICAL_DATA=BASE+'/bar-stock-policy968-private-input-successor-20261003/packet/runtime-data' -DATA=BASE+'/bar-native-seed-data-preparation-20261005-v4/packet/runtime-data' +DATA=BASE+'/bar-native-seed-data-preparation-20261005-v5/packet/runtime-data' HOST=BASE+'/bar-detach-compiled-qualification-root-operation-20261005-v1/native-host/Broker.NativeProof' POLICY=BASE+'/bar-native-seed-policy-adoption-root-operation-20261005-v1/placement/managed/RuntimeEvidence' OLD_HOST='/tmp/bar-stock-fb00-managed-artifact-preparation-synthetic-pdb-successor-20261004/native-host/Broker.NativeProof' diff --git a/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/test_mapping_profile.py b/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/test_mapping_profile.py index df8bb8a..d4c59fc 100644 --- a/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/test_mapping_profile.py +++ b/tests/Broker.NativeProof/RuntimeEvidence/fixtures/seed-attribution-helper/helper/test_mapping_profile.py @@ -44,10 +44,10 @@ def digest(value): def validate(self,p,digest): with patch.object(m,'semantic_digest',side_effect=digest):return m.validate_schema(p) def test_independent_golden_delta(self): - self.assertEqual(m.semantic_digest(self.delta),'86090cd171d9e9dddabf1b8dfec6d8a81b1245069b20e05bd4b3356c415ef85b');self.assertEqual(len(self.projection),458);self.assertEqual(len(self.base),145);self.assertEqual(sum(x['kind']=='clrPE'for x in self.projection),313) - def test_consumed_v1_v2_v3_data_paths_refuse(self): + self.assertEqual(m.semantic_digest(self.delta),'b8db16f596da16a8375f5f632b53dd96abf69e91f72099e6cb0a247d22ca59f3');self.assertEqual(len(self.projection),458);self.assertEqual(len(self.base),145);self.assertEqual(sum(x['kind']=='clrPE'for x in self.projection),313) + def test_consumed_v1_v2_v3_v4_data_paths_refuse(self): p,digest=self.fixture();old='/home/developer/.local/share/fs-gg-private/bar-native-seed-data-preparation-20261005-v1/packet/runtime-data' - for consumed in (old,old.replace('-v1/','-v2/'),old.replace('-v1/','-v3-clr10/')): + for consumed in (old,old.replace('-v1/','-v2/'),old.replace('-v1/','-v3-clr10/'),old.replace('-v1/','-v4/')): q=copy.deepcopy(p);q['dataRoot']=consumed;self.denied(self.validate,q,digest) q=copy.deepcopy(p);entry=next(x for x in q['mappingDelta']['added']if x['role']=='highBarPlugin') for field in ('declaredPath','canonicalPath','baseAllowedKey'):entry['row'][field]=entry['row'][field].replace(m.DATA,old)