{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "HOMELAB-ERROR-REGISTER-FORMAT-AUDIT-448",
  "status": "OK",
  "rc": 0,
  "host": "pve01",
  "mode": "read-only",
  "component": "cluster-audit",
  "started_at_utc": "2026-07-24T11:13:21Z",
  "finished_at_utc": "2026-07-24T11:13:21Z",
  "reference_register_checked": true,
  "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
  "error_register_checked": true,
  "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
  "command_sha256": "b07eaabf87dd148ae53e0628058252a1074e71463fbacb489e5389d195f37180",
  "duplicate_failed_command_blocked": false,
  "block_reason": null,
  "execution_started": true,
  "changes_made": false,
  "sanitized": true,
  "secrets_included": false,
  "private_addresses_included": false,
  "raw_evidence_retained_locally": true,
  "raw_evidence_sha256": "673f6f11cd0875980e440a581c77c73937651655c02d2f182a51d33fa4111c1f",
  "sanitized_output_sha256": "673f6f11cd0875980e440a581c77c73937651655c02d2f182a51d33fa4111c1f",
  "output_truncated_in_json": false,
  "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
  "output": "DETAIL=ERROR_REGISTER_META_BEGIN\nDETAIL=ERROR_REGISTER_PATH=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md\nDETAIL=ERROR_REGISTER_BYTES=79246\nDETAIL=ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752\nDETAIL=ERROR_REGISTER_META_END\nDETAIL=ERROR_ID=HOMELAB-VM-2CLOUD-EXISTING-DRAIN-WAIT-444|REGISTERED=NO\nDETAIL=ERROR_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446|REGISTERED=NO\nDETAIL=ERROR_REGISTER_TAIL_BEGIN\nDETAIL=ERROR_REGISTER_TAIL=- The reported validation count is cascading missing-marker evidence, not twenty-five independent design defects.\nDETAIL=ERROR_REGISTER_TAIL=- The generated validator must be inspected at the exact SyntaxError line before another candidate is created.\nDETAIL=ERROR_REGISTER_TAIL=- Production, database, application, services, timers, health and desired-state were unchanged; active external probes were not executed.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## STAGE4E_PIPESTATUS_LOST_AFTER_FIRST_ASSIGNMENT_20260714\nDETAIL=ERROR_REGISTER_TAIL=- VM180 validation copy used a pipeline and read PIPESTATUS in two separate assignments.\nDETAIL=ERROR_REGISTER_TAIL=- The first assignment reset PIPESTATUS, leaving COPY_RC empty and preventing remote validation and cleanup.\nDETAIL=ERROR_REGISTER_TAIL=- Retry must use explicit SCP operations without pipeline status parsing.\nDETAIL=ERROR_REGISTER_TAIL=- Production remained unchanged and active external probes were not executed.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## STAGE4F_VALIDATOR_EXPECTED_HEALTH_REFRESH_FROM_NONWRITING_BACKUP_SCRIPT_20260714\nDETAIL=ERROR_REGISTER_TAIL=- The controlled backup service completed with Result=success and ExecMainStatus=0.\nDETAIL=ERROR_REGISTER_TAIL=- Validation incorrectly required cluster-admin-incident-engine-backup.txt to receive a fresh timestamp.\nDETAIL=ERROR_REGISTER_TAIL=- The executed backup script does not write that health file; therefore the stale health timestamp was not evidence of backup failure.\nDETAIL=ERROR_REGISTER_TAIL=- Stage4F backup proof must use the service result, fresh latest JSON, produced artifacts and off-host/restore evidence instead.\nDETAIL=ERROR_REGISTER_TAIL=- The backup must not be rerun merely to satisfy the invalid health-file freshness assertion.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## STRICT_RULE_20260714_CLOSE_TAILS_IMMEDIATELY\nDETAIL=ERROR_REGISTER_TAIL=- Failure class: переход к следующей задаче при наличии незакрытого хвоста.\nDETAIL=ERROR_REGISTER_TAIL=- Mandatory anti-regression: после ошибки запрещено продолжать другой scope до точной root cause, исправления, повторной проверки, очистки, proof и seal.\nDETAIL=ERROR_REGISTER_TAIL=- Closure gate: UNRESOLVED_TAIL_COUNT=0; BLOCKER_COUNT=0; TEMPORARY_ARTIFACT_COUNT=0; ROLLBACK_VERIFIED=YES; HEALTH=OK; PROOF_UPDATED=YES; REFERENCE_UPDATED=YES.\nDETAIL=ERROR_REGISTER_TAIL=- Если закрытие невозможно из-за внешней зависимости, опасной неоднозначности или обязательного решения пользователя, фиксировать BLOCKED/OPEN и не заявлять CLOSED.\nDETAIL=ERROR_REGISTER_TAIL=- Proof: /var/lib/homelab-change-sets/operator-rule-close-tails-immediately-v1/20260714T171631Z/report.txt\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_DEPENDENCY_FACT_QUERY_GLOBAL_LIMIT\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: dependency audit вернул только latest_collector_status.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: ORDER BY 1 LIMIT 1 в конце UNION ALL применился ко всему набору фактов.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: latest collector status извлекается скалярным подзапросом внутри CTE facts; глобальный LIMIT отсутствует.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: multi-fact SQL audit обязан проверять точное ожидаемое число строк до извлечения значений.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-provenance-readiness-scope-v1/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_COLLECTOR_PATCH_REQUIREMENT_PATTERN_MISMATCH\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: MIGRATION_PLAN_COLLECTOR_PATCH_REQUIRED_COUNT=1 при ожидаемых двух подтверждениях.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: узкий шаблон учитывал collector_patch_required, но не collector_patch_required_after_stage4c.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: оба поля проверяются отдельно, затем складываются как semantic requirement count.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: связанные JSON-контракты проверяются по собственным точным именам полей, а не одним унифицированным grep-шаблоном.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-provenance-readiness-scope-v1/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; PRIOR_TAIL_UNRESOLVED_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_PRIVILEGED_FILE_REDIRECTION_BEFORE_SUDO\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: bash reported Permission denied while counting collector.py lines.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: `< collector.py` was opened by the unprivileged caller shell before sudo executed wc.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: run sudo wc -l collector.py without caller-side input redirection.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: never combine sudo with `< protected-file`; pass the protected path as an argument to the privileged command.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-baseline-audit-final-v1/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_COLLECTOR_RUN_COLUMN_ASSUMPTION\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: SQL failed because completed_at did not exist.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: collector_runs columns were assumed instead of read from information_schema; actual names are finished_at and error_text.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: assert required and forbidden column counts before querying recent runs.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: every schema-sensitive audit must discover and validate exact column names before the main query.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-baseline-audit-final-v1/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_REMOTE_STDIN_ARGUMENT_SHIFT\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: remote harness выполнил chmod для пути bash.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: дополнительный positional token bash был передан после SSH command и стал первым аргументом stdin-скрипта.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: remote command вызывает bash -s -- с ровно тремя явно встроенными аргументами: candidate path, SHA256 и byte count.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: stdin-скрипт обязан валидировать $1 по разрешённому path pattern и затем подтверждать точные SHA256 и byte count; запрещено добавлять отдельный bash-token после remote command.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/stage4h-collector-provenance-patch-candidate-v1/20260714T174131Z/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_OVERSIZED_COMMAND_PARSE_FAILURE\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: Bash получил одиночный фрагмент и сообщил syntax error near unexpected token `(`.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: чрезмерно длинная интерактивная команда была обрезана или повреждена при передаче до полного разбора Bash.\nDETAIL=ERROR_REGISTER_TAIL=- Impact: side-effect audit подтвердил production state 0|0|OK, неизменный collector, активный timer и отсутствие временных БД, каталогов и процессов.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: монолитные команды запрещены; сложные действия выполняются через отдельный проверяемый task-скрипт и короткий launcher.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: interactive payload target <= 8000 bytes; syntax-check перед запуском; remote output сохраняется независимо от RC.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/operator-command-size-guard-v1/20260714T182653Z/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_HOMELAB_ADMIN_HELP_RC_ASSUMPTION\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: template audit завершился HOMELAB_ADMIN_HELP_FAILED.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: был ошибочно ожидаем RC=0 от неподдерживаемого аргумента --help.\nDETAIL=ERROR_REGISTER_TAIL=- Actual contract: неизвестный аргумент печатает usage и возвращает RC=64.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: проверять version либо считать точную usage-строку вместе с RC=64 штатным результатом.\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: перед проверкой CLI сначала фиксировать поддерживаемые команды; не предполагать GNU-style --help.\nDETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v1/20260714T183338Z/report.txt\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_EXPECTED_NEGATIVE_RC_TRAP_CLASSIFICATION\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: schema-v2 task v3 build stopped while intentionally testing the --invalid argument path.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: an expected RC64 was executed while the generic ERR trap remained active.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: expected failures are evaluated only through an explicit if/else branch with immediate RC capture.\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=EXPECTED_RC64_INTERCEPTED_ERR_TRAP\nDETAIL=ERROR_REGISTER_TAIL=- Required pattern: if command; then rc=0; else rc=$?; fi, followed by a separate exact expected-RC assertion.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_DUPLICATE_MACHINE_MARKER_COUNT\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: error-register candidate construction stopped with RC1 before applying the candidate.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: the same marker text appeared in both a heading and a descriptive line, while the guard expected one substring occurrence.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: headings and prose do not contain machine-token values; validation counts only complete exact token lines.\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=DUPLICATE_MACHINE_TOKEN_IN_HEADING_AND_BODY\nDETAIL=ERROR_REGISTER_TAIL=- Required pattern: grep -Fxc against a complete machine line, never grep -Foc against an unrestricted substring.\nDETAIL=ERROR_REGISTER_TAIL=- Production impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Temporary artifacts: removed and verified.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T02:56:19Z\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_OUTER_WRAPPER_SHELL_SYNTAX\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: the operator shell rejected the generated one-line wrapper with syntax error near the final subshell parenthesis.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: the outer wrapper contained an unbalanced compound shell construct before the closing subshell delimiter.\nDETAIL=ERROR_REGISTER_TAIL=- Impact: parsing failed before the start marker, guards and homelab-admin invocation; no task phase or infrastructure action executed.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: use a linear wrapper with explicitly closed if/case blocks and avoid nested brace groups in conditional expressions.\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=OUTER_WRAPPER_UNBALANCED_SUBSHELL_SYNTAX\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: after any parser-level failure, treat the attempted phase as not executed and verify package and run-state before retrying.\nDETAIL=ERROR_REGISTER_TAIL=- Production impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Task package impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Temporary artifacts: none.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T03:24:05Z\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_INLINE_REMOTE_SHELL_IN_APPLY_PHASE\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: homelab-admin lint rejected Stage4H task v6 with ERR-002-INLINE-REMOTE-SHELL.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: apply.sh invoked bash -s through an inline quoted SSH program and streamed the remote script through stdin.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: copy the declared remote script to an isolated fixed path on VM180 and invoke that file directly with positional arguments.\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=INLINE_REMOTE_SHELL_REPLACED_BY_STAGED_REMOTE_SCRIPT_PATH\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: phase scripts may perform transport orchestration, but remote shell program bodies must exist as separately declared, syntax-checked remote script files.\nDETAIL=ERROR_REGISTER_TAIL=- Remote stdout and stderr must be preserved before evaluating the remote return code.\nDETAIL=ERROR_REGISTER_TAIL=- Task v6 status: REJECTED_BY_LINT; never executed and never mutated.\nDETAIL=ERROR_REGISTER_TAIL=- Production database impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Live collector impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Temporary database and remote root count after rejection: zero.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T04:13:46Z\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_OPTIONAL_RUN_DIRECTORY_FIND_UNDER_PIPEFAIL\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: task-v7 builder stopped while counting formal runs for rejected task v6.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: find was executed against an optional directory that did not exist; under pipefail the assignment returned RC1.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: test directory existence first and assign zero without invoking find when it is absent.\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=MISSING_OPTIONAL_RUN_DIRECTORY_TREATED_AS_ZERO\nDETAIL=ERROR_REGISTER_TAIL=- Anti-regression: optional paths must have an explicit existence branch before find under pipefail.\nDETAIL=ERROR_REGISTER_TAIL=- Production impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T04:44:06Z\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_PG_CONSTRAINT_CONTYPE_CHAR_CONCAT\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: isolated Stage4H acceptance failed during schema baseline capture.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: pg_constraint.contype uses the internal PostgreSQL char type and was concatenated without an explicit text cast.\nDETAIL=ERROR_REGISTER_TAIL=- Correction: use contype::text or CAST(contype AS text).\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=PG_CATALOG_CHAR_CONCAT_REQUIRES_EXPLICIT_TEXT_CAST\nDETAIL=ERROR_REGISTER_TAIL=- Machine rule: ERR-014-PG-CATALOG-CHAR-CONCAT.\nDETAIL=ERROR_REGISTER_TAIL=- Negative self-test: uncast expression rejected with RC64.\nDETAIL=ERROR_REGISTER_TAIL=- Positive self-test: explicit text cast accepted with RC0.\nDETAIL=ERROR_REGISTER_TAIL=- Task v7 mutated: no.\nDETAIL=ERROR_REGISTER_TAIL=- Production impact: none.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T06:27:06Z\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_LIVE_COLLECTOR_VERIFIER_WRONG_PATH\nDETAIL=ERROR_REGISTER_TAIL=- Symptom: verified linter installation was rolled back after the final collector integrity guard returned UNKNOWN.\nDETAIL=ERROR_REGISTER_TAIL=- Root cause: verifier queried a nonexistent path instead of the canonical live collector path declared by the task acceptance script.\nDETAIL=ERROR_REGISTER_TAIL=- Canonical path: /opt/cluster-admin-incident-engine/collector.py.\nDETAIL=ERROR_REGISTER_TAIL=- Incorrect path: /opt/homelab-cluster-admin/cluster-admin-collector.py.\nDETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=LIVE_COLLECTOR_VERIFIER_PATH_MUST_MATCH_TASK_CANONICAL_PATH\nDETAIL=ERROR_REGISTER_TAIL=- Correction: derive and guard the live collector path from the immutable task contract before executing the hash query.\nDETAIL=ERROR_REGISTER_TAIL=- Production impact: none; the canonical collector hash remained unchanged.\nDETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.\nDETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T06:27:06Z\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_INLINE_FAILURE_20260721\nDETAIL=ERROR_REGISTER_TAIL=Attempts 048 and 049 did not appear in immutable history.\nDETAIL=ERROR_REGISTER_TAIL=Rule: use validated local helper scripts and a simple scheduler entry; never embed the full collector in cron or nested SSH quoting.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_WRAPPER_PUBLICATION_FAILURE_20260721\nDETAIL=ERROR_REGISTER_TAIL=Commands 044-051 did not reach immutable history through homelab-chat-run.\nDETAIL=ERROR_REGISTER_TAIL=Resolution: hourly snapshots use direct scp plus homelab-runtime-receive publication.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_052_NOT_PUBLISHED_20260721\nDETAIL=ERROR_REGISTER_TAIL=CONTEXT-AUTOREFRESH-ACTIVATE-052 did not appear in immutable history; direct publisher retry requires sanitization before transmission.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=IMMUTABLE_HISTORY_FALSE_NEGATIVE_20260721\nDETAIL=ERROR_REGISTER_TAIL=BACKUP-AUDIT-CONTROLPLANE-054 was successfully published at commit 2b966acfe553b4d9f8d4a62bf9533478bdd1a073, but was incorrectly reported missing because a stale directory listing was treated as authoritative.\nDETAIL=ERROR_REGISTER_TAIL=Rule: verify the exact COMMAND_ID result, wrapper publication status and commit SHA; never infer absence from a cached directory listing.\nDETAIL=ERROR_REGISTER_TAIL=\nDETAIL=ERROR_REGISTER_TAIL=BACKUP_UNSAFE_SOURCE_CAPTURE_071_PARSE_ERROR_20260721\nDETAIL=ERROR_REGISTER_TAIL=BACKUP-UNSAFE-SOURCE-CAPTURE-071 failed before execution: shell syntax error near unexpected token (.\nDETAIL=ERROR_REGISTER_TAIL=Resolution: avoid nested quote layers; parse targets first and pass file paths as simple SSH arguments.\nDETAIL=ERROR_REGISTER_TAIL_END\nDETAIL=MANAGER_REFERENCES_BEGIN\nDETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-admin\nDETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-chat-run\nDETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-collect\nDETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct\nDETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct.bak.20260721T110932Z\nDETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct.bak.20260721T111219Z\nDETAIL=MANAGER_REFERENCES_END\nDETAIL=COMMAND_ACTION=OBSERVATION_ONLY\nCHANGES_MADE=NO\n"
}
