From 94d5b4c37967b7865f707cad04c982e3810aca3a Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Wed, 29 Jul 2026 06:54:20 +0000 Subject: [PATCH] runtime: publish AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z --- ...-DIRECTORY-PLAN-FIX1-20260729T065312Z.json | 38 +++++++++++++++++++ ...T-DIRECTORY-PLAN-FIX1-20260729T065312Z.txt | 34 +++++++++++++++++ runtime/latest.json | 16 ++++---- runtime/latest.txt | 14 +++---- 4 files changed, 87 insertions(+), 15 deletions(-) create mode 100644 runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.json create mode 100644 runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.txt diff --git a/runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.json b/runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.json new file mode 100644 index 0000000..7d3eadb --- /dev/null +++ b/runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "automatic-result-slot-directory-plan-fix1", + "started_at_utc": "2026-07-29T06:54:14Z", + "finished_at_utc": "2026-07-29T06:54:19Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "ebb5b077788f7fa60dd83bdc23a45f9bb285be2a2617ed3a581e05ff2ce7d4da", + "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": "55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a", + "sanitized_output_sha256": "55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a", + "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\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":\"fa69207c4504629173a0c972289306caf1fe36c0cd903770c6060dce47f1ccf0\",\"adapter_changed\":false,\"backup_changed\":false,\"candidate\":{\"capsule_sha256\":\"e0da52d63a7f57fad018fa796bd3fbafe59bc5ccb39fa6afdcbd9d3f3a57c237\",\"command_id\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z\",\"corrupt_newest_returns_409\":null,\"directory_branching\":16,\"directory_levels\":8,\"dynamic_update_without_restart\":null,\"exact_http\":200,\"fresh_probe_confirmed\":true,\"full_output_present\":true,\"restored_newest_visible\":null,\"runner_json_sha256\":\"d27a96c082fff1e2694604ce5735ad0197a8b6d5d23c4b4ac52d7aa69f0f14ba\",\"slot_http\":200,\"slot_space\":4294967296},\"changes_made\":false,\"cluster_changed\":false,\"command_id\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z\",\"current_lookup_sha256\":\"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e\",\"current_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"edge_changed\":false,\"gitea_changed\":false,\"minio_changed\":false,\"plan\":{\"acceptance_tests\":[\"root and every directory page expose exactly 16 unique relative links\",\"all eight directory levels are traversed and final slot is HTML\",\"directory pages are immutable and slot pages are no-store\",\"two unused slots for the same latest result have identical revision and different probes\",\"following the exact link returns full sanitized output and a valid result contract\",\"a newer terminal fixture becomes visible through an unused slot without restart\",\"corrupting the newest fixture makes an unused slot return HTTP 409\",\"restoring the newest fixture returns the new result again\",\"candidate passes read-only against the real production state directory\"],\"apply_scope\":{\"forbidden\":[\"modify Adapter\",\"modify Portal\",\"modify edge Nginx\",\"modify Gitea\",\"modify MinIO\",\"modify backups\",\"create second runner\"],\"modify\":[\"/usr/local/sbin/homelab-result-lookup\"],\"restart_only\":[\"homelab-result-lookup.service\"],\"unit_change_expected\":false},\"bootstrap_url\":\"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/slots/index.html\",\"current_lookup_sha256\":\"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e\",\"current_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"objective\":\"Provide a cache-independent assistant readback path through a static 16-way, eight-level slot directory. The first eight hexadecimal characters of the expected capsule SHA select a never-before-used slot page, which contains a server-generated exact-result link.\",\"operation\":\"AUTOMATIC_RESULT_SLOT_DIRECTORY_FIX1\",\"read_only_plan\":true,\"schema\":1,\"slot_derivation\":{\"branching\":16,\"collision_fallback\":\"increment the final nibble and use a different final slot\",\"directory_levels\":8,\"slot_space\":4294967296,\"source\":\"first eight hexadecimal characters of capsule_sha256\"},\"target_lookup_sha256\":\"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a\"},\"portal_changed\":false,\"private_addresses_included\":false,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"status\":\"PLAN_READY\",\"target_lookup_sha256\":\"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a\"}\n" +} diff --git a/runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.txt b/runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.txt new file mode 100644 index 0000000..c96d485 --- /dev/null +++ b/runtime/history/AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=automatic-result-slot-directory-plan-fix1 +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=ebb5b077788f7fa60dd83bdc23a45f9bb285be2a2617ed3a581e05ff2ce7d4da +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=55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a +SANITIZED_OUTPUT_SHA256=55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"PLAN_SHA256":"fa69207c4504629173a0c972289306caf1fe36c0cd903770c6060dce47f1ccf0","adapter_changed":false,"backup_changed":false,"candidate":{"capsule_sha256":"e0da52d63a7f57fad018fa796bd3fbafe59bc5ccb39fa6afdcbd9d3f3a57c237","command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z","corrupt_newest_returns_409":null,"directory_branching":16,"directory_levels":8,"dynamic_update_without_restart":null,"exact_http":200,"fresh_probe_confirmed":true,"full_output_present":true,"restored_newest_visible":null,"runner_json_sha256":"d27a96c082fff1e2694604ce5735ad0197a8b6d5d23c4b4ac52d7aa69f0f14ba","slot_http":200,"slot_space":4294967296},"changes_made":false,"cluster_changed":false,"command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z","current_lookup_sha256":"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e","current_unit_sha256":"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a","edge_changed":false,"gitea_changed":false,"minio_changed":false,"plan":{"acceptance_tests":["root and every directory page expose exactly 16 unique relative links","all eight directory levels are traversed and final slot is HTML","directory pages are immutable and slot pages are no-store","two unused slots for the same latest result have identical revision and different probes","following the exact link returns full sanitized output and a valid result contract","a newer terminal fixture becomes visible through an unused slot without restart","corrupting the newest fixture makes an unused slot return HTTP 409","restoring the newest fixture returns the new result again","candidate passes read-only against the real production state directory"],"apply_scope":{"forbidden":["modify Adapter","modify Portal","modify edge Nginx","modify Gitea","modify MinIO","modify backups","create second runner"],"modify":["/usr/local/sbin/homelab-result-lookup"],"restart_only":["homelab-result-lookup.service"],"unit_change_expected":false},"bootstrap_url":"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/slots/index.html","current_lookup_sha256":"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e","current_unit_sha256":"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a","objective":"Provide a cache-independent assistant readback path through a static 16-way, eight-level slot directory. The first eight hexadecimal characters of the expected capsule SHA select a never-before-used slot page, which contains a server-generated exact-result link.","operation":"AUTOMATIC_RESULT_SLOT_DIRECTORY_FIX1","read_only_plan":true,"schema":1,"slot_derivation":{"branching":16,"collision_fallback":"increment the final nibble and use a different final slot","directory_levels":8,"slot_space":4294967296,"source":"first eight hexadecimal characters of capsule_sha256"},"target_lookup_sha256":"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a"},"portal_changed":false,"private_addresses_included":false,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"status":"PLAN_READY","target_lookup_sha256":"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a"} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index c8d2fb1..7d3eadb 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z", + "command_id": "AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z", "status": "OK", "rc": 0, "host": "pve01", "mode": "verify", - "component": "automatic-result-slot-directory-plan", - "started_at_utc": "2026-07-29T06:45:22Z", - "finished_at_utc": "2026-07-29T06:45:27Z", + "component": "automatic-result-slot-directory-plan-fix1", + "started_at_utc": "2026-07-29T06:54:14Z", + "finished_at_utc": "2026-07-29T06:54:19Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "90d33f2478b7c0262f1d3ce1f50c6e26a62a2e63eca47629d353d17fa9e3073d", + "command_sha256": "ebb5b077788f7fa60dd83bdc23a45f9bb285be2a2617ed3a581e05ff2ce7d4da", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "1da7cdcba898ce19e7b17e93797195437dddb17c1b47bac773b6a5a4667ab5e4", - "sanitized_output_sha256": "1da7cdcba898ce19e7b17e93797195437dddb17c1b47bac773b6a5a4667ab5e4", + "raw_evidence_sha256": "55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a", + "sanitized_output_sha256": "55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a", "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\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":\"5aec676224fbb49f3dd0aa022f8d80880ae7ef8985fa12d5610ac8193c12be74\",\"adapter_changed\":false,\"backup_changed\":false,\"candidate\":{\"capsule_sha256\":\"b3ea8b30a2fb2020fb89cfeabcdc6a07b9436d38265f60fd40c91395bcb18ea1\",\"command_id\":\"AUTOMATIC-RESULT-POINTER-REDIRECT-APPLY-FIX2-20260728T210654Z\",\"exact_http\":200,\"fresh_probe_confirmed\":true,\"full_output_present\":true,\"level1_links\":256,\"level2_links\":256,\"level3_links\":256,\"root_links\":256,\"runner_json_sha256\":\"b1c62f37ef7953c7e645a6244daec586c2a2b248d682b4ecd79234995b834691\",\"slot_http\":200},\"changes_made\":false,\"cluster_changed\":false,\"command_id\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z\",\"current_lookup_sha256\":\"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e\",\"current_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"edge_changed\":false,\"gitea_changed\":false,\"minio_changed\":false,\"plan\":{\"acceptance_tests\":[\"root and every directory page expose exactly 256 relative links\",\"four capsule bytes address 2^32 independent slot URLs\",\"slot pages are no-store and contain one exact-result link\",\"two fresh slots for one latest result have same revision and different probes\",\"following the exact link returns full sanitized output\",\"newer terminal fixture is visible through an unused slot without restart\",\"corrupt newest fixture returns 409 rather than old content\",\"candidate passes against the real production state directory\"],\"apply_scope\":{\"forbidden\":[\"modify Adapter\",\"modify Portal\",\"modify edge Nginx\",\"modify Gitea\",\"modify MinIO\",\"modify backups\",\"create second runner\"],\"modify\":[\"/usr/local/sbin/homelab-result-lookup\"],\"restart_only\":[\"homelab-result-lookup.service\"],\"unit_change_expected\":false},\"bootstrap_url\":\"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/slots/index.html\",\"current_lookup_sha256\":\"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e\",\"current_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"objective\":\"Bypass the assistant web cache for stable URLs by exposing a static four-level directory of 2^32 never-before-used result slots. A slot page is selected from the first four capsule bytes and contains a server-generated exact-result link.\",\"operation\":\"AUTOMATIC_RESULT_SLOT_DIRECTORY\",\"read_only_plan\":true,\"schema\":1,\"target_lookup_sha256\":\"ae1109cc637fd8fe28def5c9e2539879ebc353790689269104008bfeb8a82b0d\",\"workflow\":[\"Open the static slot index once in a chat.\",\"Derive four hexadecimal bytes from the expected capsule SHA256.\",\"Click four directory/slot links.\",\"Read the slot page identity.\",\"Click its server-generated exact-result link.\",\"Verify command_id, capsule SHA, runner revision and full output.\",\"On a collision or stale slot, use the next final-byte link.\"]},\"portal_changed\":false,\"private_addresses_included\":false,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"status\":\"PLAN_READY\",\"target_lookup_sha256\":\"ae1109cc637fd8fe28def5c9e2539879ebc353790689269104008bfeb8a82b0d\"}\n" + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":\"fa69207c4504629173a0c972289306caf1fe36c0cd903770c6060dce47f1ccf0\",\"adapter_changed\":false,\"backup_changed\":false,\"candidate\":{\"capsule_sha256\":\"e0da52d63a7f57fad018fa796bd3fbafe59bc5ccb39fa6afdcbd9d3f3a57c237\",\"command_id\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z\",\"corrupt_newest_returns_409\":null,\"directory_branching\":16,\"directory_levels\":8,\"dynamic_update_without_restart\":null,\"exact_http\":200,\"fresh_probe_confirmed\":true,\"full_output_present\":true,\"restored_newest_visible\":null,\"runner_json_sha256\":\"d27a96c082fff1e2694604ce5735ad0197a8b6d5d23c4b4ac52d7aa69f0f14ba\",\"slot_http\":200,\"slot_space\":4294967296},\"changes_made\":false,\"cluster_changed\":false,\"command_id\":\"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z\",\"current_lookup_sha256\":\"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e\",\"current_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"edge_changed\":false,\"gitea_changed\":false,\"minio_changed\":false,\"plan\":{\"acceptance_tests\":[\"root and every directory page expose exactly 16 unique relative links\",\"all eight directory levels are traversed and final slot is HTML\",\"directory pages are immutable and slot pages are no-store\",\"two unused slots for the same latest result have identical revision and different probes\",\"following the exact link returns full sanitized output and a valid result contract\",\"a newer terminal fixture becomes visible through an unused slot without restart\",\"corrupting the newest fixture makes an unused slot return HTTP 409\",\"restoring the newest fixture returns the new result again\",\"candidate passes read-only against the real production state directory\"],\"apply_scope\":{\"forbidden\":[\"modify Adapter\",\"modify Portal\",\"modify edge Nginx\",\"modify Gitea\",\"modify MinIO\",\"modify backups\",\"create second runner\"],\"modify\":[\"/usr/local/sbin/homelab-result-lookup\"],\"restart_only\":[\"homelab-result-lookup.service\"],\"unit_change_expected\":false},\"bootstrap_url\":\"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/slots/index.html\",\"current_lookup_sha256\":\"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e\",\"current_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"objective\":\"Provide a cache-independent assistant readback path through a static 16-way, eight-level slot directory. The first eight hexadecimal characters of the expected capsule SHA select a never-before-used slot page, which contains a server-generated exact-result link.\",\"operation\":\"AUTOMATIC_RESULT_SLOT_DIRECTORY_FIX1\",\"read_only_plan\":true,\"schema\":1,\"slot_derivation\":{\"branching\":16,\"collision_fallback\":\"increment the final nibble and use a different final slot\",\"directory_levels\":8,\"slot_space\":4294967296,\"source\":\"first eight hexadecimal characters of capsule_sha256\"},\"target_lookup_sha256\":\"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a\"},\"portal_changed\":false,\"private_addresses_included\":false,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"status\":\"PLAN_READY\",\"target_lookup_sha256\":\"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a\"}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 44be304..c96d485 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z +COMMAND_ID=AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z STATUS=OK RC=0 HOST=pve01 MODE=verify -COMPONENT=automatic-result-slot-directory-plan +COMPONENT=automatic-result-slot-directory-plan-fix1 REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=90d33f2478b7c0262f1d3ce1f50c6e26a62a2e63eca47629d353d17fa9e3073d +COMMAND_SHA256=ebb5b077788f7fa60dd83bdc23a45f9bb285be2a2617ed3a581e05ff2ce7d4da DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,11 +24,11 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=1da7cdcba898ce19e7b17e93797195437dddb17c1b47bac773b6a5a4667ab5e4 -SANITIZED_OUTPUT_SHA256=1da7cdcba898ce19e7b17e93797195437dddb17c1b47bac773b6a5a4667ab5e4 +RAW_EVIDENCE_SHA256=55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a +SANITIZED_OUTPUT_SHA256=55efb7145b3af32cf396859ce82dbf5b8be74a1fa56ed88491dd75d5022c066a OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -{"PLAN_SHA256":"5aec676224fbb49f3dd0aa022f8d80880ae7ef8985fa12d5610ac8193c12be74","adapter_changed":false,"backup_changed":false,"candidate":{"capsule_sha256":"b3ea8b30a2fb2020fb89cfeabcdc6a07b9436d38265f60fd40c91395bcb18ea1","command_id":"AUTOMATIC-RESULT-POINTER-REDIRECT-APPLY-FIX2-20260728T210654Z","exact_http":200,"fresh_probe_confirmed":true,"full_output_present":true,"level1_links":256,"level2_links":256,"level3_links":256,"root_links":256,"runner_json_sha256":"b1c62f37ef7953c7e645a6244daec586c2a2b248d682b4ecd79234995b834691","slot_http":200},"changes_made":false,"cluster_changed":false,"command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z","current_lookup_sha256":"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e","current_unit_sha256":"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a","edge_changed":false,"gitea_changed":false,"minio_changed":false,"plan":{"acceptance_tests":["root and every directory page expose exactly 256 relative links","four capsule bytes address 2^32 independent slot URLs","slot pages are no-store and contain one exact-result link","two fresh slots for one latest result have same revision and different probes","following the exact link returns full sanitized output","newer terminal fixture is visible through an unused slot without restart","corrupt newest fixture returns 409 rather than old content","candidate passes against the real production state directory"],"apply_scope":{"forbidden":["modify Adapter","modify Portal","modify edge Nginx","modify Gitea","modify MinIO","modify backups","create second runner"],"modify":["/usr/local/sbin/homelab-result-lookup"],"restart_only":["homelab-result-lookup.service"],"unit_change_expected":false},"bootstrap_url":"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/slots/index.html","current_lookup_sha256":"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e","current_unit_sha256":"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a","objective":"Bypass the assistant web cache for stable URLs by exposing a static four-level directory of 2^32 never-before-used result slots. A slot page is selected from the first four capsule bytes and contains a server-generated exact-result link.","operation":"AUTOMATIC_RESULT_SLOT_DIRECTORY","read_only_plan":true,"schema":1,"target_lookup_sha256":"ae1109cc637fd8fe28def5c9e2539879ebc353790689269104008bfeb8a82b0d","workflow":["Open the static slot index once in a chat.","Derive four hexadecimal bytes from the expected capsule SHA256.","Click four directory/slot links.","Read the slot page identity.","Click its server-generated exact-result link.","Verify command_id, capsule SHA, runner revision and full output.","On a collision or stale slot, use the next final-byte link."]},"portal_changed":false,"private_addresses_included":false,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"status":"PLAN_READY","target_lookup_sha256":"ae1109cc637fd8fe28def5c9e2539879ebc353790689269104008bfeb8a82b0d"} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"PLAN_SHA256":"fa69207c4504629173a0c972289306caf1fe36c0cd903770c6060dce47f1ccf0","adapter_changed":false,"backup_changed":false,"candidate":{"capsule_sha256":"e0da52d63a7f57fad018fa796bd3fbafe59bc5ccb39fa6afdcbd9d3f3a57c237","command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-20260728T211711Z","corrupt_newest_returns_409":null,"directory_branching":16,"directory_levels":8,"dynamic_update_without_restart":null,"exact_http":200,"fresh_probe_confirmed":true,"full_output_present":true,"restored_newest_visible":null,"runner_json_sha256":"d27a96c082fff1e2694604ce5735ad0197a8b6d5d23c4b4ac52d7aa69f0f14ba","slot_http":200,"slot_space":4294967296},"changes_made":false,"cluster_changed":false,"command_id":"AUTOMATIC-RESULT-SLOT-DIRECTORY-PLAN-FIX1-20260729T065312Z","current_lookup_sha256":"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e","current_unit_sha256":"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a","edge_changed":false,"gitea_changed":false,"minio_changed":false,"plan":{"acceptance_tests":["root and every directory page expose exactly 16 unique relative links","all eight directory levels are traversed and final slot is HTML","directory pages are immutable and slot pages are no-store","two unused slots for the same latest result have identical revision and different probes","following the exact link returns full sanitized output and a valid result contract","a newer terminal fixture becomes visible through an unused slot without restart","corrupting the newest fixture makes an unused slot return HTTP 409","restoring the newest fixture returns the new result again","candidate passes read-only against the real production state directory"],"apply_scope":{"forbidden":["modify Adapter","modify Portal","modify edge Nginx","modify Gitea","modify MinIO","modify backups","create second runner"],"modify":["/usr/local/sbin/homelab-result-lookup"],"restart_only":["homelab-result-lookup.service"],"unit_change_expected":false},"bootstrap_url":"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/slots/index.html","current_lookup_sha256":"7b54030bf2c77dfe97e2751ed725c9a5ba4829e079d78a7ddd31afb04f879d2e","current_unit_sha256":"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a","objective":"Provide a cache-independent assistant readback path through a static 16-way, eight-level slot directory. The first eight hexadecimal characters of the expected capsule SHA select a never-before-used slot page, which contains a server-generated exact-result link.","operation":"AUTOMATIC_RESULT_SLOT_DIRECTORY_FIX1","read_only_plan":true,"schema":1,"slot_derivation":{"branching":16,"collision_fallback":"increment the final nibble and use a different final slot","directory_levels":8,"slot_space":4294967296,"source":"first eight hexadecimal characters of capsule_sha256"},"target_lookup_sha256":"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a"},"portal_changed":false,"private_addresses_included":false,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"status":"PLAN_READY","target_lookup_sha256":"ed29ad32b76f0502467c6f2a84b342e576b77a659db94f9c8bba5e9b12e4165a"} OUTPUT_END CHAT_OUTPUT_END