chore(sre): reconcile host ansible readiness

This commit is contained in:
Your Name
2026-07-19 01:31:24 +08:00
parent fa3ffd01f9
commit b4b273fb51
2 changed files with 27 additions and 10 deletions

View File

@@ -116,11 +116,11 @@ def test_loader_returns_fixed_architecture_provider_order_and_agent99_bridge() -
"total_items": 18,
"by_priority": {"P0": 16, "P1": 2},
"by_status": {
"source_implemented_runtime_pending": 12,
"in_progress": 2,
"source_implemented_runtime_pending": 13,
"in_progress": 1,
"planned": 4,
},
"source_implemented_items": 12,
"source_implemented_items": 13,
"runtime_closed_items": 0,
"program_completion_percent": 0,
"asset_coverage_status": "partial",
@@ -134,6 +134,12 @@ def test_ledger_links_confirmed_runtime_gaps_without_false_closure() -> None:
assert "retired tombstone" in " ".join(items["AIA-SRE-002"]["confirmed_truth"])
assert "host120/host121" in " ".join(items["AIA-SRE-002"]["runtime_gaps"])
assert items["AIA-SRE-008"]["status"] == (
"source_implemented_runtime_pending"
)
assert "all 13 auto-apply" in " ".join(
items["AIA-SRE-008"]["confirmed_truth"]
)
assert "public-HTTP" in items["AIA-SRE-013"]["exit_condition"]
assert "Gate5 run" in " ".join(items["AIA-SRE-013"]["confirmed_truth"])
assert "Gemini" in " ".join(items["AIA-SRE-013"]["runtime_gaps"])
@@ -183,7 +189,7 @@ def test_projection_keeps_program_asset_and_runtime_truth_separate() -> None:
payload = load_sre_k3s_controlled_automation_work_items()
projection = build_sre_k3s_program_projection(payload)
assert projection["rollups"]["source_implemented_items"] == 12
assert projection["rollups"]["source_implemented_items"] == 13
assert projection["rollups"]["runtime_closed_items"] == 0
assert projection["rollups"]["program_completion_percent"] == 0
assert projection["domain_count"] == 8

View File

@@ -486,23 +486,34 @@
"title": "Host/systemd 專屬 Ansible executor inventory",
"owner_lane": "HostAutomation",
"risk": "high",
"status": "in_progress",
"status": "source_implemented_runtime_pending",
"dependencies": [
"AIA-SRE-004"
],
"source_refs": [
"infra/ansible/inventory/hosts.yml",
"apps/api/src/services/awooop_ansible_audit_service.py"
"infra/ansible/playbooks/111-ollama-fallback.yml",
"apps/api/src/services/awooop_ansible_audit_service.py",
"apps/api/src/services/awooop_ansible_check_mode_service.py",
"apps/api/src/services/host_ansible_controlled_executor.py",
"apps/api/src/services/awooop_ansible_post_verifier.py",
"apps/api/src/services/awooop_ansible_learning_writeback.py"
],
"executor": "host_ansible_executor",
"verifier": "host_runtime_independent_verifier",
"rollback": "catalog-specific compensating action",
"exit_condition": "every host action has one exact inventory host, runtime manager identity, check mode, bounded apply and postcondition; host111 uses its LaunchAgent catalog and is verified locally plus from host120/host121",
"confirmed_truth": [
"all 13 auto-apply and all 16 check-mode catalogs are registered with independent postconditions; the only no-check catalog is explicit break-glass restore-password-auth",
"Host111 Ollama uses one exact LaunchAgent catalog with host111 plus host120/host121 verifier origins and no Host110 fallback",
"check-mode and bounded apply are separate receipts, and executor return code alone cannot satisfy the post-verifier",
"inventory transport uses fixed strict host identities and does not permit accept-new host-key behavior"
],
"runtime_gaps": [
"host111 LaunchAgent catalog and sensor are source candidates without production apply receipt",
"host120 and host121 independent origin probes have no same-run production verifier receipt"
],
"next_action": "close broad catalogs, then check/apply the exact host111 LaunchAgent playbook and verify local, host120 and host121 readbacks plus the canonical sensor rule"
"next_action": "deploy one exact source revision through the authorized Agent99/Ansible release lane, then check/apply the Host111 LaunchAgent catalog and independently read back host111 plus host120/host121 and the canonical sensor; retain no-write or rollback terminal on any mismatch"
},
{
"id": "AIA-SRE-009",
@@ -861,11 +872,11 @@
"P1": 2
},
"by_status": {
"source_implemented_runtime_pending": 12,
"in_progress": 2,
"source_implemented_runtime_pending": 13,
"in_progress": 1,
"planned": 4
},
"source_implemented_items": 12,
"source_implemented_items": 13,
"runtime_closed_items": 0,
"program_completion_percent": 0,
"asset_coverage_status": "partial",