test(agent99): align Host112 recovery ledger

This commit is contained in:
Your Name
2026-07-19 12:54:53 +08:00
parent da59c89e1c
commit 978b711449
3 changed files with 13 additions and 6 deletions

View File

@@ -155,9 +155,9 @@ def test_loader_returns_fixed_architecture_provider_order_and_agent99_bridge() -
"active_or_completed_commitments": 68,
"by_status": {
"analysis_or_governance_complete": 6,
"source_implemented_runtime_pending": 25,
"source_implemented_runtime_pending": 26,
"in_progress": 32,
"not_started_or_no_current_evidence": 5,
"not_started_or_no_current_evidence": 4,
"superseded": 2,
},
"product_runtime_closed_commitments": 0,
@@ -168,6 +168,10 @@ def test_loader_returns_fixed_architecture_provider_order_and_agent99_bridge() -
assert commitments["AIA-CONV-012"]["title"].startswith("Claude API")
assert commitments["AIA-CONV-013"]["title"].startswith("Gemini API")
assert "Host112" in commitments["AIA-CONV-049"]["title"]
assert commitments["AIA-CONV-049"]["status"] == (
"source_implemented_runtime_pending"
)
assert "ru4vm4" not in commitments["AIA-CONV-049"]["title"]
assert commitments["AIA-CONV-036"]["status"] == (
"source_implemented_runtime_pending"
)

View File

@@ -68,7 +68,7 @@
{"id":"AIA-CONV-047","category":"knowledge_closure","status":"in_progress","title":"Executor 不得是唯一 verifier","linked_work_items":["AIA-SRE-014"],"terminal_condition":"每個 mutating domain 都有不同 owner/identity 的 independent verifier。"},
{"id":"AIA-CONV-048","category":"knowledge_closure","status":"source_implemented_runtime_pending","title":"Telegram、callback、learning receipt 使用 durable production readback","linked_work_items":["AIA-SRE-015","AIA-SRE-017"],"terminal_condition":"source flag、HTTP 200 或 configured state 不得取代 production durable acknowledgement。"},
{"id":"AIA-CONV-049","category":"infrastructure","status":"not_started_or_no_current_evidence","title":"查明 Host112 為何不開機並納入 ru4vm4 線索","linked_work_items":["AIA-SRE-006","AIA-SRE-009"],"terminal_condition":"Agent99/VMware typed check 取得 power、guest、Wazuh 與 boot verifier receipt不做任意命令。"},
{"id":"AIA-CONV-049","category":"infrastructure","status":"source_implemented_runtime_pending","title":"Host112 開機、Guest 與 Wazuh 狀態由 Agent99 VMware typed check、bounded recovery 與 verifier 閉環","linked_work_items":["AIA-SRE-006","AIA-SRE-009"],"terminal_condition":"同一 Agent99 run 取得 canonical VMX power、guest readiness、boot identity、Wazuh 與獨立 verifier durable receipt不做任意命令。"},
{"id":"AIA-CONV-050","category":"infrastructure","status":"source_implemented_runtime_pending","title":"Host110 Ollama 退役後清除 inventory、health check、fallback 與告警來源","linked_work_items":["AIA-SRE-002","AIA-SRE-004"],"terminal_condition":"保留 retired tombstone任何 process/proxy/listener/target/route recurrence 建 drift item。"},
{"id":"AIA-CONV-051","category":"infrastructure","status":"in_progress","title":"Host111 Ollama 補健康度、模型、LaunchAgent 與容量證據","linked_work_items":["AIA-SRE-002","AIA-SRE-008","AIA-SRE-013"],"terminal_condition":"host111 本機與 host120/121 獨立 origin 讀回 exact model、service 與 sensor。"},
{"id":"AIA-CONV-052","category":"infrastructure","status":"source_implemented_runtime_pending","title":"Host99 Agent99 串入 typed dispatch、主機操作、rollback 與 verifier","linked_work_items":["AIA-SRE-006","AIA-SRE-009","AIA-SRE-014"],"terminal_condition":"production allowlisted run 與 cross-domain denial 都有同 run callback/receipt。"},
@@ -98,9 +98,9 @@
"active_or_completed_commitments": 68,
"by_status": {
"analysis_or_governance_complete": 6,
"source_implemented_runtime_pending": 25,
"source_implemented_runtime_pending": 26,
"in_progress": 32,
"not_started_or_no_current_evidence": 5,
"not_started_or_no_current_evidence": 4,
"superseded": 2
},
"product_runtime_closed_commitments": 0

View File

@@ -516,7 +516,10 @@ def test_agent99_propagates_identity_and_requires_independent_receipt() -> None:
for parameter in ("AutomationRunId", "TraceId", "WorkItemId"):
assert f"[string]${parameter} = \"\"" in control
assert f'[string]`${parameter} = ""' in bootstrap
assert 'reason = "controlled_dispatch_identity_unsafe"' in control
assert '$identityRejectionReason = if (' in control
assert '"controlled_dispatch_identity_unsafe"' in control
assert '"controlled_dispatch_identity_invalid"' in control
assert "reason = $identityRejectionReason" in control
assert 'applyBlockedReason = "control_identity_incomplete_or_unsafe"' in function
assert '$dryRun.managerPreflightStatus -eq "ready"' in function
assert "-not $dryRun.artifactTransactionBlocked" in function