feat(web): add IwoooS evidence readiness

This commit is contained in:
Your Name
2026-05-19 20:56:04 +08:00
parent e5a444ed9c
commit bcf7f6448c
11 changed files with 447 additions and 5 deletions

View File

@@ -164,6 +164,7 @@ def validate(root: Path) -> None:
"s2_10_iwooos_existing_frontend_surface_integration",
"s2_11_iwooos_surface_coverage_boundary_matrix",
"s2_12_iwooos_operator_journey_projection",
"s2_13_iwooos_owner_evidence_readiness_board",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -323,6 +324,15 @@ def validate(root: Path) -> None:
"wait_for_human_decision",
"prepare_followup_runtime_gate",
]
expected_iwooos_evidence_readiness_item_ids = [
"s4_9_gitea_owner_attestation_response",
"s4_10_github_target_owner_response",
"s4_11_refs_truth_owner_response",
"s4_12_workflow_secret_owner_response",
"s1_6_redacted_finding_ingestion",
"s1_6_kali_scan_scope_approval",
"s3_4_followup_runtime_gate",
]
assert_equal(
"iwooos_projection.summary.frontend_surface_coverage_group_count",
iwooos_projection["summary"]["frontend_surface_coverage_group_count"],
@@ -338,6 +348,11 @@ def validate(root: Path) -> None:
iwooos_projection["summary"]["operator_journey_step_count"],
len(expected_iwooos_journey_step_ids),
)
assert_equal(
"iwooos_projection.summary.owner_evidence_readiness_item_count",
iwooos_projection["summary"]["owner_evidence_readiness_item_count"],
len(expected_iwooos_evidence_readiness_item_ids),
)
iwooos_progress = iwooos_projection["progress"]
assert_equal("iwooos_projection.progress.overall_percent", iwooos_progress["overall_percent"], progress["overall_percent"])
assert_equal(
@@ -501,6 +516,45 @@ def validate(root: Path) -> None:
f"iwooos_projection.operator_journey_steps.{item['step_id']}.not_authorization",
item["not_authorization"],
)
iwooos_evidence_readiness = iwooos_projection["owner_evidence_readiness_items"]
assert_equal(
"iwooos_projection.owner_evidence_readiness_items.ids",
[item["item_id"] for item in iwooos_evidence_readiness],
expected_iwooos_evidence_readiness_item_ids,
)
assert_equal(
"iwooos_projection.owner_evidence_readiness_items.display_order",
[item["display_order"] for item in iwooos_evidence_readiness],
list(range(1, len(expected_iwooos_evidence_readiness_item_ids) + 1)),
)
for item in iwooos_evidence_readiness:
assert_equal(
f"iwooos_projection.owner_evidence_readiness_items.{item['item_id']}.display_mode",
item["display_mode"],
"readiness_only",
)
assert_equal(
f"iwooos_projection.owner_evidence_readiness_items.{item['item_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.owner_evidence_readiness_items.{item['item_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.owner_evidence_readiness_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.owner_evidence_readiness_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.owner_evidence_readiness_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
assert_equal(
"iwooos_projection.non_blocking_lane_ids",
iwooos_projection["non_blocking_lane_ids"],
@@ -522,6 +576,7 @@ def validate(root: Path) -> None:
"display_frontend_surface_coverage_matrix",
"display_frontend_surface_conflict_controls",
"display_operator_journey_steps",
"display_owner_evidence_readiness_board",
"display_evidence_refs",
"display_forbidden_actions",
]: