1
0

runtime: publish HOMELAB-ERROR-REGISTER-FORMAT-AUDIT-448

This commit is contained in:
homelab-runtime-publisher
2026-07-24 11:13:22 +00:00
parent 90fcb47265
commit 370067c5dd
4 changed files with 461 additions and 42 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,223 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=HOMELAB-ERROR-REGISTER-FORMAT-AUDIT-448
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=cluster-audit
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
COMMAND_SHA256=b07eaabf87dd148ae53e0628058252a1074e71463fbacb489e5389d195f37180
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=673f6f11cd0875980e440a581c77c73937651655c02d2f182a51d33fa4111c1f
SANITIZED_OUTPUT_SHA256=673f6f11cd0875980e440a581c77c73937651655c02d2f182a51d33fa4111c1f
OUTPUT_BEGIN
DETAIL=ERROR_REGISTER_META_BEGIN
DETAIL=ERROR_REGISTER_PATH=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
DETAIL=ERROR_REGISTER_BYTES=79246
DETAIL=ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
DETAIL=ERROR_REGISTER_META_END
DETAIL=ERROR_ID=HOMELAB-VM-2CLOUD-EXISTING-DRAIN-WAIT-444|REGISTERED=NO
DETAIL=ERROR_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446|REGISTERED=NO
DETAIL=ERROR_REGISTER_TAIL_BEGIN
DETAIL=ERROR_REGISTER_TAIL=- The reported validation count is cascading missing-marker evidence, not twenty-five independent design defects.
DETAIL=ERROR_REGISTER_TAIL=- The generated validator must be inspected at the exact SyntaxError line before another candidate is created.
DETAIL=ERROR_REGISTER_TAIL=- Production, database, application, services, timers, health and desired-state were unchanged; active external probes were not executed.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## STAGE4E_PIPESTATUS_LOST_AFTER_FIRST_ASSIGNMENT_20260714
DETAIL=ERROR_REGISTER_TAIL=- VM180 validation copy used a pipeline and read PIPESTATUS in two separate assignments.
DETAIL=ERROR_REGISTER_TAIL=- The first assignment reset PIPESTATUS, leaving COPY_RC empty and preventing remote validation and cleanup.
DETAIL=ERROR_REGISTER_TAIL=- Retry must use explicit SCP operations without pipeline status parsing.
DETAIL=ERROR_REGISTER_TAIL=- Production remained unchanged and active external probes were not executed.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## STAGE4F_VALIDATOR_EXPECTED_HEALTH_REFRESH_FROM_NONWRITING_BACKUP_SCRIPT_20260714
DETAIL=ERROR_REGISTER_TAIL=- The controlled backup service completed with Result=success and ExecMainStatus=0.
DETAIL=ERROR_REGISTER_TAIL=- Validation incorrectly required cluster-admin-incident-engine-backup.txt to receive a fresh timestamp.
DETAIL=ERROR_REGISTER_TAIL=- The executed backup script does not write that health file; therefore the stale health timestamp was not evidence of backup failure.
DETAIL=ERROR_REGISTER_TAIL=- Stage4F backup proof must use the service result, fresh latest JSON, produced artifacts and off-host/restore evidence instead.
DETAIL=ERROR_REGISTER_TAIL=- The backup must not be rerun merely to satisfy the invalid health-file freshness assertion.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## STRICT_RULE_20260714_CLOSE_TAILS_IMMEDIATELY
DETAIL=ERROR_REGISTER_TAIL=- Failure class: переход к следующей задаче при наличии незакрытого хвоста.
DETAIL=ERROR_REGISTER_TAIL=- Mandatory anti-regression: после ошибки запрещено продолжать другой scope до точной root cause, исправления, повторной проверки, очистки, proof и seal.
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Если закрытие невозможно из-за внешней зависимости, опасной неоднозначности или обязательного решения пользователя, фиксировать BLOCKED/OPEN и не заявлять CLOSED.
DETAIL=ERROR_REGISTER_TAIL=- Proof: /var/lib/homelab-change-sets/operator-rule-close-tails-immediately-v1/20260714T171631Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_DEPENDENCY_FACT_QUERY_GLOBAL_LIMIT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: dependency audit вернул только latest_collector_status.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: ORDER BY 1 LIMIT 1 в конце UNION ALL применился ко всему набору фактов.
DETAIL=ERROR_REGISTER_TAIL=- Correction: latest collector status извлекается скалярным подзапросом внутри CTE facts; глобальный LIMIT отсутствует.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: multi-fact SQL audit обязан проверять точное ожидаемое число строк до извлечения значений.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-provenance-readiness-scope-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_COLLECTOR_PATCH_REQUIREMENT_PATTERN_MISMATCH
DETAIL=ERROR_REGISTER_TAIL=- Symptom: MIGRATION_PLAN_COLLECTOR_PATCH_REQUIRED_COUNT=1 при ожидаемых двух подтверждениях.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: узкий шаблон учитывал collector_patch_required, но не collector_patch_required_after_stage4c.
DETAIL=ERROR_REGISTER_TAIL=- Correction: оба поля проверяются отдельно, затем складываются как semantic requirement count.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: связанные JSON-контракты проверяются по собственным точным именам полей, а не одним унифицированным grep-шаблоном.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-provenance-readiness-scope-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; PRIOR_TAIL_UNRESOLVED_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_PRIVILEGED_FILE_REDIRECTION_BEFORE_SUDO
DETAIL=ERROR_REGISTER_TAIL=- Symptom: bash reported Permission denied while counting collector.py lines.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: `< collector.py` was opened by the unprivileged caller shell before sudo executed wc.
DETAIL=ERROR_REGISTER_TAIL=- Correction: run sudo wc -l collector.py without caller-side input redirection.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: never combine sudo with `< protected-file`; pass the protected path as an argument to the privileged command.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-baseline-audit-final-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_COLLECTOR_RUN_COLUMN_ASSUMPTION
DETAIL=ERROR_REGISTER_TAIL=- Symptom: SQL failed because completed_at did not exist.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: collector_runs columns were assumed instead of read from information_schema; actual names are finished_at and error_text.
DETAIL=ERROR_REGISTER_TAIL=- Correction: assert required and forbidden column counts before querying recent runs.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: every schema-sensitive audit must discover and validate exact column names before the main query.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-baseline-audit-final-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_REMOTE_STDIN_ARGUMENT_SHIFT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: remote harness выполнил chmod для пути bash.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: дополнительный positional token bash был передан после SSH command и стал первым аргументом stdin-скрипта.
DETAIL=ERROR_REGISTER_TAIL=- Correction: remote command вызывает bash -s -- с ровно тремя явно встроенными аргументами: candidate path, SHA256 и byte count.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: stdin-скрипт обязан валидировать $1 по разрешённому path pattern и затем подтверждать точные SHA256 и byte count; запрещено добавлять отдельный bash-token после remote command.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/stage4h-collector-provenance-patch-candidate-v1/20260714T174131Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_OVERSIZED_COMMAND_PARSE_FAILURE
DETAIL=ERROR_REGISTER_TAIL=- Symptom: Bash получил одиночный фрагмент и сообщил syntax error near unexpected token `(`.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: чрезмерно длинная интерактивная команда была обрезана или повреждена при передаче до полного разбора Bash.
DETAIL=ERROR_REGISTER_TAIL=- Impact: side-effect audit подтвердил production state 0|0|OK, неизменный collector, активный timer и отсутствие временных БД, каталогов и процессов.
DETAIL=ERROR_REGISTER_TAIL=- Correction: монолитные команды запрещены; сложные действия выполняются через отдельный проверяемый task-скрипт и короткий launcher.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: interactive payload target <= 8000 bytes; syntax-check перед запуском; remote output сохраняется независимо от RC.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/operator-command-size-guard-v1/20260714T182653Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_HOMELAB_ADMIN_HELP_RC_ASSUMPTION
DETAIL=ERROR_REGISTER_TAIL=- Symptom: template audit завершился HOMELAB_ADMIN_HELP_FAILED.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: был ошибочно ожидаем RC=0 от неподдерживаемого аргумента --help.
DETAIL=ERROR_REGISTER_TAIL=- Actual contract: неизвестный аргумент печатает usage и возвращает RC=64.
DETAIL=ERROR_REGISTER_TAIL=- Correction: проверять version либо считать точную usage-строку вместе с RC=64 штатным результатом.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: перед проверкой CLI сначала фиксировать поддерживаемые команды; не предполагать GNU-style --help.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v1/20260714T183338Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_EXPECTED_NEGATIVE_RC_TRAP_CLASSIFICATION
DETAIL=ERROR_REGISTER_TAIL=- Symptom: schema-v2 task v3 build stopped while intentionally testing the --invalid argument path.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: an expected RC64 was executed while the generic ERR trap remained active.
DETAIL=ERROR_REGISTER_TAIL=- Correction: expected failures are evaluated only through an explicit if/else branch with immediate RC capture.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=EXPECTED_RC64_INTERCEPTED_ERR_TRAP
DETAIL=ERROR_REGISTER_TAIL=- Required pattern: if command; then rc=0; else rc=$?; fi, followed by a separate exact expected-RC assertion.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_DUPLICATE_MACHINE_MARKER_COUNT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: error-register candidate construction stopped with RC1 before applying the candidate.
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Correction: headings and prose do not contain machine-token values; validation counts only complete exact token lines.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=DUPLICATE_MACHINE_TOKEN_IN_HEADING_AND_BODY
DETAIL=ERROR_REGISTER_TAIL=- Required pattern: grep -Fxc against a complete machine line, never grep -Foc against an unrestricted substring.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Temporary artifacts: removed and verified.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T02:56:19Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_OUTER_WRAPPER_SHELL_SYNTAX
DETAIL=ERROR_REGISTER_TAIL=- Symptom: the operator shell rejected the generated one-line wrapper with syntax error near the final subshell parenthesis.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: the outer wrapper contained an unbalanced compound shell construct before the closing subshell delimiter.
DETAIL=ERROR_REGISTER_TAIL=- Impact: parsing failed before the start marker, guards and homelab-admin invocation; no task phase or infrastructure action executed.
DETAIL=ERROR_REGISTER_TAIL=- Correction: use a linear wrapper with explicitly closed if/case blocks and avoid nested brace groups in conditional expressions.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=OUTER_WRAPPER_UNBALANCED_SUBSHELL_SYNTAX
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Task package impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Temporary artifacts: none.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T03:24:05Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_INLINE_REMOTE_SHELL_IN_APPLY_PHASE
DETAIL=ERROR_REGISTER_TAIL=- Symptom: homelab-admin lint rejected Stage4H task v6 with ERR-002-INLINE-REMOTE-SHELL.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: apply.sh invoked bash -s through an inline quoted SSH program and streamed the remote script through stdin.
DETAIL=ERROR_REGISTER_TAIL=- Correction: copy the declared remote script to an isolated fixed path on VM180 and invoke that file directly with positional arguments.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=INLINE_REMOTE_SHELL_REPLACED_BY_STAGED_REMOTE_SCRIPT_PATH
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Remote stdout and stderr must be preserved before evaluating the remote return code.
DETAIL=ERROR_REGISTER_TAIL=- Task v6 status: REJECTED_BY_LINT; never executed and never mutated.
DETAIL=ERROR_REGISTER_TAIL=- Production database impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Live collector impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Temporary database and remote root count after rejection: zero.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T04:13:46Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_OPTIONAL_RUN_DIRECTORY_FIND_UNDER_PIPEFAIL
DETAIL=ERROR_REGISTER_TAIL=- Symptom: task-v7 builder stopped while counting formal runs for rejected task v6.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: find was executed against an optional directory that did not exist; under pipefail the assignment returned RC1.
DETAIL=ERROR_REGISTER_TAIL=- Correction: test directory existence first and assign zero without invoking find when it is absent.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=MISSING_OPTIONAL_RUN_DIRECTORY_TREATED_AS_ZERO
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: optional paths must have an explicit existence branch before find under pipefail.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T04:44:06Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_PG_CONSTRAINT_CONTYPE_CHAR_CONCAT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: isolated Stage4H acceptance failed during schema baseline capture.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: pg_constraint.contype uses the internal PostgreSQL char type and was concatenated without an explicit text cast.
DETAIL=ERROR_REGISTER_TAIL=- Correction: use contype::text or CAST(contype AS text).
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=PG_CATALOG_CHAR_CONCAT_REQUIRES_EXPLICIT_TEXT_CAST
DETAIL=ERROR_REGISTER_TAIL=- Machine rule: ERR-014-PG-CATALOG-CHAR-CONCAT.
DETAIL=ERROR_REGISTER_TAIL=- Negative self-test: uncast expression rejected with RC64.
DETAIL=ERROR_REGISTER_TAIL=- Positive self-test: explicit text cast accepted with RC0.
DETAIL=ERROR_REGISTER_TAIL=- Task v7 mutated: no.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T06:27:06Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_LIVE_COLLECTOR_VERIFIER_WRONG_PATH
DETAIL=ERROR_REGISTER_TAIL=- Symptom: verified linter installation was rolled back after the final collector integrity guard returned UNKNOWN.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: verifier queried a nonexistent path instead of the canonical live collector path declared by the task acceptance script.
DETAIL=ERROR_REGISTER_TAIL=- Canonical path: /opt/cluster-admin-incident-engine/collector.py.
DETAIL=ERROR_REGISTER_TAIL=- Incorrect path: /opt/homelab-cluster-admin/cluster-admin-collector.py.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=LIVE_COLLECTOR_VERIFIER_PATH_MUST_MATCH_TASK_CANONICAL_PATH
DETAIL=ERROR_REGISTER_TAIL=- Correction: derive and guard the live collector path from the immutable task contract before executing the hash query.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none; the canonical collector hash remained unchanged.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T06:27:06Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_INLINE_FAILURE_20260721
DETAIL=ERROR_REGISTER_TAIL=Attempts 048 and 049 did not appear in immutable history.
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_WRAPPER_PUBLICATION_FAILURE_20260721
DETAIL=ERROR_REGISTER_TAIL=Commands 044-051 did not reach immutable history through homelab-chat-run.
DETAIL=ERROR_REGISTER_TAIL=Resolution: hourly snapshots use direct scp plus homelab-runtime-receive publication.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_052_NOT_PUBLISHED_20260721
DETAIL=ERROR_REGISTER_TAIL=CONTEXT-AUTOREFRESH-ACTIVATE-052 did not appear in immutable history; direct publisher retry requires sanitization before transmission.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=IMMUTABLE_HISTORY_FALSE_NEGATIVE_20260721
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=Rule: verify the exact COMMAND_ID result, wrapper publication status and commit SHA; never infer absence from a cached directory listing.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=BACKUP_UNSAFE_SOURCE_CAPTURE_071_PARSE_ERROR_20260721
DETAIL=ERROR_REGISTER_TAIL=BACKUP-UNSAFE-SOURCE-CAPTURE-071 failed before execution: shell syntax error near unexpected token (.
DETAIL=ERROR_REGISTER_TAIL=Resolution: avoid nested quote layers; parse targets first and pass file paths as simple SSH arguments.
DETAIL=ERROR_REGISTER_TAIL_END
DETAIL=MANAGER_REFERENCES_BEGIN
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-admin
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-chat-run
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-collect
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct.bak.20260721T110932Z
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct.bak.20260721T111219Z
DETAIL=MANAGER_REFERENCES_END
DETAIL=COMMAND_ACTION=OBSERVATION_ONLY
CHANGES_MADE=NO
OUTPUT_END
CHAT_OUTPUT_END
+7 -7
View File
File diff suppressed because one or more lines are too long
+201 -35
View File
@@ -1,5 +1,5 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-447
COMMAND_ID=HOMELAB-ERROR-REGISTER-FORMAT-AUDIT-448
STATUS=OK
RC=0
HOST=pve01
@@ -9,48 +9,214 @@ REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
COMMAND_SHA256=b336237a7deb34e3671a8a066295fb7d721cab0d706ab55118fde89e87392827
COMMAND_SHA256=b07eaabf87dd148ae53e0628058252a1074e71463fbacb489e5389d195f37180
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=2d831ad3d49a12146c5b01bb93f961e4f143d758dcc0c66284dabda25b679a13
SANITIZED_OUTPUT_SHA256=2d831ad3d49a12146c5b01bb93f961e4f143d758dcc0c66284dabda25b679a13
RAW_EVIDENCE_SHA256=673f6f11cd0875980e440a581c77c73937651655c02d2f182a51d33fa4111c1f
SANITIZED_OUTPUT_SHA256=673f6f11cd0875980e440a581c77c73937651655c02d2f182a51d33fa4111c1f
OUTPUT_BEGIN
DETAIL=ERROR_444_REGISTERED=NO
DETAIL=ERROR_446_REGISTERED=NO
DETAIL=SERVICE_STATE_BEGIN
Result=success
ExecMainCode=1
ExecMainStatus=0
LoadState=loaded
ActiveState=inactive
SubState=dead
DETAIL=SERVICE_STATE_END
DETAIL=TIMER_STATE_BEGIN
NextElapseUSecRealtime=Fri 2026-07-24 15:04:10 MSK
LastTriggerUSec=Fri 2026-07-24 14:04:11 MSK
LoadState=loaded
ActiveState=active
SubState=waiting
DETAIL=TIMER_STATE_END
DETAIL=LOCAL_QUEUE_COUNT=0
DETAIL=LOCAL_QUEUE_BEGIN
DETAIL=LOCAL_QUEUE_END
DETAIL=RECENT_SERVICE_EVENTS_BEGIN
2026-07-24T13:45:26+03:00 pve01 systemd[1]: Starting homelab-vm-local-dumps-2cloud.service - Homelab VM/CT existing local dumps two-cloud verifier...
2026-07-24T13:53:05+03:00 pve01 homelab-vm-local-dumps-2cloud-drain[173652]: STATUS=OK TS=2026-07-24T10:45:32Z TYPE=vm-local-dumps-cloud BAD=0 COUNT=3 CHUNKED=1 TOTAL_BYTES=7583219433 JOB=homelab-pve01-vm-local-dumps-20260724T104532Z REMOTE_A=pve01-mail-01-crypt:homelab-backups/pve01/vm-local-dumps/homelab-pve01-vm-local-dumps-20260724T104532Z REMOTE_B=pve01-mail-02-crypt:homelab-backups/pve01/vm-local-dumps/homelab-pve01-vm-local-dumps-20260724T104532Z LOCAL_DUMPS_DELETED=true DELETED_COUNT=3 DELETED_BYTES=7583219433 LOG=/var/lib/homelab-vm-backup/vm-local-dumps-2cloud-latest.log
2026-07-24T14:00:45+03:00 pve01 homelab-vm-local-dumps-2cloud-drain[211547]: STATUS=OK TS=2026-07-24T10:53:10Z TYPE=vm-local-dumps-cloud BAD=0 COUNT=3 CHUNKED=1 TOTAL_BYTES=7607921537 JOB=homelab-pve01-vm-local-dumps-20260724T105310Z REMOTE_A=pve01-mail-01-crypt:homelab-backups/pve01/vm-local-dumps/homelab-pve01-vm-local-dumps-20260724T105310Z REMOTE_B=pve01-mail-02-crypt:homelab-backups/pve01/vm-local-dumps/homelab-pve01-vm-local-dumps-20260724T105310Z LOCAL_DUMPS_DELETED=true DELETED_COUNT=3 DELETED_BYTES=7607921537 LOG=/var/lib/homelab-vm-backup/vm-local-dumps-2cloud-latest.log
2026-07-24T14:08:28+03:00 pve01 homelab-vm-local-dumps-2cloud-drain[229881]: STATUS=OK TS=2026-07-24T11:00:50Z TYPE=vm-local-dumps-cloud BAD=0 COUNT=3 CHUNKED=1 TOTAL_BYTES=7574271967 JOB=homelab-pve01-vm-local-dumps-20260724T110050Z REMOTE_A=pve01-mail-01-crypt:homelab-backups/pve01/vm-local-dumps/homelab-pve01-vm-local-dumps-20260724T110050Z REMOTE_B=pve01-mail-02-crypt:homelab-backups/pve01/vm-local-dumps/homelab-pve01-vm-local-dumps-20260724T110050Z LOCAL_DUMPS_DELETED=true DELETED_COUNT=3 DELETED_BYTES=7574271967 LOG=/var/lib/homelab-vm-backup/vm-local-dumps-2cloud-latest.log
2026-07-24T14:08:28+03:00 pve01 homelab-vm-local-dumps-2cloud-drain[229919]: STATUS=OK STARTED=2026-07-24T10:45:26Z FINISHED=2026-07-24T11:08:28Z INITIAL_COUNT=9 BATCHES=3 DELETED_COUNT=9 REMAINING_COUNT=0
2026-07-24T14:08:28+03:00 pve01 systemd[1]: homelab-vm-local-dumps-2cloud.service: Deactivated successfully.
2026-07-24T14:08:28+03:00 pve01 systemd[1]: Finished homelab-vm-local-dumps-2cloud.service - Homelab VM/CT existing local dumps two-cloud verifier.
2026-07-24T14:08:28+03:00 pve01 systemd[1]: homelab-vm-local-dumps-2cloud.service: Consumed 5min 47.116s CPU time, 8.3G memory peak.
DETAIL=RECENT_SERVICE_EVENTS_END
DETAIL=ERROR_REGISTER_META_BEGIN
DETAIL=ERROR_REGISTER_PATH=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
DETAIL=ERROR_REGISTER_BYTES=79246
DETAIL=ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
DETAIL=ERROR_REGISTER_META_END
DETAIL=ERROR_ID=HOMELAB-VM-2CLOUD-EXISTING-DRAIN-WAIT-444|REGISTERED=NO
DETAIL=ERROR_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446|REGISTERED=NO
DETAIL=ERROR_REGISTER_TAIL_BEGIN
DETAIL=ERROR_REGISTER_TAIL=- The reported validation count is cascading missing-marker evidence, not twenty-five independent design defects.
DETAIL=ERROR_REGISTER_TAIL=- The generated validator must be inspected at the exact SyntaxError line before another candidate is created.
DETAIL=ERROR_REGISTER_TAIL=- Production, database, application, services, timers, health and desired-state were unchanged; active external probes were not executed.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## STAGE4E_PIPESTATUS_LOST_AFTER_FIRST_ASSIGNMENT_20260714
DETAIL=ERROR_REGISTER_TAIL=- VM180 validation copy used a pipeline and read PIPESTATUS in two separate assignments.
DETAIL=ERROR_REGISTER_TAIL=- The first assignment reset PIPESTATUS, leaving COPY_RC empty and preventing remote validation and cleanup.
DETAIL=ERROR_REGISTER_TAIL=- Retry must use explicit SCP operations without pipeline status parsing.
DETAIL=ERROR_REGISTER_TAIL=- Production remained unchanged and active external probes were not executed.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## STAGE4F_VALIDATOR_EXPECTED_HEALTH_REFRESH_FROM_NONWRITING_BACKUP_SCRIPT_20260714
DETAIL=ERROR_REGISTER_TAIL=- The controlled backup service completed with Result=success and ExecMainStatus=0.
DETAIL=ERROR_REGISTER_TAIL=- Validation incorrectly required cluster-admin-incident-engine-backup.txt to receive a fresh timestamp.
DETAIL=ERROR_REGISTER_TAIL=- The executed backup script does not write that health file; therefore the stale health timestamp was not evidence of backup failure.
DETAIL=ERROR_REGISTER_TAIL=- Stage4F backup proof must use the service result, fresh latest JSON, produced artifacts and off-host/restore evidence instead.
DETAIL=ERROR_REGISTER_TAIL=- The backup must not be rerun merely to satisfy the invalid health-file freshness assertion.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## STRICT_RULE_20260714_CLOSE_TAILS_IMMEDIATELY
DETAIL=ERROR_REGISTER_TAIL=- Failure class: переход к следующей задаче при наличии незакрытого хвоста.
DETAIL=ERROR_REGISTER_TAIL=- Mandatory anti-regression: после ошибки запрещено продолжать другой scope до точной root cause, исправления, повторной проверки, очистки, proof и seal.
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Если закрытие невозможно из-за внешней зависимости, опасной неоднозначности или обязательного решения пользователя, фиксировать BLOCKED/OPEN и не заявлять CLOSED.
DETAIL=ERROR_REGISTER_TAIL=- Proof: /var/lib/homelab-change-sets/operator-rule-close-tails-immediately-v1/20260714T171631Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_DEPENDENCY_FACT_QUERY_GLOBAL_LIMIT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: dependency audit вернул только latest_collector_status.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: ORDER BY 1 LIMIT 1 в конце UNION ALL применился ко всему набору фактов.
DETAIL=ERROR_REGISTER_TAIL=- Correction: latest collector status извлекается скалярным подзапросом внутри CTE facts; глобальный LIMIT отсутствует.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: multi-fact SQL audit обязан проверять точное ожидаемое число строк до извлечения значений.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-provenance-readiness-scope-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_COLLECTOR_PATCH_REQUIREMENT_PATTERN_MISMATCH
DETAIL=ERROR_REGISTER_TAIL=- Symptom: MIGRATION_PLAN_COLLECTOR_PATCH_REQUIRED_COUNT=1 при ожидаемых двух подтверждениях.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: узкий шаблон учитывал collector_patch_required, но не collector_patch_required_after_stage4c.
DETAIL=ERROR_REGISTER_TAIL=- Correction: оба поля проверяются отдельно, затем складываются как semantic requirement count.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: связанные JSON-контракты проверяются по собственным точным именам полей, а не одним унифицированным grep-шаблоном.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-provenance-readiness-scope-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; PRIOR_TAIL_UNRESOLVED_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_PRIVILEGED_FILE_REDIRECTION_BEFORE_SUDO
DETAIL=ERROR_REGISTER_TAIL=- Symptom: bash reported Permission denied while counting collector.py lines.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: `< collector.py` was opened by the unprivileged caller shell before sudo executed wc.
DETAIL=ERROR_REGISTER_TAIL=- Correction: run sudo wc -l collector.py without caller-side input redirection.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: never combine sudo with `< protected-file`; pass the protected path as an argument to the privileged command.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-baseline-audit-final-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_COLLECTOR_RUN_COLUMN_ASSUMPTION
DETAIL=ERROR_REGISTER_TAIL=- Symptom: SQL failed because completed_at did not exist.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: collector_runs columns were assumed instead of read from information_schema; actual names are finished_at and error_text.
DETAIL=ERROR_REGISTER_TAIL=- Correction: assert required and forbidden column counts before querying recent runs.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: every schema-sensitive audit must discover and validate exact column names before the main query.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-cluster-admin-stage4/stage4h-collector-baseline-audit-final-v1/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_REMOTE_STDIN_ARGUMENT_SHIFT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: remote harness выполнил chmod для пути bash.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: дополнительный positional token bash был передан после SSH command и стал первым аргументом stdin-скрипта.
DETAIL=ERROR_REGISTER_TAIL=- Correction: remote command вызывает bash -s -- с ровно тремя явно встроенными аргументами: candidate path, SHA256 и byte count.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: stdin-скрипт обязан валидировать $1 по разрешённому path pattern и затем подтверждать точные SHA256 и byte count; запрещено добавлять отдельный bash-token после remote command.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/stage4h-collector-provenance-patch-candidate-v1/20260714T174131Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_OVERSIZED_COMMAND_PARSE_FAILURE
DETAIL=ERROR_REGISTER_TAIL=- Symptom: Bash получил одиночный фрагмент и сообщил syntax error near unexpected token `(`.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: чрезмерно длинная интерактивная команда была обрезана или повреждена при передаче до полного разбора Bash.
DETAIL=ERROR_REGISTER_TAIL=- Impact: side-effect audit подтвердил production state 0|0|OK, неизменный collector, активный timer и отсутствие временных БД, каталогов и процессов.
DETAIL=ERROR_REGISTER_TAIL=- Correction: монолитные команды запрещены; сложные действия выполняются через отдельный проверяемый task-скрипт и короткий launcher.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: interactive payload target <= 8000 bytes; syntax-check перед запуском; remote output сохраняется независимо от RC.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/operator-command-size-guard-v1/20260714T182653Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260714_HOMELAB_ADMIN_HELP_RC_ASSUMPTION
DETAIL=ERROR_REGISTER_TAIL=- Symptom: template audit завершился HOMELAB_ADMIN_HELP_FAILED.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: был ошибочно ожидаем RC=0 от неподдерживаемого аргумента --help.
DETAIL=ERROR_REGISTER_TAIL=- Actual contract: неизвестный аргумент печатает usage и возвращает RC=64.
DETAIL=ERROR_REGISTER_TAIL=- Correction: проверять version либо считать точную usage-строку вместе с RC=64 штатным результатом.
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: перед проверкой CLI сначала фиксировать поддерживаемые команды; не предполагать GNU-style --help.
DETAIL=ERROR_REGISTER_TAIL=- Closure proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v1/20260714T183338Z/report.txt
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_EXPECTED_NEGATIVE_RC_TRAP_CLASSIFICATION
DETAIL=ERROR_REGISTER_TAIL=- Symptom: schema-v2 task v3 build stopped while intentionally testing the --invalid argument path.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: an expected RC64 was executed while the generic ERR trap remained active.
DETAIL=ERROR_REGISTER_TAIL=- Correction: expected failures are evaluated only through an explicit if/else branch with immediate RC capture.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=EXPECTED_RC64_INTERCEPTED_ERR_TRAP
DETAIL=ERROR_REGISTER_TAIL=- Required pattern: if command; then rc=0; else rc=$?; fi, followed by a separate exact expected-RC assertion.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_DUPLICATE_MACHINE_MARKER_COUNT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: error-register candidate construction stopped with RC1 before applying the candidate.
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Correction: headings and prose do not contain machine-token values; validation counts only complete exact token lines.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=DUPLICATE_MACHINE_TOKEN_IN_HEADING_AND_BODY
DETAIL=ERROR_REGISTER_TAIL=- Required pattern: grep -Fxc against a complete machine line, never grep -Foc against an unrestricted substring.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Temporary artifacts: removed and verified.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T02:56:19Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_OUTER_WRAPPER_SHELL_SYNTAX
DETAIL=ERROR_REGISTER_TAIL=- Symptom: the operator shell rejected the generated one-line wrapper with syntax error near the final subshell parenthesis.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: the outer wrapper contained an unbalanced compound shell construct before the closing subshell delimiter.
DETAIL=ERROR_REGISTER_TAIL=- Impact: parsing failed before the start marker, guards and homelab-admin invocation; no task phase or infrastructure action executed.
DETAIL=ERROR_REGISTER_TAIL=- Correction: use a linear wrapper with explicitly closed if/case blocks and avoid nested brace groups in conditional expressions.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=OUTER_WRAPPER_UNBALANCED_SUBSHELL_SYNTAX
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Task package impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Temporary artifacts: none.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T03:24:05Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_INLINE_REMOTE_SHELL_IN_APPLY_PHASE
DETAIL=ERROR_REGISTER_TAIL=- Symptom: homelab-admin lint rejected Stage4H task v6 with ERR-002-INLINE-REMOTE-SHELL.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: apply.sh invoked bash -s through an inline quoted SSH program and streamed the remote script through stdin.
DETAIL=ERROR_REGISTER_TAIL=- Correction: copy the declared remote script to an isolated fixed path on VM180 and invoke that file directly with positional arguments.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=INLINE_REMOTE_SHELL_REPLACED_BY_STAGED_REMOTE_SCRIPT_PATH
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=- Remote stdout and stderr must be preserved before evaluating the remote return code.
DETAIL=ERROR_REGISTER_TAIL=- Task v6 status: REJECTED_BY_LINT; never executed and never mutated.
DETAIL=ERROR_REGISTER_TAIL=- Production database impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Live collector impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Temporary database and remote root count after rejection: zero.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T04:13:46Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_OPTIONAL_RUN_DIRECTORY_FIND_UNDER_PIPEFAIL
DETAIL=ERROR_REGISTER_TAIL=- Symptom: task-v7 builder stopped while counting formal runs for rejected task v6.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: find was executed against an optional directory that did not exist; under pipefail the assignment returned RC1.
DETAIL=ERROR_REGISTER_TAIL=- Correction: test directory existence first and assign zero without invoking find when it is absent.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=MISSING_OPTIONAL_RUN_DIRECTORY_TREATED_AS_ZERO
DETAIL=ERROR_REGISTER_TAIL=- Anti-regression: optional paths must have an explicit existence branch before find under pipefail.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T04:44:06Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_PG_CONSTRAINT_CONTYPE_CHAR_CONCAT
DETAIL=ERROR_REGISTER_TAIL=- Symptom: isolated Stage4H acceptance failed during schema baseline capture.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: pg_constraint.contype uses the internal PostgreSQL char type and was concatenated without an explicit text cast.
DETAIL=ERROR_REGISTER_TAIL=- Correction: use contype::text or CAST(contype AS text).
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=PG_CATALOG_CHAR_CONCAT_REQUIRES_EXPLICIT_TEXT_CAST
DETAIL=ERROR_REGISTER_TAIL=- Machine rule: ERR-014-PG-CATALOG-CHAR-CONCAT.
DETAIL=ERROR_REGISTER_TAIL=- Negative self-test: uncast expression rejected with RC64.
DETAIL=ERROR_REGISTER_TAIL=- Positive self-test: explicit text cast accepted with RC0.
DETAIL=ERROR_REGISTER_TAIL=- Task v7 mutated: no.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T06:27:06Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=## ERROR_20260715_LIVE_COLLECTOR_VERIFIER_WRONG_PATH
DETAIL=ERROR_REGISTER_TAIL=- Symptom: verified linter installation was rolled back after the final collector integrity guard returned UNKNOWN.
DETAIL=ERROR_REGISTER_TAIL=- Root cause: verifier queried a nonexistent path instead of the canonical live collector path declared by the task acceptance script.
DETAIL=ERROR_REGISTER_TAIL=- Canonical path: /opt/cluster-admin-incident-engine/collector.py.
DETAIL=ERROR_REGISTER_TAIL=- Incorrect path: /opt/homelab-cluster-admin/cluster-admin-collector.py.
DETAIL=ERROR_REGISTER_TAIL=ANTI_REGRESSION_TOKEN=LIVE_COLLECTOR_VERIFIER_PATH_MUST_MATCH_TASK_CANONICAL_PATH
DETAIL=ERROR_REGISTER_TAIL=- Correction: derive and guard the live collector path from the immutable task contract before executing the hash query.
DETAIL=ERROR_REGISTER_TAIL=- Production impact: none; the canonical collector hash remained unchanged.
DETAIL=ERROR_REGISTER_TAIL=- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0.
DETAIL=ERROR_REGISTER_TAIL=- Registered at: 2026-07-15T06:27:06Z
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_INLINE_FAILURE_20260721
DETAIL=ERROR_REGISTER_TAIL=Attempts 048 and 049 did not appear in immutable history.
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_WRAPPER_PUBLICATION_FAILURE_20260721
DETAIL=ERROR_REGISTER_TAIL=Commands 044-051 did not reach immutable history through homelab-chat-run.
DETAIL=ERROR_REGISTER_TAIL=Resolution: hourly snapshots use direct scp plus homelab-runtime-receive publication.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=AUTOREFRESH_052_NOT_PUBLISHED_20260721
DETAIL=ERROR_REGISTER_TAIL=CONTEXT-AUTOREFRESH-ACTIVATE-052 did not appear in immutable history; direct publisher retry requires sanitization before transmission.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=IMMUTABLE_HISTORY_FALSE_NEGATIVE_20260721
DETAIL=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.
DETAIL=ERROR_REGISTER_TAIL=Rule: verify the exact COMMAND_ID result, wrapper publication status and commit SHA; never infer absence from a cached directory listing.
DETAIL=ERROR_REGISTER_TAIL=
DETAIL=ERROR_REGISTER_TAIL=BACKUP_UNSAFE_SOURCE_CAPTURE_071_PARSE_ERROR_20260721
DETAIL=ERROR_REGISTER_TAIL=BACKUP-UNSAFE-SOURCE-CAPTURE-071 failed before execution: shell syntax error near unexpected token (.
DETAIL=ERROR_REGISTER_TAIL=Resolution: avoid nested quote layers; parse targets first and pass file paths as simple SSH arguments.
DETAIL=ERROR_REGISTER_TAIL_END
DETAIL=MANAGER_REFERENCES_BEGIN
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-admin
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-chat-run
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-collect
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct.bak.20260721T110932Z
DETAIL=MANAGER_REFERENCE=/usr/local/sbin/homelab-context-refresh-direct.bak.20260721T111219Z
DETAIL=MANAGER_REFERENCES_END
DETAIL=COMMAND_ACTION=OBSERVATION_ONLY
DETAIL=BACKUP_PAYLOAD_CHANGED=NO
CHANGES_MADE=NO
OUTPUT_END