runtime: publish HOMELAB-ERROR-REGISTER-MANAGER-AUDIT-449
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"channel": "homelab-runtime",
|
||||
"command_id": "HOMELAB-ERROR-REGISTER-MANAGER-AUDIT-449",
|
||||
"status": "OK",
|
||||
"rc": 0,
|
||||
"host": "pve01",
|
||||
"mode": "read-only",
|
||||
"component": "cluster-audit",
|
||||
"started_at_utc": "2026-07-24T11:16:14Z",
|
||||
"finished_at_utc": "2026-07-24T11:16:14Z",
|
||||
"reference_register_checked": true,
|
||||
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
|
||||
"error_register_checked": true,
|
||||
"error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
|
||||
"command_sha256": "07801f02965a813532ed58cdf42b7214b7c879d7cb41d85613aa545d2e18435b",
|
||||
"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": "2a30ba4c837d487dd4eec67d7c0453d4ac9344b7d7d869fdc19c026334a2b3a7",
|
||||
"sanitized_output_sha256": "2a30ba4c837d487dd4eec67d7c0453d4ac9344b7d7d869fdc19c026334a2b3a7",
|
||||
"output_truncated_in_json": false,
|
||||
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
||||
"output": "DETAIL=ADMIN_USAGE_BEGIN\nDETAIL=ADMIN_USAGE_RC=64\nDETAIL=ADMIN_USAGE=ERROR=USAGE:homelab-admin version|status|lint TASK_DIR|validate TASK_DIR|run TASK_DIR PHASE\nDETAIL=ADMIN_USAGE_END\nDETAIL=REGISTER_HELPERS_BEGIN\nDETAIL=REGISTER_HELPERS_END\nDETAIL=SCRIPT=/usr/local/sbin/homelab-admin|BYTES=36|SHA256=5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1\nDETAIL=SCRIPT_MATCH=8:ERROR_FILE=\"${HOMELAB_ERROR_FILE:-/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md}\"\nDETAIL=SCRIPT_MATCH=33: [ -s \"$ERROR_FILE\" ] || die \"ERROR_REGISTER_MISSING_OR_EMPTY\"\nDETAIL=SCRIPT=/usr/local/sbin/homelab-chat-run|BYTES=11864|SHA256=2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9\nDETAIL=SCRIPT_MATCH=77:ERROR_REGISTER=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md\nDETAIL=SCRIPT_MATCH=85:[ -r \"$ERROR_REGISTER\" ] || {\nDETAIL=SCRIPT_MATCH=87: echo 'REASON=ERROR_REGISTER_NOT_READABLE'\nDETAIL=SCRIPT_MATCH=120:ERROR_REGISTER_SHA256=\"$(sha256sum \"$ERROR_REGISTER\" | awk '{print $1}')\"\nDETAIL=SCRIPT_MATCH=326: \"$ERROR_REGISTER_SHA256\" \\\nDETAIL=SCRIPT_MATCH=390: \"error_register_checked\": True,\nDETAIL=SCRIPT_MATCH=391: \"error_register_sha256\": error_sha,\nDETAIL=SCRIPT_MATCH=432: echo 'ERROR_REGISTER_CHECK=OK'\nDETAIL=SCRIPT_MATCH=433: echo \"ERROR_REGISTER_SHA256=$ERROR_REGISTER_SHA256\"\nDETAIL=SCRIPT_MATCH=538:echo 'ERROR_REGISTER_CHECK=OK'\nDETAIL=SCRIPT=/usr/local/sbin/homelab-context-collect|BYTES=427|SHA256=451fe571594eb1a1e2c321e97576c10f211dc9fd463934282ed91568ecb948ec\nDETAIL=SCRIPT_MATCH=5:sha256sum /etc/pve/31_HOMELAB_REFERENCE.md /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md\nDETAIL=SCRIPT_MATCH=13:tail -n 12 /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md\nDETAIL=SCRIPT=/usr/local/sbin/homelab-context-refresh-direct|BYTES=2111|SHA256=4ad3e8288205fad3d27357b19b1abdfcdd95ba8f49650ac276259a3c18d95145\nDETAIL=SCRIPT_MATCH=8:err=$(sha256sum /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md | awk \"{print \\$1}\")\nDETAIL=SCRIPT_MATCH=17:echo ERROR_REGISTER_SHA256=$err\nDETAIL=SCRIPT_MATCH=27:tail -n 20 /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md\nDETAIL=SCRIPT_MATCH=32:printf \"{\\\"schema_version\\\":1,\\\"channel\\\":\\\"homelab-runtime\\\",\\\"command_id\\\":\\\"%s\\\",\\\"status\\\":\\\"OK\\\",\\\"rc\\\":0,\\\"host\\\":\\\"pve01\\\",\\\"mode\\\":\\\"read-only\\\",\\\"component\\\":\\\"cluster-context\\\",\\\"started_at_utc\\\":\\\"%s\\\",\\\"finished_at_utc\\\":\\\"%s\\\",\\\"reference_register_checked\\\":true,\\\"reference_sha256\\\":\\\"%s\\\",\\\"error_register_checked\\\":true,\\\"error_register_sha256\\\":\\\"%s\\\",\\\"changes_made\\\":false,\\\"sanitized\\\":true,\\\"secrets_included\\\":false,\\\"private_addresses_included\\\":false,\\\"output\\\":\\\"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK\\\"}\\n\" \"$id\" \"$started\" \"$finished\" \"$ref\" \"$err\" >\"$d/$id.json\"\nDETAIL=COMMAND_ACTION=OBSERVATION_ONLY\nCHANGES_MADE=NO\n"
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=HOMELAB-ERROR-REGISTER-MANAGER-AUDIT-449
|
||||
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=07801f02965a813532ed58cdf42b7214b7c879d7cb41d85613aa545d2e18435b
|
||||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||||
EXECUTION_STARTED=true
|
||||
CHANGES_MADE=false
|
||||
SANITIZED=yes
|
||||
SECRETS_INCLUDED=no
|
||||
PRIVATE_ADDRESSES_INCLUDED=no
|
||||
RAW_EVIDENCE_SHA256=2a30ba4c837d487dd4eec67d7c0453d4ac9344b7d7d869fdc19c026334a2b3a7
|
||||
SANITIZED_OUTPUT_SHA256=2a30ba4c837d487dd4eec67d7c0453d4ac9344b7d7d869fdc19c026334a2b3a7
|
||||
OUTPUT_BEGIN
|
||||
DETAIL=ADMIN_USAGE_BEGIN
|
||||
DETAIL=ADMIN_USAGE_RC=64
|
||||
DETAIL=ADMIN_USAGE=ERROR=USAGE:homelab-admin version|status|lint TASK_DIR|validate TASK_DIR|run TASK_DIR PHASE
|
||||
DETAIL=ADMIN_USAGE_END
|
||||
DETAIL=REGISTER_HELPERS_BEGIN
|
||||
DETAIL=REGISTER_HELPERS_END
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-admin|BYTES=36|SHA256=5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1
|
||||
DETAIL=SCRIPT_MATCH=8:ERROR_FILE="${HOMELAB_ERROR_FILE:-/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md}"
|
||||
DETAIL=SCRIPT_MATCH=33: [ -s "$ERROR_FILE" ] || die "ERROR_REGISTER_MISSING_OR_EMPTY"
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-chat-run|BYTES=11864|SHA256=2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9
|
||||
DETAIL=SCRIPT_MATCH=77:ERROR_REGISTER=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT_MATCH=85:[ -r "$ERROR_REGISTER" ] || {
|
||||
DETAIL=SCRIPT_MATCH=87: echo 'REASON=ERROR_REGISTER_NOT_READABLE'
|
||||
DETAIL=SCRIPT_MATCH=120:ERROR_REGISTER_SHA256="$(sha256sum "$ERROR_REGISTER" | awk '{print $1}')"
|
||||
DETAIL=SCRIPT_MATCH=326: "$ERROR_REGISTER_SHA256" \
|
||||
DETAIL=SCRIPT_MATCH=390: "error_register_checked": True,
|
||||
DETAIL=SCRIPT_MATCH=391: "error_register_sha256": error_sha,
|
||||
DETAIL=SCRIPT_MATCH=432: echo 'ERROR_REGISTER_CHECK=OK'
|
||||
DETAIL=SCRIPT_MATCH=433: echo "ERROR_REGISTER_SHA256=$ERROR_REGISTER_SHA256"
|
||||
DETAIL=SCRIPT_MATCH=538:echo 'ERROR_REGISTER_CHECK=OK'
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-context-collect|BYTES=427|SHA256=451fe571594eb1a1e2c321e97576c10f211dc9fd463934282ed91568ecb948ec
|
||||
DETAIL=SCRIPT_MATCH=5:sha256sum /etc/pve/31_HOMELAB_REFERENCE.md /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT_MATCH=13:tail -n 12 /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-context-refresh-direct|BYTES=2111|SHA256=4ad3e8288205fad3d27357b19b1abdfcdd95ba8f49650ac276259a3c18d95145
|
||||
DETAIL=SCRIPT_MATCH=8:err=$(sha256sum /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md | awk "{print \$1}")
|
||||
DETAIL=SCRIPT_MATCH=17:echo ERROR_REGISTER_SHA256=$err
|
||||
DETAIL=SCRIPT_MATCH=27:tail -n 20 /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT_MATCH=32:printf "{\"schema_version\":1,\"channel\":\"homelab-runtime\",\"command_id\":\"%s\",\"status\":\"OK\",\"rc\":0,\"host\":\"pve01\",\"mode\":\"read-only\",\"component\":\"cluster-context\",\"started_at_utc\":\"%s\",\"finished_at_utc\":\"%s\",\"reference_register_checked\":true,\"reference_sha256\":\"%s\",\"error_register_checked\":true,\"error_register_sha256\":\"%s\",\"changes_made\":false,\"sanitized\":true,\"secrets_included\":false,\"private_addresses_included\":false,\"output\":\"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK\"}\n" "$id" "$started" "$finished" "$ref" "$err" >"$d/$id.json"
|
||||
DETAIL=COMMAND_ACTION=OBSERVATION_ONLY
|
||||
CHANGES_MADE=NO
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
+7
-7
File diff suppressed because one or more lines are too long
+32
-201
@@ -1,5 +1,5 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=HOMELAB-ERROR-REGISTER-FORMAT-AUDIT-448
|
||||
COMMAND_ID=HOMELAB-ERROR-REGISTER-MANAGER-AUDIT-449
|
||||
STATUS=OK
|
||||
RC=0
|
||||
HOST=pve01
|
||||
@@ -9,213 +9,44 @@ REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
|
||||
COMMAND_SHA256=b07eaabf87dd148ae53e0628058252a1074e71463fbacb489e5389d195f37180
|
||||
COMMAND_SHA256=07801f02965a813532ed58cdf42b7214b7c879d7cb41d85613aa545d2e18435b
|
||||
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
|
||||
RAW_EVIDENCE_SHA256=2a30ba4c837d487dd4eec67d7c0453d4ac9344b7d7d869fdc19c026334a2b3a7
|
||||
SANITIZED_OUTPUT_SHA256=2a30ba4c837d487dd4eec67d7c0453d4ac9344b7d7d869fdc19c026334a2b3a7
|
||||
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=ADMIN_USAGE_BEGIN
|
||||
DETAIL=ADMIN_USAGE_RC=64
|
||||
DETAIL=ADMIN_USAGE=ERROR=USAGE:homelab-admin version|status|lint TASK_DIR|validate TASK_DIR|run TASK_DIR PHASE
|
||||
DETAIL=ADMIN_USAGE_END
|
||||
DETAIL=REGISTER_HELPERS_BEGIN
|
||||
DETAIL=REGISTER_HELPERS_END
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-admin|BYTES=36|SHA256=5398600c15b63f3872116e6d1ae6f65e2d7a5d1752349c9de0de07d801967bd1
|
||||
DETAIL=SCRIPT_MATCH=8:ERROR_FILE="${HOMELAB_ERROR_FILE:-/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md}"
|
||||
DETAIL=SCRIPT_MATCH=33: [ -s "$ERROR_FILE" ] || die "ERROR_REGISTER_MISSING_OR_EMPTY"
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-chat-run|BYTES=11864|SHA256=2a88defef9517f89bc60934dce82097f8e316b08af9417e95167ea5d759a10d9
|
||||
DETAIL=SCRIPT_MATCH=77:ERROR_REGISTER=/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT_MATCH=85:[ -r "$ERROR_REGISTER" ] || {
|
||||
DETAIL=SCRIPT_MATCH=87: echo 'REASON=ERROR_REGISTER_NOT_READABLE'
|
||||
DETAIL=SCRIPT_MATCH=120:ERROR_REGISTER_SHA256="$(sha256sum "$ERROR_REGISTER" | awk '{print $1}')"
|
||||
DETAIL=SCRIPT_MATCH=326: "$ERROR_REGISTER_SHA256" \
|
||||
DETAIL=SCRIPT_MATCH=390: "error_register_checked": True,
|
||||
DETAIL=SCRIPT_MATCH=391: "error_register_sha256": error_sha,
|
||||
DETAIL=SCRIPT_MATCH=432: echo 'ERROR_REGISTER_CHECK=OK'
|
||||
DETAIL=SCRIPT_MATCH=433: echo "ERROR_REGISTER_SHA256=$ERROR_REGISTER_SHA256"
|
||||
DETAIL=SCRIPT_MATCH=538:echo 'ERROR_REGISTER_CHECK=OK'
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-context-collect|BYTES=427|SHA256=451fe571594eb1a1e2c321e97576c10f211dc9fd463934282ed91568ecb948ec
|
||||
DETAIL=SCRIPT_MATCH=5:sha256sum /etc/pve/31_HOMELAB_REFERENCE.md /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT_MATCH=13:tail -n 12 /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT=/usr/local/sbin/homelab-context-refresh-direct|BYTES=2111|SHA256=4ad3e8288205fad3d27357b19b1abdfcdd95ba8f49650ac276259a3c18d95145
|
||||
DETAIL=SCRIPT_MATCH=8:err=$(sha256sum /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md | awk "{print \$1}")
|
||||
DETAIL=SCRIPT_MATCH=17:echo ERROR_REGISTER_SHA256=$err
|
||||
DETAIL=SCRIPT_MATCH=27:tail -n 20 /etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md
|
||||
DETAIL=SCRIPT_MATCH=32:printf "{\"schema_version\":1,\"channel\":\"homelab-runtime\",\"command_id\":\"%s\",\"status\":\"OK\",\"rc\":0,\"host\":\"pve01\",\"mode\":\"read-only\",\"component\":\"cluster-context\",\"started_at_utc\":\"%s\",\"finished_at_utc\":\"%s\",\"reference_register_checked\":true,\"reference_sha256\":\"%s\",\"error_register_checked\":true,\"error_register_sha256\":\"%s\",\"changes_made\":false,\"sanitized\":true,\"secrets_included\":false,\"private_addresses_included\":false,\"output\":\"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK\"}\n" "$id" "$started" "$finished" "$ref" "$err" >"$d/$id.json"
|
||||
DETAIL=COMMAND_ACTION=OBSERVATION_ONLY
|
||||
CHANGES_MADE=NO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user