CHAT_OUTPUT_BEGIN
COMMAND_ID=HBARHUB-LOCAL-CORE-APPS-DEPLOYMENT-PLAN-FIX1-20260729T184000Z
STATUS=OK
RC=0
HOST=pve01
MODE=verify
COMPONENT=hbarhub-local-core-apps-deployment-plan-fix1
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
COMMAND_SHA256=0c6e3565861761f2ea5b21d9fe7746dd5c4f0c9590c981fccfb43c21f2d86a54
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=a2d2ab009f2f10f2379393a5fe42848ee84c87ceae0e607823eb670bf5ffc344
SANITIZED_OUTPUT_SHA256=a2d2ab009f2f10f2379393a5fe42848ee84c87ceae0e607823eb670bf5ffc344
OUTPUT_BEGIN
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HBARHUB-LOCAL-CORE-APPS-DEPLOYMENT-PLAN-FIX1-20260729T184000Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1}
{"PLAN_SHA256":"17843c5ce02793b59f5536bda2aa5f9f5dc1a4790e45c082690397f3786b4a02","approved_deployment":{"compose_project":"hbarhub","health":["/health/live","/health/ready"],"path":"/opt/stacks/hbarhub","port":8040,"public_proxy":false,"role":"core-apps","rollback":["docker compose down --volumes --remove-orphans","remove only hbarhub project images","remove /opt/stacks/hbarhub because precondition requires it absent"],"secrets":"generated locally on core-apps with restrictive permissions","services":["web","worker","scheduler","postgres","redis"],"source_archive_sha256":"25fb04b8dd74d4da2f50ba3aef76680b1813799a61fbd26c55bfcc1466cf82ac","source_commit":"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957","source_delivery":"verified archive from pve01; no Git credentials on core-apps"},"changes_made":false,"checks":{"compose_config_valid":true,"core_hostname":true,"disk_free_minimum":true,"docker_compose_available":true,"docker_server_available":true,"docker_tags_available":true,"memory_available_minimum":false,"no_hbarhub_containers":true,"no_hbarhub_images":true,"no_hbarhub_networks":true,"no_hbarhub_volumes":true,"no_mutation":true,"opt_stacks_exists":true,"parent_apply_verified":true,"port_8040_free":true,"pypi_versions_available":true,"repository_clean":true,"repository_exact":true,"source_archive_verified":true,"target_path_absent":true},"command_id":"HBARHUB-LOCAL-CORE-APPS-DEPLOYMENT-PLAN-FIX1-20260729T184000Z","core_apps":{"capacity":{"disk_free_bytes":76823736320,"disk_total_bytes":126605975552,"memory":{"MemAvailable":2814652416,"MemTotal":10435301376}},"compose_config":{"rc":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"docker":{"compose_available":true,"hbarhub_containers":[],"hbarhub_images":[],"hbarhub_networks":[],"hbarhub_volumes":[],"present":true,"server_available":true},"hostname_matches":true,"image_endpoints":{"postgres:17-alpine":{"body_sha256":"10c54d313aa9cb5af571a2c27ee6deb7bf715b8be5ffd87bd431461167419f03","body_within_limit":true,"http":200},"python:3.13-slim-bookworm":{"body_sha256":"56f02eef1a26a4e8576a57d9510e81a4821825e0782d51308533c5ef3e1bdada","body_within_limit":true,"http":200},"redis:8-alpine":{"body_sha256":"90d3a87a7ad4fdde399c2bf2493cb6b9d87f4e89105a0349727a16f32a364112","body_within_limit":true,"http":200}},"opt_stacks":{"bytes":4096,"exists":true,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks","uid":0},"package_endpoints":{"Django==6.0.7":{"body_sha256":"e804a8fe17787c0f90428c1c95670a8b398f75fbc3f97d501178b77510a336af","body_within_limit":true,"http":200},"celery==5.6.3":{"body_sha256":"04ef2f4a42d608d03a783e5041c670f63088f484fe3e0b9db13123d5202e7c47","body_within_limit":true,"http":200},"gunicorn==26.0.0":{"body_sha256":"9e6d4748de32f8b78925b5caf4e3103c0aa2b3288caca0bc12e1a6cecc158a71","body_within_limit":true,"http":200},"psycopg==3.3.4":{"body_sha256":"63d5a4c0721d2ba1ce82e3a460ff276d6d8f049a3f4d51b300500e32c9f354d2","body_within_limit":true,"http":200},"redis==8.0.1":{"body_sha256":"399ed4ded863c4baab5e66085220c58e9facd20a1eb3394db77a35694a9d8332","body_within_limit":true,"http":200}},"port_8040_free":true,"role":"core-apps","schema":1,"target":{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/hbarhub"},"temporary_archive_sha256":"25fb04b8dd74d4da2f50ba3aef76680b1813799a61fbd26c55bfcc1466cf82ac"},"gate":"LOCAL_CORE_APPS_DEPLOYMENT_BLOCKED","image_checks":{"postgres:17-alpine":true,"python:3.13-slim-bookworm":true,"redis:8-alpine":true},"mutation_outcome":"NO_MUTATION","next_stage":"TARGETED_LOCAL_DEPLOYMENT_DIAGNOSTIC","package_checks":{"Django==6.0.7":true,"celery==5.6.3":true,"gunicorn==26.0.0":true,"psycopg==3.3.4":true,"redis==8.0.1":true},"parent_evidence":{"changeset_sha256":"54a29d95776878c40f8996f83857e9c25a84e8ccbb6b0b6151fc4e51660e1d24","new_main":"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957","pull_request_number":3,"result_sequence":"34604e5a2cff63e718f0c6927c253fa632be2f9f2c81af0bb76cd2dd5acfa7a8","result_sha256":"3c6b2ffd466db964d7728474323b23f599ea933c54c6996e2c8d8ccbc268ae6a"},"private_addresses_included":false,"repository":{"archive_bytes":10084,"archive_sha256":"25fb04b8dd74d4da2f50ba3aef76680b1813799a61fbd26c55bfcc1466cf82ac","branch_names":["main"],"compose_services":["postgres","redis","scheduler","web","worker"],"crypto_assets":["HBAR","POL","AVAX","LINK"],"file_count":27,"main_head":"57d2704dc4dc4f1e00c3e1bda67fc0bc2bef6957","open_pull_request_count":0,"parent_head":"42a020bf825bb6bb499fca8e438ccb462e6984f0","python_compile":true,"requirements":["Django==6.0.7","celery==5.6.3","gunicorn==26.0.0","psycopg[binary]==3.3.4","redis==8.0.1"],"tracked_asset_count":18},"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"status":"PLAN_COMPLETE"}

OUTPUT_END
CHAT_OUTPUT_END
