diff --git a/runtime/history/HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z.json b/runtime/history/HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z.json new file mode 100644 index 0000000..818b811 --- /dev/null +++ b/runtime/history/HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "cluster-knowledge-base-error-system", + "started_at_utc": "2026-08-05T11:31:00Z", + "finished_at_utc": "2026-08-05T11:31:01Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "182dc522d724d23ec8772708e8cbdce4b373cf6488a773df5b87eb0381f91b5a", + "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": "1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1", + "sanitized_output_sha256": "1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1", + "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-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z\",\"command_rc\":0,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"assignment_types\":{\"CAPABILITY\":\"str\",\"MANIFEST\":\"path\",\"PORT\":\"int\",\"RESULTS\":\"path\",\"RESULT_RE\":\"compiled-regex\",\"ROOT\":\"path\"},\"authoritative_inventory\":{\"gitea_candidate_count\":0,\"gitea_candidates\":[],\"guest_row_count\":0,\"two_file_read_proven\":false},\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z\",\"command_rc\":0,\"correction_of_previous_logic_gap\":{\"exact_fix\":\"classify the actual bounded file framing and invoke only the SHA-verified reachable Reader handler in memory with read-only path proxies and blocked external facilities\",\"proven_gap\":\"the previous command treated the referenced result file as a standalone JSON document, although the exact Reader may consume or return a framed text result\",\"regression_test\":\"a contract-prefixed two-line result must expose both JSON documents and a file-backed handler must record separate manifest and result reads without network, executor or file mutation\"},\"direct_file_records\":[{\"bytes\":1379,\"exists\":true,\"filename_length\":104,\"filename_sha256\":\"a8c42002c52b93901763464939221a762a78189d682c537c1ad640fe59614b8e\",\"framing\":{\"bytes\":1379,\"contract_prefix_present\":false,\"documents\":[],\"ends_with_newline\":true,\"gitea_candidate_count\":0,\"gitea_candidates\":[],\"guest_row_count\":0,\"gzip_magic\":false,\"line_count\":36,\"nul_count\":0,\"sha256\":\"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8\",\"structured_document_count\":0,\"utf8_valid\":true,\"whole_json_parse_ok\":false,\"zip_magic\":false},\"is_file\":true,\"reference_path\":[\"result\",\"name\"],\"safe_child_path\":true,\"sha256\":\"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8\"}],\"error_fingerprint\":\"eef9930a7d9e94064cabbe96c53de473efd266a91ebc5553e7b4e65fcd1f2912\",\"latest_exact_result_basis\":{\"capsule_sha256\":\"48ba7be0ff2adb9a62a31dffc2f2880829edf90bea1d191d95c2a40bf85ad69b\",\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z\",\"command_rc\":0,\"control_plane_error\":null,\"error_fingerprint\":\"1d1efb809c676989a56fdfc9b0ad714f67f8ed0801c74f06a0f3a6c379130d08\",\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_READER_V3_FILE_BACKED_FEED_CONTRACT_TRACE\",\"output_complete\":true,\"output_sha256\":\"1ee62d6e2d54d20d0cc830fec35b1566f3019f4dbf50be2d8d0b97710f0848a8\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"READER_V3_RESULT_REFERENCE_PROVEN_BUT_FILE_UNREADABLE_OR_INVALID\",\"runner_document_rc\":0,\"runner_json_sha256\":\"6afa911239c47be58319a5a59e80afebd7e5e1017295a0521c91797dbc10e5fa\",\"runner_rc\":0,\"runner_text_sha256\":\"52944532bcea2c9be1b4c530af692db49ac1380716d16871e6f5f7f7200ff315\",\"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},\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_READER_V3_EXACT_RESPONSE_FRAMING_TRACE\",\"output_truncated_in_json\":false,\"pre_command_known_error_gate\":{\"checked\":true,\"count\":22,\"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\",\"reader-result-reference-invalid-json-assumption-20260805\"]},\"prevention_test\":{\"must_run_before_future_cluster_or_gitea_commands\":true,\"name\":\"reader_v3_file_backed_feed_contract_preflight\",\"requirements\":[\"verify the exact prior result identity and all Reader source SHA values\",\"check the complete known-error register before execution\",\"resolve capability and file paths only from the exact systemd process and source\",\"accept only non-symlink bounded regular files beneath the resolved RESULTS directory\",\"analyze framed text before declaring JSON invalid\",\"execute only a statically safe reachable handler in memory with read-only path proxies\",\"block network, executor and file mutation facilities\",\"never emit capability, raw paths, filenames, response bodies or private addresses\"]},\"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\":10415,\"final_bytes\":10415,\"max_bytes\":30000,\"steps\":[]},\"result_reference_count\":1,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"READER_V3_FILE_BACKED_FEED_HANDLER_DID_NOT_PRODUCE_STRUCTURED_RESPONSE\",\"sandbox_feed_contract\":{\"attempts\":[{\"body_bytes\":850,\"body_sha256\":\"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3\",\"candidate\":\"capability-feed\",\"error\":null,\"header_names\":[\"cache-control\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"pragma\",\"surrogate-control\",\"x-homelab-generation\",\"x-robots-tag\"],\"status\":200}],\"manifest_read_count\":1,\"read_events\":[{\"bytes\":850,\"label\":\"manifest\",\"path_class\":\"/var\",\"path_sha256\":\"e3e86f7cca26be90bb29b569ebbc865b3b544ad6f47fb1e976afae301aa02aca\",\"sha256\":\"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3\"}],\"real_executor_calls_made\":false,\"real_file_mutations_made\":false,\"real_network_requests_made\":false,\"response\":{\"bytes\":850,\"contract_prefix_present\":false,\"documents\":[{\"gitea_candidate_count\":0,\"guest_row_count\":0,\"json_type\":\"dict\",\"origin\":\"whole\",\"sha256\":\"510c3a263e39b5fb6e7b65b0ca5ea381e3f1720ea2649afc697e320f8ebf04ec\",\"shape\":{\"raw_values_emitted\":false,\"shape\":{\"children\":{\"\":{\"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\",\"\",\"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}}],\"ends_with_newline\":true,\"gitea_candidate_count\":0,\"gitea_candidates\":[],\"guest_row_count\":0,\"gzip_magic\":false,\"line_count\":1,\"nul_count\":0,\"sha256\":\"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3\",\"structured_document_count\":1,\"utf8_valid\":true,\"whole_json_parse_ok\":true,\"zip_magic\":false},\"result_read_count\":0,\"two_file_read_proven\":false},\"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_safety_gate\":{\"call_count\":22,\"calls_sha256\":\"9145e700499a9d5c22ac45968929b303bb7eece28cad5e40d20e615371d9fab4\",\"forbidden_call_count\":0,\"forbidden_calls\":[],\"handler_class_name_sha256\":\"53cae329634a4eaa67f565e1de442e3ed98d11f793681c424a168743651dfb67\",\"handler_class_present\":true,\"raw_source_emitted\":false,\"reachable_symbol_count\":4,\"reachable_symbols_sha256\":\"438e2c27aeb4e4ee06feaa005b0c44e41d761f5133f7ec438806a6c7bd1c67a5\",\"safe_for_direct_in_memory_probe\":true},\"source_state\":\"MATCH\",\"status\":\"OK\",\"systemd_identity\":{\"identity_valid\":true,\"pid_count\":1,\"probe\":{\"duration_seconds\":0.007,\"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\"}}}\n" +} diff --git a/runtime/history/HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z.txt b/runtime/history/HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z.txt new file mode 100644 index 0000000..3e29c41 --- /dev/null +++ b/runtime/history/HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z +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=182dc522d724d23ec8772708e8cbdce4b373cf6488a773df5b87eb0381f91b5a +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=1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1 +SANITIZED_OUTPUT_SHA256=1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1 +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"assignment_types":{"CAPABILITY":"str","MANIFEST":"path","PORT":"int","RESULTS":"path","RESULT_RE":"compiled-regex","ROOT":"path"},"authoritative_inventory":{"gitea_candidate_count":0,"gitea_candidates":[],"guest_row_count":0,"two_file_read_proven":false},"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z","command_rc":0,"correction_of_previous_logic_gap":{"exact_fix":"classify the actual bounded file framing and invoke only the SHA-verified reachable Reader handler in memory with read-only path proxies and blocked external facilities","proven_gap":"the previous command treated the referenced result file as a standalone JSON document, although the exact Reader may consume or return a framed text result","regression_test":"a contract-prefixed two-line result must expose both JSON documents and a file-backed handler must record separate manifest and result reads without network, executor or file mutation"},"direct_file_records":[{"bytes":1379,"exists":true,"filename_length":104,"filename_sha256":"a8c42002c52b93901763464939221a762a78189d682c537c1ad640fe59614b8e","framing":{"bytes":1379,"contract_prefix_present":false,"documents":[],"ends_with_newline":true,"gitea_candidate_count":0,"gitea_candidates":[],"guest_row_count":0,"gzip_magic":false,"line_count":36,"nul_count":0,"sha256":"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8","structured_document_count":0,"utf8_valid":true,"whole_json_parse_ok":false,"zip_magic":false},"is_file":true,"reference_path":["result","name"],"safe_child_path":true,"sha256":"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8"}],"error_fingerprint":"eef9930a7d9e94064cabbe96c53de473efd266a91ebc5553e7b4e65fcd1f2912","latest_exact_result_basis":{"capsule_sha256":"48ba7be0ff2adb9a62a31dffc2f2880829edf90bea1d191d95c2a40bf85ad69b","changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z","command_rc":0,"control_plane_error":null,"error_fingerprint":"1d1efb809c676989a56fdfc9b0ad714f67f8ed0801c74f06a0f3a6c379130d08","mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_FILE_BACKED_FEED_CONTRACT_TRACE","output_complete":true,"output_sha256":"1ee62d6e2d54d20d0cc830fec35b1566f3019f4dbf50be2d8d0b97710f0848a8","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_RESULT_REFERENCE_PROVEN_BUT_FILE_UNREADABLE_OR_INVALID","runner_document_rc":0,"runner_json_sha256":"6afa911239c47be58319a5a59e80afebd7e5e1017295a0521c91797dbc10e5fa","runner_rc":0,"runner_text_sha256":"52944532bcea2c9be1b4c530af692db49ac1380716d16871e6f5f7f7200ff315","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},"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_EXACT_RESPONSE_FRAMING_TRACE","output_truncated_in_json":false,"pre_command_known_error_gate":{"checked":true,"count":22,"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","reader-result-reference-invalid-json-assumption-20260805"]},"prevention_test":{"must_run_before_future_cluster_or_gitea_commands":true,"name":"reader_v3_file_backed_feed_contract_preflight","requirements":["verify the exact prior result identity and all Reader source SHA values","check the complete known-error register before execution","resolve capability and file paths only from the exact systemd process and source","accept only non-symlink bounded regular files beneath the resolved RESULTS directory","analyze framed text before declaring JSON invalid","execute only a statically safe reachable handler in memory with read-only path proxies","block network, executor and file mutation facilities","never emit capability, raw paths, filenames, response bodies or private addresses"]},"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":10415,"final_bytes":10415,"max_bytes":30000,"steps":[]},"result_reference_count":1,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_FILE_BACKED_FEED_HANDLER_DID_NOT_PRODUCE_STRUCTURED_RESPONSE","sandbox_feed_contract":{"attempts":[{"body_bytes":850,"body_sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3","candidate":"capability-feed","error":null,"header_names":["cache-control","content-length","content-type","etag","expires","pragma","surrogate-control","x-homelab-generation","x-robots-tag"],"status":200}],"manifest_read_count":1,"read_events":[{"bytes":850,"label":"manifest","path_class":"/var","path_sha256":"e3e86f7cca26be90bb29b569ebbc865b3b544ad6f47fb1e976afae301aa02aca","sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3"}],"real_executor_calls_made":false,"real_file_mutations_made":false,"real_network_requests_made":false,"response":{"bytes":850,"contract_prefix_present":false,"documents":[{"gitea_candidate_count":0,"guest_row_count":0,"json_type":"dict","origin":"whole","sha256":"510c3a263e39b5fb6e7b65b0ca5ea381e3f1720ea2649afc697e320f8ebf04ec","shape":{"raw_values_emitted":false,"shape":{"children":{"":{"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","","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}}],"ends_with_newline":true,"gitea_candidate_count":0,"gitea_candidates":[],"guest_row_count":0,"gzip_magic":false,"line_count":1,"nul_count":0,"sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3","structured_document_count":1,"utf8_valid":true,"whole_json_parse_ok":true,"zip_magic":false},"result_read_count":0,"two_file_read_proven":false},"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_safety_gate":{"call_count":22,"calls_sha256":"9145e700499a9d5c22ac45968929b303bb7eece28cad5e40d20e615371d9fab4","forbidden_call_count":0,"forbidden_calls":[],"handler_class_name_sha256":"53cae329634a4eaa67f565e1de442e3ed98d11f793681c424a168743651dfb67","handler_class_present":true,"raw_source_emitted":false,"reachable_symbol_count":4,"reachable_symbols_sha256":"438e2c27aeb4e4ee06feaa005b0c44e41d761f5133f7ec438806a6c7bd1c67a5","safe_for_direct_in_memory_probe":true},"source_state":"MATCH","status":"OK","systemd_identity":{"identity_valid":true,"pid_count":1,"probe":{"duration_seconds":0.007,"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 diff --git a/runtime/latest.json b/runtime/latest.json index d003e83..818b811 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "HOMELAB-SKLADCHIK-REAUTH-PREFLIGHT-EXACT-SUMMARY-READ-ONLY-V2-20260805T112400Z", - "status": "FAIL", - "rc": 1, + "command_id": "HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z", + "status": "OK", + "rc": 0, "host": "pve01", "mode": "verify", - "component": "skladchik-reauth-preflight-exact-summary-read-only-v2", - "started_at_utc": "2026-08-05T11:30:05Z", - "finished_at_utc": "2026-08-05T11:30:05Z", + "component": "cluster-knowledge-base-error-system", + "started_at_utc": "2026-08-05T11:31:00Z", + "finished_at_utc": "2026-08-05T11:31:01Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "747ad38240c87207928cf0a38296c6533e98e5d5602002c592be539b38a01dd7", + "command_sha256": "182dc522d724d23ec8772708e8cbdce4b373cf6488a773df5b87eb0381f91b5a", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -21,7 +21,7 @@ "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, - "command_rc": 1, + "command_rc": 0, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "c69e2604663f43778d482479b6b5b8d19ac5aa7c015604fdffdc8f587f54f1ef", - "sanitized_output_sha256": "c69e2604663f43778d482479b6b5b8d19ac5aa7c015604fdffdc8f587f54f1ef", + "raw_evidence_sha256": "1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1", + "sanitized_output_sha256": "1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1", "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-SKLADCHIK-REAUTH-PREFLIGHT-EXACT-SUMMARY-READ-ONLY-V2-20260805T112400Z\",\"command_rc\":1,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":1,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"HOMELAB-SKLADCHIK-REAUTH-PREFLIGHT-EXACT-SUMMARY-READ-ONLY-V2-20260805T112400Z\",\"command_rc\":1,\"error\":\"task payload JSON stream decode failed at offset=11967: Expecting value\",\"error_type\":\"RuntimeError\",\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":1,\"read_only\":true,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"FAIL\"}\n" + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z\",\"command_rc\":0,\"mutation_outcome\":\"NO_MUTATION\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"assignment_types\":{\"CAPABILITY\":\"str\",\"MANIFEST\":\"path\",\"PORT\":\"int\",\"RESULTS\":\"path\",\"RESULT_RE\":\"compiled-regex\",\"ROOT\":\"path\"},\"authoritative_inventory\":{\"gitea_candidate_count\":0,\"gitea_candidates\":[],\"guest_row_count\":0,\"two_file_read_proven\":false},\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z\",\"command_rc\":0,\"correction_of_previous_logic_gap\":{\"exact_fix\":\"classify the actual bounded file framing and invoke only the SHA-verified reachable Reader handler in memory with read-only path proxies and blocked external facilities\",\"proven_gap\":\"the previous command treated the referenced result file as a standalone JSON document, although the exact Reader may consume or return a framed text result\",\"regression_test\":\"a contract-prefixed two-line result must expose both JSON documents and a file-backed handler must record separate manifest and result reads without network, executor or file mutation\"},\"direct_file_records\":[{\"bytes\":1379,\"exists\":true,\"filename_length\":104,\"filename_sha256\":\"a8c42002c52b93901763464939221a762a78189d682c537c1ad640fe59614b8e\",\"framing\":{\"bytes\":1379,\"contract_prefix_present\":false,\"documents\":[],\"ends_with_newline\":true,\"gitea_candidate_count\":0,\"gitea_candidates\":[],\"guest_row_count\":0,\"gzip_magic\":false,\"line_count\":36,\"nul_count\":0,\"sha256\":\"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8\",\"structured_document_count\":0,\"utf8_valid\":true,\"whole_json_parse_ok\":false,\"zip_magic\":false},\"is_file\":true,\"reference_path\":[\"result\",\"name\"],\"safe_child_path\":true,\"sha256\":\"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8\"}],\"error_fingerprint\":\"eef9930a7d9e94064cabbe96c53de473efd266a91ebc5553e7b4e65fcd1f2912\",\"latest_exact_result_basis\":{\"capsule_sha256\":\"48ba7be0ff2adb9a62a31dffc2f2880829edf90bea1d191d95c2a40bf85ad69b\",\"changes_made\":false,\"command_id\":\"HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z\",\"command_rc\":0,\"control_plane_error\":null,\"error_fingerprint\":\"1d1efb809c676989a56fdfc9b0ad714f67f8ed0801c74f06a0f3a6c379130d08\",\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_READER_V3_FILE_BACKED_FEED_CONTRACT_TRACE\",\"output_complete\":true,\"output_sha256\":\"1ee62d6e2d54d20d0cc830fec35b1566f3019f4dbf50be2d8d0b97710f0848a8\",\"output_truncated_in_json\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"READER_V3_RESULT_REFERENCE_PROVEN_BUT_FILE_UNREADABLE_OR_INVALID\",\"runner_document_rc\":0,\"runner_json_sha256\":\"6afa911239c47be58319a5a59e80afebd7e5e1017295a0521c91797dbc10e5fa\",\"runner_rc\":0,\"runner_text_sha256\":\"52944532bcea2c9be1b4c530af692db49ac1380716d16871e6f5f7f7200ff315\",\"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},\"mutation_outcome\":\"NO_MUTATION\",\"next_action\":\"RUN_ONE_READ_ONLY_READER_V3_EXACT_RESPONSE_FRAMING_TRACE\",\"output_truncated_in_json\":false,\"pre_command_known_error_gate\":{\"checked\":true,\"count\":22,\"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\",\"reader-result-reference-invalid-json-assumption-20260805\"]},\"prevention_test\":{\"must_run_before_future_cluster_or_gitea_commands\":true,\"name\":\"reader_v3_file_backed_feed_contract_preflight\",\"requirements\":[\"verify the exact prior result identity and all Reader source SHA values\",\"check the complete known-error register before execution\",\"resolve capability and file paths only from the exact systemd process and source\",\"accept only non-symlink bounded regular files beneath the resolved RESULTS directory\",\"analyze framed text before declaring JSON invalid\",\"execute only a statically safe reachable handler in memory with read-only path proxies\",\"block network, executor and file mutation facilities\",\"never emit capability, raw paths, filenames, response bodies or private addresses\"]},\"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\":10415,\"final_bytes\":10415,\"max_bytes\":30000,\"steps\":[]},\"result_reference_count\":1,\"rollback_restored\":null,\"rollback_started\":false,\"root_cause_classification\":\"READER_V3_FILE_BACKED_FEED_HANDLER_DID_NOT_PRODUCE_STRUCTURED_RESPONSE\",\"sandbox_feed_contract\":{\"attempts\":[{\"body_bytes\":850,\"body_sha256\":\"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3\",\"candidate\":\"capability-feed\",\"error\":null,\"header_names\":[\"cache-control\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"pragma\",\"surrogate-control\",\"x-homelab-generation\",\"x-robots-tag\"],\"status\":200}],\"manifest_read_count\":1,\"read_events\":[{\"bytes\":850,\"label\":\"manifest\",\"path_class\":\"/var\",\"path_sha256\":\"e3e86f7cca26be90bb29b569ebbc865b3b544ad6f47fb1e976afae301aa02aca\",\"sha256\":\"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3\"}],\"real_executor_calls_made\":false,\"real_file_mutations_made\":false,\"real_network_requests_made\":false,\"response\":{\"bytes\":850,\"contract_prefix_present\":false,\"documents\":[{\"gitea_candidate_count\":0,\"guest_row_count\":0,\"json_type\":\"dict\",\"origin\":\"whole\",\"sha256\":\"510c3a263e39b5fb6e7b65b0ca5ea381e3f1720ea2649afc697e320f8ebf04ec\",\"shape\":{\"raw_values_emitted\":false,\"shape\":{\"children\":{\"\":{\"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\",\"\",\"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}}],\"ends_with_newline\":true,\"gitea_candidate_count\":0,\"gitea_candidates\":[],\"guest_row_count\":0,\"gzip_magic\":false,\"line_count\":1,\"nul_count\":0,\"sha256\":\"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3\",\"structured_document_count\":1,\"utf8_valid\":true,\"whole_json_parse_ok\":true,\"zip_magic\":false},\"result_read_count\":0,\"two_file_read_proven\":false},\"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_safety_gate\":{\"call_count\":22,\"calls_sha256\":\"9145e700499a9d5c22ac45968929b303bb7eece28cad5e40d20e615371d9fab4\",\"forbidden_call_count\":0,\"forbidden_calls\":[],\"handler_class_name_sha256\":\"53cae329634a4eaa67f565e1de442e3ed98d11f793681c424a168743651dfb67\",\"handler_class_present\":true,\"raw_source_emitted\":false,\"reachable_symbol_count\":4,\"reachable_symbols_sha256\":\"438e2c27aeb4e4ee06feaa005b0c44e41d761f5133f7ec438806a6c7bd1c67a5\",\"safe_for_direct_in_memory_probe\":true},\"source_state\":\"MATCH\",\"status\":\"OK\",\"systemd_identity\":{\"identity_valid\":true,\"pid_count\":1,\"probe\":{\"duration_seconds\":0.007,\"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\"}}}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index cd0cfa8..3e29c41 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HOMELAB-SKLADCHIK-REAUTH-PREFLIGHT-EXACT-SUMMARY-READ-ONLY-V2-20260805T112400Z -STATUS=FAIL -RC=1 +COMMAND_ID=HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z +STATUS=OK +RC=0 HOST=pve01 MODE=verify -COMPONENT=skladchik-reauth-preflight-exact-summary-read-only-v2 +COMPONENT=cluster-knowledge-base-error-system REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=747ad38240c87207928cf0a38296c6533e98e5d5602002c592be539b38a01dd7 +COMMAND_SHA256=182dc522d724d23ec8772708e8cbdce4b373cf6488a773df5b87eb0381f91b5a 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=1 +COMMAND_RC=0 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,11 +24,11 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=c69e2604663f43778d482479b6b5b8d19ac5aa7c015604fdffdc8f587f54f1ef -SANITIZED_OUTPUT_SHA256=c69e2604663f43778d482479b6b5b8d19ac5aa7c015604fdffdc8f587f54f1ef +RAW_EVIDENCE_SHA256=1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1 +SANITIZED_OUTPUT_SHA256=1530863e622a2f36e6a33bb80c9bf3928d7fd17f0700d1f30ce51bc67eea8df1 OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-SKLADCHIK-REAUTH-PREFLIGHT-EXACT-SUMMARY-READ-ONLY-V2-20260805T112400Z","command_rc":1,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":1,"rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} -{"changes_made":false,"command_id":"HOMELAB-SKLADCHIK-REAUTH-PREFLIGHT-EXACT-SUMMARY-READ-ONLY-V2-20260805T112400Z","command_rc":1,"error":"task payload JSON stream decode failed at offset=11967: Expecting value","error_type":"RuntimeError","mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":1,"read_only":true,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"FAIL"} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"assignment_types":{"CAPABILITY":"str","MANIFEST":"path","PORT":"int","RESULTS":"path","RESULT_RE":"compiled-regex","ROOT":"path"},"authoritative_inventory":{"gitea_candidate_count":0,"gitea_candidates":[],"guest_row_count":0,"two_file_read_proven":false},"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-FILE-BACKED-FEED-CONTRACT-TRACE-READ-ONLY-20260805T112500Z","command_rc":0,"correction_of_previous_logic_gap":{"exact_fix":"classify the actual bounded file framing and invoke only the SHA-verified reachable Reader handler in memory with read-only path proxies and blocked external facilities","proven_gap":"the previous command treated the referenced result file as a standalone JSON document, although the exact Reader may consume or return a framed text result","regression_test":"a contract-prefixed two-line result must expose both JSON documents and a file-backed handler must record separate manifest and result reads without network, executor or file mutation"},"direct_file_records":[{"bytes":1379,"exists":true,"filename_length":104,"filename_sha256":"a8c42002c52b93901763464939221a762a78189d682c537c1ad640fe59614b8e","framing":{"bytes":1379,"contract_prefix_present":false,"documents":[],"ends_with_newline":true,"gitea_candidate_count":0,"gitea_candidates":[],"guest_row_count":0,"gzip_magic":false,"line_count":36,"nul_count":0,"sha256":"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8","structured_document_count":0,"utf8_valid":true,"whole_json_parse_ok":false,"zip_magic":false},"is_file":true,"reference_path":["result","name"],"safe_child_path":true,"sha256":"d8c91a0f46d6698733d52aaec15dca8fe79d9a7605693467e1516f05b146e4d8"}],"error_fingerprint":"eef9930a7d9e94064cabbe96c53de473efd266a91ebc5553e7b4e65fcd1f2912","latest_exact_result_basis":{"capsule_sha256":"48ba7be0ff2adb9a62a31dffc2f2880829edf90bea1d191d95c2a40bf85ad69b","changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-READER-V3-SANITIZED-FILE-RECORD-SHAPE-TRACE-READ-ONLY-20260805T111000Z","command_rc":0,"control_plane_error":null,"error_fingerprint":"1d1efb809c676989a56fdfc9b0ad714f67f8ed0801c74f06a0f3a6c379130d08","mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_FILE_BACKED_FEED_CONTRACT_TRACE","output_complete":true,"output_sha256":"1ee62d6e2d54d20d0cc830fec35b1566f3019f4dbf50be2d8d0b97710f0848a8","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_RESULT_REFERENCE_PROVEN_BUT_FILE_UNREADABLE_OR_INVALID","runner_document_rc":0,"runner_json_sha256":"6afa911239c47be58319a5a59e80afebd7e5e1017295a0521c91797dbc10e5fa","runner_rc":0,"runner_text_sha256":"52944532bcea2c9be1b4c530af692db49ac1380716d16871e6f5f7f7200ff315","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},"mutation_outcome":"NO_MUTATION","next_action":"RUN_ONE_READ_ONLY_READER_V3_EXACT_RESPONSE_FRAMING_TRACE","output_truncated_in_json":false,"pre_command_known_error_gate":{"checked":true,"count":22,"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","reader-result-reference-invalid-json-assumption-20260805"]},"prevention_test":{"must_run_before_future_cluster_or_gitea_commands":true,"name":"reader_v3_file_backed_feed_contract_preflight","requirements":["verify the exact prior result identity and all Reader source SHA values","check the complete known-error register before execution","resolve capability and file paths only from the exact systemd process and source","accept only non-symlink bounded regular files beneath the resolved RESULTS directory","analyze framed text before declaring JSON invalid","execute only a statically safe reachable handler in memory with read-only path proxies","block network, executor and file mutation facilities","never emit capability, raw paths, filenames, response bodies or private addresses"]},"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":10415,"final_bytes":10415,"max_bytes":30000,"steps":[]},"result_reference_count":1,"rollback_restored":null,"rollback_started":false,"root_cause_classification":"READER_V3_FILE_BACKED_FEED_HANDLER_DID_NOT_PRODUCE_STRUCTURED_RESPONSE","sandbox_feed_contract":{"attempts":[{"body_bytes":850,"body_sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3","candidate":"capability-feed","error":null,"header_names":["cache-control","content-length","content-type","etag","expires","pragma","surrogate-control","x-homelab-generation","x-robots-tag"],"status":200}],"manifest_read_count":1,"read_events":[{"bytes":850,"label":"manifest","path_class":"/var","path_sha256":"e3e86f7cca26be90bb29b569ebbc865b3b544ad6f47fb1e976afae301aa02aca","sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3"}],"real_executor_calls_made":false,"real_file_mutations_made":false,"real_network_requests_made":false,"response":{"bytes":850,"contract_prefix_present":false,"documents":[{"gitea_candidate_count":0,"guest_row_count":0,"json_type":"dict","origin":"whole","sha256":"510c3a263e39b5fb6e7b65b0ca5ea381e3f1720ea2649afc697e320f8ebf04ec","shape":{"raw_values_emitted":false,"shape":{"children":{"":{"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","","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}}],"ends_with_newline":true,"gitea_candidate_count":0,"gitea_candidates":[],"guest_row_count":0,"gzip_magic":false,"line_count":1,"nul_count":0,"sha256":"62d03ac0b4d42a002d0efd0b6b946f3615db36e4ea6b6cfcde812c4f8ec046c3","structured_document_count":1,"utf8_valid":true,"whole_json_parse_ok":true,"zip_magic":false},"result_read_count":0,"two_file_read_proven":false},"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_safety_gate":{"call_count":22,"calls_sha256":"9145e700499a9d5c22ac45968929b303bb7eece28cad5e40d20e615371d9fab4","forbidden_call_count":0,"forbidden_calls":[],"handler_class_name_sha256":"53cae329634a4eaa67f565e1de442e3ed98d11f793681c424a168743651dfb67","handler_class_present":true,"raw_source_emitted":false,"reachable_symbol_count":4,"reachable_symbols_sha256":"438e2c27aeb4e4ee06feaa005b0c44e41d761f5133f7ec438806a6c7bd1c67a5","safe_for_direct_in_memory_probe":true},"source_state":"MATCH","status":"OK","systemd_identity":{"identity_valid":true,"pid_count":1,"probe":{"duration_seconds":0.007,"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