CHAT_OUTPUT_BEGIN
COMMAND_ID=SUPPORT-260930-GRAM1-BEGET-FINAL-PREFLIGHT-9483R1
STATUS=OK
RC=0
HOST=pve01
MODE=change
COMPONENT=gram1-beget-final-preflight
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=5074144325591e5d2b19202997a2e066ac2f4ac2026b61ecfd98f01a12f053c9
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=true
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=OK
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=true
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=MUTATED
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=8f8f51336a472366bc275775a86f413d109271870cca38166dde2244ae925900
SANITIZED_OUTPUT_SHA256=8f8f51336a472366bc275775a86f413d109271870cca38166dde2244ae925900
OUTPUT_BEGIN
GRAM1_BEGET_FINAL_PREFLIGHT=V1
MODE=diagnostic-change
PRODUCT_MUTATION=false
LOCAL_CREDENTIAL_CACHE_OK=true
TEMP_SCRIPT_UPLOADED=true
TEMP_CRON_ADDED=true
TEMP_RESULT_SEEN=true
PRE_CRON_TOTAL=0
PRE_GRAM1_CRON_MATCH_COUNT=0
POST_CRON_TOTAL=0
POST_GRAM1_CRON_MATCH_COUNT=0
TEMP_SCRIPT_REMOVED=true
TEMP_RESULT_REMOVED=true
TEMP_CRON_STATE_RESTORED=true
TEMP_CLEANUP_COMPLETE=true
GRAM1_BEGET_FINAL_PREFLIGHT=V1
MODE=read-only-product
BASE_PRESENT=true
APP_ROOT_PRESENT=true
APP_ROOT_REL=gram1.ru/gram1_app_9154/app
TARGET_APP_PY_PRESENT=true
TARGET_APP_PY_SIZE=33191
TARGET_APP_PY_AGE_SECONDS=470627
TARGET_APP_PY_SHA256=5f2fd1244ddc71484013f79d7789fa5884a5801641a66d48b833c616b55aed21
TARGET_WORKER_PY_PRESENT=true
TARGET_WORKER_PY_SIZE=10300
TARGET_WORKER_PY_AGE_SECONDS=5146441
TARGET_WORKER_PY_SHA256=4a7b16ece826fe2d938f392db6b0b5ca028dcb6ff02fdff4ab431f114edf0e5c
TARGET_PORTFOLIO_DB_PRESENT=true
TARGET_PORTFOLIO_DB_SIZE=8527872
TARGET_PORTFOLIO_DB_AGE_SECONDS=470630
TARGET_PORTFOLIO_DB_SHA256=56acaa90eedb79a82955382f6076e14ff7dc9bcf354e1a72b870cdbd8e30be7d
TARGET_MARKET_JSON_PRESENT=true
TARGET_MARKET_JSON_SIZE=14111
TARGET_MARKET_JSON_AGE_SECONDS=470671
TARGET_MARKET_JSON_SHA256=350643bed9a5b8f0fc2a28a61f2e4fe7114fb1a9208c6d6a2fa72c3296bb461e
TARGET_PASSENGER_WSGI_PRESENT=true
TARGET_PASSENGER_WSGI_SIZE=449
TARGET_PASSENGER_WSGI_AGE_SECONDS=470618
TARGET_PASSENGER_WSGI_SHA256=d2a4d708a14292e9be827ce95d3a1324b73879ef77c0cd9fc308e8efa4cd6d9b
TARGET_SQLITE_INTEGRITY=PASS
TARGET_SQLITE_TABLE_COUNT=4
TARGET_MARKET_JSON_PARSE=PASS
TARGET_MARKET_UPDATED_AGE_SECONDS=470673
TARGET_MARKET_COIN_COUNT=4
TARGET_MARKET_SCHEMA_OK=true
TARGET_MARKET_SPARKLINE_MIN_LEN=168
TARGET_WORKER_AST_PARSE=PASS
TARGET_WORKER_FUNCTIONS=atomic_json,config,connect,cycle,evaluate,fetch_market,main,portfolio_text,reference_price,send_email
TARGET_FETCH_MARKET_CALLS=Client,RuntimeError,float,get,int,join,json,len,load,open,raise_for_status,str,time
TARGET_CYCLE_CALLS=atomic_json,commit,connect,evaluate,execute,fetch_market,fetchone,format,int,items,len,mkdir,print
TARGET_EVALUATE_CALLS=commit,execute,fetchall,float,format,get,int,portfolio_text,print,reference_price,send_email,split,strftime,time
TARGET_SEND_EMAIL_CALLS=EmailMessage,SMTP,config,create_default_context,get,int,login,lower,send_message,set_content,starttls,type
TARGET_MAIN_CALLS=atomic_json,cycle,format,int,max,print,sleep,time,type
TARGET_WORKER_URL_HOSTS=api.coingecko.com
TARGET_WORKER_ENV_NAME_COUNT=2
TARGET_WORKER_ENV_NAMES=CRYPTO_DATA_DIR,CRYPTO_EMAIL_CONFIG_FILE
TARGET_WORKER_HAS_BINANCE_VISION=false
TARGET_WORKER_HAS_COINGECKO=true
TARGET_WRAPPER_CANDIDATE_COUNT=6
TARGET_WRAPPER_1_REL=gram1.ru/gram1_app_9154/app/data/worker-status.json
TARGET_WRAPPER_1_SHA256=e25238ae6f80cfc4b0b463effe5c724e0248c7832ccccbf3cdaea28bbc734ecb
TARGET_WRAPPER_1_MODE=600
TARGET_WRAPPER_1_HAS_WORKER_PY=false
TARGET_WRAPPER_1_HAS_ONESHOT_HINT=false
TARGET_WRAPPER_1_HAS_FLOCK=false
TARGET_WRAPPER_1_HAS_PYTHON=false
TARGET_WRAPPER_1_HAS_DATA_ENV=false
TARGET_WRAPPER_2_REL=gram1.ru/gram1_app_9154/app/__pycache__/worker.cpython-310.pyc
TARGET_WRAPPER_2_SHA256=07f9ed981cf328e78ecefdfcb545d7d46e4d3873e96cdafee873c2a7725c0097
TARGET_WRAPPER_2_MODE=600
TARGET_WRAPPER_2_HAS_WORKER_PY=true
TARGET_WRAPPER_2_HAS_ONESHOT_HINT=true
TARGET_WRAPPER_2_HAS_FLOCK=false
TARGET_WRAPPER_2_HAS_PYTHON=false
TARGET_WRAPPER_2_HAS_DATA_ENV=true
TARGET_WRAPPER_3_REL=gram1.ru/gram1_app_9154/app/worker_once.py
TARGET_WRAPPER_3_SHA256=639e48538972848ee2153df72f46974a35ae147e9f0fcf95f0b17ac85976d73d
TARGET_WRAPPER_3_MODE=600
TARGET_WRAPPER_3_HAS_WORKER_PY=false
TARGET_WRAPPER_3_HAS_ONESHOT_HINT=true
TARGET_WRAPPER_3_HAS_FLOCK=false
TARGET_WRAPPER_3_HAS_PYTHON=false
TARGET_WRAPPER_3_HAS_DATA_ENV=true
TARGET_WRAPPER_4_REL=gram1.ru/gram1_app_9154/.w2-9483.sh
TARGET_WRAPPER_4_SHA256=7844833fda6397bd1fa904e41f89c7723018e7a72903633fa5f982eb724229c5
TARGET_WRAPPER_4_MODE=600
TARGET_WRAPPER_4_HAS_WORKER_PY=true
TARGET_WRAPPER_4_HAS_ONESHOT_HINT=true
TARGET_WRAPPER_4_HAS_FLOCK=false
TARGET_WRAPPER_4_HAS_PYTHON=true
TARGET_WRAPPER_4_HAS_DATA_ENV=true
TARGET_WRAPPER_5_REL=gram1.ru/gram1_app_9154/worker_cron.sh
TARGET_WRAPPER_5_SHA256=bf13a4c5568f7fcbeeb0943f047a45a7b2ced19f37cbd8cdbdd15a189c32ce52
TARGET_WRAPPER_5_MODE=700
TARGET_WRAPPER_5_HAS_WORKER_PY=false
TARGET_WRAPPER_5_HAS_ONESHOT_HINT=false
TARGET_WRAPPER_5_HAS_FLOCK=true
TARGET_WRAPPER_5_HAS_PYTHON=true
TARGET_WRAPPER_5_HAS_DATA_ENV=false
TARGET_GRAM1_CRONTAB_MATCH_COUNT=0
TARGET_GRAM1_CRONTAB_MATCH_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
TARGET_WORKER_PROCESS_COUNT=0
TARGET_SELF_HEALTH_RC=0
TARGET_SELF_HEALTH_META=200|0.320967
TARGET_SELF_HEALTH_STATUS=OK
TARGET_SELF_HEALTH_TYPE=crypto-portfolio
TARGET_SELF_MARKET_AGE_SECONDS=470672
DISCOVERY_FINISHED_UTC=2026-09-30T01:58:01Z
DISCOVERY_RC=0
TARGET_DB_MATCHES_SOURCE_9482=false
TARGET_MARKET_MATCHES_SOURCE_9482=false
TARGET_WORKER_MATCHES_OLD_SOURCE=true
DECISION=BEGET_TARGET_STATE_CAPTURED_PRESERVE_TARGET_DB_PATCH_WORKER_REFRESH_MARKET
NEXT_GATE=PATCH_TARGET_WORKER_PRESERVE_TARGET_DB_REFRESH_MARKET_ACTIVATE_CRON_WITH_ROLLBACK
TASK_RESULT=PASS_GRAM1_BEGET_FINAL_PREFLIGHT
CHANGES_MADE=true
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=TEMP_BEGET_DIAGNOSTIC_ARTIFACTS_CREATED_AND_REMOVED
HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260930-GRAM1-BEGET-FINAL-PREFLIGHT-9483R1","status":"OK","changes_made":true,"rollback_started":false,"rollback_restored":null}

OUTPUT_END
CHAT_OUTPUT_END
