{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "HOMELAB-KB-V2-TXFAIL-STAGE-READ-ONLY-20260806T020500Z", "status": "OK", "rc": 0, "host": "pve01", "mode": "verify", "component": "cluster-knowledge-base-error-system", "started_at_utc": "2026-08-06T02:06:42Z", "finished_at_utc": "2026-08-06T02:06:51Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", "command_sha256": "00b8ea347283df9e5dc55048b05399e9b9f545f0c3ccd040e9cc31539a1223c0", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, "change_declared": false, "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, "command_rc": 0, "changes_made": false, "rollback_started": false, "rollback_restored": null, "mutation_outcome": "NO_MUTATION", "sanitized": true, "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, "raw_evidence_sha256": "177c86a686868608dde82decb5fd93d2d688041ff59039b4e6108ee745c4e1df", "sanitized_output_sha256": "177c86a686868608dde82decb5fd93d2d688041ff59039b4e6108ee745c4e1df", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-KB-V2-TXFAIL-STAGE-READ-ONLY-20260806T020500Z\",\"command_rc\":0,\"control_plane_error\":null,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-KB-V2-TXFAIL-STAGE-READ-ONLY-20260806T020500Z\",\"command_rc\":0,\"control_plane_error\":null,\"diagnosis\":{\"classification\":\"TXFAILURE_STAGE_PROVEN\",\"failed_stage\":\"recover_candidate\",\"mutation_performed\":false,\"txfailure_code\":\"PREPARED_CANDIDATE_NOT_UNIQUE\",\"txfailure_evidence\":{\"invalid_class_count\":0,\"invalid_counts\":{},\"raw_candidate_count\":0,\"validated_distinct_count\":0},\"txfailure_message\":\"The previously prepared candidate could not be recovered as exactly one validated ten-path byte set\"},\"exact_error\":null,\"identity_confirmed\":true,\"mutation_outcome\":\"NO_MUTATION\",\"next_step\":\"Correct only the proven TxFailure condition. Do not prepare a mutation unless the correction is itself proven by a subsequent READ_ONLY exact result.\",\"output_truncated_in_json\":false,\"previous_exact_result\":{\"capsule_sha256\":\"6c3aeb722d39f91be2aa2b5a0d4438f26f93be716a8e0de5b456bdba099dfda7\",\"command_id\":\"HOMELAB-KB-V2-SCOPE-DIAG-BIND-READ-ONLY-20260806T020000Z\",\"identity_confirmed\":true,\"output_complete\":true,\"output_sha256\":\"714e3d0631b8ae717ceae8c13b69db861d6a3d5b2a3c702457badac4d0caa6aa\",\"runner_document_rc\":0,\"runner_json_sha256\":\"a5341bf0356fffd810aea323c7c7971195d67b10de5b441752de47bd854acb54\",\"runner_rc\":0,\"runner_text_sha256\":\"ae45f536c907e24eb99364082d2f953b4f521b8bbf04c1a95766d33f76500af6\",\"runner_wrapper_matches_document\":true,\"slot_directory_count\":12,\"slot_lane\":\"f\",\"target\":{\"capsule_sha256\":\"f87a60b7de7aa75c8ee2f4914b99b2ba5e25fa34537362d9fe36fabc09500a11\",\"changes_made\":false,\"command_id\":\"HOMELAB-KB-V2-SCOPE-CANDIDATE-DIAG-READ-ONLY-20260806T015500Z\",\"command_rc\":3,\"exact_error\":{\"code\":\"UNEXPECTED_SCOPE_CANDIDATE_DIAGNOSTIC_FAILURE\",\"exception\":\"TxFailure\"},\"mutation_outcome\":\"NO_MUTATION\",\"output_sha256\":\"e7aae0baa483e823f7b7dcce6c1cf1254460130e19f4a4b4efcf4572d25e1765\",\"rc\":3,\"rollback_restored\":null,\"rollback_started\":false,\"runner_json_sha256\":\"67fd926e007805963dc5f62c002620987bf29aec85b4669195bac133269944d2\",\"runner_text_sha256\":\"9987373f45f60ec49ec3965cac9c86dae9e239ccab9019e2d9acb047159e9616\",\"status\":\"ERROR\"}},\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":\"homelab.txfailure-stage-diagnostic.v1\",\"stage_evidence\":{\"identity\":{\"api_identity_verified\":true,\"credential_values_exposed\":false,\"git_ls_remote_verified\":true,\"repository_push_permission_verified\":true},\"policy_recheck\":{\"candidate_branch_status\":404,\"remote_main\":\"fe1221b06643db3b00a621b0230f92a46a4edc2b\",\"requirements\":{\"candidate_absent\":true,\"enable_push\":true,\"main_protected\":true,\"main_user_can_merge\":true,\"main_user_can_push\":true,\"merge_enabled\":true,\"pull_requests_enabled\":true,\"repo_pull\":true,\"repo_push\":true,\"required_approvals\":true,\"signed_commits\":true,\"status_checks\":true}},\"remote_artifacts\":{\"pull_request_count\":0,\"temporary_branch_exists\":false},\"remote_main\":\"fe1221b06643db3b00a621b0230f92a46a4edc2b\",\"scope\":{\"absent_paths\":[\"docs/CLUSTER-HANDBOOK.md\",\"docs/ERROR-SYSTEM-V2.md\",\"errors/error-registry.jsonl\",\"errors/superseded-commands.json\",\"inventory/cluster-reference.json\",\"schemas/error-record.schema.json\",\"tests/test_error_system_v2.py\",\"tools/pre_command_gate.py\"],\"path_count\":10,\"present_paths\":[\".gitea/workflows/ci.yml\",\"docs/WORKFLOW.md\"],\"states\":[{\"bytes\":318,\"operation\":\"MODIFY\",\"path\":\".gitea/workflows/ci.yml\",\"rollback_action\":\"RESTORE_BYTES\",\"sha256\":\"b078ac1b57e0846a90fd6acb1f3cb0866dbed0fb3bbde0d7070d29a344907681\",\"state\":\"PRESENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"docs/CLUSTER-HANDBOOK.md\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"docs/ERROR-SYSTEM-V2.md\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":526,\"operation\":\"MODIFY\",\"path\":\"docs/WORKFLOW.md\",\"rollback_action\":\"RESTORE_BYTES\",\"sha256\":\"87a6f9a0960ee7240261138ecea122fd8fbd727d87bb0b27b02c103c3bc2f122\",\"state\":\"PRESENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"errors/error-registry.jsonl\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"errors/superseded-commands.json\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"inventory/cluster-reference.json\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"schemas/error-record.schema.json\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"tests/test_error_system_v2.py\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"},{\"bytes\":0,\"operation\":\"ADD\",\"path\":\"tools/pre_command_gate.py\",\"rollback_action\":\"DELETE_FILE\",\"state\":\"ABSENT\"}]}},\"status\":\"OK\"}\n" }