1
0

runtime: publish RUNNER-MUTATION-CONTRACT-APPLY-20260726T205715Z

This commit is contained in:
homelab-runtime-publisher
2026-07-26 21:02:55 +00:00
parent 0fc4531e93
commit 15f64d702f
4 changed files with 73 additions and 16 deletions
+9 -9
View File
@@ -1,30 +1,30 @@
{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "RUNNER-MUTATION-CONTRACT-PLAN-20260726T204219Z",
"command_id": "RUNNER-MUTATION-CONTRACT-APPLY-20260726T205715Z",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "verify",
"mode": "change",
"component": "runner",
"started_at_utc": "2026-07-26T20:50:10Z",
"finished_at_utc": "2026-07-26T20:50:10Z",
"started_at_utc": "2026-07-26T21:02:54Z",
"finished_at_utc": "2026-07-26T21:02:55Z",
"reference_register_checked": true,
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
"error_register_checked": true,
"error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
"command_sha256": "18ca7f1fb586bea8de09771fb8a2620d7c1e624494878d745b07a897fb6cb780",
"command_sha256": "83adb37ea842dc736fd0a58cdb67f768b204e01fb6b32c90775504c67958de16",
"duplicate_failed_command_blocked": false,
"block_reason": null,
"execution_started": true,
"changes_made": false,
"changes_made": true,
"sanitized": true,
"secrets_included": false,
"private_addresses_included": false,
"raw_evidence_retained_locally": true,
"raw_evidence_sha256": "65beaf599a688212c2299703e01dab946a652f2837f41a98f983eee7fadf9909",
"sanitized_output_sha256": "65beaf599a688212c2299703e01dab946a652f2837f41a98f983eee7fadf9909",
"raw_evidence_sha256": "3c98acc82d21d62e7fdc2ef0207432fe1d3c10547761ceffaea3b1b4afcc971e",
"sanitized_output_sha256": "3c98acc82d21d62e7fdc2ef0207432fe1d3c10547761ceffaea3b1b4afcc971e",
"output_truncated_in_json": false,
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
"output": "{\"PLAN_SHA256\":\"22eedf9b1090960a7f92cef992f481d8d6cc3f42e4f4ecd6e27bbda4ebf752bd\",\"changes_made\":false,\"command_id\":\"RUNNER-MUTATION-CONTRACT-PLAN-20260726T204219Z\",\"diff\":{\"additions\":285,\"deletions\":8,\"diff_sha256\":\"6ce1b41ad8de334ca804bccee03cae25ca600364473eee1677afde818cfcc192\",\"hunks\":8},\"mutating_states\":{\"closed\":[\"RUNNER-LINKED-REMOVAL-APPLY-20260726T202107Z\",\"RUNNER-LINKED-REMOVAL-APPLY-FINAL-20260726T202825Z\"],\"unresolved\":[]},\"plan\":{\"anti_regression\":[\"mode=change больше не означает changes_made=true\",\"повтор заблокированной команды считается NO_MUTATION\",\"несовпадающий command_id контракта блокируется\",\"несколько контрактов блокируются\",\"отсутствующий контракт блокируется с UNKNOWN\"],\"file\":\"/usr/local/sbin/homelab-chat-run\",\"next\":\"после APPLY обновить Adapter META/state, затем закрыть старые precondition-only записи\",\"operation\":\"УСТАНОВИТЬ_КОНТРАКТ_ФАКТИЧЕСКОЙ_МУТАЦИИ_RUNNER\",\"postconditions\":[\"target SHA совпадает\",\"bash -n проходит\",\"--self-test проходит\",\"verify/read-only всегда changes_made=false\",\"BLOCKED change с контрактом даёт changes_made=false\",\"change без контракта даёт changes_made=null и FAIL\",\"успешная мутация даёт changes_made=true\",\"успешный rollback даёт mutation_outcome=ROLLED_BACK\",\"Adapter и Portal не перезапускаются\"],\"preconditions\":{\"adapter_self_test\":true,\"adapter_здоров\":true,\"portal_identity_self_test\":true,\"portal_здоров\":true,\"известные_старые_попытки_закрыты\":true,\"нет_других_mutating_failure\":true,\"текущая_capsule_корректна\":true,\"точный_source_lock\":true},\"risk\":\"REVERSIBLE\",\"rollback\":{\"atomic_restore\":true,\"copy_before_apply\":true,\"copy_mode\":\"0600\",\"diagnostics_before_rollback\":true,\"verify_sha256\":\"2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9\"},\"schema\":1,\"scope\":{\"backup_changed\":false,\"cluster_changed\":false,\"gitea_changed\":false,\"modify\":[\"/usr/local/sbin/homelab-chat-run\"],\"preserve\":[\"/usr/local/sbin/homelab-command-adapter\",\"/usr/local/sbin/homelab-command-portal\",\"/usr/local/sbin/homelab-chat-run-linked\"],\"service_restart\":false},\"source_evidence\":[\"d33b0cb4f775fb6bfb57d7681273a2ae9b3e884088ae794f1c152797cd03f6dd\",\"98474ad0c0c5ab2b6507c2469ea804b3c771f8a8f71c23a8238fd64ae1fe989d\"],\"source_sha256\":\"2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9\",\"target\":\"pve01\",\"target_sha256\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\"},\"rollback_started\":false,\"source_sha256\":\"2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9\",\"static_tests\":{\"bash_syntax\":true,\"marker_контракта\":true,\"preexecution_block_no_mutation\":true,\"runner_self_test\":true,\"target_sha_отличается\":true,\"unknown_fail_closed\":true,\"нет_mode_change_equals_changed\":true},\"status\":\"PASS\",\"target_sha256\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\"}\n"
"output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":true,\"command_id\":\"RUNNER-MUTATION-CONTRACT-APPLY-20260726T205715Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":\"22eedf9b1090960a7f92cef992f481d8d6cc3f42e4f4ecd6e27bbda4ebf752bd\",\"backup_changed\":false,\"changes_made\":true,\"cluster_changed\":false,\"gitea_changed\":false,\"postconditions\":{\"adapter_healthy\":true,\"adapter_not_restarted\":true,\"adapter_self_test\":true,\"portal_health\":true,\"portal_healthy\":true,\"portal_identity_self_test\":true,\"portal_not_restarted\":true,\"preserved_source_lock\":true,\"rollback_copy_mode_0600\":true,\"rollback_copy_sha256\":true,\"runner_bash_syntax\":true,\"runner_mode_preserved\":true,\"runner_owner_preserved\":true,\"runner_regular_not_symlink\":true,\"runner_self_test\":true,\"target_sha256\":true},\"rollback_copy\":\"/var/lib/homelab-change-rollback/RUNNER-MUTATION-CONTRACT-APPLY-20260726T205715Z/homelab-chat-run.rollback\",\"rollback_metadata\":\"/var/lib/homelab-change-rollback/RUNNER-MUTATION-CONTRACT-APPLY-20260726T205715Z/metadata.json\",\"rollback_started\":false,\"service_restart\":false,\"source_sha256\":\"2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9\",\"status\":\"OK\",\"target_sha256\":\"b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d\"}\n"
}