CHAT_OUTPUT_BEGIN
COMMAND_ID=NEWFI-260907-A-PORTAL200-APPLY4DESIGN2
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=newfi-portal200-apply4-candidate-exact-recovery
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=d9ecc50604b452f7f25f062a6d5c744609c344a965cb5a785f7c8eb28a1b74e3
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=eb768ba37e84529ac30bac9faff315d6be84c63c2590d855fabd0f9231ba5bb0
SANITIZED_OUTPUT_SHA256=eb768ba37e84529ac30bac9faff315d6be84c63c2590d855fabd0f9231ba5bb0
OUTPUT_BEGIN
APPLY4_DESIGN2_BEGIN=true
COMMAND_ID=NEWFI-260907-A-PORTAL200-APPLY4DESIGN2
MUTATION_SCOPE=NONE_READ_ONLY
MUTATIONS_PERFORMED=NO
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
REFERENCE_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
HISTORY_NEWFI_260907_PORTAL200_APPLY1_SHA256=e352a1ee17b6588b878c02a7ca5096e99b5bfd20391cfadaf9cd2a67f7043f17
HISTORY_NEWFI_260907_PORTAL200_APPLY1_STATUS=FAIL
HISTORY_NEWFI_260907_PORTAL200_APPLY1_RC=76
HISTORY_NEWFI_260907_PORTAL200_APPLY1_CHANGES_MADE=unknown
HISTORY_NEWFI_260907_PORTAL200_APPLY1_MUTATION_OUTCOME=UNKNOWN
HISTORY_NEWFI_260907_PORTAL200_APPLY2_SHA256=5e043e4f2429583487a791569aeca832f744bb71a5eee1617bb6706f6657051b
HISTORY_NEWFI_260907_PORTAL200_APPLY2_STATUS=FAIL
HISTORY_NEWFI_260907_PORTAL200_APPLY2_RC=1
HISTORY_NEWFI_260907_PORTAL200_APPLY2_CHANGES_MADE=false
HISTORY_NEWFI_260907_PORTAL200_APPLY2_MUTATION_OUTCOME=NO_MUTATION
HISTORY_NEWFI_260907_PORTAL200_APPLY3_SHA256=f3ea3fcebd7b182e64db6e963a34f1b90baca0d08477e25e27bf88c48b33611c
HISTORY_NEWFI_260907_PORTAL200_APPLY3_STATUS=FAIL
HISTORY_NEWFI_260907_PORTAL200_APPLY3_RC=76
HISTORY_NEWFI_260907_PORTAL200_APPLY3_CHANGES_MADE=unknown
HISTORY_NEWFI_260907_PORTAL200_APPLY3_MUTATION_OUTCOME=UNKNOWN
HISTORY_NEWFI_260907_PORTAL200_CONTRACTAST1_SHA256=00c4dc5e100be0cb26a80262a8af96555457b5dc4fa924c6a9458089cd01474e
HISTORY_NEWFI_260907_PORTAL200_CONTRACTAST1_STATUS=OK
HISTORY_NEWFI_260907_PORTAL200_CONTRACTAST1_RC=0
HISTORY_NEWFI_260907_PORTAL200_CONTRACTAST1_CHANGES_MADE=false
HISTORY_NEWFI_260907_PORTAL200_CONTRACTAST1_MUTATION_OUTCOME=NO_MUTATION
HISTORY_NEWFI_260907_PORTAL200_IMPORTDISC2_SHA256=805954f73608dbd343da33d387c59a6ad258a7f6a51965db4e78c3fd0f588fd4
HISTORY_NEWFI_260907_PORTAL200_IMPORTDISC2_STATUS=OK
HISTORY_NEWFI_260907_PORTAL200_IMPORTDISC2_RC=0
HISTORY_NEWFI_260907_PORTAL200_IMPORTDISC2_CHANGES_MADE=false
HISTORY_NEWFI_260907_PORTAL200_IMPORTDISC2_MUTATION_OUTCOME=NO_MUTATION
HISTORY_NEWFI_260907_PORTAL200_REBUILDHELP1_SHA256=30370cad3d4d7e73c6612a5df702abe1fac6ae559bf142b5e489a19a1258cfb7
HISTORY_NEWFI_260907_PORTAL200_REBUILDHELP1_STATUS=OK
HISTORY_NEWFI_260907_PORTAL200_REBUILDHELP1_RC=0
HISTORY_NEWFI_260907_PORTAL200_REBUILDHELP1_CHANGES_MADE=false
HISTORY_NEWFI_260907_PORTAL200_REBUILDHELP1_MUTATION_OUTCOME=NO_MUTATION
HISTORY_NEWFI_260907_B_PORTAL200_RECOVERY5_SHA256=08c00e675ffa960eca55102a114d305fb1a15291ff7e401dc43c09d087c32ece
HISTORY_NEWFI_260907_B_PORTAL200_RECOVERY5_STATUS=OK
HISTORY_NEWFI_260907_B_PORTAL200_RECOVERY5_RC=0
HISTORY_NEWFI_260907_B_PORTAL200_RECOVERY5_CHANGES_MADE=false
HISTORY_NEWFI_260907_B_PORTAL200_RECOVERY5_MUTATION_OUTCOME=NO_MUTATION
HISTORY_NEWFI_260907_A_PORTAL200_APPLY4DESIGN1_SHA256=37d9ad10d0d9abb7fede76a4716cde8abe70866cb6ce8024243f399e39082ad7
HISTORY_NEWFI_260907_A_PORTAL200_APPLY4DESIGN1_STATUS=OK
HISTORY_NEWFI_260907_A_PORTAL200_APPLY4DESIGN1_RC=0
HISTORY_NEWFI_260907_A_PORTAL200_APPLY4DESIGN1_CHANGES_MADE=false
HISTORY_NEWFI_260907_A_PORTAL200_APPLY4DESIGN1_MUTATION_OUTCOME=NO_MUTATION
NEWFI_260907_PORTAL200_APPLY1_CANDIDATE_RELEVANT_LINES=["CHAT_OUTPUT_BEGIN","COMMAND_ID=NEWFI-260907-PORTAL200-APPLY1","STATUS=FAIL","RC=76","HOST=pve01","MODE=change","COMPONENT=newfi-portal200-deploy","REFERENCE_REGISTER_CHECK=OK","REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66","COMMAND_RC=1","CHANGES_MADE=unknown","ROLLBACK_STARTED=unknown","ROLLBACK_RESTORED=null","MUTATION_OUTCOME=UNKNOWN","SANITIZED=yes","SANITIZED_OUTPUT_SHA256=50310a6619ab35d100c11d8842e044852dc3f5589b3d100948bd7fd05bdd5f0b","OUTPUT_BEGIN","NEWFI200_BEGIN","PORTAL200_REMAINING_FULL_PRODUCT_COMMANDS_BEFORE=22","PORTAL200_FLOW=candidate->staging-apply->rollback-proof->staging-reapply->git-push->production","PORTAL200_CANDIDATE_IDENTITY=PASS","PORTAL200_GIT_PRESTATE={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"head\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"remote\":\"06bab5acd124e768f70305b3d7eca2f595871890\"}","PORTAL200_CLUSTER=PASS","PORTAL200_RUNTIME_HELPER_LINT=PASS","PORTAL200_ERROR_BASELINE={\"prod\":0,\"staging\":40}","PORTAL200_FAILURE=QGA_GUEST_RC","HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"NEWFI-260907-PORTAL200-APPLY1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"ERROR\",\"version\":1}","PORTAL200_ROADMAP_REMAINS=22","NEWFI200_END","","OUTPUT_END"]
NEWFI_260907_PORTAL200_APPLY2_CANDIDATE_RELEVANT_LINES=["CHAT_OUTPUT_BEGIN","COMMAND_ID=NEWFI-260907-PORTAL200-APPLY2","STATUS=FAIL","RC=1","HOST=pve01","MODE=change","COMPONENT=newfi-portal200-deploy","REFERENCE_REGISTER_CHECK=OK","REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66","COMMAND_RC=1","CHANGES_MADE=false","ROLLBACK_STARTED=false","ROLLBACK_RESTORED=null","MUTATION_OUTCOME=NO_MUTATION","SANITIZED=yes","SANITIZED_OUTPUT_SHA256=c86dd3bbfbc94ff56e5cb678b0d8dd999af220229e3aea248a99e3d1f51d007a","OUTPUT_BEGIN","NEWFI200_BEGIN","PORTAL200_REMAINING_FULL_PRODUCT_COMMANDS_BEFORE=22","PORTAL200_FLOW=candidate->staging-apply->rollback-proof->staging-reapply->git-push->production","PORTAL200_CANDIDATE_IDENTITY=PASS","PORTAL200_ORCHESTRATION_FIXES={\"failure_status\":\"FAIL\",\"staging_503_without_css_links\":true}","PORTAL200_GIT_PRESTATE={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"head\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"remote\":\"06bab5acd124e768f70305b3d7eca2f595871890\"}","PORTAL200_CLUSTER=PASS","PORTAL200_RUNTIME_HELPER_LINT=PASS","PORTAL200_ERROR_BASELINE={\"prod\":0,\"staging\":40}","PORTAL200_HTTP={\"bytes\":23800,\"css_count\":0,\"css_marker\":false,\"css_status\":[],\"forced_css_marker\":null,\"forced_css_status\":null,\"html_marker\":false,\"old_copy\":false,\"state\":\"old\",\"status\":503,\"target\":\"staging\"}","PORTAL200_RUNTIME={\"html_bytes\":1116,\"html_marker\":false,\"old_copy\":true,\"state\":\"old\",\"target\":\"prod\"}","PORTAL200_FAILURE=QGA_GUEST_RC","HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"NEWFI-260907-PORTAL200-APPLY2\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}","PORTAL200_ROADMAP_REMAINS=22","NEWFI200_END","","OUTPUT_END"]
NEWFI_260907_PORTAL200_APPLY3_CANDIDATE_RELEVANT_LINES=["CHAT_OUTPUT_BEGIN","COMMAND_ID=NEWFI-260907-PORTAL200-APPLY3","STATUS=FAIL","RC=76","HOST=pve01","MODE=change","COMPONENT=newfi-portal200-deploy","REFERENCE_REGISTER_CHECK=OK","REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66","COMMAND_RC=1","CHANGES_MADE=unknown","ROLLBACK_STARTED=unknown","ROLLBACK_RESTORED=null","MUTATION_OUTCOME=UNKNOWN","SANITIZED=yes","SANITIZED_OUTPUT_SHA256=312b61dd11c589bcf59b0425107fe3673b1b8e6e64af31a9954ca43541faaa98","OUTPUT_BEGIN","NEWFI200_BEGIN","PORTAL200_REMAINING_FULL_PRODUCT_COMMANDS_BEFORE=22","PORTAL200_FLOW=candidate->staging-apply->rollback-proof->staging-reapply->git-push->production","PORTAL200_CANDIDATE_IDENTITY=PASS","PORTAL200_ORCHESTRATION_FIXES={\"css_href_regex_fixed\":true,\"failure_status\":\"FAIL\",\"prod_http_via_pve01_public_route\":true,\"staging_503_without_css_links\":true}","PORTAL200_GIT_PRESTATE={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"head\":\"06bab5acd124e768f70305b3d7eca2f595871890\",\"remote\":\"06bab5acd124e768f70305b3d7eca2f595871890\"}","PORTAL200_CLUSTER=PASS","PORTAL200_RUNTIME_HELPER_LINT=PASS","PORTAL200_ERROR_BASELINE={\"prod\":0,\"staging\":40}","PORTAL200_HTTP={\"bytes\":23800,\"css_count\":2,\"css_marker\":false,\"css_status\":[200,200],\"forced_css_marker\":null,\"forced_css_status\":null,\"html_marker\":false,\"old_copy\":false,\"state\":\"old\",\"status\":503,\"target\":\"staging\"}","PORTAL200_RUNTIME={\"html_bytes\":1116,\"html_marker\":false,\"old_copy\":true,\"state\":\"old\",\"target\":\"prod\"}","PORTAL200_HTTP={\"bytes\":25939,\"css_count\":2,\"css_marker\":false,\"css_status\":[200,200],\"forced_css_marker\":null,\"forced_css_status\":null,\"html_marker\":false,\"old_copy\":true,\"state\":\"old\",\"status\":200,\"target\":\"prod\"}","PORTAL200_PREFLIGHT=PASS","PORTAL200_FAILURE=IMPORT_FAILED","PORTAL200_FAILURE_STAGING_ROLLBACK=PASS","HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"NEWFI-260907-PORTAL200-APPLY3\",\"rollback_restored\":true,\"rollback_started\":true,\"status\":\"FAIL\",\"version\":1}","PORTAL200_ROADMAP_REMAINS=22","NEWFI200_END","","OUTPUT_END"]
NEWFI_260907_PORTAL200_APPLY2_OUTPUT_BLOCK_SHA256=c86dd3bbfbc94ff56e5cb678b0d8dd999af220229e3aea248a99e3d1f51d007a
NEWFI_260907_PORTAL200_APPLY2_OUTPUT_BLOCK=NEWFI200_BEGIN\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY2\nPORTAL200_REMAINING_FULL_PRODUCT_COMMANDS_BEFORE=22\nPORTAL200_FLOW=candidate->staging-apply->rollback-proof->staging-reapply->git-push->production\nPORTAL200_CANDIDATE_IDENTITY=PASS\nPORTAL200_ORCHESTRATION_FIXES={"failure_status":"FAIL","staging_503_without_css_links":true}\nPORTAL200_GIT_PRESTATE={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"head":"06bab5acd124e768f70305b3d7eca2f595871890","remote":"06bab5acd124e768f70305b3d7eca2f595871890"}\nPORTAL200_CLUSTER=PASS\nPORTAL200_RUNTIME_HELPER_LINT=PASS\nPORTAL200_ERROR_BASELINE={"prod":0,"staging":40}\nPORTAL200_HTTP={"bytes":23800,"css_count":0,"css_marker":false,"css_status":[],"forced_css_marker":null,"forced_css_status":null,"html_marker":false,"old_copy":false,"state":"old","status":503,"target":"staging"}\nPORTAL200_RUNTIME={"html_bytes":1116,"html_marker":false,"old_copy":true,"state":"old","target":"prod"}\nPORTAL200_FAILURE=QGA_GUEST_RC\nHOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"NEWFI-260907-PORTAL200-APPLY2","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1}\nPORTAL200_ROADMAP_REMAINS=22\nNEWFI200_END\n
NEWFI_260907_PORTAL200_APPLY3_OUTPUT_BLOCK_SHA256=312b61dd11c589bcf59b0425107fe3673b1b8e6e64af31a9954ca43541faaa98
NEWFI_260907_PORTAL200_APPLY3_OUTPUT_BLOCK=NEWFI200_BEGIN\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY3\nPORTAL200_REMAINING_FULL_PRODUCT_COMMANDS_BEFORE=22\nPORTAL200_FLOW=candidate->staging-apply->rollback-proof->staging-reapply->git-push->production\nPORTAL200_CANDIDATE_IDENTITY=PASS\nPORTAL200_ORCHESTRATION_FIXES={"css_href_regex_fixed":true,"failure_status":"FAIL","prod_http_via_pve01_public_route":true,"staging_503_without_css_links":true}\nPORTAL200_GIT_PRESTATE={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"head":"06bab5acd124e768f70305b3d7eca2f595871890","remote":"06bab5acd124e768f70305b3d7eca2f595871890"}\nPORTAL200_CLUSTER=PASS\nPORTAL200_RUNTIME_HELPER_LINT=PASS\nPORTAL200_ERROR_BASELINE={"prod":0,"staging":40}\nPORTAL200_HTTP={"bytes":23800,"css_count":2,"css_marker":false,"css_status":[200,200],"forced_css_marker":null,"forced_css_status":null,"html_marker":false,"old_copy":false,"state":"old","status":503,"target":"staging"}\nPORTAL200_RUNTIME={"html_bytes":1116,"html_marker":false,"old_copy":true,"state":"old","target":"prod"}\nPORTAL200_HTTP={"bytes":25939,"css_count":2,"css_marker":false,"css_status":[200,200],"forced_css_marker":null,"forced_css_status":null,"html_marker":false,"old_copy":true,"state":"old","status":200,"target":"prod"}\nPORTAL200_PREFLIGHT=PASS\nPORTAL200_FAILURE=IMPORT_FAILED\nPORTAL200_HTTP={"bytes":23800,"css_count":2,"css_marker":false,"css_status":[200,200],"forced_css_marker":null,"forced_css_status":null,"html_marker":false,"old_copy":false,"state":"old","status":503,"target":"staging"}\nPORTAL200_FAILURE_STAGING_ROLLBACK=PASS\nHOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"NEWFI-260907-PORTAL200-APPLY3","rollback_restored":true,"rollback_started":true,"status":"FAIL","version":1}\nPORTAL200_ROADMAP_REMAINS=22\nNEWFI200_END\n
NEWFI_260907_PORTAL200_APPLY1_ATTEMPT_INVENTORY=[{"bytes":73,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY1/attempt.txt","sha256":"e499da1ae348df5f86b560c4655d92d4ad6bccd24925c9cc8e818e0ad2e45e47","text":"COMMAND_ID=NEWFI-260907-PORTAL200-APPLY1\nSTATE=RESERVED_BEFORE_EXECUTION\n"},{"bytes":94,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY1/receipt.txt","sha256":"dc440de62a30fa2480b0b3d83c8eaa5b9692a90afc2cea28012c757f0b410c78","text":"COMMAND_ID=NEWFI-260907-PORTAL200-APPLY1\nWRAPPER_RC=76\nPUBLICATION=NOT_INDEPENDENTLY_VERIFIED\n"},{"bytes":669,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY1/wrapper.log","sha256":"9685a3719da39ed64273e57bad5cd9a52bb637863d267750792bde1d82295f0e","text":"PAYLOAD_VALIDATION=OK\nremote: . Processing 1 references        \nremote: Processed 1 references in total        \nRESULT=OK\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY1\nCOMMIT_SHA=55aa9f336df6f3b8a7976899b2a1d58d878431c7\nSTATIC_PUBLICATION=OK\nRAW_BRANCH_PUBLICATION=OK\n\n===== HOMELAB CHAT RUN COMPLETE =====\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY1\nSTATUS=FAIL\nRC=76\nREFERENCE_REGISTER_CHECK=OK\nERROR_REGISTER_CHECK=OK\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nGITEA_PUBLICATION=OK\nPUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json\nLOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-APPLY1-20260907T095034Z.log\nSHELL_SESSION_PRESERVED=yes\n"}]
NEWFI_260907_PORTAL200_APPLY2_ATTEMPT_INVENTORY=[{"bytes":73,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY2/attempt.txt","sha256":"83643d80ccdc44fddd2837ef415cac4b96431e3af3b0db7d9f13364f75442f33","text":"COMMAND_ID=NEWFI-260907-PORTAL200-APPLY2\nSTATE=RESERVED_BEFORE_EXECUTION\n"},{"bytes":89,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY2/receipt.txt","sha256":"07b965c02187f78a8aa6836ec8267fc8ef01270717114e4c5ff39efa31121929","text":"COMMAND_ID=NEWFI-260907-PORTAL200-APPLY2\nWRAPPER_RC=1\nPUBLICATION=GITEA_RUNTIME_EXPECTED\n"},{"bytes":668,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY2/wrapper.log","sha256":"4c72462531ac8b9200007c954a1f9a90cebbfe346031bb71a07cb2ef67ac329d","text":"PAYLOAD_VALIDATION=OK\nremote: . Processing 1 references        \nremote: Processed 1 references in total        \nRESULT=OK\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY2\nCOMMIT_SHA=fe5f3ed2f5c68fc46fcbab828685c0a872b1ce59\nSTATIC_PUBLICATION=OK\nRAW_BRANCH_PUBLICATION=OK\n\n===== HOMELAB CHAT RUN COMPLETE =====\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY2\nSTATUS=FAIL\nRC=1\nREFERENCE_REGISTER_CHECK=OK\nERROR_REGISTER_CHECK=OK\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nGITEA_PUBLICATION=OK\nPUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json\nLOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-APPLY2-20260907T105610Z.log\nSHELL_SESSION_PRESERVED=yes\n"}]
NEWFI_260907_PORTAL200_APPLY3_ATTEMPT_INVENTORY=[{"bytes":73,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY3/attempt.txt","sha256":"fc3d53a77acceff697ec5111ab3ba411ede195fd9a8e358de5ae94dbc94f4d14","text":"COMMAND_ID=NEWFI-260907-PORTAL200-APPLY3\nSTATE=RESERVED_BEFORE_EXECUTION\n"},{"bytes":90,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY3/receipt.txt","sha256":"a993d3503cd786e73baa68900ae5bc46eac405da3430cfab0bb5db981e0f1b4b","text":"COMMAND_ID=NEWFI-260907-PORTAL200-APPLY3\nWRAPPER_RC=76\nPUBLICATION=GITEA_RUNTIME_EXPECTED\n"},{"bytes":669,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY3/wrapper.log","sha256":"dec036ea985e75d776b2de8c2bede77fe4b4aafa5da33648b2a6b5f79f3dec30","text":"PAYLOAD_VALIDATION=OK\nremote: . Processing 1 references        \nremote: Processed 1 references in total        \nRESULT=OK\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY3\nCOMMIT_SHA=bb707af34d2a2b6a6b23c3d4d03f6b701150a653\nSTATIC_PUBLICATION=OK\nRAW_BRANCH_PUBLICATION=OK\n\n===== HOMELAB CHAT RUN COMPLETE =====\nCOMMAND_ID=NEWFI-260907-PORTAL200-APPLY3\nSTATUS=FAIL\nRC=76\nREFERENCE_REGISTER_CHECK=OK\nERROR_REGISTER_CHECK=OK\nDUPLICATE_FAILED_COMMAND_BLOCKED=false\nGITEA_PUBLICATION=OK\nPUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json\nLOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-APPLY3-20260907T112033Z.log\nSHELL_SESSION_PRESERVED=yes\n"}]
FILESYSTEM_PORTAL200_EVIDENCE=[{"bytes":14898,"path":"/root/.bash_history","relevant_lines":["]]></template>","","  <template type=\"public\" title=\"newfi_portal.less\" version_id=\"1000010\" version_string=\"1.0.0 Alpha 1\"><![CDATA[",".newfiPortal","{","\t--newfi-portal200: 1;","\tdisplay: flex;","\tflex-direction: column;","templates_path = (","    root / \"src/addons/Newfi/Portal/_data/templates.xml\"",")","for token in [","    'data-newfi-portal200=\"1\"',","    '--newfi-portal200: 1',","    'data-portal-locked=\"resources\"',","    'data-portal-locked=\"media\"',","print(\"PORTAL200_CANDIDATE_SOURCE_CONTRACT=PASS\")","print(\"PORTAL200_CANDIDATE_TEMPLATE_COUNT=2\")","print(\"PORTAL200_CANDIDATE_RAW_SQL_MUTATION_SCAN=PASS\")","print(\"PORTAL200_CANDIDATE_FAKE_CONTENT_SCAN=PASS\")","print(","    \"PORTAL200_CANDIDATE_MANIFEST=\"","    + json.dumps(manifest, sort_keys=True, separators=(\",\", \":\"))","PYCHECK","      CHECK_RC=$?;      printf 'PORTAL200_CANDIDATE_SOURCE_CHECK_RC=%s\\n' \"$CHECK_RC\";      if [ \"$CHECK_RC\" -ne 0 ]; then         RC=1;     fi; fi;  lint_php() {     FILE=\"$1\";     LABEL=\"$2\";      B64=\"$(base64 -w0 \"$FILE\")\";      OUT=\"$(","        ssh \\","            -T \\","            \"printf '%s' '$B64' | base64 -d | /usr/sbin/qm guest exec 211 --synchronous 1 --timeout 60 --pass-stdin 1 -- /usr/bin/php8.3 -l\" \\","            2>&1","    )\";      SSH_RC=$?;      printf 'PORTAL200_CANDIDATE_%s_QGA_BEGIN\\n' \"$LABEL\";     printf '%s\\n' \"$OUT\";     printf 'PORTAL200_CANDIDATE_%s_QGA_END\\n' \"$LABEL\";     printf 'PORTAL200_CANDIDATE_%s_SSH_RC=%s\\n' \"$LABEL\" \"$SSH_RC\";      if [ \"$SSH_RC\" -ne 0 ]; then         return 1;     fi;      printf '%s' \"$OUT\" |         python3 -c '","import json","import sys","assert \"No syntax errors detected\" in out","' || return 1;      return 0; };  if [ \"$RC\" -eq 0 ]; then     lint_php         \"$CAND/src/addons/Newfi/Portal/Pub/Controller/Portal.php\"         CONTROLLER;     L1=$?;      lint_php         \"$CAND/src/addons/Newfi/Portal/Service/PortalData.php\"         SERVICE;     L2=$?;      printf 'PORTAL200_CANDIDATE_CONTROLLER_LINT_RC=%s\\n' \"$L1\";     printf 'PORTAL200_CANDIDATE_SERVICE_LINT_RC=%s\\n' \"$L2\";      if [ \"$L1\" -ne 0 ] || [ \"$L2\" -ne 0 ]; then         RC=1;     fi; fi;  END_HEAD=\"$(git -C \"$WT\" rev-parse HEAD 2>/dev/null)\"; END_STATUS=\"$(","    git -C \"$WT\" status --porcelain=v1 --untracked-files=all 2>/dev/null",")\";  printf 'PORTAL200_CANDIDATE_END_GIT_HEAD=%s\\n' \"$END_HEAD\"; printf 'PORTAL200_CANDIDATE_END_GIT_CLEAN=%s\\n' \"$(","    if [ -z \"$END_STATUS\" ]; then printf true; else printf false; fi",")\";  if [ \"$END_HEAD\" != \"$EXPECTED_HEAD\" ] || [ -n \"$END_STATUS\" ]; then     RC=1; fi;  if [ \"$RC\" -eq 0 ]; then     printf 'PORTAL200_CANDIDATE_RESULT=PASS\\n';     printf 'PORTAL200_CANDIDATE_PATH=%s\\n' \"$CAND\";     printf 'PORTAL200_EXECUTED=NO\\n'; else     printf 'PORTAL200_CANDIDATE_RESULT=FAIL\\n';     rm -rf \"$CAND\" 2>/dev/null || true; fi;  printf 'PORTAL200_ROADMAP_REMAINS=22\\n'; printf 'PORTAL200_CANDIDATE_END=%s\\n' \"$CID\"; printf 'WRAPPER_RC=%s\\n' \"$RC\"; printf 'TERMINAL=KEEP_OPEN\\n'; printf 'NEWFI_COMMAND_SHELL_EXIT=DISABLED\\n';  true; ) || true","printf 'WRAPPER_SHELL_RC=0\\n'","printf 'TERMINAL=KEEP_OPEN\\n'"],"sha256":"0d1e6f73b9c6f8ffe1b3a3849bb0f787ed523b1e46a34960ad9ba422e4a3b91f"},{"bytes":73,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY3/attempt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-APPLY3","STATE=RESERVED_BEFORE_EXECUTION"],"sha256":"fc3d53a77acceff697ec5111ab3ba411ede195fd9a8e358de5ae94dbc94f4d14"},{"bytes":90,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY3/receipt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-APPLY3","WRAPPER_RC=76","PUBLICATION=GITEA_RUNTIME_EXPECTED"],"sha256":"a993d3503cd786e73baa68900ae5bc46eac405da3430cfab0bb5db981e0f1b4b"},{"bytes":669,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY3/wrapper.log","relevant_lines":["remote: Processed 1 references in total        ","RESULT=OK","COMMAND_ID=NEWFI-260907-PORTAL200-APPLY3","COMMIT_SHA=bb707af34d2a2b6a6b23c3d4d03f6b701150a653","STATIC_PUBLICATION=OK","","===== HOMELAB CHAT RUN COMPLETE =====","STATUS=FAIL","RC=76","GITEA_PUBLICATION=OK","PUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json","LOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-APPLY3-20260907T112033Z.log","SHELL_SESSION_PRESERVED=yes"],"sha256":"dec036ea985e75d776b2de8c2bede77fe4b4aafa5da33648b2a6b5f79f3dec30"},{"bytes":73,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY1/attempt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-APPLY1","STATE=RESERVED_BEFORE_EXECUTION"],"sha256":"e499da1ae348df5f86b560c4655d92d4ad6bccd24925c9cc8e818e0ad2e45e47"},{"bytes":94,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY1/receipt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-APPLY1","WRAPPER_RC=76","PUBLICATION=NOT_INDEPENDENTLY_VERIFIED"],"sha256":"dc440de62a30fa2480b0b3d83c8eaa5b9692a90afc2cea28012c757f0b410c78"},{"bytes":669,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY1/wrapper.log","relevant_lines":["remote: Processed 1 references in total        ","RESULT=OK","COMMAND_ID=NEWFI-260907-PORTAL200-APPLY1","COMMIT_SHA=55aa9f336df6f3b8a7976899b2a1d58d878431c7","STATIC_PUBLICATION=OK","","===== HOMELAB CHAT RUN COMPLETE =====","STATUS=FAIL","RC=76","GITEA_PUBLICATION=OK","PUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json","LOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-APPLY1-20260907T095034Z.log","SHELL_SESSION_PRESERVED=yes"],"sha256":"9685a3719da39ed64273e57bad5cd9a52bb637863d267750792bde1d82295f0e"},{"bytes":73,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY2/attempt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-APPLY2","STATE=RESERVED_BEFORE_EXECUTION"],"sha256":"83643d80ccdc44fddd2837ef415cac4b96431e3af3b0db7d9f13364f75442f33"},{"bytes":89,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY2/receipt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-APPLY2","WRAPPER_RC=1","PUBLICATION=GITEA_RUNTIME_EXPECTED"],"sha256":"07b965c02187f78a8aa6836ec8267fc8ef01270717114e4c5ff39efa31121929"},{"bytes":668,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-APPLY2/wrapper.log","relevant_lines":["remote: Processed 1 references in total        ","RESULT=OK","COMMAND_ID=NEWFI-260907-PORTAL200-APPLY2","COMMIT_SHA=fe5f3ed2f5c68fc46fcbab828685c0a872b1ce59","STATIC_PUBLICATION=OK","","===== HOMELAB CHAT RUN COMPLETE =====","STATUS=FAIL","RC=1","GITEA_PUBLICATION=OK","PUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json","LOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-APPLY2-20260907T105610Z.log","SHELL_SESSION_PRESERVED=yes"],"sha256":"4c72462531ac8b9200007c954a1f9a90cebbfe346031bb71a07cb2ef67ac329d"},{"bytes":71,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-RCA4/attempt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-RCA4","STATE=RESERVED_BEFORE_EXECUTION"],"sha256":"6f5f48b114a59b391450532fdf2c73a2627105ffe91942054e272931af0af62b"},{"bytes":91,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-RCA4/receipt.txt","relevant_lines":["COMMAND_ID=NEWFI-260907-PORTAL200-RCA4","WRAPPER_RC=0","PUBLICATION=NOT_INDEPENDENTLY_VERIFIED"],"sha256":"6406f6bc528bf48bd88eabccc9dd88a9fa25d6415f5121ed55b8aa8f357d0c84"},{"bytes":660,"path":"/root/newfi-run-NEWFI-260907-PORTAL200-RCA4/wrapper.log","relevant_lines":["remote: Processed 1 references in total        ","RESULT=OK","COMMAND_ID=NEWFI-260907-PORTAL200-RCA4","COMMIT_SHA=74bee60e6746db6bf0eba73b3c66c184bf148680","STATIC_PUBLICATION=OK","","===== HOMELAB CHAT RUN COMPLETE =====","STATUS=OK","RC=0","GITEA_PUBLICATION=OK","PUBLIC_URL=https://git.gram1.ru/.well-known/homelab-runtime/latest.json","LOCAL_RAW_FILE=/var/lib/homelab-chat-run/raw/NEWFI-260907-PORTAL200-RCA4-20260907T103455Z.log","SHELL_SESSION_PRESERVED=yes"],"sha256":"b7f1ea0cdee90fe027b3302bf1e932c15fbb80a73764b948269d3025307c7672"}]
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
RUNNER_CONTRACT_EXACT_RELEVANT_LINES=["import json","import sys","from pathlib import Path","","raw_path, command_id, mode, command_rc = sys.argv[1:]","command_rc = int(command_rc)","result = {","    \"valid\": True,","    \"status\": \"NOT_APPLICABLE\",","    \"changes_made\": \"false\",","    \"rollback_started\": \"false\",","    \"rollback_restored\": \"null\",","    \"mutation_outcome\": \"NO_MUTATION\",","    \"error\": \"NONE\",","}","if mode == \"change\":","    result = {","        \"valid\": False,","        \"status\": \"UNKNOWN\",","        \"changes_made\": \"unknown\",","        \"rollback_started\": \"unknown\",","        \"rollback_restored\": \"null\",","        \"mutation_outcome\": \"UNKNOWN\",","        \"error\": \"MISSING_CONTRACT\",","    }","    marker = \"HOMELAB_RESULT_CONTRACT=\"","    lines = Path(raw_path).read_bytes().decode(","        \"utf-8\",","        errors=\"replace\",","    ).splitlines()","            document = json.loads(payloads[0])","            if not isinstance(document, dict):","                raise ValueError(\"contract root is not object\")","            if document.get(\"version\") != 1:","                raise ValueError(\"unsupported version\")","            if document.get(\"command_id\") != command_id:","                raise ValueError(\"command_id mismatch\")","            status = document.get(\"status\")","            if status not in {\"OK\", \"BLOCKED\", \"FAIL\"}:","                raise ValueError(\"invalid status\")","            changes = document.get(\"changes_made\")","            rollback_started = document.get(\"rollback_started\")","            rollback_restored = document.get(\"rollback_restored\")","            if not isinstance(changes, bool):","                raise ValueError(\"changes_made must be boolean\")","            if not isinstance(rollback_started, bool):","                raise ValueError(\"rollback_started must be boolean\")","            if rollback_restored is not None and not isinstance(","                rollback_restored,","                bool,","            ):","                raise ValueError(","                    \"rollback_restored must be boolean or null\"","                )","            if rollback_restored is True and rollback_started is not True:","                    \"rollback_restored without rollback_started\"","            if rollback_started is True and changes is not True:","                    \"rollback_started without changes\"","            if status == \"BLOCKED\" and (","                changes","                or rollback_started","                or command_rc != 2","                    \"BLOCKED contract inconsistent with rc/mutation\"","                raise ValueError(\"FAIL contract inconsistent with rc\")","            if not changes:","                outcome = \"NO_MUTATION\"","            elif not rollback_started:","                outcome = \"MUTATED\"","            elif rollback_restored is True:","                outcome = \"ROLLED_BACK\"","            elif rollback_restored is False:","                outcome = \"ROLLBACK_FAILED\"","            else:","                outcome = \"ROLLBACK_UNKNOWN\"","            result = {","                \"valid\": True,","                \"status\": status,","                \"changes_made\": str(changes).lower(),","                \"rollback_started\": str(","                    rollback_started","                ).lower(),","                \"rollback_restored\": (","                    \"null\"","                    if rollback_restored is None","                    else str(rollback_restored).lower()","                ),","                \"mutation_outcome\": outcome,","                \"error\": \"NONE\",","            }","        except Exception as exc:","            result[\"error\"] = (","                \"INVALID_CONTRACT:\" + type(exc).__name__","            )","    elif len(payloads) > 1:","        result[\"error\"] = \"MULTIPLE_CONTRACTS\"","print(\"\\t\".join([","    str(result[\"valid\"]).lower(),","    result[\"status\"],","    result[\"changes_made\"],","    result[\"rollback_started\"],","    result[\"rollback_restored\"],","    result[\"mutation_outcome\"],","    result[\"error\"],","]))","PY_CONTRACT","    tmp=\"$(mktemp)\"","    trap 'rm -f \"$tmp\"' RETURN","    printf '%s\\n' \\","        'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T1\",\"status\":\"BLOCKED\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}' \\","        >\"$tmp\"","    [ \"$(read_mutation_contract \"$tmp\" T1 change 2)\" = \\","      $'true\\tBLOCKED\\tfalse\\tfalse\\tnull\\tNO_MUTATION\\tNONE' ]","        'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T2\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","    [ \"$(read_mutation_contract \"$tmp\" T2 change 0)\" = \\","      $'true\\tOK\\ttrue\\tfalse\\tnull\\tMUTATED\\tNONE' ]","        'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T3\",\"status\":\"FAIL\",\"changes_made\":true,\"rollback_started\":true,\"rollback_restored\":true}' \\","    [ \"$(read_mutation_contract \"$tmp\" T3 change 1)\" = \\","      $'true\\tFAIL\\ttrue\\ttrue\\ttrue\\tROLLED_BACK\\tNONE' ]","    [ \"$(read_mutation_contract \"$tmp\" T5 verify 0)\" = \\","      $'true\\tNOT_APPLICABLE\\tfalse\\tfalse\\tnull\\tNO_MUTATION\\tNONE' ]","        'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"OTHER\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","    [ \"$(read_mutation_contract \"$tmp\" T6 change 0)\" = \\","      $'false\\tUNKNOWN\\tunknown\\tunknown\\tnull\\tUNKNOWN\\tINVALID_CONTRACT:ValueError' ]","        'HOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"T7\",\"status\":\"OK\",\"changes_made\":true,\"rollback_started\":false,\"rollback_restored\":null}' \\","    [ \"$(read_mutation_contract \"$tmp\" T7 change 0)\" = \\","      $'false\\tUNKNOWN\\tunknown\\tunknown\\tnull\\tUNKNOWN\\tMULTIPLE_CONTRACTS' ]","usage() {","    cat >&2 <<'USAGE'","Usage:","  homelab-chat-run COMMAND_ID MODE COMPONENT -- command [arguments...]","MODE:","  read-only","  verify","[ \"$#\" -ge 5 ] || usage","COMMAND_ID=\"$1\"","MODE=\"$2\"","COMPONENT=\"$3\"","shift 3","[ \"${1:-}\" = '--' ] || usage","shift","[ \"$#\" -ge 1 ] || usage","case \"$COMMAND_ID\" in","    ''|*[!A-Za-z0-9._-]*)","        echo 'RESULT=FAIL'","        echo 'REASON=INVALID_COMMAND_ID'","        exit 65","        ;;","esac","STARTED_AT=\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"","STAMP=\"$(date -u +%Y%m%dT%H%M%SZ)\"","HOST_SHORT=\"$(hostname -s 2>/dev/null || hostname)\"","RAW_FILE=\"$RAW_DIR/${COMMAND_ID}-${STAMP}.log\"","SANITIZED_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.txt\"","JSON_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}.json\"","TXT_FILE=\"$PUBLIC_DIR/${COMMAND_ID}-${STAMP}-latest.txt\"","REFERENCE_SHA256=\"$(sha256sum \"$REFERENCE\" | awk '{print $1}')\"","ERROR_REGISTER_SHA256=\"$(sha256sum \"$ERROR_REGISTER\" | awk '{print $1}')\"","BLOCK_REASON=''","CHANGE_DECLARED=false","RESULT_CONTRACT_VALID=true","CONTRACT_STATUS='NOT_APPLICABLE'","CHANGES_MADE=false","ROLLBACK_STARTED=false","ROLLBACK_RESTORED=null","MUTATION_OUTCOME='NO_MUTATION'","RESULT_CONTRACT_ERROR='NONE'","COMMAND_RC=''","if [ \"$MODE\" = change ]; then","    CHANGE_DECLARED=true","    RESULT_CONTRACT_VALID=false","    CONTRACT_STATUS='UNKNOWN'","    CHANGES_MADE=unknown","    ROLLBACK_STARTED=unknown","    ROLLBACK_RESTORED=null","    MUTATION_OUTCOME='UNKNOWN'","    RESULT_CONTRACT_ERROR='MISSING_CONTRACT'","fi","    RC=73","    STATUS='BLOCKED'","    RESULT_CONTRACT_VALID=true","    CONTRACT_STATUS='BLOCKED'","    CHANGES_MADE=false","    ROLLBACK_STARTED=false","    MUTATION_OUTCOME='NO_MUTATION'","    RESULT_CONTRACT_ERROR='RUNNER_PREEXECUTION_BLOCK'","    {","    IFS=$'\\t' read -r \\","        RESULT_CONTRACT_VALID \\","        CONTRACT_STATUS \\","        CHANGES_MADE \\","        ROLLBACK_STARTED \\","        ROLLBACK_RESTORED \\","        MUTATION_OUTCOME \\","        RESULT_CONTRACT_ERROR < <(","            read_mutation_contract \\","                \"$RAW_FILE\" \\","                \"$COMMAND_ID\" \\","                \"$MODE\" \\","                \"$COMMAND_RC\"","        )","python3 - \\","    \"$JSON_FILE\" \\","    \"$SANITIZED_FILE\" \\","    \"$COMMAND_ID\" \\","    \"$STATUS\" \\","    \"$RC\" \\","    \"$HOST_SHORT\" \\","    \"$MODE\" \\","    \"$BLOCK_REASON\" \\","    \"$CHANGE_DECLARED\" \\","    \"$RESULT_CONTRACT_VALID\" \\","    \"$CONTRACT_STATUS\" \\","    \"$CHANGES_MADE\" \\","    \"$ROLLBACK_STARTED\" \\","    \"$ROLLBACK_RESTORED\" \\","    \"$MUTATION_OUTCOME\" \\","    \"$RESULT_CONTRACT_ERROR\" \\","    \"$COMMAND_RC\" <<'PY'","(","    json_path,","    output_path,","    command_id,","    status,","    rc,","    host,","    mode,","    block_reason,","    change_declared,","    result_contract_valid,","    contract_status,","    changes_made,","    rollback_started,","    rollback_restored,","    mutation_outcome,","    result_contract_error,","    command_rc,",") = sys.argv[1:]","document = {","    \"schema_version\": 1,","    \"channel\": \"homelab-runtime\",","    \"command_id\": command_id,","    \"status\": status,","    \"rc\": int(rc),","    \"host\": host,","    \"mode\": mode,","    \"change_declared\": change_declared == \"true\",","    \"result_contract_valid\": result_contract_valid == \"true\",","    \"result_contract_status\": (","        None","        if contract_status in {\"\", \"UNKNOWN\", \"NOT_APPLICABLE\"}","        else contract_status","    ),","    \"result_contract_error\": (","        if result_contract_error == \"NONE\"","        else result_contract_error","    \"command_rc\": int(command_rc) if command_rc else None,","    \"changes_made\": optional_bool(changes_made),","    \"rollback_started\": optional_bool(rollback_started),","    \"rollback_restored\": optional_bool(rollback_restored),","    \"mutation_outcome\": mutation_outcome,"]
CANDIDATE_EXACTNESS_SIGNALS={"source_or_hash":true,"version_id":true,"version_string":true}
HOLD_REASONS=[]
FINAL_DECISION=ELIGIBLE_FOR_PORTAL200_APPLY4_CHANGE_CARRIER_BUILD
APPLY4_DESIGN2_END=true

OUTPUT_END
CHAT_OUTPUT_END
