diff --git a/runtime/history/HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z.json b/runtime/history/HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z.json new file mode 100644 index 0000000..68497ea --- /dev/null +++ b/runtime/history/HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "hbarhub-gitea-path-reconciliation-plan-v1", + "started_at_utc": "2026-07-29T15:45:10Z", + "finished_at_utc": "2026-07-29T15:45:12Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "7fba4adca70b30b07bb092f0ac243da4e364cef4b39d4b3b53a052af0d9e4667", + "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": "c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914", + "sanitized_output_sha256": "c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914", + "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\":\"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"checks\":{\"core_hostname\":true,\"gitea_search_available\":true,\"no_gitea_hbarhub_repo\":true,\"no_mutation\":true,\"no_real_hbarhub_stack\":true,\"reference_compose_exists\":true,\"reference_stack_exists\":true,\"target_owner_exists\":true},\"command_id\":\"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z\",\"gate\":\"READY_FOR_GITEA_SCAFFOLD_APPLY\",\"gitea\":{\"local_repository_candidates\":[{\"exists\":false,\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"path\":\"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git\"},{\"exists\":false,\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"path\":\"/opt/stacks/gitea/data/gitea-repositories/homelab-admin/hbarhub.git\"}],\"matching_repositories\":[],\"owner_org_http\":404,\"owner_user_http\":200,\"search_body_sha256\":\"45b93ccefd22e5ec4796dc8d5173e3060566fec357528dfe20b3bd814d9bc430\",\"search_http\":200},\"gitea_helpers\":[],\"mutation_outcome\":\"NO_MUTATION\",\"parent_evidence\":{\"PLAN_SHA256\":\"1d46135831d977cba89adfc1fb03ee969d11030f9ed2b277464b2bbdff7b27df\",\"capsule_sha256\":\"8ae8cadf8a2b0574e6d8089c8d7cfee6b387ea9e35cf52ab010daec76281ec5a\",\"command_id\":\"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z\"},\"private_addresses_included\":false,\"real_stack\":{\"exists\":false,\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"path\":\"/opt/stacks/hbarhub\"},\"reference_stack\":{\"compose\":{\"bytes\":1233,\"exists\":true,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0644\",\"path\":\"/opt/stacks/crypto-portfolio/compose.yaml\",\"sha256\":\"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8\",\"uid\":0},\"compose_services\":[\"web\",\"worker\"],\"docker_present\":true,\"root\":{\"bytes\":4096,\"exists\":true,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0750\",\"path\":\"/opt/stacks/crypto-portfolio\",\"uid\":0}},\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"service_evidence\":{\"capsule_metadata_entries\":10,\"portal_evidence_entries\":8},\"status\":\"PLAN_COMPLETE\",\"target_repository\":\"homelab-admin/hbarhub\",\"target_stack_path\":\"/opt/stacks/hbarhub\"}\n" +} diff --git a/runtime/history/HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z.txt b/runtime/history/HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z.txt new file mode 100644 index 0000000..16d62b9 --- /dev/null +++ b/runtime/history/HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z.txt @@ -0,0 +1,34 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=hbarhub-gitea-path-reconciliation-plan-v1 +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=7fba4adca70b30b07bb092f0ac243da4e364cef4b39d4b3b53a052af0d9e4667 +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=c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914 +SANITIZED_OUTPUT_SHA256=c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914 +OUTPUT_BEGIN +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"changes_made":false,"checks":{"core_hostname":true,"gitea_search_available":true,"no_gitea_hbarhub_repo":true,"no_mutation":true,"no_real_hbarhub_stack":true,"reference_compose_exists":true,"reference_stack_exists":true,"target_owner_exists":true},"command_id":"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z","gate":"READY_FOR_GITEA_SCAFFOLD_APPLY","gitea":{"local_repository_candidates":[{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git"},{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/gitea/data/gitea-repositories/homelab-admin/hbarhub.git"}],"matching_repositories":[],"owner_org_http":404,"owner_user_http":200,"search_body_sha256":"45b93ccefd22e5ec4796dc8d5173e3060566fec357528dfe20b3bd814d9bc430","search_http":200},"gitea_helpers":[],"mutation_outcome":"NO_MUTATION","parent_evidence":{"PLAN_SHA256":"1d46135831d977cba89adfc1fb03ee969d11030f9ed2b277464b2bbdff7b27df","capsule_sha256":"8ae8cadf8a2b0574e6d8089c8d7cfee6b387ea9e35cf52ab010daec76281ec5a","command_id":"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z"},"private_addresses_included":false,"real_stack":{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/hbarhub"},"reference_stack":{"compose":{"bytes":1233,"exists":true,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0644","path":"/opt/stacks/crypto-portfolio/compose.yaml","sha256":"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8","uid":0},"compose_services":["web","worker"],"docker_present":true,"root":{"bytes":4096,"exists":true,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0750","path":"/opt/stacks/crypto-portfolio","uid":0}},"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"service_evidence":{"capsule_metadata_entries":10,"portal_evidence_entries":8},"status":"PLAN_COMPLETE","target_repository":"homelab-admin/hbarhub","target_stack_path":"/opt/stacks/hbarhub"} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index bbcb0c3..68497ea 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z", + "command_id": "HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z", "status": "OK", "rc": 0, "host": "pve01", "mode": "verify", - "component": "hbarhub-deployment-plan-v1", - "started_at_utc": "2026-07-29T15:27:49Z", - "finished_at_utc": "2026-07-29T15:27:58Z", + "component": "hbarhub-gitea-path-reconciliation-plan-v1", + "started_at_utc": "2026-07-29T15:45:10Z", + "finished_at_utc": "2026-07-29T15:45:12Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "1a52142d8f07c20539a890d3e04d9a92b6aea77e4b6bb41b1c9d62e154e3e3fc", + "command_sha256": "7fba4adca70b30b07bb092f0ac243da4e364cef4b39d4b3b53a052af0d9e4667", "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": "021bdd8ff374d6f279f51e3a5229cac7da0d447adeb8c5741636daaa82fb4770", - "sanitized_output_sha256": "021bdd8ff374d6f279f51e3a5229cac7da0d447adeb8c5741636daaa82fb4770", + "raw_evidence_sha256": "c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914", + "sanitized_output_sha256": "c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914", "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\":\"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":\"1d46135831d977cba89adfc1fb03ee969d11030f9ed2b277464b2bbdff7b27df\",\"approved_architecture\":{\"application\":\"Django\",\"database\":\"PostgreSQL\",\"notifications\":[\"Gotify\",\"Telegram later\"],\"public_proxy\":\"NPMplus\",\"queue\":\"Redis\",\"web_port\":8040,\"workers\":\"Celery worker + Celery beat\"},\"asset_baseline\":{\"crypto\":[{\"coingecko_id\":\"hedera-hashgraph\",\"symbol\":\"HBAR\"},{\"coingecko_id\":\"polygon-ecosystem-token\",\"symbol\":\"POL\"},{\"coingecko_id\":\"avalanche-2\",\"symbol\":\"AVAX\"},{\"coingecko_id\":\"chainlink\",\"symbol\":\"LINK\"}],\"tracked\":{\"DATA_CENTER_REITS\":[\"VPN\",\"CLOU\",\"EQIX\",\"DLR\"],\"URANIUM_ETF_AND_TRUST\":[\"URA\",\"URNM\",\"SRUUF\",\"NLR\",\"URNJ\",\"RCTR\"],\"URANIUM_STOCKS\":[\"CCJ\",\"CEG\",\"UUUU\",\"DNN\",\"UEC\",\"LEU\",\"BWXT\",\"SMR\"]}},\"changes_made\":false,\"command_id\":\"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z\",\"core_reference_paths\":[{\"bytes\":1233,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/crypto-portfolio/compose.yaml\",\"sha256\":\"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8\",\"uid\":0},{\"bytes\":10343,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py.bak-icons-20260711T004054Z\",\"sha256\":\"dcc4fcc47b8b244046ac082fc5fcfe6c35160a9b8721245eb763ad6d2e57aadf\",\"uid\":0},{\"bytes\":10256,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py\",\"sha256\":\"174a14b86014535980d200a76d0057110c7af102c66f16c2e21fc3e74bb2e49e\",\"uid\":0},{\"bytes\":9535,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py.bak-currency-rebuild-20260711T002156Z\",\"sha256\":\"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b\",\"uid\":0},{\"bytes\":6938,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/app.py.bak-icons-20260711T004054Z\",\"sha256\":\"3b41fb76cbd4ca18598f882e5180a0b2f41152086d52a972eedf165eece9f80e\",\"uid\":0},{\"bytes\":17955,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/app.py\",\"sha256\":\"44df2b25183b7c5d87ff1516ec2d9cd1d169acde3031f7c2aa1fc4e0c7813cd2\",\"uid\":0},{\"bytes\":9535,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py.bak-usd-rub-20260711T001327Z\",\"sha256\":\"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b\",\"uid\":0},{\"bytes\":9507,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py.bak-runtime-fix-20260710T164812Z\",\"sha256\":\"69703bb68857ba34460af308d6e528bffedb21a7aebed75f377af7471a3cd3e6\",\"uid\":0},{\"bytes\":6938,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/app.py.bak-icons-layout-20260711T005138Z\",\"sha256\":\"3b41fb76cbd4ca18598f882e5180a0b2f41152086d52a972eedf165eece9f80e\",\"uid\":0},{\"bytes\":9535,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py.bak-currency-ui-20260711T000554Z\",\"sha256\":\"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b\",\"uid\":0},{\"bytes\":6910,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/app.py.bak-runtime-fix-20260710T164812Z\",\"sha256\":\"7e10e9b285111a4c301fdc70b5e5e6b504ef613c135dd8c8374fc392c05ddda1\",\"uid\":0},{\"bytes\":9535,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0600\",\"path\":\"/opt/stacks/crypto-portfolio/worker.py.rollback-running-20260711T003109Z\",\"sha256\":\"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b\",\"uid\":0},{\"bytes\":6938,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/app.py.bak-icons-layout-v4-20260711T005609Z\",\"sha256\":\"3b41fb76cbd4ca18598f882e5180a0b2f41152086d52a972eedf165eece9f80e\",\"uid\":0},{\"bytes\":21619,\"gid\":1000,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/runtime-stage/latest.txt\",\"sha256\":\"1ed63fca4c6131cd9df2de81f4a2bb346dfd75f4c6b8b0cc43a42d28cbc1799f\",\"uid\":1000},{\"bytes\":462349,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/public/.well-known/homelab-bootstrap.json\",\"sha256\":\"7be8012c619c01d5770417d3a26ca82c7cd14935ed5cf10fd7cb6e2fa687c82f\",\"uid\":0},{\"bytes\":44382,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/public/assets/homelab-context/command-output/cr0027-cleanup-inventory.txt\",\"sha256\":\"0117d852de7cc3fc6d4eb5362cd3eba80923448042d5e80519fa8ace1cc2dcfa\",\"uid\":0},{\"bytes\":28566,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/public/assets/homelab-context/command-output/cr0027-inventory-v2.json\",\"sha256\":\"cfafce78901d4d519565bc808bd108d27d3c20134d2c0e3517bb9c2ef77998de\",\"uid\":0},{\"bytes\":36414,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/public/assets/homelab-context/command-output/cr0027-change-inventory.json\",\"sha256\":\"4d7943315d368da730cfa18c58c21c4f2ee710b9953df6901dab3fc2daeef814\",\"uid\":0},{\"bytes\":462349,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/public/.well-known/homelab-bootstrap/7be8012c619c01d5770417d3a26ca82c7cd14935ed5cf10fd7cb6e2fa687c82f.json\",\"sha256\":\"7be8012c619c01d5770417d3a26ca82c7cd14935ed5cf10fd7cb6e2fa687c82f\",\"uid\":0},{\"bytes\":21619,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/gitea/data/gitea/public/.well-known/homelab-runtime/latest.txt\",\"sha256\":\"1ed63fca4c6131cd9df2de81f4a2bb346dfd75f4c6b8b0cc43a42d28cbc1799f\",\"uid\":0},{\"bytes\":25871,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/__pycache__/app.cpython-313.pyc\",\"sha256\":\"9753184c226c5daffeb4f08c9b2c4bb77ddf121cc94617f7caedbc878be6bf7b\",\"uid\":0},{\"bytes\":16784,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\"],\"mode\":\"0640\",\"path\":\"/opt/stacks/crypto-portfolio/__pycache__/worker.cpython-313.pyc\",\"sha256\":\"b4888e983604909328d115c8bc322dc5764151323982038d1082db6a8c389283\",\"uid\":0},{\"bytes\":57521,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/1a5e882626f26718b1864c75887be82d62fef74be679bd4a2bf053d3faae129f.hcmd/xl.meta\",\"sha256\":\"ead16f70ed9bbcd82941186b37d51a48642e6bcaaf0c2181cafe69471a83c5f8\",\"uid\":0},{\"bytes\":36440,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/67c4ae0ffeb3e1d143625de622933f1cc377db46c9c49edc521a4d4e7a57cb7b.hcmd/xl.meta\",\"sha256\":\"edcfe97ec18e568b6477c57d50f6871964f7bd7ae4b7bddd339ee2c68baf842d\",\"uid\":0},{\"bytes\":18203,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/1a6c9a82d85f5dae4d428a70f378b9cbc87035ecc92fef200f46118bef70d099.hcmd/xl.meta\",\"sha256\":\"cac2f3f58bf5bf495dfae5a8040a066328f16869bacbee1a8788f4ca90490625\",\"uid\":0},{\"bytes\":49748,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/ae19d40259bba21359f9976413e354adcaf8abf2e930f90ed92c8c17f51b24c0.hcmd/xl.meta\",\"sha256\":\"be576d6ba217eeddcb3c094d97295b740b45a53aebdfe98ee7b30ea178fc180a\",\"uid\":0},{\"bytes\":34971,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/3a67aa2bdcdbcf80e9ebc149b6976dfcc89595f5febfa1be25700fe1f9f2e4da.hcmd/xl.meta\",\"sha256\":\"39aa8fb1f6ff9ca7e2451fc2fc88eea584e323499f202615e5c1d3c38bc65a07\",\"uid\":0},{\"bytes\":37344,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"crypto-portfolio\",\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/8ae8cadf8a2b0574e6d8089c8d7cfee6b387ea9e35cf52ab010daec76281ec5a.hcmd/xl.meta\",\"sha256\":\"b7dbfe01a3e7930a7fc9c69f1275ec726264eecd2d5f1b81b20d824fe4d46841\",\"uid\":0},{\"bytes\":40707,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/879f53e67631809491953b88cd002ccf01ba0b795d4e312aa82bbddd6bacdd88.hcmd/xl.meta\",\"sha256\":\"2a8ae235921978e3db577c6872a7a237d4bdb24a4b2a19290bfd302cda984866\",\"uid\":0},{\"bytes\":52808,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/9c179070977758d8e4d29f6da15bd6e2917689c9b1ff42c71b3b36825b504f49.hcmd/xl.meta\",\"sha256\":\"fe7027b2332d2fa7c5fe4f231629d0b8b33e6f4a1f860987889e4a7df53bdd7c\",\"uid\":0},{\"bytes\":17062,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"matched\":[\"hbarhub\"],\"mode\":\"0644\",\"path\":\"/opt/stacks/minio/data/homelab-command-capsules/capsules/5a765cefe1152f198acc281306a1818e061a38036992c015de3e008b90fe43ea.hcmd/xl.meta\",\"sha256\":\"6cab87a42c84e3ffbe1ca5509aeec423e69ae6f3312f506c74aa190194817403\",\"uid\":0}],\"deployment_gate\":\"READY_WITH_EXISTING_ASSET_REVIEW\",\"edge_reference\":{\"crypto_portfolio_refs\":[],\"hbarhub_refs\":[],\"nginx_test\":{\"rc\":0,\"stderr_sha256\":\"9cb221b6993277a11765b15bdded4e9b090f1c2a8f5ed573e907ae3b6921f27c\",\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"},\"npmplus\":{\"health\":\"healthy\",\"image\":\"docker.io/zoeyvid/npmplus:2026-06-17-b1\",\"mounts\":[{\"destination\":\"/data\",\"source\":\"/opt/npmplus\",\"type\":\"bind\"}],\"status\":\"running\"}},\"existing_hbarhub_paths\":[{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-PVE-CLI-READONLY-DIAG-20260729T101639Z\",\"uid\":0},{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-PVE-IPC-NAMESPACE-DIAG-20260729T104500Z\",\"uid\":0},{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-READONLY-INVENTORY-V1-20260729T145500Z\",\"uid\":0},{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-AUTO-DISCOVERY-FIX2-20260729T104000Z\",\"uid\":0},{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-AUTO-DISCOVERY-FIX4-20260729T105500Z\",\"uid\":0},{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-CLUSTER-DISCOVERY-PLAN-FIX1-20260729T101000Z\",\"uid\":0},{\"bytes\":4096,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0755\",\"path\":\"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-READONLY-INVENTORY-V2-20260729T151000Z\",\"uid\":0}],\"gitea_hbarhub_search\":{\"body_sha256\":\"45b93ccefd22e5ec4796dc8d5173e3060566fec357528dfe20b3bd814d9bc430\",\"count\":0,\"full_names\":[],\"http\":200},\"hard_checks\":{\"all_guests_readable\":true,\"all_vms_running\":true,\"core_docker\":true,\"core_port_8040_free\":true,\"edge_npmplus_healthy\":true,\"monitoring_ready\":true,\"no_existing_public_proxy\":true,\"no_mutation\":true},\"implementation_stages\":[{\"name_ru\":\"Репозиторий и исходный каркас\",\"order\":1,\"scope\":\"Gitea only\"},{\"name_ru\":\"Локальный стек на core-apps\",\"order\":2,\"scope\":\"web, worker, scheduler, PostgreSQL, Redis; port 8040; no public proxy\"},{\"name_ru\":\"Рыночные данные и Hedera\",\"order\":3,\"scope\":\"HBAR, POL, AVAX, LINK; prices, market cap, supply, network status\"},{\"name_ru\":\"Русские новости\",\"order\":4,\"scope\":\"source allowlist, deduplication, summaries, provenance\"},{\"name_ru\":\"Радар токенизации\",\"order\":5,\"scope\":\"18 tracked assets, evidence and status state machine\"},{\"name_ru\":\"Сигналы\",\"order\":6,\"scope\":\"paper and notification-only; no exchange keys\"},{\"name_ru\":\"Публичный домен\",\"order\":7,\"scope\":\"NPMplus and TLS after local health passes\"},{\"name_ru\":\"Мониторинг и резервирование\",\"order\":8,\"scope\":\"Uptime Kuma, Gotify, backup and restore check\"}],\"monitoring_reference\":{\"containers\":{\"alertmanager\":{\"health\":null,\"image\":\"prom/alertmanager:v0.33.0\",\"mount_destinations\":[\"/alertmanager\",\"/etc/alertmanager/alertmanager.yml\"],\"status\":\"running\"},\"gotify\":{\"health\":\"healthy\",\"image\":\"gotify/server:latest\",\"mount_destinations\":[\"/app/data\"],\"status\":\"running\"},\"ntfy\":{\"health\":null,\"image\":\"binwiederhier/ntfy:latest\",\"mount_destinations\":[\"/var/cache/ntfy\",\"/var/lib/ntfy\"],\"status\":\"running\"},\"prometheus\":{\"health\":null,\"image\":\"prom/prometheus:latest\",\"mount_destinations\":[\"/etc/prometheus/prometheus.yml\",\"/etc/prometheus/rules\",\"/prometheus\"],\"status\":\"running\"},\"uptime-kuma\":{\"health\":\"healthy\",\"image\":\"louislam/uptime-kuma:2-slim\",\"mount_destinations\":[\"/app/data\"],\"status\":\"running\"}},\"crypto_portfolio_health_refs\":[],\"docker_present\":true,\"hbarhub_health_refs\":[],\"hostname_matches\":true,\"role\":\"monitoring\",\"schema\":1},\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"GITEA_AND_PATH_RECONCILIATION_PLAN\",\"parent_evidence\":{\"PLAN_SHA256\":\"a6e7fa6dd20d57504d31748aeec0bd28c567c1c5fb5ce697dbbae36606cba483\",\"capsule_sha256\":\"9c179070977758d8e4d29f6da15bd6e2917689c9b1ff42c71b3b36825b504f49\",\"command_id\":\"HBARHUB-READONLY-INVENTORY-V2-20260729T151000Z\",\"deployment_gate\":\"READY_FOR_DEPLOYMENT_PLAN\",\"runner_json_sha256\":\"65ddc2b24974f12c63ba92f01f04596fb5632b34da69e2c074be8f1cff15940f\",\"status\":\"OK\"},\"private_addresses_included\":false,\"reference_stack\":{\"health\":null,\"image\":\"crypto-portfolio-web\",\"mount_destinations\":[\"/data\",\"/run/secrets/email_config\",\"/run/secrets/password_hash\",\"/run/secrets/session_secret\"],\"network_names\":[\"crypto-portfolio_default\"],\"published_container_ports\":[\"8000/tcp\"],\"status\":\"running\"},\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"status\":\"PLAN_COMPLETE\"}\n" + "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"checks\":{\"core_hostname\":true,\"gitea_search_available\":true,\"no_gitea_hbarhub_repo\":true,\"no_mutation\":true,\"no_real_hbarhub_stack\":true,\"reference_compose_exists\":true,\"reference_stack_exists\":true,\"target_owner_exists\":true},\"command_id\":\"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z\",\"gate\":\"READY_FOR_GITEA_SCAFFOLD_APPLY\",\"gitea\":{\"local_repository_candidates\":[{\"exists\":false,\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"path\":\"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git\"},{\"exists\":false,\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"path\":\"/opt/stacks/gitea/data/gitea-repositories/homelab-admin/hbarhub.git\"}],\"matching_repositories\":[],\"owner_org_http\":404,\"owner_user_http\":200,\"search_body_sha256\":\"45b93ccefd22e5ec4796dc8d5173e3060566fec357528dfe20b3bd814d9bc430\",\"search_http\":200},\"gitea_helpers\":[],\"mutation_outcome\":\"NO_MUTATION\",\"parent_evidence\":{\"PLAN_SHA256\":\"1d46135831d977cba89adfc1fb03ee969d11030f9ed2b277464b2bbdff7b27df\",\"capsule_sha256\":\"8ae8cadf8a2b0574e6d8089c8d7cfee6b387ea9e35cf52ab010daec76281ec5a\",\"command_id\":\"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z\"},\"private_addresses_included\":false,\"real_stack\":{\"exists\":false,\"is_dir\":false,\"is_file\":false,\"is_symlink\":false,\"path\":\"/opt/stacks/hbarhub\"},\"reference_stack\":{\"compose\":{\"bytes\":1233,\"exists\":true,\"gid\":0,\"is_dir\":false,\"is_file\":true,\"is_symlink\":false,\"mode\":\"0644\",\"path\":\"/opt/stacks/crypto-portfolio/compose.yaml\",\"sha256\":\"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8\",\"uid\":0},\"compose_services\":[\"web\",\"worker\"],\"docker_present\":true,\"root\":{\"bytes\":4096,\"exists\":true,\"gid\":0,\"is_dir\":true,\"is_file\":false,\"is_symlink\":false,\"mode\":\"0750\",\"path\":\"/opt/stacks/crypto-portfolio\",\"uid\":0}},\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"service_evidence\":{\"capsule_metadata_entries\":10,\"portal_evidence_entries\":8},\"status\":\"PLAN_COMPLETE\",\"target_repository\":\"homelab-admin/hbarhub\",\"target_stack_path\":\"/opt/stacks/hbarhub\"}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index a856ea9..16d62b9 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z +COMMAND_ID=HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z STATUS=OK RC=0 HOST=pve01 MODE=verify -COMPONENT=hbarhub-deployment-plan-v1 +COMPONENT=hbarhub-gitea-path-reconciliation-plan-v1 REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=1a52142d8f07c20539a890d3e04d9a92b6aea77e4b6bb41b1c9d62e154e3e3fc +COMMAND_SHA256=7fba4adca70b30b07bb092f0ac243da4e364cef4b39d4b3b53a052af0d9e4667 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=021bdd8ff374d6f279f51e3a5229cac7da0d447adeb8c5741636daaa82fb4770 -SANITIZED_OUTPUT_SHA256=021bdd8ff374d6f279f51e3a5229cac7da0d447adeb8c5741636daaa82fb4770 +RAW_EVIDENCE_SHA256=c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914 +SANITIZED_OUTPUT_SHA256=c6bbb5b7579894a0e1f9a3af038e45e33d89a88d857a3bb60fd24659056e5914 OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -{"PLAN_SHA256":"1d46135831d977cba89adfc1fb03ee969d11030f9ed2b277464b2bbdff7b27df","approved_architecture":{"application":"Django","database":"PostgreSQL","notifications":["Gotify","Telegram later"],"public_proxy":"NPMplus","queue":"Redis","web_port":8040,"workers":"Celery worker + Celery beat"},"asset_baseline":{"crypto":[{"coingecko_id":"hedera-hashgraph","symbol":"HBAR"},{"coingecko_id":"polygon-ecosystem-token","symbol":"POL"},{"coingecko_id":"avalanche-2","symbol":"AVAX"},{"coingecko_id":"chainlink","symbol":"LINK"}],"tracked":{"DATA_CENTER_REITS":["VPN","CLOU","EQIX","DLR"],"URANIUM_ETF_AND_TRUST":["URA","URNM","SRUUF","NLR","URNJ","RCTR"],"URANIUM_STOCKS":["CCJ","CEG","UUUU","DNN","UEC","LEU","BWXT","SMR"]}},"changes_made":false,"command_id":"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z","core_reference_paths":[{"bytes":1233,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/crypto-portfolio/compose.yaml","sha256":"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8","uid":0},{"bytes":10343,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/worker.py.bak-icons-20260711T004054Z","sha256":"dcc4fcc47b8b244046ac082fc5fcfe6c35160a9b8721245eb763ad6d2e57aadf","uid":0},{"bytes":10256,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/worker.py","sha256":"174a14b86014535980d200a76d0057110c7af102c66f16c2e21fc3e74bb2e49e","uid":0},{"bytes":9535,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/worker.py.bak-currency-rebuild-20260711T002156Z","sha256":"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b","uid":0},{"bytes":6938,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/app.py.bak-icons-20260711T004054Z","sha256":"3b41fb76cbd4ca18598f882e5180a0b2f41152086d52a972eedf165eece9f80e","uid":0},{"bytes":17955,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/app.py","sha256":"44df2b25183b7c5d87ff1516ec2d9cd1d169acde3031f7c2aa1fc4e0c7813cd2","uid":0},{"bytes":9535,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/worker.py.bak-usd-rub-20260711T001327Z","sha256":"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b","uid":0},{"bytes":9507,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/worker.py.bak-runtime-fix-20260710T164812Z","sha256":"69703bb68857ba34460af308d6e528bffedb21a7aebed75f377af7471a3cd3e6","uid":0},{"bytes":6938,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/app.py.bak-icons-layout-20260711T005138Z","sha256":"3b41fb76cbd4ca18598f882e5180a0b2f41152086d52a972eedf165eece9f80e","uid":0},{"bytes":9535,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/worker.py.bak-currency-ui-20260711T000554Z","sha256":"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b","uid":0},{"bytes":6910,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/app.py.bak-runtime-fix-20260710T164812Z","sha256":"7e10e9b285111a4c301fdc70b5e5e6b504ef613c135dd8c8374fc392c05ddda1","uid":0},{"bytes":9535,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0600","path":"/opt/stacks/crypto-portfolio/worker.py.rollback-running-20260711T003109Z","sha256":"4a2fa9348c36247ca26b8f38a5303c4ffd6c17f559223bf46e75a86929c6263b","uid":0},{"bytes":6938,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/app.py.bak-icons-layout-v4-20260711T005609Z","sha256":"3b41fb76cbd4ca18598f882e5180a0b2f41152086d52a972eedf165eece9f80e","uid":0},{"bytes":21619,"gid":1000,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/runtime-stage/latest.txt","sha256":"1ed63fca4c6131cd9df2de81f4a2bb346dfd75f4c6b8b0cc43a42d28cbc1799f","uid":1000},{"bytes":462349,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/public/.well-known/homelab-bootstrap.json","sha256":"7be8012c619c01d5770417d3a26ca82c7cd14935ed5cf10fd7cb6e2fa687c82f","uid":0},{"bytes":44382,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/public/assets/homelab-context/command-output/cr0027-cleanup-inventory.txt","sha256":"0117d852de7cc3fc6d4eb5362cd3eba80923448042d5e80519fa8ace1cc2dcfa","uid":0},{"bytes":28566,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/public/assets/homelab-context/command-output/cr0027-inventory-v2.json","sha256":"cfafce78901d4d519565bc808bd108d27d3c20134d2c0e3517bb9c2ef77998de","uid":0},{"bytes":36414,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/public/assets/homelab-context/command-output/cr0027-change-inventory.json","sha256":"4d7943315d368da730cfa18c58c21c4f2ee710b9953df6901dab3fc2daeef814","uid":0},{"bytes":462349,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/public/.well-known/homelab-bootstrap/7be8012c619c01d5770417d3a26ca82c7cd14935ed5cf10fd7cb6e2fa687c82f.json","sha256":"7be8012c619c01d5770417d3a26ca82c7cd14935ed5cf10fd7cb6e2fa687c82f","uid":0},{"bytes":21619,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0644","path":"/opt/stacks/gitea/data/gitea/public/.well-known/homelab-runtime/latest.txt","sha256":"1ed63fca4c6131cd9df2de81f4a2bb346dfd75f4c6b8b0cc43a42d28cbc1799f","uid":0},{"bytes":25871,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/__pycache__/app.cpython-313.pyc","sha256":"9753184c226c5daffeb4f08c9b2c4bb77ddf121cc94617f7caedbc878be6bf7b","uid":0},{"bytes":16784,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio"],"mode":"0640","path":"/opt/stacks/crypto-portfolio/__pycache__/worker.cpython-313.pyc","sha256":"b4888e983604909328d115c8bc322dc5764151323982038d1082db6a8c389283","uid":0},{"bytes":57521,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/1a5e882626f26718b1864c75887be82d62fef74be679bd4a2bf053d3faae129f.hcmd/xl.meta","sha256":"ead16f70ed9bbcd82941186b37d51a48642e6bcaaf0c2181cafe69471a83c5f8","uid":0},{"bytes":36440,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/67c4ae0ffeb3e1d143625de622933f1cc377db46c9c49edc521a4d4e7a57cb7b.hcmd/xl.meta","sha256":"edcfe97ec18e568b6477c57d50f6871964f7bd7ae4b7bddd339ee2c68baf842d","uid":0},{"bytes":18203,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/1a6c9a82d85f5dae4d428a70f378b9cbc87035ecc92fef200f46118bef70d099.hcmd/xl.meta","sha256":"cac2f3f58bf5bf495dfae5a8040a066328f16869bacbee1a8788f4ca90490625","uid":0},{"bytes":49748,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/ae19d40259bba21359f9976413e354adcaf8abf2e930f90ed92c8c17f51b24c0.hcmd/xl.meta","sha256":"be576d6ba217eeddcb3c094d97295b740b45a53aebdfe98ee7b30ea178fc180a","uid":0},{"bytes":34971,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/3a67aa2bdcdbcf80e9ebc149b6976dfcc89595f5febfa1be25700fe1f9f2e4da.hcmd/xl.meta","sha256":"39aa8fb1f6ff9ca7e2451fc2fc88eea584e323499f202615e5c1d3c38bc65a07","uid":0},{"bytes":37344,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["crypto-portfolio","hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/8ae8cadf8a2b0574e6d8089c8d7cfee6b387ea9e35cf52ab010daec76281ec5a.hcmd/xl.meta","sha256":"b7dbfe01a3e7930a7fc9c69f1275ec726264eecd2d5f1b81b20d824fe4d46841","uid":0},{"bytes":40707,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/879f53e67631809491953b88cd002ccf01ba0b795d4e312aa82bbddd6bacdd88.hcmd/xl.meta","sha256":"2a8ae235921978e3db577c6872a7a237d4bdb24a4b2a19290bfd302cda984866","uid":0},{"bytes":52808,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/9c179070977758d8e4d29f6da15bd6e2917689c9b1ff42c71b3b36825b504f49.hcmd/xl.meta","sha256":"fe7027b2332d2fa7c5fe4f231629d0b8b33e6f4a1f860987889e4a7df53bdd7c","uid":0},{"bytes":17062,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"matched":["hbarhub"],"mode":"0644","path":"/opt/stacks/minio/data/homelab-command-capsules/capsules/5a765cefe1152f198acc281306a1818e061a38036992c015de3e008b90fe43ea.hcmd/xl.meta","sha256":"6cab87a42c84e3ffbe1ca5509aeec423e69ae6f3312f506c74aa190194817403","uid":0}],"deployment_gate":"READY_WITH_EXISTING_ASSET_REVIEW","edge_reference":{"crypto_portfolio_refs":[],"hbarhub_refs":[],"nginx_test":{"rc":0,"stderr_sha256":"9cb221b6993277a11765b15bdded4e9b090f1c2a8f5ed573e907ae3b6921f27c","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"npmplus":{"health":"healthy","image":"docker.io/zoeyvid/npmplus:2026-06-17-b1","mounts":[{"destination":"/data","source":"/opt/npmplus","type":"bind"}],"status":"running"}},"existing_hbarhub_paths":[{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-PVE-CLI-READONLY-DIAG-20260729T101639Z","uid":0},{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-PVE-IPC-NAMESPACE-DIAG-20260729T104500Z","uid":0},{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-READONLY-INVENTORY-V1-20260729T145500Z","uid":0},{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-AUTO-DISCOVERY-FIX2-20260729T104000Z","uid":0},{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-AUTO-DISCOVERY-FIX4-20260729T105500Z","uid":0},{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-CLUSTER-DISCOVERY-PLAN-FIX1-20260729T101000Z","uid":0},{"bytes":4096,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0755","path":"/opt/stacks/minio/data/homelab-evidence/portal/HBARHUB-READONLY-INVENTORY-V2-20260729T151000Z","uid":0}],"gitea_hbarhub_search":{"body_sha256":"45b93ccefd22e5ec4796dc8d5173e3060566fec357528dfe20b3bd814d9bc430","count":0,"full_names":[],"http":200},"hard_checks":{"all_guests_readable":true,"all_vms_running":true,"core_docker":true,"core_port_8040_free":true,"edge_npmplus_healthy":true,"monitoring_ready":true,"no_existing_public_proxy":true,"no_mutation":true},"implementation_stages":[{"name_ru":"Репозиторий и исходный каркас","order":1,"scope":"Gitea only"},{"name_ru":"Локальный стек на core-apps","order":2,"scope":"web, worker, scheduler, PostgreSQL, Redis; port 8040; no public proxy"},{"name_ru":"Рыночные данные и Hedera","order":3,"scope":"HBAR, POL, AVAX, LINK; prices, market cap, supply, network status"},{"name_ru":"Русские новости","order":4,"scope":"source allowlist, deduplication, summaries, provenance"},{"name_ru":"Радар токенизации","order":5,"scope":"18 tracked assets, evidence and status state machine"},{"name_ru":"Сигналы","order":6,"scope":"paper and notification-only; no exchange keys"},{"name_ru":"Публичный домен","order":7,"scope":"NPMplus and TLS after local health passes"},{"name_ru":"Мониторинг и резервирование","order":8,"scope":"Uptime Kuma, Gotify, backup and restore check"}],"monitoring_reference":{"containers":{"alertmanager":{"health":null,"image":"prom/alertmanager:v0.33.0","mount_destinations":["/alertmanager","/etc/alertmanager/alertmanager.yml"],"status":"running"},"gotify":{"health":"healthy","image":"gotify/server:latest","mount_destinations":["/app/data"],"status":"running"},"ntfy":{"health":null,"image":"binwiederhier/ntfy:latest","mount_destinations":["/var/cache/ntfy","/var/lib/ntfy"],"status":"running"},"prometheus":{"health":null,"image":"prom/prometheus:latest","mount_destinations":["/etc/prometheus/prometheus.yml","/etc/prometheus/rules","/prometheus"],"status":"running"},"uptime-kuma":{"health":"healthy","image":"louislam/uptime-kuma:2-slim","mount_destinations":["/app/data"],"status":"running"}},"crypto_portfolio_health_refs":[],"docker_present":true,"hbarhub_health_refs":[],"hostname_matches":true,"role":"monitoring","schema":1},"mutation_outcome":"NO_MUTATION","next_stage":"GITEA_AND_PATH_RECONCILIATION_PLAN","parent_evidence":{"PLAN_SHA256":"a6e7fa6dd20d57504d31748aeec0bd28c567c1c5fb5ce697dbbae36606cba483","capsule_sha256":"9c179070977758d8e4d29f6da15bd6e2917689c9b1ff42c71b3b36825b504f49","command_id":"HBARHUB-READONLY-INVENTORY-V2-20260729T151000Z","deployment_gate":"READY_FOR_DEPLOYMENT_PLAN","runner_json_sha256":"65ddc2b24974f12c63ba92f01f04596fb5632b34da69e2c074be8f1cff15940f","status":"OK"},"private_addresses_included":false,"reference_stack":{"health":null,"image":"crypto-portfolio-web","mount_destinations":["/data","/run/secrets/email_config","/run/secrets/password_hash","/run/secrets/session_secret"],"network_names":["crypto-portfolio_default"],"published_container_ports":["8000/tcp"],"status":"running"},"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"status":"PLAN_COMPLETE"} +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +{"changes_made":false,"checks":{"core_hostname":true,"gitea_search_available":true,"no_gitea_hbarhub_repo":true,"no_mutation":true,"no_real_hbarhub_stack":true,"reference_compose_exists":true,"reference_stack_exists":true,"target_owner_exists":true},"command_id":"HBARHUB-GITEA-PATH-RECONCILIATION-PLAN-V1-20260729T154500Z","gate":"READY_FOR_GITEA_SCAFFOLD_APPLY","gitea":{"local_repository_candidates":[{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/gitea/data/git/repositories/homelab-admin/hbarhub.git"},{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/gitea/data/gitea-repositories/homelab-admin/hbarhub.git"}],"matching_repositories":[],"owner_org_http":404,"owner_user_http":200,"search_body_sha256":"45b93ccefd22e5ec4796dc8d5173e3060566fec357528dfe20b3bd814d9bc430","search_http":200},"gitea_helpers":[],"mutation_outcome":"NO_MUTATION","parent_evidence":{"PLAN_SHA256":"1d46135831d977cba89adfc1fb03ee969d11030f9ed2b277464b2bbdff7b27df","capsule_sha256":"8ae8cadf8a2b0574e6d8089c8d7cfee6b387ea9e35cf52ab010daec76281ec5a","command_id":"HBARHUB-DEPLOYMENT-PLAN-V1-20260729T152500Z"},"private_addresses_included":false,"real_stack":{"exists":false,"is_dir":false,"is_file":false,"is_symlink":false,"path":"/opt/stacks/hbarhub"},"reference_stack":{"compose":{"bytes":1233,"exists":true,"gid":0,"is_dir":false,"is_file":true,"is_symlink":false,"mode":"0644","path":"/opt/stacks/crypto-portfolio/compose.yaml","sha256":"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8","uid":0},"compose_services":["web","worker"],"docker_present":true,"root":{"bytes":4096,"exists":true,"gid":0,"is_dir":true,"is_file":false,"is_symlink":false,"mode":"0750","path":"/opt/stacks/crypto-portfolio","uid":0}},"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secrets_included":false,"service_evidence":{"capsule_metadata_entries":10,"portal_evidence_entries":8},"status":"PLAN_COMPLETE","target_repository":"homelab-admin/hbarhub","target_stack_path":"/opt/stacks/hbarhub"} OUTPUT_END CHAT_OUTPUT_END