feat(agent): persist RAG and PlayBook trust receipts
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
This commit is contained in:
@@ -46,6 +46,11 @@ from src.services.awooop_ansible_check_mode_service import (
|
||||
run_failed_apply_check_mode_replay_once,
|
||||
run_pending_check_modes_once,
|
||||
)
|
||||
from src.services.awooop_ansible_learning_writeback import (
|
||||
canonical_ansible_playbook_id,
|
||||
ensure_ansible_rag_writeback,
|
||||
record_ansible_playbook_trust_writeback,
|
||||
)
|
||||
from src.services.awooop_truth_chain_service import (
|
||||
_ansible_playbook_roots,
|
||||
_ansible_runtime_readiness,
|
||||
@@ -1724,16 +1729,42 @@ def test_ansible_apply_receipt_backfill_includes_verifier_and_km_gaps() -> None:
|
||||
assert "_record_post_apply_verifier_and_learning" in source
|
||||
assert "runtime_stage_receipts" in source
|
||||
assert "_record_runtime_stage_receipts" in source
|
||||
assert "playbook_trust" in source
|
||||
assert "rag_writeback" in source
|
||||
assert "INTERVAL '5 minutes'" in source
|
||||
|
||||
|
||||
def test_ansible_learning_writeback_receipt_records_learning_service_call() -> None:
|
||||
def test_ansible_learning_writeback_uses_canonical_durable_service() -> None:
|
||||
source = inspect.getsource(_record_learning_writeback_receipt)
|
||||
|
||||
assert "record_verification_result" in source
|
||||
assert "ansible_learning_writeback_recorded" in source
|
||||
assert "learning_repository" in source
|
||||
assert "stores_raw_logs" in source
|
||||
assert "stores_secret_values" in source
|
||||
assert "record_ansible_playbook_trust_writeback" in source
|
||||
assert "canonical" in inspect.getsource(record_ansible_playbook_trust_writeback)
|
||||
assert "FOR UPDATE" in inspect.getsource(record_ansible_playbook_trust_writeback)
|
||||
assert "durable_write_acknowledged" in inspect.getsource(
|
||||
record_ansible_playbook_trust_writeback
|
||||
)
|
||||
|
||||
|
||||
def test_ansible_catalog_ids_map_to_stable_playbook_primary_keys() -> None:
|
||||
expected = {
|
||||
"ansible:110-devops": "PB-ANSIBLE-110-DEVOPS",
|
||||
"ansible:188-momo-backup-user": "PB-ANSIBLE-188-MOMO-BACKUP-USER",
|
||||
"ansible:188-ai-web": "PB-ANSIBLE-188-AI-WEB",
|
||||
}
|
||||
|
||||
assert {
|
||||
catalog_id: canonical_ansible_playbook_id(catalog_id)
|
||||
for catalog_id in expected
|
||||
} == expected
|
||||
assert all(len(playbook_id) <= 32 for playbook_id in expected.values())
|
||||
|
||||
|
||||
def test_ansible_rag_writeback_requires_embedding_readback() -> None:
|
||||
source = inspect.getsource(ensure_ansible_rag_writeback)
|
||||
|
||||
assert "ensure_entry_embedding" in source
|
||||
assert "embedding IS NOT NULL" in source
|
||||
assert "durable_write_acknowledged" in source
|
||||
|
||||
|
||||
def test_ansible_post_apply_km_writeback_is_idempotent_for_learning_backfill() -> None:
|
||||
@@ -1747,6 +1778,8 @@ def test_ansible_post_apply_km_writeback_is_idempotent_for_learning_backfill() -
|
||||
assert "FROM knowledge_entries" in source
|
||||
assert "path_type = :path_type" in source
|
||||
assert "KnowledgeDBRepository" in source
|
||||
assert "stage_id=\"rag_writeback\"" in source
|
||||
assert "stage_id=\"playbook_trust\"" in source
|
||||
|
||||
|
||||
def test_ansible_learning_writeback_operation_type_has_schema_migration() -> None:
|
||||
|
||||
Reference in New Issue
Block a user