From e87110c0fe15b97c948644906fcd26a84737f8c5 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Thu, 30 Jul 2026 20:00:27 +0000 Subject: [PATCH] runtime: publish GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z --- ...ILITY-ARTIFACT-PROBE-20260730T195901Z.json | 38 +++++++++++++++++++ ...BILITY-ARTIFACT-PROBE-20260730T195901Z.txt | 33 ++++++++++++++++ runtime/latest.json | 34 ++++++++--------- runtime/latest.txt | 31 ++++++++------- 4 files changed, 103 insertions(+), 33 deletions(-) create mode 100644 runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.json create mode 100644 runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.txt diff --git a/runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.json b/runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.json new file mode 100644 index 0000000..3fcc935 --- /dev/null +++ b/runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "verify", + "component": "gitea-machine-identity", + "started_at_utc": "2026-07-30T20:00:27Z", + "finished_at_utc": "2026-07-30T20:00:27Z", + "reference_register_checked": true, + "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", + "error_register_checked": true, + "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", + "command_sha256": "2765124be407b6bc49a1c07e10ea5c7cd6b6e802d65ae286e1c3d5316719196d", + "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": "fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a", + "sanitized_output_sha256": "fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "{\"capability_artifact\":{\"bytes\":64,\"ignored_key_count\":0,\"line_count\":2,\"non_key_line_count\":2,\"record_count\":0,\"records\":[],\"sha256\":\"9f40f58de72ebf08edb065b1e9ba9c4eaf4f527cd7da1f878cae64339a829e7d\",\"trailing_newline\":true},\"changes_made\":false,\"command_id\":\"GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z\",\"dry_run_json\":{\"exists\":false},\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"PATCH_EXACT_REMOTE_FAILURE_AND_RUN_MIGRATION\",\"output_truncated_in_json\":false,\"private_addresses_included\":false,\"rc\":0,\"remote_source_context\":[\"0003: \",\"0004: fail(){\",\"0005: printf 'ROOT_CAUSE=%s\",\"0006: ROOT_CAUSE_COUNT=1\",\"0007: DETAIL=%s\",\"0008: ' \\\"$1\\\" \\\"$2\\\"\",\"0009: exit 1\",\"....\",\"0017: [[ \\\"$task_id\\\" == \\\"gitea-machine-identity-controlled-migration-v4\\\" ]] || fail TASK_ID_MISMATCH \\\"$task_id\\\"\",\"0018: case \\\"$mode\\\" in\",\"0019: capability|apply|verify-state|rollback|cleanup-owned|seal) ;;\",\"0020: *) fail INVALID_MODE \\\"$mode\\\" ;;\",\"0021: esac\",\"....\",\"0032: container_id=\",\"0033: \",\"0034: docker_capture(){\",\"0035: local operation=\\\"$1\\\"\",\"0036: shift\",\"0037: local captured rc\",\"0038: set +e\",\"0039: captured=\\\"$(timeout --signal=TERM --kill-after=1s 3s docker \\\"$@\\\" 2>&1)\\\"\",\"0040: rc=$?\",\"0041: set -e\",\"....\",\"0049: \",\"0050: find_container(){\",\"0051: container_id=\\\"$(docker_capture container-discovery ps --filter 'ancestor=docker.gitea.com/gitea:1.26.2' --format '{{.ID}}')\\\"\",\"0052: [[ \\\"$(printf '%s\",\"0053: ' \\\"$container_id\\\" | awk 'NF{n++} END{print n+0}')\\\" -eq 1 ]] ||\",\"0054: fail GITEA_CONTAINER_CARDINALITY vm170\",\"0055: image_value=\\\"$(docker_capture container-inspect inspect \\\"$container_id\\\" --format '{{.Config.Image}}')\\\"\",\"0056: [[ \\\"$image_value\\\" == 'docker.gitea.com/gitea:1.26.2' ]] ||\",\"0057: fail GITEA_IMAGE_MISMATCH \\\"$image_value\\\"\",\"0058: }\",\"0059: \",\"0060: gitea_capture(){\",\"0061: local seconds_value=\\\"$1\\\"\",\"0062: local operation=\\\"$2\\\"\",\"....\",\"0064: local captured rc\",\"0065: set +e\",\"0066: captured=\\\"$(timeout --signal=TERM --kill-after=2s \\\"$seconds_value\\\" docker exec --user git \\\"$container_id\\\" gitea \\\"$@\\\" 2>&1)\\\"\",\"0067: rc=$?\",\"0068: set -e\",\"....\",\"0077: gitea_quiet_best_effort(){\",\"0078: set +e\",\"0079: timeout --signal=TERM --kill-after=2s 18s docker exec --user git \\\"$container_id\\\" gitea \\\"$@\\\" >/dev/null 2>&1\",\"0080: local rc=$?\",\"0081: set -e\",\"....\",\"0128: ' <<<\\\"$plan_json\\\" >/dev/null\",\"0129: \",\"0130: if [[ \\\"$mode\\\" == 'capability' ]]; then\",\"0131: [[ ! -e \\\"$state_dir\\\" ]] || fail TASK_STATE_ALREADY_PRESENT vm170\",\"0132: create_help=\\\"$(gitea_capture 15s user-create-help admin user create --help)\\\"\",\"0133: for required_flag in --user-type --access-token --access-token-name --access-token-scopes; do\",\"0134: grep -Fq -- \\\"$required_flag\\\" <<<\\\"$create_help\\\" ||\",\"....\",\"0171: if [[ \\\"$mode\\\" == 'rollback' ]]; then\",\"0172: [[ -f \\\"$state_dir/created-by-task\\\" ]] || fail ROLLBACK_TASK_MARKER_MISSING vm170\",\"0173: gitea_capture 18s machine-user-delete admin user delete --username \\\"$machine_user\\\" >/dev/null\",\"0174: rm -rf \\\"$state_dir\\\"\",\"0175: printf 'VM170_MACHINE_IDENTITY_ROLLBACK_STATUS=OK\",\"....\",\"0187: [[ -f \\\"$state_dir/admin-flag-absent\\\" ]] || fail ADMIN_FLAG_MARKER_MISSING vm170\",\"0188: [[ -f \\\"$state_dir/scope-write-repository\\\" ]] || fail SCOPE_MARKER_MISSING vm170\",\"0189: admin_users=\\\"$(gitea_capture 15s admin-user-list admin user list --admin)\\\"\",\"0190: awk -v target=\\\"$machine_user\\\" 'NR>1 && $2==target {found=1} END{exit found?0:1}' <<<\\\"$admin_users\\\" &&\",\"0191: fail MACHINE_USER_BECAME_ADMIN vm170\",\"....\",\"0215: trap cleanup_failure EXIT\",\"0216: \",\"0217: create_output=\\\"$(gitea_capture 18s machine-user-create admin user create --username \\\"$machine_user\\\" --email \\\"$machine_email\\\" --user-type bot --access-token --access-token-name \\\"$material_name\\\" --access-token-scopes 'write:repository')\\\"\",\"0218: grep -Fq \\\"New user '$machine_user' has been successfully created!\\\" <<<\\\"$create_output\\\" ||\",\"0219: fail MACHINE_USER_CREATE_CONFIRMATION_MISSING vm170\"],\"rollback_restored\":null,\"rollback_started\":false,\"run_dir\":{\"name\":\"20260730T195350Z-2555344-dry-run\",\"path_sha256\":\"0f265d625302907f6fb9d51d5c165b390bafddae1c22a4e58aae83901ec831e7\"},\"schema\":1,\"secrets_included\":false,\"stage\":\"FAILED_CAPABILITY_ARTIFACT_CAPTURED\",\"status\":\"OK\"}\n" +} diff --git a/runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.txt b/runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.txt new file mode 100644 index 0000000..583b441 --- /dev/null +++ b/runtime/history/GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z.txt @@ -0,0 +1,33 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z +STATUS=OK +RC=0 +HOST=pve01 +MODE=verify +COMPONENT=gitea-machine-identity +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 +COMMAND_SHA256=2765124be407b6bc49a1c07e10ea5c7cd6b6e802d65ae286e1c3d5316719196d +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=fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a +SANITIZED_OUTPUT_SHA256=fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a +OUTPUT_BEGIN +{"capability_artifact":{"bytes":64,"ignored_key_count":0,"line_count":2,"non_key_line_count":2,"record_count":0,"records":[],"sha256":"9f40f58de72ebf08edb065b1e9ba9c4eaf4f527cd7da1f878cae64339a829e7d","trailing_newline":true},"changes_made":false,"command_id":"GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z","dry_run_json":{"exists":false},"mutation_outcome":"NO_MUTATION","next_stage":"PATCH_EXACT_REMOTE_FAILURE_AND_RUN_MIGRATION","output_truncated_in_json":false,"private_addresses_included":false,"rc":0,"remote_source_context":["0003: ","0004: fail(){","0005: printf 'ROOT_CAUSE=%s","0006: ROOT_CAUSE_COUNT=1","0007: DETAIL=%s","0008: ' \"$1\" \"$2\"","0009: exit 1","....","0017: [[ \"$task_id\" == \"gitea-machine-identity-controlled-migration-v4\" ]] || fail TASK_ID_MISMATCH \"$task_id\"","0018: case \"$mode\" in","0019: capability|apply|verify-state|rollback|cleanup-owned|seal) ;;","0020: *) fail INVALID_MODE \"$mode\" ;;","0021: esac","....","0032: container_id=","0033: ","0034: docker_capture(){","0035: local operation=\"$1\"","0036: shift","0037: local captured rc","0038: set +e","0039: captured=\"$(timeout --signal=TERM --kill-after=1s 3s docker \"$@\" 2>&1)\"","0040: rc=$?","0041: set -e","....","0049: ","0050: find_container(){","0051: container_id=\"$(docker_capture container-discovery ps --filter 'ancestor=docker.gitea.com/gitea:1.26.2' --format '{{.ID}}')\"","0052: [[ \"$(printf '%s","0053: ' \"$container_id\" | awk 'NF{n++} END{print n+0}')\" -eq 1 ]] ||","0054: fail GITEA_CONTAINER_CARDINALITY vm170","0055: image_value=\"$(docker_capture container-inspect inspect \"$container_id\" --format '{{.Config.Image}}')\"","0056: [[ \"$image_value\" == 'docker.gitea.com/gitea:1.26.2' ]] ||","0057: fail GITEA_IMAGE_MISMATCH \"$image_value\"","0058: }","0059: ","0060: gitea_capture(){","0061: local seconds_value=\"$1\"","0062: local operation=\"$2\"","....","0064: local captured rc","0065: set +e","0066: captured=\"$(timeout --signal=TERM --kill-after=2s \"$seconds_value\" docker exec --user git \"$container_id\" gitea \"$@\" 2>&1)\"","0067: rc=$?","0068: set -e","....","0077: gitea_quiet_best_effort(){","0078: set +e","0079: timeout --signal=TERM --kill-after=2s 18s docker exec --user git \"$container_id\" gitea \"$@\" >/dev/null 2>&1","0080: local rc=$?","0081: set -e","....","0128: ' <<<\"$plan_json\" >/dev/null","0129: ","0130: if [[ \"$mode\" == 'capability' ]]; then","0131: [[ ! -e \"$state_dir\" ]] || fail TASK_STATE_ALREADY_PRESENT vm170","0132: create_help=\"$(gitea_capture 15s user-create-help admin user create --help)\"","0133: for required_flag in --user-type --access-token --access-token-name --access-token-scopes; do","0134: grep -Fq -- \"$required_flag\" <<<\"$create_help\" ||","....","0171: if [[ \"$mode\" == 'rollback' ]]; then","0172: [[ -f \"$state_dir/created-by-task\" ]] || fail ROLLBACK_TASK_MARKER_MISSING vm170","0173: gitea_capture 18s machine-user-delete admin user delete --username \"$machine_user\" >/dev/null","0174: rm -rf \"$state_dir\"","0175: printf 'VM170_MACHINE_IDENTITY_ROLLBACK_STATUS=OK","....","0187: [[ -f \"$state_dir/admin-flag-absent\" ]] || fail ADMIN_FLAG_MARKER_MISSING vm170","0188: [[ -f \"$state_dir/scope-write-repository\" ]] || fail SCOPE_MARKER_MISSING vm170","0189: admin_users=\"$(gitea_capture 15s admin-user-list admin user list --admin)\"","0190: awk -v target=\"$machine_user\" 'NR>1 && $2==target {found=1} END{exit found?0:1}' <<<\"$admin_users\" &&","0191: fail MACHINE_USER_BECAME_ADMIN vm170","....","0215: trap cleanup_failure EXIT","0216: ","0217: create_output=\"$(gitea_capture 18s machine-user-create admin user create --username \"$machine_user\" --email \"$machine_email\" --user-type bot --access-token --access-token-name \"$material_name\" --access-token-scopes 'write:repository')\"","0218: grep -Fq \"New user '$machine_user' has been successfully created!\" <<<\"$create_output\" ||","0219: fail MACHINE_USER_CREATE_CONFIRMATION_MISSING vm170"],"rollback_restored":null,"rollback_started":false,"run_dir":{"name":"20260730T195350Z-2555344-dry-run","path_sha256":"0f265d625302907f6fb9d51d5c165b390bafddae1c22a4e58aae83901ec831e7"},"schema":1,"secrets_included":false,"stage":"FAILED_CAPABILITY_ARTIFACT_CAPTURED","status":"OK"} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index dc9b17d..3fcc935 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1,38 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "GITEA-V4-MACHINE-IDENTITY-MIGRATION-RUNTIME-TIMEOUTS-20260730T195304Z", - "status": "FAIL", - "rc": 1, + "command_id": "GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z", + "status": "OK", + "rc": 0, "host": "pve01", - "mode": "change", + "mode": "verify", "component": "gitea-machine-identity", - "started_at_utc": "2026-07-30T19:53:46Z", - "finished_at_utc": "2026-07-30T19:54:00Z", + "started_at_utc": "2026-07-30T20:00:27Z", + "finished_at_utc": "2026-07-30T20:00:27Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "838d91a043e24caa0c6ef45db3107a3432aacade7ae6f6ea29c80d33e3139100", + "command_sha256": "2765124be407b6bc49a1c07e10ea5c7cd6b6e802d65ae286e1c3d5316719196d", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, - "change_declared": true, + "change_declared": false, "result_contract_valid": true, - "result_contract_status": "FAIL", + "result_contract_status": null, "result_contract_error": null, - "command_rc": 1, - "changes_made": true, - "rollback_started": true, - "rollback_restored": true, - "mutation_outcome": "ROLLED_BACK", + "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": "0d5c1d2483869d26491a54f1c96fc28692e882be07e430e918d836362b63a1f5", - "sanitized_output_sha256": "0d5c1d2483869d26491a54f1c96fc28692e882be07e430e918d836362b63a1f5", + "raw_evidence_sha256": "fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a", + "sanitized_output_sha256": "fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a", "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\":true,\"command_id\":\"GITEA-V4-MACHINE-IDENTITY-MIGRATION-RUNTIME-TIMEOUTS-20260730T195304Z\",\"rollback_restored\":true,\"rollback_started\":true,\"status\":\"FAIL\",\"version\":1}\n{\"changes_made\":true,\"command_id\":\"GITEA-V4-MACHINE-IDENTITY-MIGRATION-RUNTIME-TIMEOUTS-20260730T195304Z\",\"credential_partition\":{\"original_sha256\":\"fc18813a7f008130cbc291df849b8c72359985ef697717460fbc39d2056be2b1\",\"residual_bytes\":68,\"residual_sha256\":\"10d1a19537be0dd0dd1ab37cd4a1e5e239c1970a4d16d65aaa7ae7edf2739ec0\",\"target_bytes\":69,\"target_sha256\":\"b52c89cef273de1aa4afc607ee5d4323ef88553ed4b94da24df049b2251f03d8\"},\"error\":\"RuntimeError: phase failed: dry-run rc=142\",\"failed_phase\":\"dry-run\",\"mutation_outcome\":\"ROLLED_BACK\",\"package\":{\"admin_sha256\":\"5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1\",\"phase_hashes\":{\"apply\":\"c2cee33db773dd58b0eadb0405c33933773a559b150ad478aa9c0018dac762e3\",\"dry-run\":\"c5edfe7553ffb7f44a80dd530b805fb732ee0e09097f5b3a6ca77d1f9bc27329\",\"preflight\":\"2ca95ea8d0871351133f946d481665c059b4533c2ec80ea35d81424d7b1d5f7a\",\"prepare\":\"d7cc381878e06f0896219616354c70b042c227ab6254d6a9a36061cc24c13f8c\",\"rollback\":\"2b801fcea7096cdefe2cd294175d1d48ac3dfb394776dbda52299ded470fee0e\",\"seal\":\"c88cb5e9f63aac3888e3822a5eab9e2456b04f5eda16756f626a664eb558c0bc\",\"verify\":\"e57af844675486bb897dd05cfd529bc618c6f32fec9a9257eeeaca1748cbb7cc\"},\"sha256_check_stdout_sha256\":\"edc33fce6cfbf4052ebe804dee6cb9f86d114eb0953f2dba3b5fa9148af70fb3\",\"sha256s_sha256\":\"0aa34f98ccb74f2a8c00460781f56f7b29805e21a284e59a8052936f8dcdc511\",\"task_sha256\":\"10fa2a21164397e2d28f6a44c452c431e64e3cafadd2b4e8098a060c30fab5d9\",\"v3_block_rc\":64,\"validation_stdout_sha256\":\"cce2200e849fd3b7418a9dc011e5566097c620f46da0e2520ea380f2c883e3de\"},\"phases\":[{\"duration_seconds\":2.978,\"phase\":\"preflight\",\"rc\":0,\"safe_stderr\":[],\"safe_stdout\":[\"LINT_STATUS=OK\",\"TASK_ID=gitea-machine-identity-controlled-migration-v4\",\"POLICY_ID=homelab-admin-guardrails-v1.2\",\"RULES_CHECKED=14\",\"SOURCE_FILES_CHECKED=11\",\"GITEA_MACHINE_IDENTITY_MIGRATION_V3_TESTS=OK\",\"REG_157_PREFLIGHT_GITEA_CLI=BLOCKED\",\"REG_158_AGGREGATE_SSH_TIMEOUT_UNCLASSIFIED=BLOCKED\",\"REG_159_BOOTSTRAP_ADMINISTRATOR=BLOCKED\",\"REG_162_LEGACY_REPO_ADMIN_REQUIRED=BLOCKED\",\"REG_163_REPOSITORY_ONLY_SCOPE_REQUIRED=BLOCKED\",\"REG_164_USER_SCOPE_ACCESS=BLOCKED\",\"REG_165_TASK_OWNED_REMOTE_CLEANUP=BLOCKED\",\"REG_166_REPOSITORY_SPECIFIC_HELPER_REQUIRED=BLOCKED\",\"REG_167_PROTECTED_WORKTREE_PUSH_DISABLED=BLOCKED\",\"REG_168_PHASE_RUN_DIR_ISOLATION=BLOCKED\",\"REG_014_GITEA_VERSION_AUTHENTICATION=BLOCKED\",\"REG_015_GITEA_OWNER_PERMISSION=BLOCKED\",\"PREFLIGHT_STATUS=OK\",\"ROOT_CAUSE_COUNT=0\",\"LEGACY_IDENTITY_API=OK\",\"LEGACY_REPOSITORY_PERMISSION=admin\",\"MACHINE_USER_STATE=ABSENT\",\"PREFLIGHT_GITEA_CLI_CALLS=0\",\"FAILED_UNIT_COUNT=2\",\"FAILED_UNIT_POLICY=EXACT_KNOWN_UNRELATED_ALLOWLIST\",\"PACKAGE_TESTS=OK\",\"PRODUCTION_CHANGED=NO\",\"RUN_DIR=/var/lib/homelab-admin/runs/gitea-machine-identity-controlled-migration-v4/20260730T195346Z-2554919-preflight\",\"RUN_RC=0\"],\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1188,\"stdout_sha256\":\"2f2f682a4089af9cfe20f17d8afd78ef8d256b604b87d2946506849e6c13fa8c\"},{\"duration_seconds\":0.215,\"phase\":\"prepare\",\"rc\":0,\"safe_stderr\":[],\"safe_stdout\":[\"LINT_STATUS=OK\",\"TASK_ID=gitea-machine-identity-controlled-migration-v4\",\"POLICY_ID=homelab-admin-guardrails-v1.2\",\"RULES_CHECKED=14\",\"SOURCE_FILES_CHECKED=11\",\"PREPARE_STATUS=OK\",\"ROOT_CAUSE_COUNT=0\",\"VM170_PINNED_HOST_KEY_READY=YES\",\"LEGACY_GIT_CONFIG_BACKED_UP=YES\",\"MIGRATION_PLAN_READY=YES\",\"ROLLBACK_PLAN_READY=YES\",\"PRODUCTION_CHANGED=NO\",\"RUN_DIR=/var/lib/homelab-admin/runs/gitea-machine-identity-controlled-migration-v4/20260730T195349Z-2555261-prepare\",\"RUN_RC=0\"],\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":485,\"stdout_sha256\":\"5015f66e629bd19e0cb3d72104461cc0dc4e40899dd50e353c8f2e1388e7428c\"},{\"duration_seconds\":10.527,\"phase\":\"dry-run\",\"rc\":142,\"safe_stderr\":[],\"safe_stdout\":[\"LINT_STATUS=OK\",\"TASK_ID=gitea-machine-identity-controlled-migration-v4\",\"POLICY_ID=homelab-admin-guardrails-v1.2\",\"RULES_CHECKED=14\",\"SOURCE_FILES_CHECKED=11\",\"GITEA_MACHINE_IDENTITY_MIGRATION_V3_TESTS=OK\",\"REG_157_PREFLIGHT_GITEA_CLI=BLOCKED\",\"REG_158_AGGREGATE_SSH_TIMEOUT_UNCLASSIFIED=BLOCKED\",\"REG_159_BOOTSTRAP_ADMINISTRATOR=BLOCKED\",\"REG_162_LEGACY_REPO_ADMIN_REQUIRED=BLOCKED\",\"REG_163_REPOSITORY_ONLY_SCOPE_REQUIRED=BLOCKED\",\"REG_164_USER_SCOPE_ACCESS=BLOCKED\",\"REG_165_TASK_OWNED_REMOTE_CLEANUP=BLOCKED\",\"REG_166_REPOSITORY_SPECIFIC_HELPER_REQUIRED=BLOCKED\",\"REG_167_PROTECTED_WORKTREE_PUSH_DISABLED=BLOCKED\",\"REG_168_PHASE_RUN_DIR_ISOLATION=BLOCKED\",\"REG_014_GITEA_VERSION_AUTHENTICATION=BLOCKED\",\"REG_015_GITEA_OWNER_PERMISSION=BLOCKED\",\"ROOT_CAUSE=UNEXPECTED_PHASE_ERROR\",\"ROOT_CAUSE_COUNT=1\",\"DETAIL=line:43 rc:142\",\"RUN_DIR=/var/lib/homelab-admin/runs/gitea-machine-identity-controlled-migration-v4/20260730T195350Z-2555344-dry-run\",\"RUN_RC=142\"],\"stderr_bytes\":0,\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout_bytes\":1002,\"stdout_sha256\":\"7d7256169c1631a88fe3a8932c6b0220a09cb4d2dc0af0ba60f8c9647bd56eb3\"}],\"rc\":1,\"rollback_restored\":true,\"rollback_started\":true,\"runtime_task\":{\"changed_paths\":[\"SHA256SUMS\",\"assets/vm170-machine-identity.sh\",\"phases/dry-run.sh\"],\"file_count\":15,\"package_tests_rc\":0,\"package_tests_stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"package_tests_stdout_sha256\":\"bf91ad78d29624072131c190f4cea8a970feb1c7e4c022196f9ce3a4c2c2bdfe\",\"patch\":{\"best_effort_timeout_seconds\":45,\"docker_discovery_timeout_seconds\":15,\"dry_run_sha256\":\"f908d0f6ad33faf62ce479f899944b1c34cc2bf8da0d53663904b517bea803db\",\"gitea_cli_timeout_seconds\":30,\"outer_ssh_timeout_seconds\":120,\"remote_asset_sha256\":\"7d1c7fb82093aa7c5a83f8144268b1f19ca7a04f3ead9abaa82cd8dfc0833ed6\"},\"sha256s_sha256\":\"8c63baa71d589e91c6ccba5cc82da027a999150f0d46ef46b07693e165478764\",\"syntax_count\":12,\"task_json_sha256\":\"10fa2a21164397e2d28f6a44c452c431e64e3cafadd2b4e8098a060c30fab5d9\",\"validation_rc\":0,\"validation_stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"validation_stdout_sha256\":\"cce2200e849fd3b7418a9dc011e5566097c620f46da0e2520ea380f2c883e3de\"},\"schema\":1,\"seal_started\":false,\"secrets_included\":false,\"source_v4_unchanged\":true,\"status\":\"FAIL\",\"wrapper_recovery_state_retained\":false}\n" + "output": "{\"capability_artifact\":{\"bytes\":64,\"ignored_key_count\":0,\"line_count\":2,\"non_key_line_count\":2,\"record_count\":0,\"records\":[],\"sha256\":\"9f40f58de72ebf08edb065b1e9ba9c4eaf4f527cd7da1f878cae64339a829e7d\",\"trailing_newline\":true},\"changes_made\":false,\"command_id\":\"GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z\",\"dry_run_json\":{\"exists\":false},\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"PATCH_EXACT_REMOTE_FAILURE_AND_RUN_MIGRATION\",\"output_truncated_in_json\":false,\"private_addresses_included\":false,\"rc\":0,\"remote_source_context\":[\"0003: \",\"0004: fail(){\",\"0005: printf 'ROOT_CAUSE=%s\",\"0006: ROOT_CAUSE_COUNT=1\",\"0007: DETAIL=%s\",\"0008: ' \\\"$1\\\" \\\"$2\\\"\",\"0009: exit 1\",\"....\",\"0017: [[ \\\"$task_id\\\" == \\\"gitea-machine-identity-controlled-migration-v4\\\" ]] || fail TASK_ID_MISMATCH \\\"$task_id\\\"\",\"0018: case \\\"$mode\\\" in\",\"0019: capability|apply|verify-state|rollback|cleanup-owned|seal) ;;\",\"0020: *) fail INVALID_MODE \\\"$mode\\\" ;;\",\"0021: esac\",\"....\",\"0032: container_id=\",\"0033: \",\"0034: docker_capture(){\",\"0035: local operation=\\\"$1\\\"\",\"0036: shift\",\"0037: local captured rc\",\"0038: set +e\",\"0039: captured=\\\"$(timeout --signal=TERM --kill-after=1s 3s docker \\\"$@\\\" 2>&1)\\\"\",\"0040: rc=$?\",\"0041: set -e\",\"....\",\"0049: \",\"0050: find_container(){\",\"0051: container_id=\\\"$(docker_capture container-discovery ps --filter 'ancestor=docker.gitea.com/gitea:1.26.2' --format '{{.ID}}')\\\"\",\"0052: [[ \\\"$(printf '%s\",\"0053: ' \\\"$container_id\\\" | awk 'NF{n++} END{print n+0}')\\\" -eq 1 ]] ||\",\"0054: fail GITEA_CONTAINER_CARDINALITY vm170\",\"0055: image_value=\\\"$(docker_capture container-inspect inspect \\\"$container_id\\\" --format '{{.Config.Image}}')\\\"\",\"0056: [[ \\\"$image_value\\\" == 'docker.gitea.com/gitea:1.26.2' ]] ||\",\"0057: fail GITEA_IMAGE_MISMATCH \\\"$image_value\\\"\",\"0058: }\",\"0059: \",\"0060: gitea_capture(){\",\"0061: local seconds_value=\\\"$1\\\"\",\"0062: local operation=\\\"$2\\\"\",\"....\",\"0064: local captured rc\",\"0065: set +e\",\"0066: captured=\\\"$(timeout --signal=TERM --kill-after=2s \\\"$seconds_value\\\" docker exec --user git \\\"$container_id\\\" gitea \\\"$@\\\" 2>&1)\\\"\",\"0067: rc=$?\",\"0068: set -e\",\"....\",\"0077: gitea_quiet_best_effort(){\",\"0078: set +e\",\"0079: timeout --signal=TERM --kill-after=2s 18s docker exec --user git \\\"$container_id\\\" gitea \\\"$@\\\" >/dev/null 2>&1\",\"0080: local rc=$?\",\"0081: set -e\",\"....\",\"0128: ' <<<\\\"$plan_json\\\" >/dev/null\",\"0129: \",\"0130: if [[ \\\"$mode\\\" == 'capability' ]]; then\",\"0131: [[ ! -e \\\"$state_dir\\\" ]] || fail TASK_STATE_ALREADY_PRESENT vm170\",\"0132: create_help=\\\"$(gitea_capture 15s user-create-help admin user create --help)\\\"\",\"0133: for required_flag in --user-type --access-token --access-token-name --access-token-scopes; do\",\"0134: grep -Fq -- \\\"$required_flag\\\" <<<\\\"$create_help\\\" ||\",\"....\",\"0171: if [[ \\\"$mode\\\" == 'rollback' ]]; then\",\"0172: [[ -f \\\"$state_dir/created-by-task\\\" ]] || fail ROLLBACK_TASK_MARKER_MISSING vm170\",\"0173: gitea_capture 18s machine-user-delete admin user delete --username \\\"$machine_user\\\" >/dev/null\",\"0174: rm -rf \\\"$state_dir\\\"\",\"0175: printf 'VM170_MACHINE_IDENTITY_ROLLBACK_STATUS=OK\",\"....\",\"0187: [[ -f \\\"$state_dir/admin-flag-absent\\\" ]] || fail ADMIN_FLAG_MARKER_MISSING vm170\",\"0188: [[ -f \\\"$state_dir/scope-write-repository\\\" ]] || fail SCOPE_MARKER_MISSING vm170\",\"0189: admin_users=\\\"$(gitea_capture 15s admin-user-list admin user list --admin)\\\"\",\"0190: awk -v target=\\\"$machine_user\\\" 'NR>1 && $2==target {found=1} END{exit found?0:1}' <<<\\\"$admin_users\\\" &&\",\"0191: fail MACHINE_USER_BECAME_ADMIN vm170\",\"....\",\"0215: trap cleanup_failure EXIT\",\"0216: \",\"0217: create_output=\\\"$(gitea_capture 18s machine-user-create admin user create --username \\\"$machine_user\\\" --email \\\"$machine_email\\\" --user-type bot --access-token --access-token-name \\\"$material_name\\\" --access-token-scopes 'write:repository')\\\"\",\"0218: grep -Fq \\\"New user '$machine_user' has been successfully created!\\\" <<<\\\"$create_output\\\" ||\",\"0219: fail MACHINE_USER_CREATE_CONFIRMATION_MISSING vm170\"],\"rollback_restored\":null,\"rollback_started\":false,\"run_dir\":{\"name\":\"20260730T195350Z-2555344-dry-run\",\"path_sha256\":\"0f265d625302907f6fb9d51d5c165b390bafddae1c22a4e58aae83901ec831e7\"},\"schema\":1,\"secrets_included\":false,\"stage\":\"FAILED_CAPABILITY_ARTIFACT_CAPTURED\",\"status\":\"OK\"}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 6e08f5d..583b441 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,34 +1,33 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=GITEA-V4-MACHINE-IDENTITY-MIGRATION-RUNTIME-TIMEOUTS-20260730T195304Z -STATUS=FAIL -RC=1 +COMMAND_ID=GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z +STATUS=OK +RC=0 HOST=pve01 -MODE=change +MODE=verify COMPONENT=gitea-machine-identity REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=838d91a043e24caa0c6ef45db3107a3432aacade7ae6f6ea29c80d33e3139100 +COMMAND_SHA256=2765124be407b6bc49a1c07e10ea5c7cd6b6e802d65ae286e1c3d5316719196d DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true -CHANGE_DECLARED=true +CHANGE_DECLARED=false RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=FAIL +RESULT_CONTRACT_STATUS=NOT_APPLICABLE RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=1 -CHANGES_MADE=true -ROLLBACK_STARTED=true -ROLLBACK_RESTORED=true -MUTATION_OUTCOME=ROLLED_BACK +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=0d5c1d2483869d26491a54f1c96fc28692e882be07e430e918d836362b63a1f5 -SANITIZED_OUTPUT_SHA256=0d5c1d2483869d26491a54f1c96fc28692e882be07e430e918d836362b63a1f5 +RAW_EVIDENCE_SHA256=fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a +SANITIZED_OUTPUT_SHA256=fbff106b916c5c8b64191455e3e27be2cfeb3fd0ba7048d53d425be23ce1bf0a OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":true,"command_id":"GITEA-V4-MACHINE-IDENTITY-MIGRATION-RUNTIME-TIMEOUTS-20260730T195304Z","rollback_restored":true,"rollback_started":true,"status":"FAIL","version":1} -{"changes_made":true,"command_id":"GITEA-V4-MACHINE-IDENTITY-MIGRATION-RUNTIME-TIMEOUTS-20260730T195304Z","credential_partition":{"original_sha256":"fc18813a7f008130cbc291df849b8c72359985ef697717460fbc39d2056be2b1","residual_bytes":68,"residual_sha256":"10d1a19537be0dd0dd1ab37cd4a1e5e239c1970a4d16d65aaa7ae7edf2739ec0","target_bytes":69,"target_sha256":"b52c89cef273de1aa4afc607ee5d4323ef88553ed4b94da24df049b2251f03d8"},"error":"RuntimeError: phase failed: dry-run rc=142","failed_phase":"dry-run","mutation_outcome":"ROLLED_BACK","package":{"admin_sha256":"5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1","phase_hashes":{"apply":"c2cee33db773dd58b0eadb0405c33933773a559b150ad478aa9c0018dac762e3","dry-run":"c5edfe7553ffb7f44a80dd530b805fb732ee0e09097f5b3a6ca77d1f9bc27329","preflight":"2ca95ea8d0871351133f946d481665c059b4533c2ec80ea35d81424d7b1d5f7a","prepare":"d7cc381878e06f0896219616354c70b042c227ab6254d6a9a36061cc24c13f8c","rollback":"2b801fcea7096cdefe2cd294175d1d48ac3dfb394776dbda52299ded470fee0e","seal":"c88cb5e9f63aac3888e3822a5eab9e2456b04f5eda16756f626a664eb558c0bc","verify":"e57af844675486bb897dd05cfd529bc618c6f32fec9a9257eeeaca1748cbb7cc"},"sha256_check_stdout_sha256":"edc33fce6cfbf4052ebe804dee6cb9f86d114eb0953f2dba3b5fa9148af70fb3","sha256s_sha256":"0aa34f98ccb74f2a8c00460781f56f7b29805e21a284e59a8052936f8dcdc511","task_sha256":"10fa2a21164397e2d28f6a44c452c431e64e3cafadd2b4e8098a060c30fab5d9","v3_block_rc":64,"validation_stdout_sha256":"cce2200e849fd3b7418a9dc011e5566097c620f46da0e2520ea380f2c883e3de"},"phases":[{"duration_seconds":2.978,"phase":"preflight","rc":0,"safe_stderr":[],"safe_stdout":["LINT_STATUS=OK","TASK_ID=gitea-machine-identity-controlled-migration-v4","POLICY_ID=homelab-admin-guardrails-v1.2","RULES_CHECKED=14","SOURCE_FILES_CHECKED=11","GITEA_MACHINE_IDENTITY_MIGRATION_V3_TESTS=OK","REG_157_PREFLIGHT_GITEA_CLI=BLOCKED","REG_158_AGGREGATE_SSH_TIMEOUT_UNCLASSIFIED=BLOCKED","REG_159_BOOTSTRAP_ADMINISTRATOR=BLOCKED","REG_162_LEGACY_REPO_ADMIN_REQUIRED=BLOCKED","REG_163_REPOSITORY_ONLY_SCOPE_REQUIRED=BLOCKED","REG_164_USER_SCOPE_ACCESS=BLOCKED","REG_165_TASK_OWNED_REMOTE_CLEANUP=BLOCKED","REG_166_REPOSITORY_SPECIFIC_HELPER_REQUIRED=BLOCKED","REG_167_PROTECTED_WORKTREE_PUSH_DISABLED=BLOCKED","REG_168_PHASE_RUN_DIR_ISOLATION=BLOCKED","REG_014_GITEA_VERSION_AUTHENTICATION=BLOCKED","REG_015_GITEA_OWNER_PERMISSION=BLOCKED","PREFLIGHT_STATUS=OK","ROOT_CAUSE_COUNT=0","LEGACY_IDENTITY_API=OK","LEGACY_REPOSITORY_PERMISSION=admin","MACHINE_USER_STATE=ABSENT","PREFLIGHT_GITEA_CLI_CALLS=0","FAILED_UNIT_COUNT=2","FAILED_UNIT_POLICY=EXACT_KNOWN_UNRELATED_ALLOWLIST","PACKAGE_TESTS=OK","PRODUCTION_CHANGED=NO","RUN_DIR=/var/lib/homelab-admin/runs/gitea-machine-identity-controlled-migration-v4/20260730T195346Z-2554919-preflight","RUN_RC=0"],"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1188,"stdout_sha256":"2f2f682a4089af9cfe20f17d8afd78ef8d256b604b87d2946506849e6c13fa8c"},{"duration_seconds":0.215,"phase":"prepare","rc":0,"safe_stderr":[],"safe_stdout":["LINT_STATUS=OK","TASK_ID=gitea-machine-identity-controlled-migration-v4","POLICY_ID=homelab-admin-guardrails-v1.2","RULES_CHECKED=14","SOURCE_FILES_CHECKED=11","PREPARE_STATUS=OK","ROOT_CAUSE_COUNT=0","VM170_PINNED_HOST_KEY_READY=YES","LEGACY_GIT_CONFIG_BACKED_UP=YES","MIGRATION_PLAN_READY=YES","ROLLBACK_PLAN_READY=YES","PRODUCTION_CHANGED=NO","RUN_DIR=/var/lib/homelab-admin/runs/gitea-machine-identity-controlled-migration-v4/20260730T195349Z-2555261-prepare","RUN_RC=0"],"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":485,"stdout_sha256":"5015f66e629bd19e0cb3d72104461cc0dc4e40899dd50e353c8f2e1388e7428c"},{"duration_seconds":10.527,"phase":"dry-run","rc":142,"safe_stderr":[],"safe_stdout":["LINT_STATUS=OK","TASK_ID=gitea-machine-identity-controlled-migration-v4","POLICY_ID=homelab-admin-guardrails-v1.2","RULES_CHECKED=14","SOURCE_FILES_CHECKED=11","GITEA_MACHINE_IDENTITY_MIGRATION_V3_TESTS=OK","REG_157_PREFLIGHT_GITEA_CLI=BLOCKED","REG_158_AGGREGATE_SSH_TIMEOUT_UNCLASSIFIED=BLOCKED","REG_159_BOOTSTRAP_ADMINISTRATOR=BLOCKED","REG_162_LEGACY_REPO_ADMIN_REQUIRED=BLOCKED","REG_163_REPOSITORY_ONLY_SCOPE_REQUIRED=BLOCKED","REG_164_USER_SCOPE_ACCESS=BLOCKED","REG_165_TASK_OWNED_REMOTE_CLEANUP=BLOCKED","REG_166_REPOSITORY_SPECIFIC_HELPER_REQUIRED=BLOCKED","REG_167_PROTECTED_WORKTREE_PUSH_DISABLED=BLOCKED","REG_168_PHASE_RUN_DIR_ISOLATION=BLOCKED","REG_014_GITEA_VERSION_AUTHENTICATION=BLOCKED","REG_015_GITEA_OWNER_PERMISSION=BLOCKED","ROOT_CAUSE=UNEXPECTED_PHASE_ERROR","ROOT_CAUSE_COUNT=1","DETAIL=line:43 rc:142","RUN_DIR=/var/lib/homelab-admin/runs/gitea-machine-identity-controlled-migration-v4/20260730T195350Z-2555344-dry-run","RUN_RC=142"],"stderr_bytes":0,"stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","stdout_bytes":1002,"stdout_sha256":"7d7256169c1631a88fe3a8932c6b0220a09cb4d2dc0af0ba60f8c9647bd56eb3"}],"rc":1,"rollback_restored":true,"rollback_started":true,"runtime_task":{"changed_paths":["SHA256SUMS","assets/vm170-machine-identity.sh","phases/dry-run.sh"],"file_count":15,"package_tests_rc":0,"package_tests_stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","package_tests_stdout_sha256":"bf91ad78d29624072131c190f4cea8a970feb1c7e4c022196f9ce3a4c2c2bdfe","patch":{"best_effort_timeout_seconds":45,"docker_discovery_timeout_seconds":15,"dry_run_sha256":"f908d0f6ad33faf62ce479f899944b1c34cc2bf8da0d53663904b517bea803db","gitea_cli_timeout_seconds":30,"outer_ssh_timeout_seconds":120,"remote_asset_sha256":"7d1c7fb82093aa7c5a83f8144268b1f19ca7a04f3ead9abaa82cd8dfc0833ed6"},"sha256s_sha256":"8c63baa71d589e91c6ccba5cc82da027a999150f0d46ef46b07693e165478764","syntax_count":12,"task_json_sha256":"10fa2a21164397e2d28f6a44c452c431e64e3cafadd2b4e8098a060c30fab5d9","validation_rc":0,"validation_stderr_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","validation_stdout_sha256":"cce2200e849fd3b7418a9dc011e5566097c620f46da0e2520ea380f2c883e3de"},"schema":1,"seal_started":false,"secrets_included":false,"source_v4_unchanged":true,"status":"FAIL","wrapper_recovery_state_retained":false} +{"capability_artifact":{"bytes":64,"ignored_key_count":0,"line_count":2,"non_key_line_count":2,"record_count":0,"records":[],"sha256":"9f40f58de72ebf08edb065b1e9ba9c4eaf4f527cd7da1f878cae64339a829e7d","trailing_newline":true},"changes_made":false,"command_id":"GITEA-V4-FAILED-CAPABILITY-ARTIFACT-PROBE-20260730T195901Z","dry_run_json":{"exists":false},"mutation_outcome":"NO_MUTATION","next_stage":"PATCH_EXACT_REMOTE_FAILURE_AND_RUN_MIGRATION","output_truncated_in_json":false,"private_addresses_included":false,"rc":0,"remote_source_context":["0003: ","0004: fail(){","0005: printf 'ROOT_CAUSE=%s","0006: ROOT_CAUSE_COUNT=1","0007: DETAIL=%s","0008: ' \"$1\" \"$2\"","0009: exit 1","....","0017: [[ \"$task_id\" == \"gitea-machine-identity-controlled-migration-v4\" ]] || fail TASK_ID_MISMATCH \"$task_id\"","0018: case \"$mode\" in","0019: capability|apply|verify-state|rollback|cleanup-owned|seal) ;;","0020: *) fail INVALID_MODE \"$mode\" ;;","0021: esac","....","0032: container_id=","0033: ","0034: docker_capture(){","0035: local operation=\"$1\"","0036: shift","0037: local captured rc","0038: set +e","0039: captured=\"$(timeout --signal=TERM --kill-after=1s 3s docker \"$@\" 2>&1)\"","0040: rc=$?","0041: set -e","....","0049: ","0050: find_container(){","0051: container_id=\"$(docker_capture container-discovery ps --filter 'ancestor=docker.gitea.com/gitea:1.26.2' --format '{{.ID}}')\"","0052: [[ \"$(printf '%s","0053: ' \"$container_id\" | awk 'NF{n++} END{print n+0}')\" -eq 1 ]] ||","0054: fail GITEA_CONTAINER_CARDINALITY vm170","0055: image_value=\"$(docker_capture container-inspect inspect \"$container_id\" --format '{{.Config.Image}}')\"","0056: [[ \"$image_value\" == 'docker.gitea.com/gitea:1.26.2' ]] ||","0057: fail GITEA_IMAGE_MISMATCH \"$image_value\"","0058: }","0059: ","0060: gitea_capture(){","0061: local seconds_value=\"$1\"","0062: local operation=\"$2\"","....","0064: local captured rc","0065: set +e","0066: captured=\"$(timeout --signal=TERM --kill-after=2s \"$seconds_value\" docker exec --user git \"$container_id\" gitea \"$@\" 2>&1)\"","0067: rc=$?","0068: set -e","....","0077: gitea_quiet_best_effort(){","0078: set +e","0079: timeout --signal=TERM --kill-after=2s 18s docker exec --user git \"$container_id\" gitea \"$@\" >/dev/null 2>&1","0080: local rc=$?","0081: set -e","....","0128: ' <<<\"$plan_json\" >/dev/null","0129: ","0130: if [[ \"$mode\" == 'capability' ]]; then","0131: [[ ! -e \"$state_dir\" ]] || fail TASK_STATE_ALREADY_PRESENT vm170","0132: create_help=\"$(gitea_capture 15s user-create-help admin user create --help)\"","0133: for required_flag in --user-type --access-token --access-token-name --access-token-scopes; do","0134: grep -Fq -- \"$required_flag\" <<<\"$create_help\" ||","....","0171: if [[ \"$mode\" == 'rollback' ]]; then","0172: [[ -f \"$state_dir/created-by-task\" ]] || fail ROLLBACK_TASK_MARKER_MISSING vm170","0173: gitea_capture 18s machine-user-delete admin user delete --username \"$machine_user\" >/dev/null","0174: rm -rf \"$state_dir\"","0175: printf 'VM170_MACHINE_IDENTITY_ROLLBACK_STATUS=OK","....","0187: [[ -f \"$state_dir/admin-flag-absent\" ]] || fail ADMIN_FLAG_MARKER_MISSING vm170","0188: [[ -f \"$state_dir/scope-write-repository\" ]] || fail SCOPE_MARKER_MISSING vm170","0189: admin_users=\"$(gitea_capture 15s admin-user-list admin user list --admin)\"","0190: awk -v target=\"$machine_user\" 'NR>1 && $2==target {found=1} END{exit found?0:1}' <<<\"$admin_users\" &&","0191: fail MACHINE_USER_BECAME_ADMIN vm170","....","0215: trap cleanup_failure EXIT","0216: ","0217: create_output=\"$(gitea_capture 18s machine-user-create admin user create --username \"$machine_user\" --email \"$machine_email\" --user-type bot --access-token --access-token-name \"$material_name\" --access-token-scopes 'write:repository')\"","0218: grep -Fq \"New user '$machine_user' has been successfully created!\" <<<\"$create_output\" ||","0219: fail MACHINE_USER_CREATE_CONFIRMATION_MISSING vm170"],"rollback_restored":null,"rollback_started":false,"run_dir":{"name":"20260730T195350Z-2555344-dry-run","path_sha256":"0f265d625302907f6fb9d51d5c165b390bafddae1c22a4e58aae83901ec831e7"},"schema":1,"secrets_included":false,"stage":"FAILED_CAPABILITY_ARTIFACT_CAPTURED","status":"OK"} OUTPUT_END CHAT_OUTPUT_END