CHAT_OUTPUT_BEGIN
COMMAND_ID=GRAM1-SITE-CHARTS-V32-FASTAPI-AUTH-RUNTIME-DIAG-20260801T114100Z
STATUS=OK
RC=0
HOST=pve01
MODE=verify
COMPONENT=gram1-charts-v32-fastapi
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
COMMAND_SHA256=1bdbdb8ef04fa416fbd634c95111e4d3197247bad0a987f8a8847b5340f036af
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=f70158fea58266be954d5f17da30aced8bdc80f1be8210c9b8bc7c3ef79acde4
SANITIZED_OUTPUT_SHA256=4992e98c130fd6e7a93ad99acc3e9e60682389ed4bb05f60c15bc9e48fc02634
OUTPUT_BEGIN
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GRAM1-SITE-CHARTS-V32-FASTAPI-AUTH-RUNTIME-DIAG-20260801T114100Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"OK","version":1}
{"changes_made":false,"command_id":"GRAM1-SITE-CHARTS-V32-FASTAPI-AUTH-RUNTIME-DIAG-20260801T114100Z","control_plane_error":null,"gitea_changed":false,"mutation_outcome":"NO_MUTATION","pinned_host_key_aliases":["[PRIVATE_IP]"],"production_site_changed":false,"rc":0,"remote_result":{"changes_made":false,"command_id":"GRAM1-SITE-CHARTS-V32-FASTAPI-AUTH-RUNTIME-DIAG-20260801T114100Z","compose_services":["web","worker"],"control_plane_error":null,"diagnosis":["FASTAPI_APPLICATION_CONFIRMED","RUNNING_AUTHENTICATED_PAGE_CONTAINS_EXACT_V29_SCRIPT","ALL_LOCAL_CHART_APIS_VALID","PUBLIC_AUTHENTICATED_PAGE_CONTAINS_EXACT_V29_SCRIPT:gram1.ru","STATIC_AND_HTTP_PATH_VALID_BUT_NO_JS_ENGINE_AVAILABLE"],"duration_seconds":5.938,"exact_state":{"compose_sha256":"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8","current_hashes":{"app.py":"ec226952cdb7fb58edbfc0173af47f4d901f3206e15169df12294983731fbc20","templates/index.html":"e9e723c9b916383ce10dffe8f8bbdb4049b78d89c5b139e2de5ed82194a27be4","worker.py":"4a7b16ece826fe2d938f392db6b0b5ca028dcb6ff02fdff4ab431f114edf0e5c"}},"fastapi_runtime":{"apis":{"AVAX":{"bytes":5300,"candle_count":72,"first_keys":["close","high","low","open","time"],"first_len":null,"first_type":"dict","headers":{"content-type":"application/json","server":"uvicorn"},"json":true,"sha256":"8b3d113dcfc9741180e5b5890fa3c9bd5b1c4f20ebc234b47c3dac3866a46415","status":200,"status_field":"OK","top_keys":["cache_age_seconds","candles","interval","pair","source","stale","status","symbol"]},"HBAR":{"bytes":6619,"candle_count":84,"first_keys":["close","high","low","open","time"],"first_len":null,"first_type":"dict","headers":{"content-type":"application/json","server":"uvicorn"},"json":true,"sha256":"a5f0d437bd96f4721092a0166be2620246d853886675c64e14c4bb93618580f9","status":200,"status_field":"OK","top_keys":["cache_age_seconds","candles","interval","pair","source","stale","status","symbol"]},"LINK":{"bytes":6821,"candle_count":92,"first_keys":["close","high","low","open","time"],"first_len":null,"first_type":"dict","headers":{"content-type":"application/json","server":"uvicorn"},"json":true,"sha256":"df82daf3039a6c8f70815cdbf053bc78b22e7fc74480e116038ecc550c8d73cb","status":200,"status_field":"OK","top_keys":["cache_age_seconds","candles","interval","pair","source","stale","status","symbol"]},"POL":{"bytes":1951,"candle_count":24,"first_keys":["close","high","low","open","time"],"first_len":null,"first_type":"dict","headers":{"content-type":"application/json","server":"uvicorn"},"json":true,"sha256":"56766c005e65a6fb0cec2e596f1eece30c363fc621047255ecc58d6009b5c75c","status":200,"status_field":"OK","top_keys":["cache_age_seconds","candles","interval","pair","source","stale","status","symbol"]}},"authenticated_local":{"candidate":0,"final_url":"http://<PRIVATE_ADDRESS>:8000/","headers":{"content-type":"text/html; charset=utf-8","server":"uvicorn"},"keys":["auth"],"page":{"bytes":36137,"chart_id_count":1,"no_data_count":2,"script_count":6,"sha256":"e9e723c9b916383ce10dffe8f8bbdb4049b78d89c5b139e2de5ed82194a27be4","tvCharts_count":4,"v29_script_count":1,"v29_script_expected":true,"v29_script_sha256":"bab92747e24c2fd897c276239780a3927a49bdfa08685eea0d57a9d72462f21b","v29_style_count":1},"status":200},"candidate_count":4,"framework":"fastapi.applications.FastAPI","local_attempts":[{"candidate":0,"final_url":"http://<PRIVATE_ADDRESS>:8000/","headers":{"content-type":"text/html; charset=utf-8","server":"uvicorn"},"keys":["auth"],"page":{"bytes":36137,"chart_id_count":1,"no_data_count":2,"script_count":6,"sha256":"e9e723c9b916383ce10dffe8f8bbdb4049b78d89c5b139e2de5ed82194a27be4","tvCharts_count":4,"v29_script_count":1,"v29_script_expected":true,"v29_script_sha256":"bab92747e24c2fd897c276239780a3927a49bdfa08685eea0d57a9d72462f21b","v29_style_count":1},"status":200}],"local_csp":{"inline_without_nonce_blocked":false,"present":false,"script_sources":[]},"middleware":[{"arg_count":0,"class":"SessionMiddleware","kwargs_keys":["https_only","max_age","same_site","secret_key","session_cookie"]}],"public":[{"csp":{"inline_without_nonce_blocked":false,"present":false,"script_sources":[]},"final_url":"https://gram1.ru/","headers":{"content-type":"text/html; charset=utf-8"},"host":"gram1.ru","page":{"bytes":36137,"chart_id_count":1,"no_data_count":2,"script_count":6,"sha256":"e9e723c9b916383ce10dffe8f8bbdb4049b78d89c5b139e2de5ed82194a27be4","tvCharts_count":4,"v29_script_count":1,"v29_script_expected":true,"v29_script_sha256":"bab92747e24c2fd897c276239780a3927a49bdfa08685eea0d57a9d72462f21b","v29_style_count":1},"status":200}],"routes":[{"methods":["GET","HEAD"],"name":"openapi","path":"/openapi.json"},{"methods":["GET"],"name":"login_page","path":"/login"},{"methods":["POST"],"name":"login","path":"/login"},{"methods":["POST"],"name":"logout","path":"/logout"},{"methods":["GET"],"name":"home","path":"/"},{"methods":["GET"],"name":"health","path":"/health"},{"methods":["GET"],"name":"coin_icon","path":"/coin-icon/{coin_id}"},{"methods":["GET"],"name":"lightweight_charts_js","path":"/vendor/lightweight-charts.js"},{"methods":["GET"],"name":"klines","path":"/api/klines/{symbol}"},{"methods":["GET"],"name":"chart_health","path":"/api/chart-health"},{"methods":["GET"],"name":"state","path":"/api/state"},{"methods":["POST"],"name":"save_holding","path":"/api/holding"},{"methods":["POST"],"name":"add_alert","path":"/api/alert"},{"methods":["DELETE"],"name":"delete_alert","path":"/api/alert/{alert_id}"}],"script_syntax":[],"source_facts":{"framework_calls":[{"line":49,"name":"FastAPI"}],"session_assignments":[{"key":"auth","value":true}],"session_keys":["auth"],"sha256":"ec226952cdb7fb58edbfc0173af47f4d901f3206e15169df12294983731fbc20"},"vendor":{"CandlestickSeries":true,"LightweightCharts":true,"addCandlestickSeries":false,"bytes":196203,"createChart":true,"headers":{"cache-control":"public, max-age=31536000, immutable","content-type":"application/javascript","server":"uvicorn"},"html_like":false,"sha256":"c0992580867c4912cc9385b3c2728315bcc1a76c7f1087dca908430fccdf31d7","status":200}},"gitea_changed":false,"mutation_outcome":"NO_MUTATION","previous_capsule_sha256":"78a22642978638076248085e28b1a7d354a3ed3d32b4c01eb2b2eecef870719e","previous_command_id":"GRAM1-SITE-CHARTS-V31-RUNTIME-PATH-DOM-DIAG-20260801T113000Z","production_site_changed":false,"public_hosts":["gram1.ru"],"rc":0,"rollback_restored":null,"rollback_started":false,"schema":1,"status":"OK"},"rollback_restored":null,"rollback_started":false,"schema":1,"selected_method":"ALIAS_PINNED_AS_DEBIAN","ssh_method_probes":[{"duration_seconds":0.117,"identity_count":null,"identity_sudo_read_ok":true,"name":"ALIAS_PINNED_AS_DEBIAN","rc":0,"stderr":""},{"duration_seconds":0.126,"identity_count":2,"identity_sudo_read_ok":true,"name":"DIRECT_PINNED_AS_DEBIAN_NO_PROXY","rc":0,"stderr":""}],"status":"OK"}

OUTPUT_END
CHAT_OUTPUT_END
