docs: link proton rclone child candidate to personal-agent

This commit is contained in:
Svrnty
2026-06-14 10:49:01 -04:00
parent d19825c3e6
commit 5d77eaffc9
7 changed files with 83 additions and 33 deletions
+26 -3
View File
@@ -200,6 +200,7 @@ def main() -> int:
"PACR-007",
"PACR-008",
"PACR-010",
"PACR-011",
"status: candidate",
"owner: jp",
]:
@@ -358,6 +359,23 @@ def main() -> int:
]:
if proton.get(key) is not False:
errors.append(f"proton_rclone_overclaim:{key}")
if proton.get("child_workspace_candidate_created") is not True:
errors.append("proton_rclone_child_candidate_not_created")
candidate = proton.get("child_workspace_candidate", {})
expected_candidate = {
"path": "../proton-rclone",
"commit": "c49f85691232c317d694725445ec3acbf127c72b",
"validator_command": "python3 tools/validate_proton_rclone_child.py",
"validator_result_observed": "ok",
"core_registration_candidate_packet": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-core-registration-candidate-packet.json",
"live_redacted_health_proof": "../proton-rclone/.sot/08-OUTPUTS/proton-rclone-live-redacted-health.json",
}
for key, expected in expected_candidate.items():
if candidate.get(key) != expected:
errors.append(f"proton_rclone_child_candidate_mismatch:{key}")
for key in ["core_registration_claimed", "runtime_readiness_claimed"]:
if candidate.get(key) is not False:
errors.append(f"proton_rclone_child_candidate_overclaim:{key}")
boundary = proton.get("authority_boundary", {})
if boundary.get("profile_owns_surface_exposure") is not True:
errors.append("proton_rclone_profile_surface_boundary_missing")
@@ -431,9 +449,9 @@ def main() -> int:
for name in ["sdo-calendar-gate", "sdo-email-gate", "sdo-contacts-gate"]:
if name not in docker:
errors.append(f"proton_rclone_docker_route_missing:{name}")
if docker.get("sdo-email-gate") != "exited-127":
if docker.get("sdo-email-gate") != "not-up":
errors.append("proton_rclone_email_gate_state_not_captured")
if docker.get("sdo-contacts-gate") != "exited-127":
if docker.get("sdo-contacts-gate") != "not-up":
errors.append("proton_rclone_contacts_gate_state_not_captured")
units = {item.get("name"): item for item in inventory.get("systemd_user_units", [])}
if units.get("proton-bridge.service", {}).get("observed_state") != "activating-auto-restart":
@@ -488,6 +506,8 @@ def main() -> int:
if command not in commands:
errors.append(f"proton_rclone_observed_command_missing:{command}")
remaining_gates = proton.get("remaining_gates", {})
if remaining_gates.get("child_workspace_candidate") != "complete-child-local":
errors.append("proton_rclone_child_candidate_gate_missing")
for gate in [
"registered_child_workspace",
"email_gate_repair",
@@ -826,12 +846,13 @@ def main() -> int:
"conductor_lane_pickup",
"curator_personal_memory_hygiene_lane_pickup",
"secondbrain_durable_apply",
"runtime_health_proof",
"desktop_adapter_exposure",
"seed_package_pickup",
]:
if remaining_gates.get(gate) != "blocked-follow-up":
errors.append(f"service_handoff_remaining_gate_missing:{gate}")
if remaining_gates.get("runtime_health_proof") != "complete-child-local":
errors.append("service_handoff_runtime_health_proof_not_child_complete")
runtime = load_json("docs/contracts/personal-agent-runtime-readiness-snapshot.json", errors)
if runtime:
@@ -939,6 +960,8 @@ def main() -> int:
remaining_gates = runtime.get("remaining_gates", {})
if remaining_gates.get("secondbrain_governed_apply_route") != "defined-no-live-apply":
errors.append("runtime_snapshot_governed_apply_route_not_defined")
if remaining_gates.get("proton_rclone_child_candidate") != "complete-child-local":
errors.append("runtime_snapshot_child_candidate_gate_missing")
for gate in [
"proton_email_gate_repair",
"proton_contacts_gate_repair",