Record verified native offline startup and precise KEY39 approval scope
This commit is contained in:
parent
c034f59bef
commit
16ab1bb490
11 changed files with 531 additions and 43 deletions
|
|
@ -0,0 +1,30 @@
|
|||
[
|
||||
{
|
||||
"id": "165e29df-5a58-4314-9ec7-f8420eff72f1",
|
||||
"created_at": "2026-10-17T11:32:33.188005Z",
|
||||
"event_type": "note",
|
||||
"summary": "Published one KEY-WP-0039 T02 Custodian coordinator finalization-review paragraph in exact owner commit40de616e078906e04c692edf7cb7a8bfbc07b5ea. All3taskblocks/frontmatter/UUIDs/dependencies unchanged: T01done,T02wait,T03done; parentactive. Existing source acceptance/registration go/standing attended rule preserved; existing KEY38 then coding-client admission/readiness then attended negative/revoke/cleanup sequence retained, no native acceptance inferred. Required consistency passed; restored generated brief writeback. Normal rmgr sync refused unrelated grandfathered ADHOC-2026-09-27-T02 UUID; no historical identity mutation. Canonical primary railiance01 receiver applied exact published commit with acknowledge_retirements=false; forge, task bindings and clean owner index/worktree independently verified. No credential/native/registration action. Evidence docs/changes/netkingdom-target-2026-10-17/key39-finalization-owner-followthrough-r1/.",
|
||||
"author": "codex"
|
||||
},
|
||||
{
|
||||
"id": "2f769541-08ed-471c-8ebf-767ae3be7322",
|
||||
"created_at": "2026-10-17T06:13:28.564115Z",
|
||||
"event_type": "note",
|
||||
"summary": "Orchestrated precondition work for KEY-WP-0039 (2026-10-17). Source only: ops-warden original-intent interface (a45cf47); railiance-platform owner returns (0a9617a); ops-mason attended checklist (20b92e2); net-kingdom NK-WP-0048 split T24-T31: six adapter candidates, restart fixtures, T15 reconcile source and the 1.2 descriptor composer, 98 tests passing. Remaining gates are owner decisions and reviews and founder-attended native runs. KEY-WP-0039-T02 stays wait.",
|
||||
"author": "claude-code"
|
||||
},
|
||||
{
|
||||
"id": "dae4fa30-0e5d-4570-b914-0d7fc5a4af7c",
|
||||
"created_at": "2026-10-17T02:25:21.598000Z",
|
||||
"event_type": "note",
|
||||
"summary": "KEY-WP-0039 checked 2026-10-17: source complete (T01/T03 done; runner 17/17 tests pass). T02 is live execution only and stays wait: KEY-WP-0038-T02/T03 wait on NK-WP-0048-T06 (13 deps), plus owner returns in docs/proposals/2026-10-11-key39-next-execution-prerequisites.json and a founder attended native go. No live or credential action taken.",
|
||||
"author": "claude-code"
|
||||
},
|
||||
{
|
||||
"id": "d8b71df0-5002-4ded-b688-5973d33e752b",
|
||||
"created_at": "2026-10-10T11:20:52.589984Z",
|
||||
"event_type": "note",
|
||||
"summary": "KEY-WP-0039-T01 done (railiance-platform agreed the case list). Probe packet docs/openbao-negative-probe-clients.yaml and attended script scripts/openbao_negative_probe.py with 7 tests (bae9f85). Corrections sent back: the expired case needs an otherwise-valid expiry client, and the claim probes pin the audience. T02 waits on re-agreement and an attended registry session.",
|
||||
"author": "claude-code"
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"id": "caafe4be-4f68-47b4-9567-316d47b94992",
|
||||
"title": "Live registration go for the secrets-engine-openbao client",
|
||||
"description": "KEY-WP-0037-T03. The custody boundary is approved (632a8893). Registration still needs an exact reviewed revision, image digest, a config preservation test, synthetic issuance and denial verification, and this separate live go. Resolving this decision is that live go. Opening it does not change a deployment, register the client, or generate a secret.",
|
||||
"rationale": "Live go: register secrets-engine-openbao on the deployed image 6f79a2af via the NK-WP-0046 exact-match helper.",
|
||||
"decision_type": "made",
|
||||
"status": "resolved",
|
||||
"decided_at": "2026-10-07T00:14:08.780439Z"
|
||||
}
|
||||
|
|
@ -0,0 +1,282 @@
|
|||
{
|
||||
"cleanup_status": "removed_after_durable_receipt_and_quiescence",
|
||||
"credential_reads": false,
|
||||
"destination": "/home/tegwick/.helixforge-factory/runtimes/f59959b605a51abd2901becde14e7abd852c2bd3f848004b51d250d1cb81af6d",
|
||||
"durable_public_receipt": "/home/tegwick/.helixforge-factory/runtime-verify-f599-r3-20261017.receipt.json",
|
||||
"durable_receipt_before_cleanup": true,
|
||||
"install_calls": 0,
|
||||
"installed_complete_digest_verified": true,
|
||||
"launcher_status": [
|
||||
{
|
||||
"exit_code": 0,
|
||||
"name": "rein-aharness",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"exit_code": 0,
|
||||
"name": "glas-harness",
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"exit_code": 0,
|
||||
"name": "claude",
|
||||
"status": "completed"
|
||||
}
|
||||
],
|
||||
"model_calls": 0,
|
||||
"native_receipt_scope": "immutable precleanup checkpoint; final cleanup outcome in local execution receipt",
|
||||
"owned_staging_removed": true,
|
||||
"owner_configuration_read": false,
|
||||
"phase": "offline_rehearsal",
|
||||
"post_rehearsal_complete_digest_verified": true,
|
||||
"process_supervision": {
|
||||
"jobs": [
|
||||
{
|
||||
"label": "node-read",
|
||||
"leader": {
|
||||
"pgrp": 4142322,
|
||||
"pid": 4142322,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142322,
|
||||
"start": 23500648,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "rehearsal-phase",
|
||||
"leader": {
|
||||
"pgrp": 4142383,
|
||||
"pid": 4142383,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142383,
|
||||
"start": 23500825,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "rein-aharness",
|
||||
"leader": {
|
||||
"pgrp": 4142384,
|
||||
"pid": 4142384,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142384,
|
||||
"start": 23500840,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "glas-harness",
|
||||
"leader": {
|
||||
"pgrp": 4142389,
|
||||
"pid": 4142389,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142389,
|
||||
"start": 23500901,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "claude",
|
||||
"leader": {
|
||||
"pgrp": 4142396,
|
||||
"pid": 4142396,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142396,
|
||||
"start": 23500936,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
}
|
||||
],
|
||||
"leftover_at_failure": [],
|
||||
"no_live_or_waitable_descendants": true,
|
||||
"private_values_emitted": false,
|
||||
"quiescent": true,
|
||||
"reaped_orphan_zombies": [
|
||||
{
|
||||
"exit_code": 0,
|
||||
"facts": {
|
||||
"pgrp": 4142384,
|
||||
"pid": 4142385,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142384,
|
||||
"start": 23500841,
|
||||
"state": "Z",
|
||||
"uid": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"exit_code": 0,
|
||||
"facts": {
|
||||
"pgrp": 4142389,
|
||||
"pid": 4142390,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142389,
|
||||
"start": 23500902,
|
||||
"state": "Z",
|
||||
"uid": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"exit_code": 0,
|
||||
"facts": {
|
||||
"pgrp": 4142396,
|
||||
"pid": 4142397,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142396,
|
||||
"start": 23500936,
|
||||
"state": "Z",
|
||||
"uid": 1000
|
||||
}
|
||||
}
|
||||
],
|
||||
"reason": "shutdown",
|
||||
"stderr_suppressed": true
|
||||
},
|
||||
"proposal_id": "REINAH-WP-0008-T07-install-f599-r1",
|
||||
"public_job_journal": {
|
||||
"jobs": [
|
||||
{
|
||||
"label": "node-read",
|
||||
"leader": {
|
||||
"pgrp": 4142322,
|
||||
"pid": 4142322,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142322,
|
||||
"start": 23500648,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "rehearsal-phase",
|
||||
"leader": {
|
||||
"pgrp": 4142383,
|
||||
"pid": 4142383,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142383,
|
||||
"start": 23500825,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "rein-aharness",
|
||||
"leader": {
|
||||
"pgrp": 4142384,
|
||||
"pid": 4142384,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142384,
|
||||
"start": 23500840,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "glas-harness",
|
||||
"leader": {
|
||||
"pgrp": 4142389,
|
||||
"pid": 4142389,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142389,
|
||||
"start": 23500901,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
},
|
||||
{
|
||||
"label": "claude",
|
||||
"leader": {
|
||||
"pgrp": 4142396,
|
||||
"pid": 4142396,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142396,
|
||||
"start": 23500936,
|
||||
"state": "R",
|
||||
"uid": 1000
|
||||
},
|
||||
"returncode": 0,
|
||||
"status": "completed"
|
||||
}
|
||||
],
|
||||
"reaped_orphan_zombies": [
|
||||
{
|
||||
"exit_code": 0,
|
||||
"facts": {
|
||||
"pgrp": 4142384,
|
||||
"pid": 4142385,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142384,
|
||||
"start": 23500841,
|
||||
"state": "Z",
|
||||
"uid": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"exit_code": 0,
|
||||
"facts": {
|
||||
"pgrp": 4142389,
|
||||
"pid": 4142390,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142389,
|
||||
"start": 23500902,
|
||||
"state": "Z",
|
||||
"uid": 1000
|
||||
}
|
||||
},
|
||||
{
|
||||
"exit_code": 0,
|
||||
"facts": {
|
||||
"pgrp": 4142396,
|
||||
"pid": 4142397,
|
||||
"ppid": 4142302,
|
||||
"sid": 4142396,
|
||||
"start": 23500936,
|
||||
"state": "Z",
|
||||
"uid": 1000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"rehearsal": {
|
||||
"credential_reads": false,
|
||||
"model_calls": 0,
|
||||
"owner_configuration_read": false,
|
||||
"status": "rehearsed",
|
||||
"steps": {
|
||||
"claude": 0,
|
||||
"glas-harness": 0,
|
||||
"rein-aharness": 0
|
||||
}
|
||||
},
|
||||
"renewal_or_catalog_or_queue_mutation": false,
|
||||
"revision": 3,
|
||||
"status": "installed_runtime_offline_rehearsal_verified",
|
||||
"ssh_exit_code": 0,
|
||||
"staging_identity": {
|
||||
"inode": 4723175,
|
||||
"device": 2049
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"installed_runtime_complete_digest_verified": true, "next_exact_command": "python3 -I -B /home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-17/native-runtime-install-r3/execute-verify.py --apply", "observed_at": "2026-10-17T11:37:36.626473+00:00", "private_configuration_reads": false, "proposal_id": "REINAH-WP-0008-T07-install-f599-r1", "provider_calls": 0, "remote_mutations": 0, "revision": 3, "status": "read_only_dry_run_passed", "target": {"account": "tegwick", "bwrap_die_with_parent_supported": true, "bwrap_version": "bubblewrap 0.9.0", "checks": {"account": true, "bwrap_parent_death_contract": true, "cpu_headroom": true, "disk_headroom": true, "durable_receipt_absent": true, "exact_installed_runtime": true, "exact_ready_node": true, "load_headroom": true, "memory_headroom": true, "protected_store": true, "staging_absent": true, "supervision_primitives": true}, "cpu_busy_fraction": 0.6632653061224489, "cpu_count": 4, "cpu_sample_seconds": 1, "destination": {"device": 2049, "directory": true, "gid": 1000, "inode": 4743998, "mode": "0o755", "symlink": false, "uid": 1000}, "disk_free_bytes": 123061723136, "durable_receipt": null, "gid": 1000, "installed_complete_digest": "f59959b605a51abd2901becde14e7abd852c2bd3f848004b51d250d1cb81af6d", "load_average": [4.9775390625, 4.1982421875, 3.49267578125], "memory_available_bytes": 7441522688, "node_addresses": [{"address": "92.205.62.239", "type": "InternalIP"}, {"address": "2a00:1169:111:6d70::", "type": "InternalIP"}, {"address": "239.62.205.92.host.secureserver.net", "type": "Hostname"}], "node_ready": true, "pidfd_available": true, "primary_manual_contract_excerpt": ")\\&.\n.RE\n.PP\n\\fB\\-\\-die\\-with\\-parent\\fR\n.RS 4\nEnsures child process (COMMAND) dies when bwrap\\*(Aqs parent dies\\&. Kills (SIGKILL) all bwrap sandbox processes in sequence from parent to child including COMMAND process when bwrap or bwrap\\*(Aqs parent dies\\&. See prctl, PR_SET_PDEATHSIG\\&.\n.RE\n.PP\n\\fB\\-\\-as\\-pid\\-1\\fR\n.RS 4\nDo not create a process with PID=1 in the sandbox to reap child processes\\&.\n.RE\n.PP\n\\fB\\-\\-cap\\-add \\fR\\fBCAP\\fR\n.RS 4\nAdd ", "stage": null, "store": {"device": 2049, "directory": true, "gid": 1000, "inode": 4751222, "mode": "0o700", "symlink": false, "uid": 1000}, "subreaper_get_supported": true, "uid": 1000}}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"agent_id": "custodian-codex",
|
||||
"scope": "CUST-WP-0071 and CUST-WP-0073 preparation and founder-authorized Railiance changes",
|
||||
"mode": "supervised",
|
||||
"counts": {
|
||||
"unscored": 12,
|
||||
"total": 23,
|
||||
"outcome_failed": 3,
|
||||
"refinement_or_rescue": 12,
|
||||
"outcome_succeeded": 18,
|
||||
"accepted_unchanged": 8,
|
||||
"adjudicated": 11,
|
||||
"verified_executions": 10,
|
||||
"unchanged_successes": 4,
|
||||
"outcome_not_executed": 2,
|
||||
"accepted_revised": 3
|
||||
},
|
||||
"unchanged_acceptance_rate": 0.7272727272727273,
|
||||
"unchanged_execution_success_rate": 0.4,
|
||||
"authority_granted": false,
|
||||
"note": "Descriptive evidence only; null rates mean no eligible sample. Never promotes an agent."
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"status": "verified_read_only",
|
||||
"full_native_runtime_digest_verified": true,
|
||||
"native_checkpoint_sha256": "sha256:8e6468c2cbb89f1a6feb038d2f53e888d14b1bf4c64f93386e39802cf7916282",
|
||||
"native_checkpoint_matches_exact_precleanup_local_reconstruction": true,
|
||||
"checkpoint_mode": "0600",
|
||||
"checkpoint_reports_positive_quiescence": true,
|
||||
"native_owned_stage_absent": true,
|
||||
"all_three_launcher_exits_zero": true,
|
||||
"native_process_classification": "three dead adopted zombies reported reaped; no independent retrospective process-tree claim",
|
||||
"runtime_activated": false,
|
||||
"model_calls": 0,
|
||||
"remote_mutations": 0
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
"""Read only: independently compare retained native public checkpoint and digest."""
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import shlex
|
||||
import subprocess
|
||||
|
||||
HERE = Path(__file__).resolve().parent
|
||||
ACTION = HERE.parent / 'native-runtime-install-r3'
|
||||
DIGEST = 'f59959b605a51abd2901becde14e7abd852c2bd3f848004b51d250d1cb81af6d'
|
||||
local = json.loads((ACTION / 'execution-receipt.json').read_text())
|
||||
assert local['status'] == 'installed_runtime_offline_rehearsal_verified'
|
||||
expected = dict(local)
|
||||
for name in ('ssh_exit_code', 'staging_identity'):
|
||||
expected.pop(name)
|
||||
expected['owned_staging_removed'] = False
|
||||
expected['cleanup_status'] = 'pending'
|
||||
expected_bytes = (json.dumps(expected, sort_keys=True) + '\n').encode()
|
||||
expected_checkpoint_sha = hashlib.sha256(expected_bytes).hexdigest()
|
||||
reader = (ACTION / 'runtime.py').read_text()
|
||||
assert hashlib.sha256(reader.encode()).hexdigest() == '19b5fb687288bbc836978b0251599dc1e4d1593e8b5efee85a6abb6a7f388412'
|
||||
code = r'''import hashlib,json,os,stat,sys
|
||||
from pathlib import Path
|
||||
digest='f59959b605a51abd2901becde14e7abd852c2bd3f848004b51d250d1cb81af6d'
|
||||
stage=Path('/home/tegwick/.helixforge-factory/runtime-verify-f599-r3-20261017')
|
||||
checkpoint=Path(str(stage)+'.receipt.json')
|
||||
s=checkpoint.lstat()
|
||||
assert stat.S_ISREG(s.st_mode) and s.st_uid==1000 and s.st_gid==1000 and stat.S_IMODE(s.st_mode)==0o600 and s.st_nlink==1 and s.st_size<=65536
|
||||
raw=checkpoint.read_bytes();j=json.loads(raw)
|
||||
assert hashlib.sha256(raw).hexdigest()==sys.argv[2]
|
||||
assert j['revision']==3 and j['status']=='installed_runtime_offline_rehearsal_verified'
|
||||
assert j['cleanup_status']=='pending' and j['owned_staging_removed'] is False and j['durable_receipt_before_cleanup'] is True
|
||||
assert j['process_supervision']['quiescent'] is True and j['process_supervision']['no_live_or_waitable_descendants'] is True
|
||||
assert j['rehearsal']['steps']=={'rein-aharness':0,'glas-harness':0,'claude':0}
|
||||
assert not stage.exists() and not stage.is_symlink()
|
||||
scope={};exec(compile(sys.argv[1],'approved_public_digest_reader','exec'),scope)
|
||||
store=Path('/home/tegwick/.helixforge-factory/runtimes');s2=store.lstat()
|
||||
assert s2.st_uid==1000 and s2.st_gid==1000 and stat.S_IMODE(s2.st_mode)==0o700 and s2.st_dev==2049 and s2.st_ino==4751222
|
||||
assert scope['runtime_digest'](store/digest)==digest
|
||||
print(json.dumps({'status':'verified_read_only','full_native_runtime_digest_verified':True,'native_checkpoint_sha256':'sha256:'+hashlib.sha256(raw).hexdigest(),'native_checkpoint_matches_exact_precleanup_local_reconstruction':True,'checkpoint_mode':'0600','checkpoint_reports_positive_quiescence':True,'native_owned_stage_absent':True,'all_three_launcher_exits_zero':True,'native_process_classification':'three dead adopted zombies reported reaped; no independent retrospective process-tree claim','runtime_activated':False,'model_calls':0,'remote_mutations':0}))'''
|
||||
remote = '/usr/bin/python3 -I -B -c ' + shlex.quote(code) + ' ' + shlex.quote(reader) + ' ' + shlex.quote(expected_checkpoint_sha)
|
||||
cp = subprocess.run(['ssh', '-o', 'BatchMode=yes', '-o', 'ConnectTimeout=15', 'railiance01', remote],
|
||||
stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, timeout=100)
|
||||
assert cp.returncode == 0, 'read-only verification refused; private diagnostics suppressed'
|
||||
result = json.loads(cp.stdout)
|
||||
with (HERE / 'verified-native-result.json').open('x') as stream:
|
||||
json.dump(result, stream, indent=2)
|
||||
stream.write('\n')
|
||||
print(json.dumps(result))
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"status": "all_selected_public_trial_and_review_sources_published",
|
||||
"head": "c034f59befba077ed6c0e2bfc8679aa648aa9ed6",
|
||||
"remote_exact": true,
|
||||
"final_receiving_commit": "c034f59befba077ed6c0e2bfc8679aa648aa9ed6",
|
||||
"primary": "primary/railiance01",
|
||||
"batch_commits": [
|
||||
"ffd995213c1d980172598a0f97371e4e9a63c75e",
|
||||
"6844177f48e15158678232d8259b87abded67b12",
|
||||
"4016f3bdeefeb389b59e28722d1e897285dbf3d2",
|
||||
"c034f59befba077ed6c0e2bfc8679aa648aa9ed6"
|
||||
],
|
||||
"selected_file_hashes_verified": 63,
|
||||
"unrelated_worktree_and_index_entries_preserved": 8,
|
||||
"normal_gates_used": true,
|
||||
"prior_refusals_retained": [
|
||||
"batch0 projection pending uncommitted workplan",
|
||||
"batch1 remote advanced through independent concurrent source commit"
|
||||
],
|
||||
"r2_outcome": "failed_partial_install_verified",
|
||||
"r3_outcome": "exactapproved_read_only_cpu_refused_no_native_execution",
|
||||
"key39_parent": "active",
|
||||
"native_target_gates_closed": 0
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue