CHAT_OUTPUT_BEGIN
COMMAND_ID=HOMELAB-CLUSTER-KB-V1-READER-V3-EXACT-ROUTE-READ-ONLY-20260805T080500Z
STATUS=OK
RC=0
HOST=pve01
MODE=verify
COMPONENT=cluster-knowledge-base-error-system
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
COMMAND_SHA256=19ee485d1d65bf7efe712e8efbcab72bbab266ee19bbff47565dc2e939c23448
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=1c712519eb2e1171ae0066e849d3ca2c71c460342f5aa3f8733a75b3360d358b
SANITIZED_OUTPUT_SHA256=1c712519eb2e1171ae0066e849d3ca2c71c460342f5aa3f8733a75b3360d358b
OUTPUT_BEGIN
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-EXACT-ROUTE-READ-ONLY-20260805T080500Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1}
{"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-EXACT-ROUTE-READ-ONLY-20260805T080500Z","command_rc":0,"correction_of_previous_logic_gap":{"exact_fix":"this command probes Reader V3 directly and does not retry pvesh","proven_gap":"Reader V3 was skipped because pvesh returned a namespace prefix even though every authoritative inventory request failed rc=255","regression_test":"Reader V3 path is selected whenever authoritative inventory is false"},"error_fingerprint":"8404acbf53a6eca8f965e09a38f6e838847cc1d210c8c9058d262b3d77ff47d8","latest_exact_result_basis":{"capsule_sha256":"8f4a8bf55c541f0ae508439cfbd89d510fc7bb7793f7d2bbfa98b45db3471519","changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-GITEA-ROUTE-DISCOVERY-TYPE-SAFE-READ-ONLY-20260805T075700Z","command_rc":0,"control_plane_error":null,"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_EXACT_ROUTE_PROBE","output_complete":true,"output_sha256":"d89bb6fbb69e42ada9dda6bb83534f41a0a2e3abcd0f332added0ecdd9ce55fe","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"AUTHORITATIVE_PROXMOX_ROUTE_UNAVAILABLE_FROM_ADAPTER_CONTEXT","runner_document_rc":0,"runner_json_sha256":"a9fde4e8173aad278ad595dd75e166b667b2e3ea4d57b134ccc0edb968c2a491","runner_rc":0,"runner_text_sha256":"447d244cd51519147eb0f0b1479cca8fe210d0289047e6d409d130934a4fff43","runner_wrapper_matches_document":true,"status":"OK"},"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_PROTOCOL_SPECIFIC_PROBE","output_truncated_in_json":false,"pre_command_known_error_gate":{"checked":true,"items":[{"id":"candidate-scan-limit-20260805","prevention":"bounded exact-target scan only; hard file, route, response and output limits"},{"id":"runner-wrapper-mismatch-20260805","prevention":"single compact JSON result below 42000 bytes; no full source, body or successful command logs"},{"id":"gitea-owner-hardcoded-20260805","prevention":"no repository owner is assumed or accepted from a guessed URL"},{"id":"gitea-git-auth-unavailable-20260805","prevention":"no unauthenticated Git retry; use only the proven local Reader V3 control route"},{"id":"pvesh-adapter-context-unreadable-20260805","prevention":"do not repeat pvesh; probe the dedicated reader service selected by the previous exact result"},{"id":"gitea-process-self-match-20260805","prevention":"service identity is bound to systemd ControlGroup and exact PID ancestry, never substring-only process search"},{"id":"sanitize-non-string-attributeerror-20260805","prevention":"all sanitization accepts Any and converts to str; embedded bool regression test"},{"id":"reader-v3-skipped-on-nonauthoritative-inventory-20260805","prevention":"Reader V3 is probed whenever authoritative inventory is false, even when a pvedaemon namespace prefix exists"}]},"prevention_test":{"must_run_before_future_cluster_or_gitea_commands":true,"name":"reader_v3_exact_route_preflight","requirements":["select one loaded Reader V3 unit from systemd evidence","bind runtime identity to its exact ControlGroup","use only sockets owned by that ControlGroup","derive routes from exact source, configuration, environment or service-published JSON","never expose authentication values or response bodies","accept inventory only from a successful JSON route containing normalized guest rows"]},"rc":0,"read_only":true,"reader_interface":{"environment_names":["HOME","HOMELAB_READER_CAPABILITY","HOMELAB_READER_PORT","INVOCATION_ID","JOURNAL_STREAM","LANG","LOGNAME","MEMORY_PRESSURE_WATCH","MEMORY_PRESSURE_WRITE","PATH","SHELL","SYSTEMD_EXEC_PID","USER"],"header_names":[],"http":{"gitea_candidates":[],"guest_count":0,"probes":[{"auth":"none","body_bytes":0,"body_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","body_truncated":false,"content_type":"","duration_seconds":0.005,"error":"URLError: <urlopen error [Errno 111] Connection refused>","port":18788,"route":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin","status":null}],"published_second_stage_route_count":0,"successful_inventory_routes":[]},"identity_valid":true,"pid_evidence":{"control_group":"/system.slice/homelab-reader-v3.service","main_pid":1282,"pid_count":1},"process_identities":[{"cgroup_sha256":"5c8ff12835e02027c68673a492a8ff1690bda7cf3d0c5bb5333a7743e5db6cc0","cmdline_argc":3,"cmdline_sha256":"5f64b6092c643fd6124975d783b07a6e9af4cb617922b6616206b42127662be9","comm":"python3","exe":"/usr/bin/python3.13","pid":1282}],"secret_environment_name_count":0,"sockets":{"owned_socket_inode_count":2,"tcp_listeners":[{"family":"ipv4","inode":"24795","loopback":false,"port":18788,"wildcard":false}],"unix_listeners":[{"inode":"28045","path":null,"path_present":false,"path_sha256":null}]},"source_ports":[18788],"source_routes":[{"method":"GET","route":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"}]},"ready_for_guest_probe":false,"result_projection":{"bytes":7278,"compacted":false,"max_bytes":42000},"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_RUNTIME_AND_INTERFACE_PARTIALLY_DISCOVERED_BUT_NO_AUTHORITATIVE_INVENTORY_RESPONSE","schema":1,"selected_unit":"homelab-reader-v3.service","source_files":[{"bytes":1298416,"path":"/bin/bash","sha256":"223fe8564b60636bc738b6178d3ba9a50ef7d791266b0efae6363bb716e4c47f"},{"bytes":580,"path":"/etc/systemd/system/homelab-reader-v3.service","sha256":"d672b74b390efa787ffd5a090e8c8eea8fdf038075421231a9d9b3053ea926b1"},{"bytes":94,"path":"/sys/fs/cgroup/system.slice/homelab-reader-v3.service/memory.pressure","sha256":"412d920370f34151bf0ed4a09cb00c0495ef7d8f922049744e873bbc34c2f17f"},{"bytes":3539,"path":"/usr/local/sbin/homelab-reader-server-v3","sha256":"092780e76ff18dfe2920c51f8b97dd09d194fd6cbdb59c3755c9fbf6530f3536"}],"status":"OK","target_resolution":{"answer_count":1,"domain":"git.gram1.ru","error":null,"families":[2],"ok":true},"unit_candidates":[{"probe":{"duration_seconds":0.006,"rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stderr_truncated":false,"stdout_bytes":427,"stdout_sha256":"99d2fa1baec4f60e5990dc849b442002a6b671c9dc7bab5d5bf2451fa16cf398","stdout_truncated":false},"properties":{"ActiveState":"active","ControlGroup":"/system.slice/homelab-reader-v3.service","DropInPaths":"","EnvironmentFiles_present":false,"EnvironmentFiles_sha256":null,"ExecStart_present":true,"ExecStart_sha256":"2500fde09569176736b4f2f1dd29d6289b6a6ae6a59b52b6a3c31f797f567379","FragmentPath":"/etc/systemd/system/homelab-reader-v3.service","Group":"root","LoadState":"loaded","MainPID":"1282","SubState":"running","User":"root","WorkingDirectory":""},"unit":"homelab-reader-v3.service"}],"unit_discovery_probes":[{"duration_seconds":0.458,"rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stderr_truncated":false,"stdout_bytes":28417,"stdout_sha256":"07015a6d7c7916f08625536283553f0837fd935061d42c08ad9b5421609a3121","stdout_truncated":false},{"duration_seconds":0.006,"rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stderr_truncated":false,"stdout_bytes":37185,"stdout_sha256":"68dca7da59cdbf1cdbab1b1c64aec57456eafbb934f94be6eb2bd4f2a7dc0d95","stdout_truncated":false}]}

OUTPUT_END
CHAT_OUTPUT_END
