{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "RUNTIME-RECEIVER-CLEANUP-036",
  "status": "FAIL",
  "rc": 1,
  "host": "pve01",
  "mode": "change",
  "component": "gitea-runtime",
  "started_at_utc": "2026-07-21T10:26:18Z",
  "finished_at_utc": "2026-07-21T10:26:18Z",
  "reference_register_checked": true,
  "reference_sha256": "f6f7749fda946015116cdbbd754c7e7f20356b4a6cf4df330a1b0b8fdf59cbb2",
  "error_register_checked": true,
  "error_register_sha256": "ab8308549db90d235b591af0581580c3c7ba1b287b129cc6111c2eef0a0f9ecc",
  "command_sha256": "65fbcfbce38a55723a92a8790429d6567389321f030f02cb4bf301cbe67e2531",
  "duplicate_failed_command_blocked": false,
  "block_reason": null,
  "execution_started": true,
  "changes_made": true,
  "sanitized": true,
  "secrets_included": false,
  "private_addresses_included": false,
  "raw_evidence_retained_locally": true,
  "raw_evidence_sha256": "52a8e9668f71c042d0dfc9cff61998fd7f661fd522cec91256c2e4546ee2f828",
  "sanitized_output_sha256": "52a8e9668f71c042d0dfc9cff61998fd7f661fd522cec91256c2e4546ee2f828",
  "output_truncated_in_json": false,
  "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
  "output": "Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n    from pathlib import Path; import shutil,datetime,subprocess; p=Path(\"/usr/local/sbin/homelab-runtime-receive\"); a=p.read_text().splitlines(True); d=[i for i,x in enumerate(a) if x.rstrip().endswith(\"HEAD:assistant-runtime\")]; assert len(d)==1; del a[d[0]]; s=next(i for i,x in enumerate(a) if x.startswith(\"git --git-dir=\")); e=next(i for i in range(s,len(a)) if a[i].strip()==\"fi\"); del a[s:e+1]; t=\"\".join(a); assert \"update-ref\" not in t and t.count(\"HEAD:refs/heads/assistant-runtime\")==1; q=p.with_name(p.name+\".new\"); q.write_text(t); q.chmod(0o750); subprocess.run([\"bash\",\"-n\",str(q)],check=True); b=p.with_name(p.name+\".before-clean.\"+datetime.datetime.now(datetime.timezone.utc).strftime(\"%Y%m%dT%H%M%SZ\")); shutil.copy2(p,b); q.replace(p); print(\"RECEIVER_CLEANUP=OK\"); print(\"BACKUP=\"+str(b))\n                                                                                                                                                                                                                                             ^^^^^^^^^\nAssertionError\n"
}
