CHAT_OUTPUT_BEGIN
COMMAND_ID=HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z
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=6d5aaf507166c95cecf3344b5ab6edd6334797e9db22c6feb7165cc592f30616
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=1ee62d6e2d54d20d0cc830fec35b1566f3019f4dbf50be2d8d0b97710f0848a8
SANITIZED_OUTPUT_SHA256=1ee62d6e2d54d20d0cc830fec35b1566f3019f4dbf50be2d8d0b97710f0848a8
OUTPUT_BEGIN
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1}
{"authoritative_inventory":{"gitea_bearing_record_count":0,"gitea_candidate_count":0,"gitea_candidates":[],"guest_bearing_record_count":0,"guest_row_count":0,"readable_result_record_count":0,"two_file_read_proven":false},"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z","command_rc":0,"correction_of_previous_logic_gap":{"exact_fix":"resolve MANIFEST, RESULTS and RESULT_RE only from the exact SHA-verified source, read the actual manifest and referenced result file read-only, and emit only bounded structural schemas, hashes and sanitized guest identifiers","proven_gap":"synthetic manifest profiles represented generation as a scalar or list, while the exact Reader called mapping methods on the generation record and raised AttributeError before reading the result file","regression_test":"a synthetic generation mapping containing a RESULT_RE-matched file reference must be discovered at generation/file without emitting the filename or any scalar value"},"error_fingerprint":"1d1efb809c676989a56fdfc9b0ad714f67f8ed0801c74f06a0f3a6c379130d08","exact_assignment_contract":{"paths":{"MANIFEST":{"absolute":true,"exists":true,"is_dir":false,"is_file":true,"path_class":"/var","path_sha256":"e3e86f7cca26be90bb29b569ebbc865b3b544ad6f47fb1e976afae301aa02aca","resolved":true,"symlink":false},"RESULTS":{"absolute":true,"exists":true,"is_dir":true,"is_file":false,"path_class":"/var","path_sha256":"74cd1e8e797b2ff05f182b259b1bc3112755d6750af049a3a593e9d039645cf0","resolved":true,"symlink":false},"RESULT_RE":{"pattern_sha256":"cc0d3d6eeabb57c6262c3e83d6561e587ad62b5f370dab9cbf080b67c533b47c","pattern_text_emitted":false,"resolved":true}},"types":{"CAPABILITY":"str","MANIFEST":"path","PORT":"int","RESULTS":"path","RESULT_RE":"compiled-regex","ROOT":"path"}},"latest_exact_result_basis":{"capsule_sha256":"e7b4e21c9e5ba536dbfd7fb5dec1862701f6a619f538fd6e3120bfb669bb8c45","changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-OUTPUT-PROJECTION-FIX-READ-ONLY-20260805T105900Z","command_rc":0,"control_plane_error":null,"error_fingerprint":"a8c139677a8214774c4c524617a42d990ad206b317a432ea3cac1b625b34346e","mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_SANITIZED_FILE_RECORD_SHAPE_TRACE","output_complete":true,"output_sha256":"cebadd10d38e334596c9f8dff3e1945161f681afd8af6f23bdcb79084c415b29","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_FEED_CAUGHT_EXCEPTION_ORIGIN_PROVEN","runner_document_rc":0,"runner_json_sha256":"dafc60d8ed2dafd7eb92b4bca74430f74d1ad2245296472572c9badfddeb3589","runner_rc":0,"runner_text_sha256":"4c110854804cffb5c5f8043b92881c39646ec998f9c82d675aa269b3a728c75a","runner_wrapper_matches_document":true,"status":"OK"},"manifest_file":{"bytes":850,"exists":true,"is_file":true,"path_class":"/var","path_sha256":"e3e86f7cca26be90bb29b569ebbc865b3b544ad6f47fb1e976afae301aa02aca","sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3","symlink":false},"manifest_record_shape":{"full_shape":{"private_address_value_count":0,"raw_values_emitted":false,"secret_named_key_count":1,"shape":{"children":{"<redacted-key:df39bb99bd28>":{"type":"bool"},"changes_made":{"type":"bool"},"command_id":{"length":35,"sha256":"2abe853b7133b73cd674f9c7ea9cf0203be789118c103d65db9455cc1416213c","type":"str"},"commit_sha":{"length":40,"sha256":"85678773d1abc707edf19eded4440fa40a15e5054b26d1e47311cae35b8e9ff7","type":"str"},"generation":{"length":19,"sha256":"4d5f52090512f5eafebcde7196ef5eab52f532d870a2ecc7b444154860c60244","type":"str"},"immutable_result_url":{"length":165,"sha256":"c7f0e85ee289d65116362479a8e27d0836a4637a9826a26c197f7301b5f85208","type":"str"},"published_at_utc":{"length":20,"sha256":"e45998dd32377ab2f5491f210b091f202d495b378f01402a16942df6a5e747bd","type":"str"},"rc":{"type":"int"},"result":{"children":{"bytes":{"type":"int"},"name":{"length":104,"sha256":"a8c42002c52b93901763464939221a762a78189d682c537c1ad640fe59614b8e","type":"str"},"path":{"length":112,"sha256":"d90fa39619c478cb64cc2d75107f9e5a53446d3f0f79f2f5ccfffe814f4ac0e1","type":"str"},"sha256":{"length":64,"sha256":"9b2d8dc1941af8f617030feae7318fcafcc3ae13211ca5d1b133c09eb7dc30c5","type":"str"}},"count":4,"keys":["name","sha256","bytes","path"],"truncated":false,"type":"dict"},"schema_version":{"type":"int"},"source_of_truth":{"length":34,"sha256":"cc769b0b82b3bc9d356f8c5ae6d12ab4947e58b147aa77ce5433899b8a4fa90f","type":"str"},"status":{"length":2,"sha256":"565339bc4d33d72817b583024112eb7f5cdf3e5eef0252d6ec1b9c9a94e12bb3","type":"str"}},"count":12,"keys":["schema_version","generation","<redacted-key:df39bb99bd28>","source_of_truth","command_id","status","rc","changes_made","commit_sha","immutable_result_url","published_at_utc","result"],"truncated":false,"type":"dict"},"visited_node_count":17},"generation":{"length":19,"present":true,"sha256":"4d5f52090512f5eafebcde7196ef5eab52f532d870a2ecc7b444154860c60244","type":"str"},"json_type":"dict","result_reference_count":1,"result_reference_paths":[["result","name"]],"top_keys":["schema_version","generation","<redacted-key:df39bb99bd28>","source_of_truth","command_id","status","rc","changes_made","commit_sha","immutable_result_url","published_at_utc","result"]},"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_FILE_BACKED_FEED_CONTRACT_TRACE","output_truncated_in_json":false,"pre_command_known_error_gate":{"checked":true,"count":21,"ids":["candidate-scan-limit-20260805","runner-wrapper-mismatch-20260805","gitea-owner-hardcoded-20260805","gitea-git-auth-unavailable-20260805","pvesh-adapter-context-unreadable-20260805","gitea-process-self-match-20260805","sanitize-non-string-attributeerror-20260805","reader-path-env-misclassified-as-route-20260805","reader-loopback-only-probe-20260805","reader-capability-not-secret-20260805","reader-systemd-unit-parsed-as-python-20260805","reader-helper-contract-coverage-gap-20260805","reader-capability-root-empty-suffix-404-20260805","reader-generic-suffix-missed-exact-operation-20260805","reader-feed-500-without-origin-20260805","reader-sandbox-global-binding-undefined-20260805","reader-negative-control-exception-polluted-classification-20260805","reader-result-regex-candidate-not-proven-20260805","reader-fake-dependency-contract-incomplete-20260805","reader-manifest-alias-dataflow-gap-20260805","reader-result-output-bound-after-compaction-20260805"]},"prevention_test":{"must_run_before_future_cluster_or_gitea_commands":true,"name":"reader_v3_actual_file_record_shape_preflight","requirements":["verify exact Reader unit and Python source SHA","bind process environment only to the exact systemd ControlGroup","resolve MANIFEST, RESULTS and RESULT_RE only through a strict assignment evaluator","read only regular bounded files and reject path traversal","require RESULT_RE fullmatch before result-file access","emit only schema, counts, hashes and sanitized guest identifiers","never emit capability, raw paths, filenames, regex text, private addresses or response bodies","perform no network, executor or file mutation"]},"process_environment":{"capability_name_present":true,"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"],"secret_name_count":1},"rc":0,"read_only":true,"ready_for_gitea_context_probe":false,"real_executor_calls_made":false,"real_file_mutations_made":false,"real_network_requests_made":false,"result_projection":{"bytes_before":10322,"final_bytes":10322,"max_bytes":30000,"steps":[]},"result_records":[{"bytes":1379,"exists":true,"filename_length":104,"filename_sha256":"a8c42002c52b93901763464939221a762a78189d682c537c1ad640fe59614b8e","is_file":true,"json_error_fingerprint":"26ebc3ed1f94f1c3c4a880845ccaeb6847fec166a7004691ef3da99fc1967771","json_error_type":"JSONDecodeError","json_parse_ok":false,"path_class":"/var","path_sha256":"b9aed4ae7666278e3435a5787812b8ed36e69352bba8f4d83bd4effb30ce3019","reference_path":["result","name"],"safe_child_path":true,"sha256":"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8","symlink":false,"under_generation":false}],"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_RESULT_REFERENCE_PROVEN_BUT_FILE_UNREADABLE_OR_INVALID","schema":1,"source_files":[{"actual_sha256":"d672b74b390efa787ffd5a090e8c8eea8fdf038075421231a9d9b3053ea926b1","bytes":580,"expected_sha256":"d672b74b390efa787ffd5a090e8c8eea8fdf038075421231a9d9b3053ea926b1","matches_expected":true,"path":"/etc/systemd/system/homelab-reader-v3.service"},{"actual_sha256":"092780e76ff18dfe2920c51f8b97dd09d194fd6cbdb59c3755c9fbf6530f3536","bytes":3539,"expected_sha256":"092780e76ff18dfe2920c51f8b97dd09d194fd6cbdb59c3755c9fbf6530f3536","matches_expected":true,"path":"/usr/local/sbin/homelab-reader-server-v3"}],"source_selection":{"raw_source_emitted":false,"selected_path":"/usr/local/sbin/homelab-reader-server-v3","systemd_unit_excluded_from_ast":true},"source_state":"MATCH","static_file_record_contract":{"file_read_call_count":2,"file_read_methods":["read_bytes"],"global_reads":["MANIFEST","RESULTS","RESULT_RE"],"literal_key_count":1,"literal_keys":["generation"],"method_calls":["decode","end_headers","fullmatch","get","handle_reader","hexdigest","is_file","loads","read_bytes","reply","rsplit","send_header","send_response","sha256","split","startswith","write"],"path_join_count":1,"raw_source_emitted":false,"reachable_handler_count":4,"regex_fullmatch_count":1,"type_expectations":["mapping"]},"status":"OK","systemd_identity":{"identity_valid":true,"pid_count":1,"probe":{"duration_seconds":0.006,"rc":0,"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stderr_truncated":false,"stdout_bytes":375,"stdout_sha256":"49094d65d3787c1479e6408e1fefb7af3758d0fa55e1d37bf22907442aab35e9","stdout_truncated":false},"properties":{"ActiveState":"active","ControlGroup":"/system.slice/homelab-reader-v3.service","ExecStart_present":true,"ExecStart_sha256":"2500fde09569176736b4f2f1dd29d6289b6a6ae6a59b52b6a3c31f797f567379","FragmentPath":"/etc/systemd/system/homelab-reader-v3.service","LoadState":"loaded","MainPID":"1282","SubState":"running"}}}

OUTPUT_END
CHAT_OUTPUT_END
