{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "GITEA-WRITE-PATH-READONLY-DIAG-20260727T193539Z", "status": "OK", "rc": 0, "host": "pve01", "mode": "verify", "component": "gitea-write-path-diagnostic", "started_at_utc": "2026-07-27T19:36:23Z", "finished_at_utc": "2026-07-27T19:36:23Z", "reference_register_checked": true, "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", "error_register_checked": true, "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", "command_sha256": "e525480bdd9fde90f31cc8c1d25ebd353166445ae0922e63a1fdc532d4f8248f", "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": "ad16151f993c3c737e82cac13f1664543993d06eb20e0e26a1367439c3682acd", "sanitized_output_sha256": "ad16151f993c3c737e82cac13f1664543993d06eb20e0e26a1367439c3682acd", "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\":\"GITEA-WRITE-PATH-READONLY-DIAG-20260727T193539Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"checks\":{\"target_is_pve01\":true,\"uid_is_root\":true,\"worktree_exists\":true},\"command_id\":\"GITEA-WRITE-PATH-READONLY-DIAG-20260727T193539Z\",\"credential_metadata\":[{\"directory\":false,\"executable\":false,\"exists\":true,\"gid\":990,\"mode\":\"0600\",\"path\":\"/root/.git-credentials\",\"regular\":true,\"size\":139,\"symlink\":false,\"uid\":0},{\"exists\":false,\"path\":\"/root/.netrc\"},{\"exists\":false,\"path\":\"/root/.config/git/credentials\"},{\"exists\":false,\"path\":\"/etc/gitconfig\"},{\"directory\":false,\"executable\":false,\"exists\":true,\"gid\":0,\"mode\":\"0600\",\"path\":\"/root/.gitconfig\",\"regular\":true,\"size\":59,\"symlink\":false,\"uid\":0},{\"directory\":true,\"executable\":true,\"exists\":true,\"gid\":0,\"mode\":\"0750\",\"path\":\"/usr/local/libexec\",\"regular\":false,\"size\":4096,\"symlink\":false,\"uid\":0},{\"directory\":true,\"executable\":true,\"exists\":true,\"gid\":0,\"mode\":\"0755\",\"path\":\"/usr/local/bin\",\"regular\":false,\"size\":4096,\"symlink\":false,\"uid\":0},{\"directory\":true,\"executable\":true,\"exists\":true,\"gid\":0,\"mode\":\"0755\",\"path\":\"/usr/local/sbin\",\"regular\":false,\"size\":16384,\"symlink\":false,\"uid\":0},{\"directory\":true,\"executable\":true,\"exists\":true,\"gid\":0,\"mode\":\"0755\",\"path\":\"/etc/homelab-admin\",\"regular\":false,\"size\":4096,\"symlink\":false,\"uid\":0}],\"diagnosis\":[\"EXPLICIT_PUSH_DRY_RUN_FAILED\"],\"git\":{\"branch\":\"main\",\"config_sanitized\":{\"rc\":0,\"stderr\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout\":\"global\\tfile:/root/.gitconfig\\tcredential.helper store --file /root/.git-credentials\\nlocal\\tfile:.git/config\\tremote.origin.url https://git.gram1.ru/homelab-admin/homelab-ops.git\\nlocal\\tfile:.git/config\\tremote.origin.fetch +refs/heads/*:refs/remotes/origin/*\\nlocal\\tfile:.git/config\\tremote.origin.pushurl DISABLED\\nlocal\\tfile:.git/config\\tuser.name homelab-ops-bootstrap\\nlocal\\tfile:.git/config\\tuser.email root@pve01.gram1.ru\\n\",\"stdout_sha256\":\"2f4d107ff7d0526cdd2a2c876fcaa6d282e21961bff3ddb2df24a760b8e608be\"},\"credential_helpers_sanitized\":{\"rc\":0,\"stderr\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout\":\"global\\tfile:/root/.gitconfig\\tstore --file /root/.git-credentials\\n\",\"stdout_sha256\":\"6880ed4459b4eed6b2ba994467b13e92a901324941a5b8178375ee93f935523e\"},\"local_head\":null,\"local_is_ancestor_of_remote\":null,\"ls_remote\":{\"rc\":0,\"stderr\":\"\",\"stderr_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\"stdout\":\"[LONG_TOKEN_REDACTED]\\trefs/heads/main\\n\",\"stdout_sha256\":\"8917a58bcaa5b50146be32125c4eff50eacd9035f041807184acbdef2c0194ec\"},\"merge_base\":null,\"origin_fetch\":\"https://git.gram1.ru/homelab-admin/homelab-ops.git\",\"origin_main_tracking\":null,\"origin_push\":\"DISABLED\",\"push_dry_run\":{\"rc\":1,\"stderr\":\"To https://git.gram1.ru/homelab-admin/homelab-ops.git\\n ! [rejected] HEAD -> main (fetch first)\\nerror: failed to push some refs to 'https://git.gram1.ru/homelab-admin/homelab-ops.git'\\nhint: Updates were rejected because the remote contains work that you do not\\nhint: have locally. This is usually caused by another repository pushing to\\nhint: the same ref. If you want to integrate the remote changes, use\\nhint: 'git pull' before pushing again.\\nhint: See the 'Note about fast-forwards' in 'git push --help' for details.\\n\",\"stderr_sha256\":\"5a959f777afea5682e288bc1d86fe9e7aeaa90b2911bb9ce6e42bb57e07aee6b\",\"stdout\":\"\",\"stdout_sha256\":\"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"},\"remote_is_ancestor_of_local\":null,\"remote_main_head\":null,\"remote_object_known_locally\":false,\"worktree_status\":\"\"},\"helper_candidates_metadata\":[{\"directory\":false,\"executable\":true,\"exists\":true,\"gid\":0,\"mode\":\"0755\",\"path\":\"/usr/local/sbin/homelab-backup-gitea\",\"regular\":true,\"size\":2217,\"symlink\":false,\"uid\":0},{\"directory\":false,\"executable\":true,\"exists\":true,\"gid\":0,\"mode\":\"0750\",\"path\":\"/usr/local/sbin/homelab-gitea-secondary-backup\",\"regular\":true,\"size\":3867,\"symlink\":false,\"uid\":0}],\"read_only\":true,\"rollback_started\":false,\"safe_next_action\":\"DESIGN_WRITE_PATH_FROM_OBSERVED_AUTH_AND_REMOTE_STATE\",\"schema\":1,\"status\":\"OK\",\"target_plan\":{\"capsule_sha256\":\"d63cd79ae8186b3c05dbcb154ce16fea9293d3b7cfd81feb334cf5377a175d23\",\"command_id\":\"SKLADCHIK-MODERATOR-GITEA-SNAPSHOT-PLAN-V2-20260727T183508Z\"}}\n" }