Go-live T05 + WP-0013/0014: first Phase and Control Plane completion

Accept WP-0008-T05 for trsl:phase:info-tech-canon-service-surface
(history/260805-T05-GoLive-info-tech-canon.md). Finish WP-0013 remission
automation and WP-0014 extension/breach/attestation Control Plane UI.
Update SCOPE, README, and pilot-candidate notes for pilot Stage 1.
This commit is contained in:
tegwick 2026-08-05 16:00:06 +02:00
parent f56d82f09a
commit 3064c0fe0c
18 changed files with 1676 additions and 72 deletions

View file

@ -300,10 +300,18 @@ def test_metrics_endpoint_unauthenticated_and_matches_offline_computation(
entries = client.get(f"/phases/{phase_id}/ledger").json()
as_of = metrics_module.datetime.fromisoformat(hosted["as_of"])
offline = metrics_module.compute_metrics(registered_phase, entries, as_of)
# Hosted metrics pass phase_manifests.registered_at as activated_at
# (WP-0013); offline recompute must use the same t0 for parity.
activated_at = None
if hosted["facts"].get("activated_at"):
activated_at = metrics_module.datetime.fromisoformat(hosted["facts"]["activated_at"])
offline = metrics_module.compute_metrics(
registered_phase, entries, as_of, activated_at=activated_at
)
assert hosted == offline
assert hosted["facts"]["cumulative_development_credit"] == 4000
assert hosted["facts"]["activated_at"] is not None
def test_attestation_not_available_before_conversion(client, pg_container, registered_phase):