fix(platform): expose run correlation in list

This commit is contained in:
Your Name
2026-07-22 17:48:43 +08:00
parent 34d6f88f0c
commit 7b3b7786c7
6 changed files with 165 additions and 25 deletions

View File

@@ -11,10 +11,12 @@ import pytest
from src.db.awooop_models import AwoooPRunIdempotency, AwoooPRunState
from src.services import platform_runtime
from src.services.platform_operator_service import _run_list_item
from src.services.runtime_correlation import (
canonical_traceparent,
canonical_work_item_id,
correlation_for_run,
correlation_readback_for_run,
is_canonical_traceparent,
new_uuid7,
)
@@ -66,6 +68,28 @@ def test_runtime_correlation_rejects_invalid_project_id() -> None:
)
def test_runtime_correlation_readback_preserves_legacy_trace_truth() -> None:
run_id = UUID("019f88d5-f6c9-7a18-b764-df0df0cbe222")
canonical = correlation_readback_for_run(
"awoooi",
run_id,
canonical_traceparent(run_id),
)
legacy = correlation_readback_for_run("awoooi", run_id, "legacy-trace")
assert canonical == {
"trace_id": canonical_traceparent(run_id),
"work_item_id": f"platform-run:awoooi:{run_id}",
"correlation_status": "canonical",
}
assert legacy == {
"trace_id": "legacy-trace",
"work_item_id": f"platform-run:awoooi:{run_id}",
"correlation_status": "legacy_or_invalid_trace",
}
@pytest.mark.asyncio
async def test_run_status_exposes_canonical_identity_readback(
monkeypatch: pytest.MonkeyPatch,
@@ -86,6 +110,7 @@ async def test_run_status_exposes_canonical_identity_readback(
created_at=datetime(2026, 7, 22, tzinfo=UTC),
started_at=datetime(2026, 7, 22, tzinfo=UTC),
completed_at=None,
timeout_at=None,
)
class _Result:
@@ -110,6 +135,18 @@ async def test_run_status_exposes_canonical_identity_readback(
assert payload["trace_id"] == trace_id
assert payload["work_item_id"] == f"platform-run:awoooi:{run_id}"
assert payload["correlation_status"] == "canonical"
list_item = _run_list_item(
row,
remediation_summary=None,
callback_reply_summary=None,
)
assert {
key: list_item[key]
for key in ("trace_id", "work_item_id", "correlation_status")
} == {
key: payload[key]
for key in ("trace_id", "work_item_id", "correlation_status")
}
@pytest.mark.asyncio