informed-decision/docs/evidence/2026-10-11-purpose-image-release/execution-bundle.json

67 lines
94 KiB
JSON
Raw Normal View History

{
"kind": "informed-decision.supervised-execution-source-bundle",
"version": 2,
"proposal_id": "INFD-WP-0009-T04/purpose-overlay-v1",
"files": {
"README.md": {
"sha256": "51b56c8ec2f30ad62f6cd09732c0f73dd7b5ebf2081320223c85bbcbf00d15a9",
"content": "# Version2 protected existing-snapshot rescue — prepared, unapproved\n\nOriginal approved source bc6494cd completed drill-backup, then drill-copy failed before creating a local snapshot. Original journal drill-copy remains UNCERTAIN. Metadata-only capture proves exact unchanged main19537920bytes/SHA8756..., WAL0 and privateSHM32768. Source closes SQLite connections explicitly; immutable reads are only for the frozen main snapshot with exact prior digest/size/private identity and no WAL frames. Live source and offline pre/post-admin reads remain mode=ro/query_only WAL-aware; immutable is never a live DB or schema-migration shortcut. Sidecars remain retained, never deleted/checkpointed.\n\nFresh founder acceptance of the exact memo version2 is required before any rescue or continuation. Old version1 acceptance cannot pass authority checks. Root must freshly authenticate actual confirmed person/platform-root ACCEPT at the fixed native origin before each phase; protected receipt checking is supervised bookkeeping, not an authenticated signed/autonomous grant. No new native operation has run in this preparation.\n\nFixed order: drill-copy-rescue-r1 → offline-verify → cleanup-offline → cutover-backup → cutover-copy → release → verify; rollback → rollback-verify only after recorded new release attempt. New rescue-execution-journal-r1.json and rescue-execution-r1.lock coexist with the unchanged original execution-journal.json. They hash-link its exact original approved identity, COMPLETE backup and UNCERTAIN copy attempt IDs/results. No extra original phase or release is allowed; original journal hash is checked before and after each new phase. No old drill-copy retry/overwrite or synthesized completed phase.\n\nBefore rescue, original local drill.sqlite/cutover.sqlite must be absent, restore volume must be absent, and local engine bnt-lap001/current native oldimage7f5/source7db/sealedDeployment+CM/PVC/originalPodUID must match. The old backup admin already exited after uniquely creating the private fixed snapshot path; the only later original access was WAL-aware readonly inspection, with no snapshot writer. Main hash, private identities and absent/zero WAL are checked before/after immutable inspection and copy. Original private SHM is indexing and is retained unchanged. Nonempty WAL, changed hash/metadata, missing failed journal, missing origin or any unverified outcome stops rescue. No new native backup is made for the drill. Binary snapshot bytes flow only into a new0600 localfile, never chat/log/packet. Same rescue-phase retry is refused after any attempted outcome.\n\nOffline verification explicitly consumes COMPLETE drill-copy-rescue-r1 result, not the old UNCERTAIN drill-copy. Existing exact isolated new-volume UID0/CAP_CHOWN initializer, followed by UID10001 readonly/admin/post-admin checks and retained original SHA, remains bounded networknone/readonlyroot/CPU1/128Mi with no host/nativePVC/runtimeconfig/token mounts. Only the disposable copy volume can be removed. Cutover snapshot is the distinct already-scoped new cutover.sqlite; rescue never overwrites drill.sqlite or creates another drill backup.\n\nFour committed owner render Git blobs and helper/case hashes must match exact final source HEAD. ManualApplication rejects any automated configuration including {} or source overrides. Source-pin Application.operation uses server dry-run and UID/resourceVersion/source CAS, Deployment-only/prune=false; no whole-app sync. Rollback dispatch has no failing-candidate Pod/DB dependency; separate recovery proof checks oldimage Ready1/scopedoperation/schema5 retainedlatestDB. All phases including recovery/verification must begin by2026-10-12T23:59:59Z; after expiry obtain a fresh founder decision. No expiry controller or implicit extension.\n\nImage763c/policy9d7c and known inherited fixable MEDIUM remain unchanged; owner T05 dueOct18. Ten installed checks use synthetic transport/native_provider=false and do not fulfill separate actual-provider T04 gate. Preserve original acceptance/backup/fail
},
"actuator.py": {
"sha256": "86b67d1abad6af2a8c49528fe125a5bab944975d3e801826c511ee88846571b2",
"content": "\"\"\"One fixed supervised phase; never run this during source preparation.\"\"\"\nimport argparse\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nimport re\nimport selectors\nimport stat\nimport subprocess\nimport sys\nimport time\n\nif sys.flags.optimize:\n raise SystemExit('optimized interpreter refused')\n\nPHASES = ('drill-copy-rescue-r1', 'offline-verify', 'cleanup-offline',\n 'cutover-backup', 'cutover-copy', 'release', 'verify', 'rollback', 'rollback-verify')\n\n\ndef require(value, reason):\n if not value:\n raise ValueError(reason)\n\n\ndef sha(path):\n digest = hashlib.sha256()\n with Path(path).open('rb') as stream:\n for block in iter(lambda: stream.read(1024**2), b''):\n digest.update(block)\n return digest.hexdigest()\n\n\ndef private(path, directory=False):\n info = Path(path).lstat()\n require((stat.S_ISDIR(info.st_mode) if directory else stat.S_ISREG(info.st_mode))\n and info.st_uid == os.getuid() and stat.S_IMODE(info.st_mode) == (0o700 if directory else 0o600)\n and (directory or info.st_nlink == 1), 'private owned custody required')\n\nROOT = Path(__file__).resolve().parent\nCASE = ROOT.parent\nOWNER = Path('/home/worsch/informed-decision')\nCUSTODIAN = Path('/home/worsch/the-custodian')\nCUSTODY = CUSTODIAN / '.private-backups/20261011-infd-purpose-r1'\nSOCKET = 'unix:///var/run/docker.sock'\nIMAGE = 'forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a'\nVOLUME = 'infd-purpose-r1-restore-20261011'\nMAX_BYTES = 512 * 1024**2\n\n\ndef run(argv, body=None, timeout=90):\n return subprocess.run(argv, input=body, text=True, capture_output=True, timeout=timeout)\n\n\ndef json_result(result):\n try:\n value = json.loads(result.stdout)\n except (ValueError, TypeError):\n raise ValueError('safe phase receipt unavailable; outcome uncertain') from None\n require(result.returncode == 0 and isinstance(value, dict) and value.get('all_checks_pass') is True,\n 'phase did not verify complete; raw output withheld; no retry')\n permitted = {'phase', 'all_checks_pass', 'raw_output_withheld', 'native_approval_verified_by_root',\n 'native_authenticated_grant', 'source_readonly_baseline', 'snapshot_readonly',\n 'snapshot_sha256', 'snapshot_bytes', 'snapshot_file', 'native_parent_private',\n 'native_uid', 'pod_name', 'pod_uid', 'live_readonly_schema_integrity_counts',\n 'live_counts_may_include_concurrent_commits', 'operation_requested', 'source_revision',\n 'resources', 'prune', 'rollout_verified', 'latest_live_database_retained',\n 'client_diff_sha256', 'native_rollout_verified', 'current_schema5_database_retained',\n 'private_copy_verified', 'installed_purpose_checks', 'policy_sha256',\n 'policy_mode', 'policy_uid', 'health_statuses', 'native_provider_probe', 'recovery_verification'}\n require(set(value) <= permitted, 'unexpected output fields withheld')\n from receipt_safety import counts\n for name in ('source_readonly_baseline', 'snapshot_readonly', 'live_readonly_schema_integrity_counts'):\n if name in value:\n counts(value[name])\n for name in ('snapshot_sha256', 'client_diff_sha256'):\n if name in value:\n require(re.fullmatch(r'[a-f0-9]{64}', value[name]) is not None, 'invalid output digest withheld')\n if 'snapshot_bytes' in value:\n require(type(value['snapshot_bytes']) is int and 0 < value['snapshot_bytes'] <= MAX_BYTES,\n 'invalid output size withheld')\n if 'snapshot_file' in value:\n require(value['snapshot_file'] in ('drill.sqlite', 'cutover.sqlite'), 'invalid output file withheld')\n return value\n\n\ndef docker(argv, body=None, timeout=120):\n return run(['docker', '--config', str(CUSTODY / 'empty-docker-config'), '--host', SOCKET] + argv,\n body=body, timeou
},
"authority_journal.py": {
"sha256": "0535975ae631219f90fce7e52f8b54e61e8afd4ef68bb7473863478f0f519f68",
"content": "\"\"\"Supervised receipt bookkeeping, not an authenticated approval provider.\"\"\"\nimport datetime\nimport fcntl\nimport hashlib\nimport json\nimport os\nimport re\nfrom pathlib import Path\nimport stat\nimport uuid\n\nFOUNDER = {'kind': 'person', 'sub': 'uid=platform-root,ou=people,dc=netkingdom,dc=local'}\nMEMO_ID = 'infd-20261011-purpose-overlay-r1'\nPROPOSAL = 'INFD-WP-0009-T04/purpose-overlay-v1'\nPHASES = ('drill-copy-rescue-r1', 'offline-verify', 'cleanup-offline',\n 'cutover-backup', 'cutover-copy', 'release', 'verify', 'rollback', 'rollback-verify')\n\n\ndef require(value, reason):\n if not value:\n raise ValueError(reason)\n\n\ndef sha(path):\n digest = hashlib.sha256()\n with Path(path).open('rb') as stream:\n for block in iter(lambda: stream.read(1024**2), b''):\n digest.update(block)\n return digest.hexdigest()\n\n\ndef private(path, directory=False):\n info = Path(path).lstat()\n require((stat.S_ISDIR(info.st_mode) if directory else stat.S_ISREG(info.st_mode))\n and info.st_uid == os.getuid() and stat.S_IMODE(info.st_mode) == (0o700 if directory else 0o600)\n and (directory or info.st_nlink == 1), 'private owned custody required')\n\n\ndef authority(receipt, outcome, memo_sha, source_revision, phase, now=None):\n \"\"\"Root must freshly verify native outcome at fixed ORIGIN outside this helper.\n\n Receipt files/flags are not signed grants. This function checks the exact\n supervised receipt relation; existing harness/founder authority remains the\n actual permission boundary. It never authenticates a caller as human.\n \"\"\"\n now = now or datetime.datetime.now(datetime.timezone.utc)\n require(phase in PHASES, 'fixed phase required')\n require(receipt.get('proposal_id') == PROPOSAL and receipt.get('memo_id') == MEMO_ID\n and receipt.get('memo_version') == 2 and receipt.get('memo_sha256') == memo_sha\n and receipt.get('source_revision') == source_revision\n and receipt.get('activation') == 'APPROVED'\n and receipt.get('authority_mode') == 'ADMINISTER'\n and receipt.get('target') == 'realm:kubernetes/railiance01/informed-decision'\n and receipt.get('verification_method') == 'root-fixed-origin-native-readback'\n and receipt.get('runtime_authenticated_grant') is False\n and receipt.get('outcome_query') == '/lifecycle/memos/infd-20261011-purpose-overlay-r1/outcomes?version=2',\n 'exact externally verified supervised receipt required')\n verified = datetime.datetime.fromisoformat(receipt['verified_at'].replace('Z', '+00:00'))\n require(verified.tzinfo is not None and 0 <= (now - verified).total_seconds() <= 120,\n 'fresh root native readback required before every phase')\n deadline = datetime.datetime.fromisoformat('2026-10-12T23:59:59+00:00')\n require(now < deadline, 'approved execution window expired')\n require(outcome.get('memo_id') == MEMO_ID and outcome.get('review', {}).get('stale') is False\n and outcome['review'].get('intake_state') == 'ready', 'native review is not ready/current')\n review_id = outcome['review']['memo_id']\n require(review_id == receipt.get('review_memo_id'), 'native review identity changed')\n accepted = [x for x in outcome.get('dispositions', [])\n if x.get('submission_state') == 'confirmed'\n and x.get('disposition', {}).get('verb') == 'accept'\n and x['disposition'].get('memo_version') == 1]\n require(len(accepted) == 1, 'one confirmed founder acceptance required')\n accepted = accepted[0]['disposition']\n require(accepted.get('actor') == FOUNDER and accepted.get('memo_id') == review_id\n and accepted.get('approval_id') == receipt.get('approval_id')\n and accepted.get('id') == receipt.get('disposition_id')\n and accepted.get('at') == receipt.get('accepted_at'), 'exact founder disposition mismatch')\n require(re.fullmatch(r'[a-f0-9-]
},
"execution-plan.json": {
"sha256": "9ce5728a561e6d38f8497201baa2b840d11444a0af8ad6234dfc37428113f258",
"content": "{\n \"kind\": \"informed-decision.supervised-mechanical-release-plan\",\n \"version\": 2,\n \"proposal_id\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"trial_id\": \"infd-purpose-20261011-r1\",\n \"state\": \"prepared-unapproved\",\n \"executor_files\": {\n \"actuator.py\": \"86b67d1abad6af2a8c49528fe125a5bab944975d3e801826c511ee88846571b2\",\n \"authority_journal.py\": \"0535975ae631219f90fce7e52f8b54e61e8afd4ef68bb7473863478f0f519f68\",\n \"native_program.py\": \"788dc99f7edfbfd542a3bb08fc31f60caf4f8fd5d654a6a91b45e197ecff9f91\",\n \"receipt_safety.py\": \"5c54373f2dc4b064008225c186efb1d5afdeec36d15350bda0a12ded97602d1b\"\n },\n \"case_files\": {\n \"change_guard.py\": \"f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be\",\n \"sqlite_readonly.py\": \"9093c64f7f0e39b249da9fefdf5aaf4e4258bc31e7a27fd888479ce329a20509\",\n \"preflight-inputs.json\": \"03bb4b42fe1aa51b846e957a9e23926fae72f02a2cb5e297368047fb25c17e9b\",\n \"sealed-live-deployment.json\": \"d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362\",\n \"sealed-native-dependencies.json\": \"042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369\",\n \"candidate-deployment.json\": \"722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e\",\n \"rollback-deployment.json\": \"39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121\",\n \"check_installed.py\": \"a34a51be9c9f2b16a06a88173b5c6c492c9957fe021cf412a86a1737730640ad\",\n \"published-verification.json\": \"e59ab44b1aaf28140509593aae4ab9b97ab62cc8b589e3f1552bac78618896dd\",\n \"security-summary.json\": \"0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44\",\n \"original-approved-drill-backup.json\": \"025dddf1e93936f31e98b9fbfa84aa2bdaaa33573f9d3b0e32d947fd286b170e\",\n \"original-approved-drill-copy-failure.json\": \"fb78fb2e8c3d416490cf0f559b2f5bd019406a490f8f5fa6f5932421f0b1ac56\",\n \"original-journal-sanitized-anchor.json\": \"988fca61ad8eb9d43d93390a835323f952196bbce8cc0bde51c42a17d411f454\"\n },\n \"owner_source_files\": {\n \"deploy/lifecycle/admission.candidate.json\": \"92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55\",\n \"deploy/lifecycle/service.candidate.json\": \"38b78b9cbee5ade7750a58d5156ca4c5773352e947acb304ee714b59e749ceb4\",\n \"deploy/lifecycle/kustomization.yaml\": \"1bbce81bc6758434354157f8601534320c5d0290587908fd15a6d25e3fa57f47\",\n \"deploy/lifecycle/registries.candidate.json\": \"9bad6db5fbc2178d31b04120016a41830c3552fbb9e2517b718f9bbe87cf649e\"\n },\n \"candidate_image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:763c36402c8be7cc4c1bd1a61623d1aff9116d52241877425b45a7018cc0883a\",\n \"prior_image\": \"forgejo.coulomb.social/coulomb/informed-decision@sha256:7f5c6cb29c9f70a026bfe30e72934274ddc69261676cf6d476f81dd32812d173\",\n \"source_revision\": \"must-be-exact-final-owner-HEAD-with-approved-four-Git-blobs\",\n \"phases\": [\n \"drill-copy-rescue-r1\",\n \"offline-verify\",\n \"cleanup-offline\",\n \"cutover-backup\",\n \"cutover-copy\",\n \"release\",\n \"verify\",\n \"rollback\",\n \"rollback-verify\"\n ],\n \"authorization\": \"fresh externally authenticated root fixed-origin native readback before each phase; exact confirmed platform-root disposition and current packet SHA/source commit; receipt bookkeeping is not an autonomous signed grant\",\n \"execute_by\": \"2026-10-12T23:59:59Z\",\n \"raw_output_withheld\": true,\n \"native_data_or_workload_action_executed\": false,\n \"deadline_semantics\": \"All phases including verification/recovery must begin before execute_by. No extension or automatic emergency grant; beyond deadline stop and obtain a fresh founder decision. Complete the bounded drill and rollout early enough to allow recovery within the window.\",\n \"recovery\": {\n \"original_anchor\": {\n \"original_journal_sha256\": \"d187b02d98d6e97429fe20b4fbe1d309a6c6c4b55232b4ae13ac39873039f1c1\",\n \"phase_metadata\": {\n \"
},
"native_program.py": {
"sha256": "788dc99f7edfbfd542a3bb08fc31f60caf4f8fd5d654a6a91b45e197ecff9f91",
"content": "\"\"\"Fixed version2 recovery remote source; requires fresh exact acceptance.\"\"\"\nPROGRAM = '\\nimport copy,datetime,hashlib,json,os,re,subprocess,sys\\nif sys.flags.optimize:raise RuntimeError(\\'optimized interpreter refused\\')\\npayload=json.loads(__PAYLOAD__)\\nexec(__GUARD__)\\nphase=payload[\\'phase\\']\\nif phase not in (\\'cutover-backup\\',\\'drill-copy-rescue-r1\\',\\'cutover-copy\\',\\'release\\',\\'verify\\',\\'rollback\\',\\'rollback-verify\\'):raise ValueError(\\'fixed native phase required\\')\\ndeadline=datetime.datetime.fromisoformat(\\'2026-10-12T23:59:59+00:00\\')\\ndef require(value,reason):\\n if not value:raise ValueError(reason)\\nrequire(datetime.datetime.now(datetime.timezone.utc)<deadline,\\'execution window expired\\')\\nenv={**os.environ,\\'KUBECONFIG\\':\\'/etc/rancher/k3s/k3s.yaml\\'}\\ndef run(argv,body=None,timeout=90):\\n return subprocess.run(argv,input=body,text=True,capture_output=True,timeout=timeout,env=env)\\ndef read(kind,name,namespace):\\n result=run([\\'kubectl\\',\\'get\\',kind,name,\\'-n\\',namespace,\\'-o\\',\\'json\\'])\\n require(result.returncode==0,\\'fixed metadata read refused\\')\\n return json.loads(result.stdout)\\nsealed=payload[\\'sealed\\']; dependencies=payload[\\'dependencies\\']\\nlive=read(\\'deployment\\',\\'informed-decision\\',\\'informed-decision\\')\\ncm=read(\\'configmap\\',\\'informed-decision-runtime-6c221878d051\\',\\'informed-decision\\')\\npvc=read(\\'pvc\\',\\'informed-decision-data\\',\\'informed-decision\\')\\ncheck_dependencies(cm,pvc,dependencies)\\napp=read(\\'application\\',\\'informed-decision\\',\\'argocd\\')\\nrequire(app[\\'metadata\\'][\\'uid\\']==\\'499868f2-eabc-4df4-ae31-b89ce58d750d\\',\\'Application UID changed\\')\\nrequire(app[\\'spec\\'][\\'source\\'][\\'repoURL\\']==\\'https://forgejo.coulomb.social/coulomb/informed-decision.git\\'\\n and app[\\'spec\\'][\\'source\\'][\\'path\\']==\\'deploy/lifecycle\\'\\n and app[\\'spec\\'][\\'destination\\']=={\\'namespace\\':\\'informed-decision\\',\\'server\\':\\'https://kubernetes.default.svc\\'}\\n and app[\\'spec\\'].get(\\'syncPolicy\\',{}).get(\\'automated\\') is None\\n and set(app[\\'spec\\'][\\'source\\'])=={\\'repoURL\\',\\'path\\',\\'targetRevision\\'} and not app[\\'spec\\'].get(\\'sources\\'),\\'Application owner/scope changed\\')\\nexpected=copy.deepcopy(sealed)\\nif phase==\\'verify\\':expected[\\'spec\\'][\\'template\\'][\\'spec\\'][\\'containers\\'][0][\\'image\\']=CANDIDATE\\nif phase==\\'rollback\\':\\n image=live[\\'spec\\'][\\'template\\'][\\'spec\\'][\\'containers\\'][0][\\'image\\']\\n require(image in (BASE,CANDIDATE),\\'rollback image is outside same-schema pair\\')\\n expected[\\'spec\\'][\\'template\\'][\\'spec\\'][\\'containers\\'][0][\\'image\\']=image\\ncheck_current(live,expected)\\nif phase!=\\'rollback\\':\\n require(live.get(\\'status\\',{}).get(\\'readyReplicas\\')==1\\n and live[\\'status\\'].get(\\'updatedReplicas\\')==1\\n and live[\\'status\\'].get(\\'observedGeneration\\')==live[\\'metadata\\'][\\'generation\\'],\\'service not Ready1\\')\\ntarget=payload[\\'source_revision\\'] if phase==\\'verify\\' else \\'7db8485ffecdebfabd77a9daec085553c74bf0bf\\'\\nif phase==\\'rollback\\':require(app[\\'spec\\'][\\'source\\'][\\'targetRevision\\'] in (target,payload[\\'source_revision\\']),\\'rollback source is outside pair\\')\\nelse:require(app[\\'spec\\'][\\'source\\'][\\'targetRevision\\']==target,\\'unexpected source pin\\')\\nresult={\\'phase\\':phase,\\'all_checks_pass\\':False,\\'raw_output_withheld\\':True,\\n \\'native_approval_verified_by_root\\':payload[\\'approval\\'],\\'native_authenticated_grant\\':False}\\ntry:\\n if phase in (\\'cutover-backup\\',\\'drill-copy-rescue-r1\\',\\'cutover-copy\\',\\'release\\',\\'verify\\',\\'rollback-verify\\'):\\n podlist=run([\\'kubectl\\',\\'get\\',\\'pods\\',\\'-n\\',\\'informed-decision\\',\\'-l\\',\\'app.kubernetes.io/name=informed-decision\\',\\'-o\\',\\'json\\'])\\n require(podlist.returncode==0,\\'pod metadata query refused\\')\\n pods=[p for p in json.loads(podlist.stdout)[\\'item
},
"packet-refinement.json": {
"sha256": "31b718a49ed475865edea1b2f6d749a50a3e66f56dbc4fa9b5ff1158acaef563",
"content": "{\n \"proposal_id\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"trial_id\": \"infd-purpose-20261011-r1\",\n \"memo_version\": 2,\n \"original_approved_source\": \"bc6494cd1b290783ef3aef0763bf28d1deabf4b0\",\n \"original_packet_archive\": \"initial-approved-bc6494cd\",\n \"original_approved_submission_digest\": \"sha256:fd78d486174670e12efb2f812bac02e68f294e7791b9302d0d458c053240f5a9\",\n \"original_failed_journal_sha256\": \"d187b02d98d6e97429fe20b4fbe1d309a6c6c4b55232b4ae13ac39873039f1c1\",\n \"original_old_uncertain_retry\": false,\n \"rescue_phase\": \"drill-copy-rescue-r1\",\n \"refinements\": [\n \"explicitclose live WAL-aware inspector\",\n \"immutable fixed hash-bound frozen snapshot allowing retained staleSHM only with zeroWAL\",\n \"new separately linked journal and distinct named rescue-copy attempt\",\n \"remaining phase input explicitly rescued result\"\n ],\n \"new_native_actions\": false,\n \"new_founder_approval\": false\n}\n"
},
"receipt_safety.py": {
"sha256": "5c54373f2dc4b064008225c186efb1d5afdeec36d15350bda0a12ded97602d1b",
"content": "\"\"\"Only structural count/hash receipts can leave the private execution phase.\"\"\"\ndef counts(value):\n if (set(value) != {'schema_version', 'lifecycle', 'outbox', 'submissions', 'integrity',\n 'read_only_pre_open', 'store_constructed'}\n or value['schema_version'] != 5 or value['integrity'] != 'ok'\n or value['read_only_pre_open'] is not True or value['store_constructed'] is not False\n or set(value['lifecycle']) != {'records', 'events', 'pending'}\n or not set(value['outbox']) <= {'pending', 'delivered', 'blocked'}\n or not set(value['submissions']) <= {'prepared', 'in_flight', 'confirmed', 'unresolved'}):\n raise ValueError('count-only receipt shape/state refused; values withheld')\n for group in ('lifecycle', 'outbox', 'submissions'):\n if any(type(number) is not int or number < 0 or number > 10**12\n for number in value[group].values()):\n raise ValueError('count-only receipt values refused')\n return value\n"
},
"root-authority-receipt-template.json": {
"sha256": "db28d03e3c46b4de52dc404c912054483f4a2aaa6c4f476b7892cab2a5f408d4",
"content": "{\n \"proposal_id\": \"INFD-WP-0009-T04/purpose-overlay-v1\",\n \"memo_id\": \"infd-20261011-purpose-overlay-r1\",\n \"memo_version\": 2,\n \"memo_sha256\": null,\n \"source_revision\": null,\n \"activation\": \"PENDING\",\n \"authority_mode\": \"ADMINISTER\",\n \"target\": \"realm:kubernetes/railiance01/informed-decision\",\n \"verification_method\": \"root-fixed-origin-native-readback\",\n \"runtime_authenticated_grant\": false,\n \"verified_at\": null,\n \"accepted_at\": null,\n \"review_memo_id\": null,\n \"approval_id\": null,\n \"disposition_id\": null,\n \"native_outcome_sha256\": null,\n \"executor_plan_sha256\": \"4d5530e7418f638b10ccff0e0d9a0727adc64a7f3a45907f6deb5739ad2adc85\",\n \"outcome_query\": \"/lifecycle/memos/infd-20261011-purpose-overlay-r1/outcomes?version=2\",\n \"review_memo_version\": 1\n}\n"
},
"test_execution.py": {
"sha256": "b250441282513862eeb990b18d01bb1eafe787b934d670a75a2bfaa9f5cfb89c",
"content": "\"\"\"Synthetic custody/transport tests. No native data, Docker or cluster action.\"\"\"\nimport copy\nimport datetime\nimport io\nimport json\nimport os\nfrom pathlib import Path\nimport subprocess\nimport sys\nimport tempfile\nimport unittest\nfrom unittest.mock import patch\nfrom contextlib import redirect_stdout\n\nimport actuator\nfrom authority_journal import Journal, authority\nfrom native_program import PROGRAM\nfrom receipt_safety import counts\n\nCASE = Path('/home/worsch/informed-decision/docs/evidence/2026-10-11-purpose-image-release')\nNOW = datetime.datetime(2026, 10, 11, 2, 0, tzinfo=datetime.timezone.utc)\nREVISION = 'e' * 40\nCOUNT = {'schema_version': 5, 'integrity': 'ok', 'read_only_pre_open': True, 'store_constructed': False,\n 'lifecycle': {'records': 3, 'events': 8, 'pending': 1},\n 'outbox': {'pending': 2, 'delivered': 10}, 'submissions': {'confirmed': 1, 'unresolved': 1}}\n\n\ndef accepted():\n approval = '11111111-1111-4111-8111-111111111111'\n review = 'review-22222222-2222-4222-8222-222222222222'\n disposition = 'disp-33333333-3333-4333-8333-333333333333'\n receipt = {'proposal_id': 'INFD-WP-0009-T04/purpose-overlay-v1',\n 'memo_id': 'infd-20261011-purpose-overlay-r1', 'memo_version': 2,\n 'memo_sha256': 'a' * 64, 'source_revision': REVISION, 'activation': 'APPROVED',\n 'authority_mode': 'ADMINISTER', 'target': 'realm:kubernetes/railiance01/informed-decision',\n 'verification_method': 'root-fixed-origin-native-readback', 'runtime_authenticated_grant': False, 'outcome_query': '/lifecycle/memos/infd-20261011-purpose-overlay-r1/outcomes?version=2',\n 'verified_at': '2026-10-11T02:00:00Z', 'accepted_at': '2026-10-11T01:59:00Z',\n 'review_memo_id': review, 'approval_id': approval, 'disposition_id': disposition}\n outcome = {'memo_id': receipt['memo_id'], 'review': {'memo_id': review, 'stale': False, 'intake_state': 'ready'},\n 'dispositions': [{'approval_id': None, 'submission_state': 'confirmed',\n 'disposition': {'verb': 'accept', 'memo_version': 1, 'memo_id': review,\n 'approval_id': approval, 'id': disposition,\n 'actor': {'kind': 'person', 'sub': 'uid=platform-root,ou=people,dc=netkingdom,dc=local'},\n 'at': receipt['accepted_at']}}]}\n return receipt, outcome\n\n\nclass AuthorityAndCustody(unittest.TestCase):\n def test_exact_nested_founder_receipt_not_top_level_approval(self):\n receipt, outcome = accepted()\n result = authority(receipt, outcome, 'a' * 64, REVISION, 'drill-copy-rescue-r1', NOW)\n self.assertEqual(result['approval_id'], receipt['approval_id'])\n\n def test_pending_stale_wrong_actor_version_and_binding_refuse(self):\n mutations = [lambda r, o: r.update(activation='PENDING'),\n lambda r, o: r.update(memo_sha256='changed'),\n lambda r, o: r.update(source_revision='changed'),\n lambda r, o: r.update(target='other'),\n lambda r, o: r.update(verified_at='2026-10-11T01:00:00Z'),\n lambda r, o: r.update(verification_method='caller-asserted'),\n lambda r, o: r.update(runtime_authenticated_grant=True),\n lambda r, o: o['review'].update(stale=True),\n lambda r, o: o['review'].update(intake_state='pending'),\n lambda r, o: o['dispositions'][0].update(submission_state='unresolved'),\n lambda r, o: o['dispositions'][0]['disposition'].update(memo_version=3),\n lambda r, o: o['dispositions'][0]['disposition'].update(actor={'kind': 'agent', 'sub': 'platform-root'}),\n lambda r, o: o['dispositions'].append(copy.deepcopy(o['dispositions'][0]))]\n for mutate in mutations:\n with self.subTe
},
"test_rescue_execution.py": {
"sha256": "8ecbb0260a87a7a12bd5c4c9678fb2a9d43a4ea7322129734bc21f8ee383cd70",
"content": "\"\"\"Synthetic recovery guards; no actual private journal/DB/native command.\"\"\"\nimport copy\nimport datetime\nimport hashlib\nimport json\nimport os\nfrom pathlib import Path\nimport tempfile\nimport unittest\nfrom authority_journal import Journal, authority, original_anchor\nfrom test_execution import accepted, NOW, REVISION\n\nROOT=Path(__file__).parent\nPLAN=json.loads((ROOT/'execution-plan.json').read_text())\nCASE=ROOT.parent\nBACKUP=json.loads((CASE/'original-approved-drill-backup.json').read_text())\n\nclass RescueGuards(unittest.TestCase):\n def original(self,parent):\n original={'identity':PLAN['recovery']['original_identity'],'phases':{}}\n for name,metadata in PLAN['recovery']['original_anchor']['phase_metadata'].items():\n original['phases'][name]={**metadata,'result':BACKUP if name=='drill-backup' else {'all_checks_pass':False}}\n p=parent/'execution-journal.json';p.write_text(json.dumps(original));os.chmod(p,0o600)\n anchor=copy.deepcopy(PLAN['recovery']['original_anchor']);anchor['original_journal_sha256']=hashlib.sha256(p.read_bytes()).hexdigest()\n return p,original,anchor\n\n def test_exact_original_failed_journal_is_linked_without_mutation(self):\n with tempfile.TemporaryDirectory() as directory:\n parent=Path(directory);os.chmod(parent,0o700);p,original,expected=self.original(parent);before=p.read_bytes()\n anchor=original_anchor(parent,expected,BACKUP,original['identity'])\n j=Journal(parent,{'fixture':True,'recovery_anchor':anchor});j.start('drill-copy-rescue-r1',{})\n self.assertEqual(p.read_bytes(),before);self.assertEqual(j.path.name,'rescue-execution-journal-r1.json')\n j.finish('drill-copy-rescue-r1',{'all_checks_pass':True});j.start('offline-verify',{})\n self.assertEqual(p.read_bytes(),before);j.close()\n\n def test_original_missing_uncertain_recreated_attempt_or_rollout_refuse(self):\n for defect in ('missing','complete','attempt','rollout','hash'):\n with self.subTest(defect=defect),tempfile.TemporaryDirectory() as directory:\n parent=Path(directory);os.chmod(parent,0o700);p,o,e=self.original(parent)\n if defect=='missing':o['phases'].pop('drill-copy')\n elif defect=='complete':o['phases']['drill-copy']['state']='COMPLETE'\n elif defect=='attempt':o['phases']['drill-copy']['attempt_id']='different'\n elif defect=='rollout':o['phases']['release']={'state':'RUNNING'}\n if defect!='hash':\n p.write_text(json.dumps(o));e['original_journal_sha256']=hashlib.sha256(p.read_bytes()).hexdigest()\n else:e['original_journal_sha256']='0'*64\n with self.assertRaises((ValueError,KeyError)):original_anchor(parent,e,BACKUP,PLAN['recovery']['original_identity'])\n\n def test_rescue_replay_refused_and_old_phase_never_admitted(self):\n with tempfile.TemporaryDirectory() as directory:\n os.chmod(directory,0o700);j=Journal(directory,{'fixture':True})\n with self.assertRaises(ValueError):j.start('drill-copy',{})\n with self.assertRaises(ValueError):j.start('drill-backup',{})\n with self.assertRaises(ValueError):j.start('offline-verify',{})\n j.start('drill-copy-rescue-r1',{});j.finish('drill-copy-rescue-r1',{'all_checks_pass':False})\n with self.assertRaises(ValueError):j.start('drill-copy-rescue-r1',{})\n with self.assertRaises(ValueError):j.start('offline-verify',{})\n j.close()\n\n def test_new_authority_requires_version2_old_approval_refuses(self):\n receipt,outcome=accepted();receipt['memo_version']=2;outcome['dispositions'][0]['disposition']['memo_version']=1\n authority(receipt,outcome,'a'*64,REVISION,'drill-copy-rescue-r1',NOW)\n receipt['memo_version']=1\n with self.assertRaises(ValueError):authority(receipt,outcome,'a'*64,REVISION,'drill-copy-rescue-r1',NOW)\n with s
},
"validation.json": {
"sha256": "6f3379f63968e9a0294aba7b5b57ea4662adda6b1fa1b37eff11c2f72a58931f",
"content": "{\n \"state\": \"prepared-unapproved-version2\",\n \"executor_tests\": 21,\n \"snapshot_mock_tests\": 5,\n \"native_actions\": false,\n \"database_admin_commands_in_preparation\": false,\n \"old_journal_modified\": false,\n \"old_failed_phase_retried\": false,\n \"owner_head_unchanged\": \"bc6494cd1b290783ef3aef0763bf28d1deabf4b0\"\n}\n"
}
},
"native_execution": false,
"case_evidence": {
"original-approved-drill-backup.json": {
"sha256": "025dddf1e93936f31e98b9fbfa84aa2bdaaa33573f9d3b0e32d947fd286b170e",
"content": "{\"phase\": \"drill-backup\", \"all_checks_pass\": true, \"raw_output_withheld\": true, \"native_approval_verified_by_root\": {\"approval_id\": \"ec92806a-9aa6-494f-a76b-0385f39ba609\", \"disposition_id\": \"disp-0968373d-294d-42bf-8979-36a7c5dd38cf\", \"accepted_at\": \"2026-10-11T02:34:20Z\", \"verified_at\": \"2026-10-11T02:38:41.777949+00:00\"}, \"native_authenticated_grant\": false, \"source_readonly_baseline\": {\"schema_version\": 5, \"lifecycle\": {\"records\": 15, \"events\": 50, \"pending\": 0}, \"outbox\": {\"delivered\": 320}, \"submissions\": {\"confirmed\": 41}, \"integrity\": \"ok\", \"read_only_pre_open\": true, \"store_constructed\": false}, \"snapshot_readonly\": {\"schema_version\": 5, \"lifecycle\": {\"records\": 15, \"events\": 50, \"pending\": 0}, \"outbox\": {\"delivered\": 320}, \"submissions\": {\"confirmed\": 41}, \"integrity\": \"ok\", \"read_only_pre_open\": true, \"store_constructed\": false}, \"snapshot_sha256\": \"8756cf825df9e7b5b74bb4a0106a5027f5cff2c59ff45d7b48eed8522a7d33f3\", \"snapshot_bytes\": 19537920, \"snapshot_file\": \"drill.sqlite\", \"native_parent_private\": true, \"native_uid\": 10001, \"pod_name\": \"informed-decision-f557556df-mwpz7\", \"pod_uid\": \"e8561ae0-4b09-4455-924d-64c27b625fc7\"}\n"
},
"original-approved-drill-copy-failure.json": {
"sha256": "fb78fb2e8c3d416490cf0f559b2f5bd019406a490f8f5fa6f5932421f0b1ac56",
"content": "{\"all_checks_pass\": false, \"phase\": \"drill-copy\", \"failure_class\": \"ValueError\", \"failure\": \"fixed phase outcome uncertain; original evidence retained; no retry\", \"raw_output_withheld\": true}\n"
},
"original-journal-sanitized-anchor.json": {
"sha256": "988fca61ad8eb9d43d93390a835323f952196bbce8cc0bde51c42a17d411f454",
"content": "{\n \"original_journal_sha256\": \"d187b02d98d6e97429fe20b4fbe1d309a6c6c4b55232b4ae13ac39873039f1c1\",\n \"phase_metadata\": {\n \"drill-backup\": {\n \"state\": \"COMPLETE\",\n \"attempt_id\": \"d63182a7-e1a5-4e8e-a5f1-2bf3333cf153\",\n \"started_at\": \"2026-10-11T02:38:45.310653+00:00\"\n },\n \"drill-copy\": {\n \"state\": \"UNCERTAIN\",\n \"attempt_id\": \"329ef190-1692-4246-b953-e6a59664abcc\",\n \"started_at\": \"2026-10-11T02:39:50.198740+00:00\"\n }\n },\n \"frozen_backup_receipt_sha256\": \"025dddf1e93936f31e98b9fbfa84aa2bdaaa33573f9d3b0e32d947fd286b170e\",\n \"snapshot_sha256\": \"8756cf825df9e7b5b74bb4a0106a5027f5cff2c59ff45d7b48eed8522a7d33f3\",\n \"snapshot_bytes\": 19537920,\n \"off_cluster_file_exists\": false,\n \"old_uncertain_retry_authorized\": false\n}\n"
}
}
}