fix(agent): align log loop blocker with harbor remote control
This commit is contained in:
@@ -405,25 +405,27 @@ def _harbor_recovery_receipt_inputs() -> list[dict[str, Any]]:
|
||||
"required_when": "before_and_after_110_controlled_recovery",
|
||||
"purpose": (
|
||||
"classify cd run status, harbor repair waiting state, "
|
||||
"awoooi-host no-matching runner, and stale job payloads"
|
||||
"remote control channel availability, no-matching runners, "
|
||||
"and stale job payloads"
|
||||
),
|
||||
**metadata_boundary,
|
||||
},
|
||||
{
|
||||
"input_id": "ssh_publickey_diagnosis_output",
|
||||
"source": "diagnose-110-ssh-publickey-auth.sh",
|
||||
"required_when": "diagnose_ssh_publickey_phase",
|
||||
"input_id": "remote_control_channel_readback",
|
||||
"source": "read-public-gitea-actions-queue.py --json plus bounded 110 ssh probe",
|
||||
"required_when": "diagnose_remote_control_channel_phase",
|
||||
"purpose": (
|
||||
"classify TCP banner, node load, and publickey auth timeout "
|
||||
"without reading authorized_keys or asking for passwords"
|
||||
"classify 110 TCP/SSH reachability, bounded timeout, node load, "
|
||||
"and remote-control blocker without reading key material or "
|
||||
"asking for passwords"
|
||||
),
|
||||
**metadata_boundary,
|
||||
},
|
||||
{
|
||||
"input_id": "ssh_local_repair_output",
|
||||
"input_id": "local_console_recovery_output",
|
||||
"source": "recover-110-control-path-and-harbor-local.sh --check/apply",
|
||||
"required_when": "after_diagnose_ssh_publickey_phase",
|
||||
"purpose": "prove 110 ssh control-channel metadata and permissions",
|
||||
"required_when": "after_remote_control_channel_diagnosis_phase",
|
||||
"purpose": "prove 110 ssh control path, Harbor, and local console repair results",
|
||||
**metadata_boundary,
|
||||
},
|
||||
{
|
||||
@@ -596,6 +598,14 @@ def _queue_readback_normalizer_contract() -> list[dict[str, Any]]:
|
||||
],
|
||||
"learning_targets": ["km", "rag", "playbook", "mcp", "verifier"],
|
||||
},
|
||||
{
|
||||
"field_id": "latest_visible_harbor_110_repair_remote_control_channel_unavailable",
|
||||
"purpose": "classify whether 110 rejects or times out the bounded Harbor repair control channel",
|
||||
"writes_blockers": [
|
||||
"gitea_queue_harbor_110_remote_control_channel_unavailable",
|
||||
],
|
||||
"learning_targets": ["km", "rag", "playbook", "mcp", "verifier", "ai_agent"],
|
||||
},
|
||||
{
|
||||
"field_id": "current_cd_workflow_runner_readiness",
|
||||
"purpose": "classify whether current CD is waiting on a non110 runner label",
|
||||
|
||||
@@ -220,9 +220,11 @@ def _current_blocker_recovery(receipt: dict[str, Any]) -> dict[str, Any] | None:
|
||||
),
|
||||
"post_apply_verifier": str(classification.get("post_apply_verifier") or ""),
|
||||
"safe_next_step": str(classification.get("safe_next_step") or ""),
|
||||
"runtime_apply_required_on_110_local_console": (
|
||||
blocker_id == "harbor_110_repair_no_matching_runner"
|
||||
),
|
||||
"runtime_apply_required_on_110_local_console": blocker_id
|
||||
in {
|
||||
"harbor_110_repair_no_matching_runner",
|
||||
"harbor_110_remote_control_channel_unavailable",
|
||||
},
|
||||
"external_control_path_blocker": str(
|
||||
classification.get("ssh_auth_classification") or ""
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user