Files
awoooi/scripts/security/security-mirror-progress-guard.py
Your Name f2d3abb967
Some checks failed
CD Pipeline / tests (push) Successful in 1m27s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
fix(web): add IwoooS progress integrity ribbon
2026-06-02 12:27:55 +08:00

17672 lines
791 KiB
Python
Executable File

#!/usr/bin/env python3
"""Validate the mirror-only security progress guardrails.
This script is intentionally read-only. It checks committed snapshots only and
does not call GitHub, Gitea, Kali, AwoooP, or any runtime API.
"""
from __future__ import annotations
import argparse
import json
from pathlib import Path
from typing import Any
def load_json(path: Path) -> dict[str, Any]:
return json.loads(path.read_text(encoding="utf-8"))
def assert_equal(label: str, actual: Any, expected: Any) -> None:
if actual != expected:
raise SystemExit(f"BLOCKED {label}: expected {expected!r}, got {actual!r}")
def assert_false(label: str, actual: Any) -> None:
assert_equal(label, actual, False)
def assert_true(label: str, actual: Any) -> None:
assert_equal(label, actual, True)
def assert_contains(label: str, values: list[Any], expected: Any) -> None:
if expected not in values:
raise SystemExit(f"BLOCKED {label}: missing {expected!r}")
def assert_text_contains(label: str, text: str, expected: str) -> None:
if expected not in text:
raise SystemExit(f"BLOCKED {label}: missing {expected!r}")
def assert_text_not_contains(label: str, text: str, forbidden: str) -> None:
if forbidden in text:
raise SystemExit(f"BLOCKED {label}: forbidden {forbidden!r}")
def assert_text_before(label: str, text: str, first: str, second: str) -> None:
first_index = text.find(first)
second_index = text.find(second)
if first_index == -1:
raise SystemExit(f"BLOCKED {label}: missing first marker {first!r}")
if second_index == -1:
raise SystemExit(f"BLOCKED {label}: missing second marker {second!r}")
if first_index >= second_index:
raise SystemExit(f"BLOCKED {label}: expected {first!r} before {second!r}")
def collect_string_values(value: Any) -> list[str]:
if isinstance(value, str):
return [value]
if isinstance(value, list):
collected: list[str] = []
for item in value:
collected.extend(collect_string_values(item))
return collected
if isinstance(value, dict):
collected = []
for item in value.values():
collected.extend(collect_string_values(item))
return collected
return []
def validate(root: Path) -> None:
security_dir = root / "docs" / "security"
manifest = load_json(security_dir / "security-supply-chain-contract-manifest.snapshot.json")
readiness = load_json(security_dir / "security-mirror-readiness.snapshot.json")
rollup = load_json(security_dir / "security-mirror-status-rollup.snapshot.json")
intake = load_json(security_dir / "security-mirror-intake-plan.snapshot.json")
event_sample = load_json(security_dir / "security-mirror-event-sample.snapshot.json")
route = load_json(security_dir / "security-mirror-route.snapshot.json")
acceptance = load_json(security_dir / "security-mirror-acceptance.snapshot.json")
dry_run = load_json(security_dir / "security-mirror-dry-run.snapshot.json")
owner_rollup = load_json(security_dir / "source-control-owner-response-validation-rollup.snapshot.json")
primary_gate = load_json(security_dir / "source-control-primary-readiness-gate.snapshot.json")
rollout_policy = load_json(security_dir / "security-rollout-policy.snapshot.json")
iwooos_projection = load_json(security_dir / "iwooos-posture-projection.snapshot.json")
s49_request_draft = load_json(security_dir / "gitea-inventory-owner-attestation-request-draft.snapshot.json")
kali_status = load_json(security_dir / "kali-integration-status.snapshot.json")
iwooos_projection_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "iwooos" / "page.tsx"
).read_text(encoding="utf-8")
security_compliance_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "security-compliance" / "page.tsx"
).read_text(encoding="utf-8")
awooop_home_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "page.tsx"
).read_text(encoding="utf-8")
awooop_work_items_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "work-items" / "page.tsx"
).read_text(encoding="utf-8")
awooop_tenants_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "tenants" / "page.tsx"
).read_text(encoding="utf-8")
awooop_runs_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "runs" / "page.tsx"
).read_text(encoding="utf-8")
awooop_run_detail_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "runs" / "[run_id]" / "page.tsx"
).read_text(encoding="utf-8")
awooop_approvals_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "approvals" / "page.tsx"
).read_text(encoding="utf-8")
awooop_approval_detail_page = (
root
/ "apps"
/ "web"
/ "src"
/ "app"
/ "[locale]"
/ "awooop"
/ "approvals"
/ "[run_id]"
/ "page.tsx"
).read_text(encoding="utf-8")
awooop_contracts_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "awooop" / "contracts" / "page.tsx"
).read_text(encoding="utf-8")
security_panel = (root / "apps" / "web" / "src" / "components" / "panels" / "SecurityPanel.tsx").read_text(
encoding="utf-8"
)
compliance_panel = (
root / "apps" / "web" / "src" / "components" / "panels" / "CompliancePanel.tsx"
).read_text(encoding="utf-8")
standalone_security_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "security" / "page.tsx"
).read_text(encoding="utf-8")
standalone_compliance_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "compliance" / "page.tsx"
).read_text(encoding="utf-8")
alerts_page = (root / "apps" / "web" / "src" / "app" / "[locale]" / "alerts" / "page.tsx").read_text(
encoding="utf-8"
)
authorizations_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "authorizations" / "page.tsx"
).read_text(encoding="utf-8")
governance_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "governance" / "page.tsx"
).read_text(encoding="utf-8")
alert_operation_logs_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "alert-operation-logs" / "page.tsx"
).read_text(encoding="utf-8")
code_review_page = (
root / "apps" / "web" / "src" / "app" / "[locale]" / "code-review" / "page.tsx"
).read_text(encoding="utf-8")
errors_panel = (root / "apps" / "web" / "src" / "components" / "panels" / "ErrorsPanel.tsx").read_text(
encoding="utf-8"
)
iwooos_bridge = (
root / "apps" / "web" / "src" / "components" / "security" / "iwooos-read-only-bridge.tsx"
).read_text(encoding="utf-8")
sidebar = (root / "apps" / "web" / "src" / "components" / "layout" / "sidebar.tsx").read_text(
encoding="utf-8"
)
command_palette = (
root / "apps" / "web" / "src" / "components" / "command-palette" / "CommandPalette.tsx"
).read_text(encoding="utf-8")
web_messages_zh = load_json(root / "apps" / "web" / "messages" / "zh-TW.json")
web_messages_en = load_json(root / "apps" / "web" / "messages" / "en.json")
manifest_count = manifest["contract_count"]
readiness_summary = readiness["summary"]
rollup_summary = rollup["summary"]
assert_equal("manifest.contract_count", manifest_count, 36)
assert_equal("readiness.total_contracts", readiness_summary["total_contracts"], manifest_count)
assert_equal("rollup.total_contracts", rollup_summary["total_contracts"], manifest_count)
assert_equal("rollup.ready_for_mirror_count", rollup_summary["ready_for_mirror_count"], 33)
assert_equal("rollup.partial_ready_count", rollup_summary["partial_ready_count"], 2)
assert_equal("rollup.contract_only_count", rollup_summary["contract_only_count"], 1)
assert_equal("rollup.blocked_count", rollup_summary["blocked_count"], 0)
assert_contains(
"manifest.contracts",
[item["contract"] for item in manifest["contracts"]],
"iwooos_posture_projection_v1",
)
assert_contains(
"readiness.contract_readiness",
[item["contract"] for item in readiness["contract_readiness"]],
"iwooos_posture_projection_v1",
)
assert_contains(
"rollup.source_indexes",
rollup["source_indexes"],
"docs/security/iwooos-posture-projection.snapshot.json",
)
assert_equal("event_sample.payload_summary.total_contracts", event_sample["payload_summary"]["total_contracts"], manifest_count)
assert_equal(
"event_sample.payload_summary.ready_for_mirror_count",
event_sample["payload_summary"]["ready_for_mirror_count"],
readiness_summary["ready_for_mirror_count"],
)
assert_contains(
"event_sample.evidence_refs",
event_sample["evidence_refs"],
"docs/security/IWOOOS-POSTURE-PROJECTION.md",
)
assert_equal("route.summary.total_contracts", route["summary"]["total_contracts"], manifest_count)
route_contracts = sorted({contract for group in route["route_groups"] for contract in group["contracts"]})
assert_equal("route.contract_coverage", route_contracts, sorted(item["contract"] for item in manifest["contracts"]))
assert_contains(
"intake.source_indexes",
intake["source_indexes"],
"docs/security/iwooos-posture-projection.snapshot.json",
)
intake_contracts = [contract for wave in intake["intake_waves"] for contract in wave["contracts"]]
assert_contains("intake.contracts", intake_contracts, "iwooos_posture_projection_v1")
assert_text_contains("sidebar.iwooos_security_unified_entry", sidebar, "id: 'iwooos-security'")
assert_text_contains("sidebar.iwooos_security_label", sidebar, "labelKey: 'iwooos'")
assert_text_not_contains("sidebar.iwooos_security_duplicate_label", sidebar, "labelKey: 'iwooosSecurityCompliance'")
assert_text_contains("sidebar.security_compliance_alias", sidebar, "aliases: ['/security-compliance']")
assert_text_not_contains("sidebar.duplicate_security_compliance_entry", sidebar, "id: 'security-compliance'")
assert_text_contains("command_palette.iwooos_entry", command_palette, "id: 'iwooos'")
assert_text_contains("command_palette.iwooos_route", command_palette, "nav('/iwooos')")
assert_text_contains("command_palette.security_keyword", command_palette, "'安全合規'")
assert_text_not_contains("command_palette.legacy_security_entry", command_palette, "id: 'security'")
assert_text_not_contains("command_palette.legacy_security_compliance_route", command_palette, "nav('/security-compliance')")
assert_equal(
"web_messages.zh-TW.nav.iwooos",
web_messages_zh["nav"]["iwooos"],
"IwoooS",
)
assert_equal(
"web_messages.en.nav.iwooos",
web_messages_en["nav"]["iwooos"],
"IwoooS",
)
assert_equal("web_messages.en.nav.traditional_chinese_mirror", web_messages_en["nav"], web_messages_zh["nav"])
assert_equal("web_messages.en.iwooos.traditional_chinese_mirror", web_messages_en["iwooos"], web_messages_zh["iwooos"])
assert_equal(
"web_messages.en.full_site_traditional_chinese_mirror",
web_messages_en,
web_messages_zh,
)
product_voice_sections = [
web_messages_zh["dashboard"]["homeCommandMap"],
web_messages_zh["dashboard"]["automationDelivery"],
web_messages_zh["dashboard"]["automationDiagrams"],
web_messages_zh["securityCompliance"],
web_messages_zh["iwooos"],
]
iwooos_visible_text = "\n".join(collect_string_values(web_messages_zh["iwooos"]))
product_visible_text = "\n".join(
text for section in product_voice_sections for text in collect_string_values(section)
)
for forbidden in [
"S2.",
"回應「",
"專業建議",
"本輪",
"這裡",
"到底",
"空泛",
"不再只",
"卡在哪",
"初期框架",
"Claude",
"Codex",
"交辦",
"對話",
"不用讀",
"不用翻對話",
"使用者最",
"使用者可以",
"使用者能",
"使用者已",
"使用者現在",
"使用者不用",
"使用者感覺",
"使用者第一眼",
"使用者先",
"讓使用者",
"給使用者",
"最關心",
"抱怨",
"一堆文字",
"不要只是",
"長頁面",
"不是再加文字",
"目前到底",
"真正卡點",
"目前卡點",
"主要卡點",
]:
assert_text_not_contains("web_messages.zh-TW.product_voice", product_visible_text, forbidden)
iwooos_first_screen_text = "\n".join(
collect_string_values(
{
"subtitle": web_messages_zh["iwooos"]["subtitle"],
"boundary": web_messages_zh["iwooos"]["boundary"],
**{
key: web_messages_zh["iwooos"][key]
for key in [
"progressIntegrityRibbon",
"executiveSnapshot",
"focusDeck",
"immediateVisualMesh",
"topologyAtlas",
"decisionRunway",
"gateRadar",
"visualCommandDashboard",
"professionalSecurityExperience",
"concreteWorkSnapshot",
"concreteSecurityWorkMap",
"informationArchitecture",
"metrics",
]
},
}
)
)
for forbidden in [
"Gate",
"evidence",
"workflow",
"Runtime",
"Primary",
"owner evidence",
"owner ",
"reviewer acceptance",
"reviewer",
"source-control mutation",
"runtime gate",
"runtime ",
"Runtime Gate",
"Runtime 動作",
"Runtime 阻擋",
"Gate 0",
"schema",
"contract-only",
"partial",
"Session",
"drill-down",
"refs",
"repo",
"source-control",
"readiness",
"queue/candidate/assigned",
]:
assert_text_not_contains(
"web_messages.zh-TW.iwooos.first_screen_traditional_chinese",
iwooos_first_screen_text,
forbidden,
)
for text in [
'id="iwooos-decision-gate-visuals"',
'id="iwooos-scope-evidence-visuals"',
"decisionGateVisuals",
"scopeEvidenceVisuals",
"iwooos-decision-gate-visuals",
"iwooos-scope-evidence-visuals",
]:
assert_text_contains("iwooos_projection_page.progressive_disclosure_groups", iwooos_projection_page, text)
for key in ["decisionGateVisuals", "scopeEvidenceVisuals"]:
assert_contains(
"web_messages.zh-TW.iwooos.informationArchitecture.progressive_disclosure",
list(web_messages_zh["iwooos"]["informationArchitecture"].keys()),
key,
)
for text in [
"IwoooSVisualCommandDashboard",
'data-testid="iwooos-visual-command-dashboard"',
"visualDashboardMetrics",
"visualDashboardNodes",
"visualDashboardGates",
"conic-gradient",
"visualCommandDashboard",
]:
assert_text_contains("iwooos_projection_page.visual_command_dashboard", iwooos_projection_page, text)
for key in [
"eyebrow",
"title",
"subtitle",
"metrics",
"nodes",
"gateMatrix",
"gates",
"drilldown",
]:
assert_contains(
"web_messages.zh-TW.iwooos.visualCommandDashboard",
list(web_messages_zh["iwooos"]["visualCommandDashboard"].keys()),
key,
)
for key in ["overall", "framework", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.visualCommandDashboard.metrics",
list(web_messages_zh["iwooos"]["visualCommandDashboard"]["metrics"].keys()),
key,
)
for key in ["awoooiCore", "websites", "vibeWork", "kali112", "devHosts", "githubPrimary", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.visualCommandDashboard.nodes",
list(web_messages_zh["iwooos"]["visualCommandDashboard"]["nodes"].keys()),
key,
)
for key in ["kaliMaintenance", "ownerResponse", "githubPrimary", "runtimeExecution"]:
assert_contains(
"web_messages.zh-TW.iwooos.visualCommandDashboard.gates",
list(web_messages_zh["iwooos"]["visualCommandDashboard"]["gates"].keys()),
key,
)
for text in [
"IwoooSProfessionalSecurityExperience",
'data-testid="iwooos-professional-security-experience"',
"IwoooSAttackPathVisual",
"IwoooSAssetHeatVisual",
"IwoooSResponseFlowVisual",
"visualExperienceTabs",
"attackPathNodes",
"assetHeatCells",
"responseFlowSteps",
"role=\"tab\"",
"aria-selected",
]:
assert_text_contains("iwooos_projection_page.professional_security_experience", iwooos_projection_page, text)
for key in [
"eyebrow",
"title",
"subtitle",
"tabsLabel",
"tabs",
"attackPath",
"assetHeat",
"responseFlow",
]:
assert_contains(
"web_messages.zh-TW.iwooos.professionalSecurityExperience",
list(web_messages_zh["iwooos"]["professionalSecurityExperience"].keys()),
key,
)
for key in ["attackPath", "assetHeat", "responseFlow"]:
assert_contains(
"web_messages.zh-TW.iwooos.professionalSecurityExperience.tabs",
list(web_messages_zh["iwooos"]["professionalSecurityExperience"]["tabs"].keys()),
key,
)
for key in ["publicWeb", "apiRuntime", "projectSource", "devHosts", "kali112", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.professionalSecurityExperience.attackPath.nodes",
list(web_messages_zh["iwooos"]["professionalSecurityExperience"]["attackPath"]["nodes"].keys()),
key,
)
for key in [
"awoooi",
"awooop",
"iwooos",
"websites",
"vibeWork",
"kali112",
"devHosts",
"githubPrimary",
"runtimeActions",
]:
assert_contains(
"web_messages.zh-TW.iwooos.professionalSecurityExperience.assetHeat.cells",
list(web_messages_zh["iwooos"]["professionalSecurityExperience"]["assetHeat"]["cells"].keys()),
key,
)
for key in ["observe", "triage", "evidence", "approval", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.professionalSecurityExperience.responseFlow.steps",
list(web_messages_zh["iwooos"]["professionalSecurityExperience"]["responseFlow"]["steps"].keys()),
key,
)
for text in [
"IwoooSConcreteWorkSnapshot",
'data-testid="iwooos-concrete-work-snapshot"',
"iwooosConcreteSecurityWorkStreams.map",
"concreteWorkSnapshot",
"IwoooSConcreteWorkSnapshot />",
]:
assert_text_contains("iwooos_projection_page.concrete_work_snapshot", iwooos_projection_page, text)
for key in ["eyebrow", "title", "subtitle", "summary"]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteWorkSnapshot",
list(web_messages_zh["iwooos"]["concreteWorkSnapshot"].keys()),
key,
)
for key in ["visible", "delivered", "nextGate", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteWorkSnapshot.summary",
list(web_messages_zh["iwooos"]["concreteWorkSnapshot"]["summary"].keys()),
key,
)
for key in [
"eyebrow",
"title",
"subtitle",
"maintenanceGateLabel",
"maintenanceGate",
"nextEvidenceLabel",
"nextEvidence",
"boundaryTitle",
"boundaryIntro",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.kaliMaintenanceReadiness",
list(web_messages_zh["iwooos"]["kaliMaintenanceReadiness"].keys()),
key,
)
for key in [
"readOnlySnapshot",
"upgradablePackages",
"failedSystemdUnits",
"runtimeGate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.kaliMaintenanceReadiness.items",
list(web_messages_zh["iwooos"]["kaliMaintenanceReadiness"]["items"].keys()),
key,
)
for text in [
"KaliMaintenanceReadinessBoard",
'data-testid="iwooos-kali-maintenance-readiness-board"',
"kali_112_upgradable_package_count=1994",
"kali_112_failed_systemd_unit_count=1",
"kali_112_full_upgrade_authorized=false",
"kali_112_reboot_authorized=false",
"kali_112_package_update_executed=false",
"kali_112_host_reboot_executed=false",
"kali_112_active_scan_executed=false",
"kali_112_runtime_execution_authorized=false",
]:
assert_text_contains("iwooos_projection_page.kali_maintenance_readiness", iwooos_projection_page, text)
progress = rollup["progress_estimate"]
assert_equal("progress.overall_percent", progress["overall_percent"], 61)
assert_equal("progress.framework_percent_min", progress["framework_percent_min"], 86)
assert_equal("progress.framework_percent_max", progress["framework_percent_max"], 88)
assert_equal("progress.runtime_landing_percent_min", progress["runtime_landing_percent_min"], 40)
assert_equal("progress.runtime_landing_percent_max", progress["runtime_landing_percent_max"], 45)
assert_true("progress.not_authorization", progress["not_authorization"])
progress_display_policy = rollup["progress_display_policy"]
assert_equal("progress_display_policy.headline_percent", progress_display_policy["headline_percent"], 61)
assert_equal(
"progress_display_policy.headline_status",
progress_display_policy["headline_status"],
"reviewed_after_awooop_read_only_production_landing_evidence",
)
assert_true("progress_display_policy.recent_micro_progress_visible", progress_display_policy["recent_micro_progress_visible"])
assert_false(
"progress_display_policy.runtime_execution_authorized",
progress_display_policy["runtime_execution_authorized"],
)
assert_true("progress_display_policy.not_authorization", progress_display_policy["not_authorization"])
progress_delta_ledger = rollup["progress_delta_ledger"]
expected_delta_ids = [
"s4_10_owner_response_request_packet",
"s4_10_owner_response_template_status_ledger",
"s4_10_owner_response_audit_event_templates",
"s4_10_owner_response_redaction_examples",
"s4_10_owner_response_collection_checks",
"s4_10_owner_response_intake_preflight_checks",
"s4_11_ref_truth_owner_response_request_packet",
"s4_11_ref_truth_owner_response_template_status_ledger",
"s4_11_ref_truth_owner_response_audit_event_templates",
"s4_11_ref_truth_owner_response_redaction_examples",
"s4_11_ref_truth_owner_response_collection_checks",
"s4_11_ref_truth_owner_response_intake_preflight_checks",
"s4_12_workflow_secret_name_owner_response_request_packet",
"s4_12_workflow_secret_name_owner_response_template_status_ledger",
"s4_12_workflow_secret_name_owner_response_audit_event_templates",
"s4_12_workflow_secret_name_owner_response_redaction_examples",
"s4_12_workflow_secret_name_owner_response_collection_checks",
"s4_12_workflow_secret_name_owner_response_intake_preflight_checks",
"s4_13_owner_response_validation_evidence_routing_rules",
"s4_13_owner_response_validation_display_sections",
"s4_13_owner_response_validation_state_transition_rules",
"s4_13_owner_response_validation_reviewer_checklist",
"s4_13_owner_response_validation_reviewer_outcome_lanes",
"s4_13_owner_response_validation_reviewer_audit_event_templates",
"s4_13_owner_response_validation_reviewer_audit_display_sections",
"s4_13_owner_response_validation_reviewer_audit_collection_checks",
"s4_13_owner_response_validation_reviewer_audit_redaction_examples",
"s4_13_owner_response_validation_reviewer_audit_retention_rules",
"s4_13_owner_response_validation_reviewer_audit_retention_checks",
"s4_13_owner_response_validation_reviewer_audit_handoff_packets",
"s4_13_owner_response_validation_reviewer_audit_handoff_checks",
"s4_13_owner_response_validation_parallel_session_sync_checks",
"s4_13_owner_response_validation_parallel_session_conflict_lanes",
"s4_13_owner_response_validation_parallel_session_recovery_checks",
"s4_13_owner_response_validation_parallel_session_recovery_outcome_lanes",
"s1_3_low_friction_non_blocking_escalation_lanes",
"s2_8_iwooos_frontend_posture_entry",
"s2_9_iwooos_posture_projection_contract",
"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",
"s2_14_iwooos_host_coverage_view",
"s2_15_iwooos_host_action_gate_matrix",
"s2_16_iwooos_host_evidence_readiness_board",
"s2_17_iwooos_host_evidence_collection_order",
"s2_18_iwooos_host_evidence_intake_preflight",
"s2_19_iwooos_host_evidence_review_outcome_lanes",
"s2_20_iwooos_host_evidence_review_handoff_packets",
"s2_21_iwooos_host_evidence_reviewer_checklist",
"s2_22_iwooos_host_evidence_reviewer_outcome_lanes",
"s2_23_iwooos_host_owner_decision_candidate_packets",
"s2_24_iwooos_host_owner_decision_review_checklist",
"s2_25_iwooos_host_owner_decision_review_outcome_lanes",
"s2_26_iwooos_host_owner_decision_record_draft_packets",
"s2_27_iwooos_host_owner_decision_record_draft_review_checklist",
"s2_28_iwooos_host_owner_decision_record_draft_review_outcome_lanes",
"s2_29_iwooos_host_owner_decision_record_writeup_packets",
"s2_30_iwooos_host_owner_decision_record_writeup_review_checklist",
"s2_31_iwooos_host_owner_decision_record_writeup_review_outcome_lanes",
"s2_32_iwooos_host_owner_decision_record_formal_candidate_packets",
"s2_33_iwooos_host_owner_decision_record_formal_candidate_review_checklist",
"s2_34_iwooos_host_owner_decision_record_formal_candidate_review_outcome_lanes",
"s2_35_iwooos_host_owner_decision_record_formal_record_queue_packets",
"s2_36_iwooos_host_owner_decision_record_formal_record_queue_review_checklist",
"s2_37_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lanes",
"s2_38_iwooos_host_owner_decision_record_human_handoff_readiness_packets",
"s2_39_iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist",
"s2_40_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes",
"s2_41_iwooos_host_owner_decision_record_human_record_owner_review_candidate_packets",
"s2_42_iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist",
"s2_43_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes",
"s2_44_iwooos_host_owner_decision_record_human_record_owner_review_preparation_packets",
"s2_45_iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist",
"s2_46_iwooos_progress_acceleration_lanes",
"s2_47_iwooos_owner_response_next_action_focus",
"s2_48_iwooos_s4_9_owner_response_preflight",
"s2_49_iwooos_s4_9_owner_response_request_templates",
"s2_50_iwooos_progress_hold_movement_gates",
"s2_51_iwooos_awooop_read_only_landing_readiness",
"s2_52_iwooos_awooop_cross_session_handoff_packets",
"s2_53_awooop_home_iwooos_security_mirror_candidate",
"s2_54_awooop_work_items_iwooos_security_mirror_candidate",
"s2_55_awooop_approvals_iwooos_owner_response_gate_candidate",
"s2_56_awooop_contracts_iwooos_security_contract_candidate",
"s2_57_awooop_tenants_iwooos_tenant_scope_candidate",
"s2_58_awooop_runs_iwooos_run_state_candidate",
"s2_59_existing_security_pages_iwooos_reverse_bridge",
"s2_60_security_control_pages_iwooos_reverse_bridge",
"s2_61_audit_engineering_pages_iwooos_reverse_bridge",
"s2_62_iwooos_frontend_surface_connection_board",
"s2_63_iwooos_github_primary_readiness_board",
"s2_64_awooop_work_items_github_primary_readiness_candidate",
"s2_65_awooop_contracts_github_primary_readiness_candidate",
"s2_66_awooop_approvals_github_primary_readiness_boundary",
"s2_67_awooop_home_github_primary_readiness_summary",
"s2_68_awooop_tenants_github_primary_readiness_scope",
"s2_69_awooop_runs_github_primary_readiness_boundary",
"s2_70_traditional_chinese_security_surface_wording_guard",
"s2_71_awooop_run_detail_traditional_chinese_wording_guard",
"s2_72_awooop_home_owner_response_validation_rollup",
"s2_73_awooop_work_items_owner_response_validation_candidate",
"s2_74_awooop_contracts_owner_response_validation_candidate",
"s2_75_awooop_approvals_owner_response_validation_boundary",
"s2_76_awooop_tenants_owner_response_validation_scope",
"s2_77_awooop_runs_owner_response_validation_boundary",
"s2_78_awooop_run_detail_owner_response_validation_boundary",
"s2_79_awooop_approval_detail_owner_response_validation_boundary",
"s2_80_iwooos_awooop_route_coverage_board",
"s2_81_iwooos_gradual_convergence_roadmap",
"s2_82_iwooos_owner_response_collection_board",
"s2_83_iwooos_owner_response_intake_safety_board",
"s2_84_iwooos_owner_response_review_outcome_board",
"s2_85_iwooos_owner_response_human_decision_queue_board",
"s2_86_iwooos_owner_response_decision_record_draft_guard_board",
"s2_87_iwooos_owner_response_formal_record_candidate_preflight_board",
"s2_88_iwooos_owner_response_formal_record_candidate_outcome_board",
"s2_89_iwooos_owner_response_formal_record_owner_handoff_board",
"s2_90_iwooos_owner_response_formal_record_owner_handoff_review_board",
"s2_91_iwooos_owner_response_formal_record_owner_handoff_review_outcome_board",
"s2_92_iwooos_owner_response_formal_record_owner_review_preparation_board",
"s2_93_iwooos_owner_response_formal_record_owner_review_checklist_board",
"s2_94_iwooos_owner_response_formal_record_owner_review_outcome_board",
"s2_95_iwooos_owner_response_formal_record_owner_assignment_preparation_board",
"s2_96_iwooos_owner_response_formal_record_owner_assignment_checklist_board",
"s2_97_iwooos_owner_response_formal_record_owner_assignment_outcome_board",
"s2_98_iwooos_owner_response_formal_record_owner_assignment_decision_preparation_board",
"s2_99_iwooos_owner_response_formal_record_owner_assignment_decision_checklist_board",
"s2_100_iwooos_headline_movement_acceptance_gate_board",
"s2_101_iwooos_s49_owner_response_work_order_board",
"s2_102_iwooos_s49_owner_response_envelope_board",
"s2_103_iwooos_s49_owner_response_envelope_preflight_board",
"s2_104_iwooos_s49_owner_response_envelope_preflight_outcome_board",
"s2_105_iwooos_s49_owner_response_request_draft_board",
"s2_106_iwooos_s49_owner_response_dispatch_flow_board",
"s2_107_security_compliance_iwooos_frontstage_bridge",
"s2_108_iwooos_frontstage_security_entry_roles",
"s2_109_security_compliance_frontstage_route_role_map",
"s2_110_security_compliance_low_friction_rollout_ladder",
"s2_111_iwooos_low_friction_rollout_ladder",
"s2_112_iwooos_low_friction_next_action_boundary",
"s2_113_iwooos_progress_movement_signal_strip",
"s2_114_iwooos_first_progress_unlock_path",
"s2_115_iwooos_first_unlock_evidence_packet",
"s2_116_iwooos_first_unlock_evidence_packet_preflight_outcomes",
"s2_117_iwooos_first_unlock_evidence_packet_supplement_path",
"s2_118_iwooos_first_unlock_evidence_packet_supplement_pre_review",
"s2_119_iwooos_first_unlock_evidence_packet_supplement_pre_review_outcomes",
"s2_120_iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation",
"s2_121_iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight",
"s2_122_iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcomes",
"s2_123_iwooos_concrete_security_work_map",
"s2_124_iwooos_concrete_security_delivery_checklist",
"s2_125_iwooos_concrete_security_blocker_resolution",
"s2_126_iwooos_three_axis_product_progress",
"s2_127_iwooos_product_rollout_wave_ledger",
"s2_128_iwooos_product_rollout_acceptance_gates",
"s2_129_iwooos_product_rollout_acceptance_outcomes",
"s2_130_iwooos_product_evidence_wiring_map",
"s2_131_iwooos_product_evidence_wiring_preflight",
"s2_132_iwooos_product_evidence_wiring_preflight_outcomes",
"s2_133_iwooos_product_evidence_wiring_preflight_recovery_ledger",
"s2_134_iwooos_product_evidence_wiring_preflight_retry_gates",
"s2_135_iwooos_product_evidence_wiring_preflight_retry_outcomes",
"s2_136_iwooos_product_evidence_wiring_preflight_retry_review_candidate",
"s2_137_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight",
"s2_138_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_outcomes",
"s2_139_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_ledger",
"s2_140_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_retry_gates",
"s2_141_iwooos_all_product_coverage_snapshot",
"s2_142_iwooos_first_unlock_path_first_layer",
"s2_143_iwooos_command_map_first_layer",
"s2_144_iwooos_command_palette_security_entry_unified",
"s2_145_iwooos_first_layer_focus_deck",
"s2_146_iwooos_immediate_visual_mesh",
"s2_147_iwooos_gate_radar_first_layer",
"s2_148_iwooos_professional_topology_atlas",
"s2_149_iwooos_topology_node_drilldown",
"s2_150_iwooos_topology_path_explorer",
"s2_151_iwooos_topology_intelligence_deck",
"s2_152_iwooos_decision_runway",
"s2_153_iwooos_executive_snapshot",
"s2_154_iwooos_first_screen_language_polish",
"s2_155_iwooos_first_layer_progressive_disclosure",
"s2_156_iwooos_first_screen_depth_map",
"s2_157_iwooos_progress_evidence_rail",
"s2_158_iwooos_evidence_unlock_queue",
"s2_159_iwooos_s49_request_draft_package",
"s2_160_iwooos_s49_request_draft_frontstage_radar",
"s2_161_iwooos_s49_request_draft_detail_layer",
"s2_162_iwooos_s49_owner_response_intake_first_layer",
"s2_163_iwooos_s49_owner_response_intake_next_gates",
"s2_164_iwooos_s49_owner_response_intake_blocker_focus",
"s2_165_iwooos_s49_owner_response_delivery_cards",
"s2_166_iwooos_progress_integrity_ribbon",
]
assert_equal(
"progress_delta_ledger.delta_ids",
[item["delta_id"] for item in progress_delta_ledger],
expected_delta_ids,
)
assert_equal(
"progress_delta_ledger.display_order",
[item["display_order"] for item in progress_delta_ledger],
list(range(1, len(expected_delta_ids) + 1)),
)
for item in progress_delta_ledger:
assert_equal(f"progress_delta_ledger.{item['delta_id']}.progress_axis", item["progress_axis"], "framework_detail")
assert_equal(f"progress_delta_ledger.{item['delta_id']}.headline_percent_delta", item["headline_percent_delta"], 0)
assert_true(f"progress_delta_ledger.{item['delta_id']}.framework_delta_visible", item["framework_delta_visible"])
assert_false(f"progress_delta_ledger.{item['delta_id']}.runtime_delta", item["runtime_delta"])
assert_false(f"progress_delta_ledger.{item['delta_id']}.execution_authorized", item["execution_authorized"])
assert_true(f"progress_delta_ledger.{item['delta_id']}.not_authorization", item["not_authorization"])
assert_false("rollup.runtime_execution_authorized", rollup["runtime_execution_authorized"])
assert_equal("rollup.active_runtime_gate_count", rollup_summary["active_runtime_gate_count"], 0)
assert_false("rollup.runtime_actions_executed", rollup_summary["runtime_actions_executed"])
assert_false("rollup.payloads_ingested", rollup_summary["payloads_ingested"])
assert_equal("rollup.github_primary_ready_count", rollup_summary["github_primary_ready_count"], 0)
assert_equal("rollup.owner_response_validation_received_count", rollup_summary["owner_response_validation_received_count"], 0)
assert_equal("rollup.owner_response_validation_accepted_count", rollup_summary["owner_response_validation_accepted_count"], 0)
assert_equal("rollup.workflow_secret_inventory_complete_count", rollup_summary["workflow_secret_inventory_complete_count"], 0)
assert_false("rollup.secret_value_collection_allowed", rollup_summary["secret_value_collection_allowed"])
assert_false("rollup.secret_value_detected", rollup_summary["secret_value_detected"])
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"mirror_owner_response_validation_rollup",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_home_iwooos_security_mirror_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_work_items_iwooos_security_mirror_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_approvals_iwooos_owner_response_gate_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_contracts_iwooos_security_contract_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_tenants_iwooos_tenant_scope_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_runs_iwooos_run_state_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_existing_security_pages_iwooos_reverse_bridge",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_security_control_pages_iwooos_reverse_bridge",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_audit_engineering_pages_iwooos_reverse_bridge",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_frontend_surface_connection_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_github_primary_readiness_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_work_items_github_primary_readiness_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_work_items_owner_response_validation_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_contracts_github_primary_readiness_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_contracts_owner_response_validation_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_approvals_github_primary_readiness_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_approvals_owner_response_validation_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_home_github_primary_readiness_summary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_tenants_github_primary_readiness_scope",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_tenants_owner_response_validation_scope",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_runs_github_primary_readiness_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_runs_owner_response_validation_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_run_detail_owner_response_validation_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_awooop_approval_detail_owner_response_validation_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_awooop_route_coverage_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_gradual_convergence_roadmap",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_collection_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_intake_safety_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_review_outcome_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_human_decision_queue_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_decision_record_draft_guard_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_candidate_preflight_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_candidate_outcome_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_handoff_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_handoff_review_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_handoff_review_outcome_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_review_preparation_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_review_checklist_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_review_outcome_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_assignment_preparation_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_assignment_checklist_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_assignment_outcome_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_assignment_decision_preparation_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_owner_response_formal_record_owner_assignment_decision_checklist_board",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_security_compliance_frontstage_bridge",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_frontstage_security_entry_roles",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_security_compliance_frontstage_route_role_map",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_security_compliance_low_friction_rollout_ladder",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_low_friction_rollout_ladder",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_low_friction_next_action_boundary",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_progress_movement_signal_strip",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_progress_unlock_path",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_preflight_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_supplement_path",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_supplement_pre_review",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_supplement_pre_review_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_concrete_security_work_map",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_concrete_security_delivery_checklist",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_concrete_security_blocker_resolution",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_three_axis_product_progress",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_all_product_coverage_snapshot",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_rollout_wave_ledger",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_rollout_acceptance_gates",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_rollout_acceptance_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_map",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_recovery_ledger",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_gates",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_review_candidate",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_outcomes",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_ledger",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"show_iwooos_product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_retry_gates",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"enforce_traditional_chinese_security_surface_wording",
)
assert_contains(
"rollup.next_safe_actions.action_ids",
[item["action_id"] for item in rollup["next_safe_actions"] if isinstance(item, dict)],
"enforce_awooop_run_detail_traditional_chinese_wording",
)
zh_security_surface_text = json.dumps(
{
"iwooos": web_messages_zh["iwooos"],
"awooop": web_messages_zh["awooop"],
},
ensure_ascii=False,
)
for forbidden in [
"Information Security Mesh",
"Mirror-only / Observe-first",
"Exposure Posture",
"Source-control Supply Chain",
"Owner response missing",
"GitHub Primary Readiness",
"Active runtime gates",
"Candidate repos",
"In-scope repos",
"Owner responses",
"Owner response",
"Workflow inventory",
"Security runs",
"Run visibility",
"Run State",
"Readiness evidence refs",
"Owner response lanes",
"Source-control 邊界",
"Ready for mirror",
"Primary ready",
"AwoooP Operator Console",
"Control Plane",
"Shadow First",
"Operator Runs",
"Run Detail",
"Project / Agent",
"Incident ID",
"Incident Evidence",
"Run Timeline",
]:
assert_text_not_contains("web_messages.zh-TW.security_surface_wording", zh_security_surface_text, forbidden)
zh_awooop_tenants_text = json.dumps(web_messages_zh["awooop"]["tenants"], ensure_ascii=False)
for forbidden in [
"security mirror",
"migration mode",
"tenant policy",
"platform tenants API",
"primary switch",
"refs action",
"runtime tenant",
"posture mirror",
"Host coverage",
"observe-only",
"Tenant policy changes",
"owner response",
"runtime gate",
"secret value",
"workflow / secret",
"received / accepted",
"GitHub repo",
"Project ID",
]:
assert_text_not_contains("web_messages.zh-TW.awooop.tenants_wording", zh_awooop_tenants_text, forbidden)
zh_awooop_runs_text = json.dumps(web_messages_zh["awooop"]["runs"], ensure_ascii=False)
for forbidden in [
"Run Monitor",
"Run Boundary",
"Run visibility",
"Security runs",
"Active runtime gates",
"Owner accepted",
"owner response",
"runtime gate",
"post-check evidence",
"dry-run evidence",
"action button",
"repo",
"secrets",
"secret value",
"workflow / secret",
"received / accepted",
"Candidate Repos",
"In-scope Repos",
"Workflow Inventory",
]:
assert_text_not_contains("web_messages.zh-TW.awooop.runs_wording", zh_awooop_runs_text, forbidden)
zh_awooop_run_detail_text = "\n".join(
collect_string_values(
{
"incidentEvidence": web_messages_zh["awooop"]["incidentEvidence"],
"runDetail": web_messages_zh["awooop"]["runDetail"],
"approvalDecision": web_messages_zh["awooop"]["approvalDecision"],
}
)
)
for forbidden in [
"Trace ID",
"Trigger Ref",
"Trigger",
"Tool",
"Scope",
"First-class",
"Policy enforced",
"Approval executor",
"Legacy bridge",
"Dry-run",
"Tools",
"Incident Evidence",
"Run state",
"audit trail",
"resume",
"Run 會",
]:
assert_text_not_contains("web_messages.zh-TW.awooop_run_detail_wording", zh_awooop_run_detail_text, forbidden)
zh_awooop_work_items_text = json.dumps(
web_messages_zh["awooop"]["workItems"],
ensure_ascii=False,
)
for forbidden in [
"Production 證據",
"Link",
"truth-chain",
"truth-first",
"MCP Gateway",
"Timeline",
"GitHub Primary Readiness",
"active runtime gates",
"Workflow / secret",
"secret value",
"pending dispatch",
"channel events",
"DB truth",
"dispatch 與",
]:
assert_text_not_contains(
"web_messages.zh-TW.awooop_work_items_wording",
zh_awooop_work_items_text,
forbidden,
)
zh_awooop_contracts_value_text = "\n".join(collect_string_values(web_messages_zh["awooop"]["contracts"]))
for forbidden in [
"secret value",
"workflow / secret",
"runtime gate",
"runtime enforcement",
"候選 repo",
"範圍內 repo",
"repo 建立",
"repo / refs",
"refs 變更",
"refs 動作",
"sync / delete / force push",
"received / accepted",
"received / accepted / rejected",
"waiting owner response",
"未 complete",
]:
assert_text_not_contains(
"web_messages.zh-TW.awooop_contracts_wording",
zh_awooop_contracts_value_text,
forbidden,
)
zh_awooop_approvals_owner_validation_text = "\n".join(
collect_string_values(web_messages_zh["awooop"]["approvals"]["ownerResponseValidationBoundary"])
)
for forbidden in [
"secret value",
"workflow / secret",
"runtime gate",
"runtime enforcement",
"approval record",
"repo action",
"repo 建立",
"repo / refs",
"refs action",
"refs 動作",
"sync / delete / force push",
"received / accepted",
"received / accepted / rejected",
"waiting owner response",
]:
assert_text_not_contains(
"web_messages.zh-TW.awooop_approvals_owner_validation_wording",
zh_awooop_approvals_owner_validation_text,
forbidden,
)
zh_awooop_home_security_text = json.dumps(
{
"securityMirror": web_messages_zh["awooop"]["home"]["securityMirror"],
"githubPrimaryReadiness": web_messages_zh["awooop"]["home"]["githubPrimaryReadiness"],
"ownerResponseValidation": web_messages_zh["awooop"]["home"]["ownerResponseValidation"],
},
ensure_ascii=False,
)
for forbidden in [
"secret value",
"secret 明文",
"received / accepted",
"0 received",
"0 accepted",
"Production landing",
"production landing",
"runtime ingestion",
"deployment proof",
"evidence refs",
"Workflow / secret",
"workflow / secret",
"ready count",
"Owner Response Validation",
"Response Packets",
"Owner Attestation",
"Owner Decision",
"Owner Response",
"Reviewer Checklist",
"Reviewer Outcomes",
"Cross-Packet Checks",
"owner evidence",
"owner response",
"owner attestation",
"owner decision",
"checklist items",
"outcome lanes",
]:
assert_text_not_contains(
"web_messages.zh-TW.awooop_home_security_wording",
zh_awooop_home_security_text,
forbidden,
)
zh_awooop_owner_response_validation_text = json.dumps(
web_messages_zh["awooop"]["home"]["ownerResponseValidation"],
ensure_ascii=False,
)
for forbidden in [
"Owner Response Validation",
"Response Packets",
"Owner Attestation",
"Owner Decision",
"Owner Response",
"Reviewer Checklist",
"Reviewer Outcomes",
"Cross-Packet Checks",
"owner evidence",
"owner response",
"owner attestation",
"owner decision",
"secret value",
"checklist items",
"outcome lanes",
]:
assert_text_not_contains(
"web_messages.zh-TW.awooop_owner_response_validation_wording",
zh_awooop_owner_response_validation_text,
forbidden,
)
assert_equal("rollout_policy.schema_version", rollout_policy["schema_version"], "security_rollout_policy_v1")
assert_equal("rollout_policy.default_mode", rollout_policy["default_mode"], "observe")
assert_equal("rollout_policy.enforcement_level", rollout_policy["enforcement_level"], "mirror_only")
assert_equal("rollout_policy.non_blocking_escalation_lane_count", rollout_policy["non_blocking_escalation_lane_count"], 7)
expected_low_friction_lane_ids = [
"lane-low-medium-observation",
"lane-owner-response-missing",
"lane-mirror-data-incomplete",
"lane-source-control-drift-draft",
"lane-kali-observe-finding",
"lane-workflow-secret-name-gap",
"lane-progress-display-holding",
]
non_blocking_lanes = rollout_policy["non_blocking_escalation_lanes"]
assert_equal(
"rollout_policy.non_blocking_escalation_lanes.ids",
[item["lane_id"] for item in non_blocking_lanes],
expected_low_friction_lane_ids,
)
assert_equal(
"rollout_policy.non_blocking_escalation_lanes.display_order",
[item["display_order"] for item in non_blocking_lanes],
list(range(1, len(expected_low_friction_lane_ids) + 1)),
)
for item in non_blocking_lanes:
if item["initial_mode"] not in {"observe", "warn"}:
raise SystemExit(
f"BLOCKED rollout_policy.non_blocking_escalation_lanes.{item['lane_id']}.initial_mode: "
f"expected observe/warn, got {item['initial_mode']!r}"
)
assert_true(
f"rollout_policy.non_blocking_escalation_lanes.{item['lane_id']}.owner_review_required_before_blocking",
item["owner_review_required_before_blocking"],
)
assert_false(
f"rollout_policy.non_blocking_escalation_lanes.{item['lane_id']}.runtime_blocking_allowed",
item["runtime_blocking_allowed"],
)
assert_equal(
f"rollout_policy.non_blocking_escalation_lanes.{item['lane_id']}.awooop_display_mode",
item["awooop_display_mode"],
"display_low_friction_non_blocking_lane_only",
)
assert_true(
f"rollout_policy.non_blocking_escalation_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
rollout_outputs = rollout_policy["allowed_awooop_outputs"]
for output in [
"display_non_blocking_escalation_lanes",
"create_followup_without_blocking",
"show_owner_review_required_before_blocking",
"keep_runtime_blocking_false",
]:
assert_contains("rollout_policy.allowed_awooop_outputs", rollout_outputs, output)
assert_equal("iwooos_projection.schema_version", iwooos_projection["schema_version"], "iwooos_posture_projection_v1")
assert_equal("iwooos_projection.product_id", iwooos_projection["product_id"], "iwooos")
assert_equal("iwooos_projection.display_name", iwooos_projection["display_name"], "IwoooS")
assert_equal("iwooos_projection.mode", iwooos_projection["mode"], "mirror_only")
assert_false("iwooos_projection.runtime_execution_authorized", iwooos_projection["runtime_execution_authorized"])
assert_false("iwooos_projection.action_buttons_allowed", iwooos_projection["action_buttons_allowed"])
assert_true("iwooos_projection.not_authorization", iwooos_projection["not_authorization"])
assert_equal("iwooos_projection.summary.route_path", iwooos_projection["summary"]["route_path"], "/iwooos")
assert_true("iwooos_projection.summary.nav_entry_added", iwooos_projection["summary"]["nav_entry_added"])
assert_true(
"iwooos_projection.summary.command_palette_entry_added",
iwooos_projection["summary"]["command_palette_entry_added"],
)
assert_true(
"iwooos_projection.summary.command_palette_security_action_unified_to_iwooos",
iwooos_projection["summary"]["command_palette_security_action_unified_to_iwooos"],
)
assert_false(
"iwooos_projection.summary.command_palette_security_compliance_direct_action_allowed",
iwooos_projection["summary"]["command_palette_security_compliance_direct_action_allowed"],
)
assert_true(
"iwooos_projection.summary.command_palette_security_keywords_route_to_iwooos",
iwooos_projection["summary"]["command_palette_security_keywords_route_to_iwooos"],
)
assert_equal("iwooos_projection.summary.contract_count", iwooos_projection["summary"]["contract_count"], manifest_count)
assert_equal(
"iwooos_projection.summary.active_runtime_gate_count",
iwooos_projection["summary"]["active_runtime_gate_count"],
rollup_summary["active_runtime_gate_count"],
)
assert_equal(
"iwooos_projection.summary.owner_response_validation_received_count",
iwooos_projection["summary"]["owner_response_validation_received_count"],
rollup_summary["owner_response_validation_received_count"],
)
assert_equal(
"iwooos_projection.summary.owner_response_validation_accepted_count",
iwooos_projection["summary"]["owner_response_validation_accepted_count"],
rollup_summary["owner_response_validation_accepted_count"],
)
assert_equal(
"iwooos_projection.summary.github_primary_ready_count",
iwooos_projection["summary"]["github_primary_ready_count"],
rollup_summary["github_primary_ready_count"],
)
expected_iwooos_source_control_primary_readiness_item_ids = [
"candidate_repo_inventory",
"primary_ready_counter_locked",
"owner_response_validation_waiting",
"refs_truth_waiting_owner",
"workflow_secret_name_inventory_missing",
"rollback_adr_waiting_owner_approval",
]
assert_equal(
"iwooos_projection.summary.source_control_primary_readiness_item_count",
iwooos_projection["summary"]["source_control_primary_readiness_item_count"],
len(expected_iwooos_source_control_primary_readiness_item_ids),
)
assert_false("iwooos_projection.summary.action_buttons_allowed", iwooos_projection["summary"]["action_buttons_allowed"])
assert_true(
"iwooos_projection.summary.progress_integrity_ribbon_first_layer",
iwooos_projection["summary"]["progress_integrity_ribbon_first_layer"],
)
assert_equal(
"iwooos_projection.summary.progress_integrity_ribbon_signal_count",
iwooos_projection["summary"]["progress_integrity_ribbon_signal_count"],
3,
)
assert_equal(
"iwooos_projection.summary.progress_integrity_ribbon_headline_percent",
iwooos_projection["summary"]["progress_integrity_ribbon_headline_percent"],
61,
)
assert_equal(
"iwooos_projection.summary.progress_integrity_ribbon_headline_delta",
iwooos_projection["summary"]["progress_integrity_ribbon_headline_delta"],
0,
)
assert_equal(
"iwooos_projection.summary.progress_integrity_ribbon_read_only_scope_count",
iwooos_projection["summary"]["progress_integrity_ribbon_read_only_scope_count"],
8,
)
assert_equal(
"iwooos_projection.summary.progress_integrity_ribbon_pending_evidence_gate_count",
iwooos_projection["summary"]["progress_integrity_ribbon_pending_evidence_gate_count"],
3,
)
assert_equal(
"iwooos_projection.summary.progress_integrity_ribbon_runtime_gate_count",
iwooos_projection["summary"]["progress_integrity_ribbon_runtime_gate_count"],
0,
)
assert_false(
"iwooos_projection.summary.progress_integrity_ribbon_action_buttons_allowed",
iwooos_projection["summary"]["progress_integrity_ribbon_action_buttons_allowed"],
)
assert_true(
"iwooos_projection.summary.executive_snapshot_first_layer",
iwooos_projection["summary"]["executive_snapshot_first_layer"],
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_card_count",
iwooos_projection["summary"]["executive_snapshot_card_count"],
4,
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_axis_count",
iwooos_projection["summary"]["executive_snapshot_axis_count"],
3,
)
assert_true(
"iwooos_projection.summary.executive_snapshot_above_focus_deck",
iwooos_projection["summary"]["executive_snapshot_above_focus_deck"],
)
assert_true(
"iwooos_projection.summary.executive_snapshot_explains_done_next_blocked",
iwooos_projection["summary"]["executive_snapshot_explains_done_next_blocked"],
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_runtime_gate_count",
iwooos_projection["summary"]["executive_snapshot_runtime_gate_count"],
0,
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_owner_response_received_count",
iwooos_projection["summary"]["executive_snapshot_owner_response_received_count"],
0,
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_owner_response_accepted_count",
iwooos_projection["summary"]["executive_snapshot_owner_response_accepted_count"],
0,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_scope_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_scope_count"],
7,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_read_only_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_read_only_count"],
7,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_runtime_ready_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_runtime_ready_count"],
0,
)
assert_true(
"iwooos_projection.summary.first_screen_depth_map_first_layer",
iwooos_projection["summary"]["first_screen_depth_map_first_layer"],
)
assert_equal(
"iwooos_projection.summary.first_screen_depth_map_layer_count",
iwooos_projection["summary"]["first_screen_depth_map_layer_count"],
4,
)
assert_equal(
"iwooos_projection.summary.first_screen_depth_map_visible_layer_count",
iwooos_projection["summary"]["first_screen_depth_map_visible_layer_count"],
4,
)
assert_equal(
"iwooos_projection.summary.first_screen_depth_map_advanced_group_count",
iwooos_projection["summary"]["first_screen_depth_map_advanced_group_count"],
2,
)
assert_equal(
"iwooos_projection.summary.first_screen_depth_map_ledger_group_count",
iwooos_projection["summary"]["first_screen_depth_map_ledger_group_count"],
4,
)
assert_equal(
"iwooos_projection.summary.first_screen_depth_map_runtime_gate_count",
iwooos_projection["summary"]["first_screen_depth_map_runtime_gate_count"],
0,
)
assert_false(
"iwooos_projection.summary.first_screen_depth_map_advanced_default_visible",
iwooos_projection["summary"]["first_screen_depth_map_advanced_default_visible"],
)
assert_false(
"iwooos_projection.summary.first_screen_depth_map_scope_evidence_default_visible",
iwooos_projection["summary"]["first_screen_depth_map_scope_evidence_default_visible"],
)
assert_true(
"iwooos_projection.summary.progress_evidence_rail_first_layer",
iwooos_projection["summary"]["progress_evidence_rail_first_layer"],
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_item_count",
iwooos_projection["summary"]["progress_evidence_rail_item_count"],
5,
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_owner_response_received_count",
iwooos_projection["summary"]["progress_evidence_rail_owner_response_received_count"],
0,
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_owner_response_accepted_count",
iwooos_projection["summary"]["progress_evidence_rail_owner_response_accepted_count"],
0,
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_redacted_evidence_count",
iwooos_projection["summary"]["progress_evidence_rail_redacted_evidence_count"],
0,
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_review_acceptance_count",
iwooos_projection["summary"]["progress_evidence_rail_review_acceptance_count"],
0,
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_github_primary_ready_count",
iwooos_projection["summary"]["progress_evidence_rail_github_primary_ready_count"],
0,
)
assert_equal(
"iwooos_projection.summary.progress_evidence_rail_runtime_gate_count",
iwooos_projection["summary"]["progress_evidence_rail_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.evidence_unlock_queue_first_layer",
iwooos_projection["summary"]["evidence_unlock_queue_first_layer"],
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_item_count",
iwooos_projection["summary"]["evidence_unlock_queue_item_count"],
4,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_s4_9_request_draft_template_count",
iwooos_projection["summary"]["evidence_unlock_queue_s4_9_request_draft_template_count"],
5,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_s4_9_request_draft_ready_count",
iwooos_projection["summary"]["evidence_unlock_queue_s4_9_request_draft_ready_count"],
1,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_request_sent_count",
iwooos_projection["summary"]["evidence_unlock_queue_request_sent_count"],
0,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_received_count",
iwooos_projection["summary"]["evidence_unlock_queue_received_count"],
0,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_accepted_count",
iwooos_projection["summary"]["evidence_unlock_queue_accepted_count"],
0,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_github_primary_ready_count",
iwooos_projection["summary"]["evidence_unlock_queue_github_primary_ready_count"],
0,
)
assert_equal(
"iwooos_projection.summary.evidence_unlock_queue_runtime_gate_count",
iwooos_projection["summary"]["evidence_unlock_queue_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.s4_9_request_draft_package_first_layer",
iwooos_projection["summary"]["s4_9_request_draft_package_first_layer"],
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_package_card_count",
iwooos_projection["summary"]["s4_9_request_draft_package_card_count"],
5,
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_package_template_ready_count",
iwooos_projection["summary"]["s4_9_request_draft_package_template_ready_count"],
5,
)
for count_key in [
"s4_9_request_draft_package_request_sent_count",
"s4_9_request_draft_package_owner_response_received_count",
"s4_9_request_draft_package_owner_response_accepted_count",
"s4_9_request_draft_package_runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.summary.{count_key}",
iwooos_projection["summary"][count_key],
0,
)
assert_true(
"iwooos_projection.summary.s4_9_request_draft_detail_first_layer",
iwooos_projection["summary"]["s4_9_request_draft_detail_first_layer"],
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_detail_row_count",
iwooos_projection["summary"]["s4_9_request_draft_detail_row_count"],
5,
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_detail_required_field_total",
iwooos_projection["summary"]["s4_9_request_draft_detail_required_field_total"],
30,
)
assert_equal(
"iwooos_projection.summary.s4_9_request_draft_detail_forbidden_action_count",
iwooos_projection["summary"]["s4_9_request_draft_detail_forbidden_action_count"],
10,
)
for count_key in [
"s4_9_request_draft_detail_request_sent_count",
"s4_9_request_draft_detail_owner_response_received_count",
"s4_9_request_draft_detail_owner_response_accepted_count",
"s4_9_request_draft_detail_runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.summary.{count_key}",
iwooos_projection["summary"][count_key],
0,
)
assert_true(
"iwooos_projection.summary.s4_9_owner_response_intake_first_layer",
iwooos_projection["summary"]["s4_9_owner_response_intake_first_layer"],
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_lane_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_lane_count"],
5,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_next_gate_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_next_gate_count"],
3,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_next_gate_passed_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_next_gate_passed_count"],
0,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_blocker_focus_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_blocker_focus_count"],
1,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_current_blocker_gate",
iwooos_projection["summary"]["s4_9_owner_response_intake_current_blocker_gate"],
"G1",
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_next_gate_completion_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_next_gate_completion_count"],
0,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_next_gate_total",
iwooos_projection["summary"]["s4_9_owner_response_intake_next_gate_total"],
3,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_delivery_card_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_delivery_card_count"],
3,
)
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_intake_delivery_card_completed_count",
iwooos_projection["summary"]["s4_9_owner_response_intake_delivery_card_completed_count"],
0,
)
assert_false(
"iwooos_projection.summary.s4_9_owner_response_intake_delivery_raw_payload_allowed",
iwooos_projection["summary"]["s4_9_owner_response_intake_delivery_raw_payload_allowed"],
)
for count_key in [
"s4_9_owner_response_intake_received_count",
"s4_9_owner_response_intake_preflight_passed_count",
"s4_9_owner_response_intake_accepted_count",
"s4_9_owner_response_intake_rejected_count",
"s4_9_owner_response_intake_runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.summary.{count_key}",
iwooos_projection["summary"][count_key],
0,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_default_summary_mode",
iwooos_projection["summary"]["all_product_coverage_snapshot_default_summary_mode"],
"compact_first",
)
assert_true(
"iwooos_projection.summary.first_progress_unlock_path_first_layer",
iwooos_projection["summary"]["first_progress_unlock_path_first_layer"],
)
assert_false(
"iwooos_projection.summary.first_progress_unlock_path_default_visible",
iwooos_projection["summary"]["first_progress_unlock_path_default_visible"],
)
assert_true(
"iwooos_projection.summary.first_progress_unlock_path_above_visual_dashboard",
iwooos_projection["summary"]["first_progress_unlock_path_above_visual_dashboard"],
)
assert_equal(
"iwooos_projection.summary.first_progress_unlock_path_step_count",
iwooos_projection["summary"]["first_progress_unlock_path_step_count"],
5,
)
assert_true(
"iwooos_projection.summary.first_progress_unlock_path_boundary_details_collapsed",
iwooos_projection["summary"]["first_progress_unlock_path_boundary_details_collapsed"],
)
assert_equal(
"iwooos_projection.summary.first_progress_unlock_path_owner_response_received_count",
iwooos_projection["summary"]["first_progress_unlock_path_owner_response_received_count"],
0,
)
assert_equal(
"iwooos_projection.summary.first_progress_unlock_path_owner_response_accepted_count",
iwooos_projection["summary"]["first_progress_unlock_path_owner_response_accepted_count"],
0,
)
assert_equal(
"iwooos_projection.summary.first_progress_unlock_path_runtime_gate_count",
iwooos_projection["summary"]["first_progress_unlock_path_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.command_map_first_layer",
iwooos_projection["summary"]["command_map_first_layer"],
)
assert_false(
"iwooos_projection.summary.command_map_default_visible",
iwooos_projection["summary"]["command_map_default_visible"],
)
assert_equal(
"iwooos_projection.summary.command_map_mode_count",
iwooos_projection["summary"]["command_map_mode_count"],
6,
)
assert_equal(
"iwooos_projection.summary.command_map_default_mode",
iwooos_projection["summary"]["command_map_default_mode"],
"unlock",
)
assert_true(
"iwooos_projection.summary.command_map_above_first_progress_unlock_path",
iwooos_projection["summary"]["command_map_above_first_progress_unlock_path"],
)
assert_true(
"iwooos_projection.summary.command_map_navigation_controls_allowed",
iwooos_projection["summary"]["command_map_navigation_controls_allowed"],
)
assert_false(
"iwooos_projection.summary.command_map_execution_action_buttons_allowed",
iwooos_projection["summary"]["command_map_execution_action_buttons_allowed"],
)
assert_equal(
"iwooos_projection.summary.command_map_runtime_gate_count",
iwooos_projection["summary"]["command_map_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.focus_deck_first_layer",
iwooos_projection["summary"]["focus_deck_first_layer"],
)
assert_equal(
"iwooos_projection.summary.focus_deck_item_count",
iwooos_projection["summary"]["focus_deck_item_count"],
5,
)
assert_true(
"iwooos_projection.summary.focus_deck_anchor_navigation_allowed",
iwooos_projection["summary"]["focus_deck_anchor_navigation_allowed"],
)
assert_false(
"iwooos_projection.summary.focus_deck_execution_action_buttons_allowed",
iwooos_projection["summary"]["focus_deck_execution_action_buttons_allowed"],
)
assert_equal(
"iwooos_projection.summary.focus_deck_runtime_gate_count",
iwooos_projection["summary"]["focus_deck_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.focus_deck_above_command_map",
iwooos_projection["summary"]["focus_deck_above_command_map"],
)
assert_true(
"iwooos_projection.summary.immediate_visual_mesh_first_layer",
iwooos_projection["summary"]["immediate_visual_mesh_first_layer"],
)
assert_equal(
"iwooos_projection.summary.immediate_visual_mesh_node_count",
iwooos_projection["summary"]["immediate_visual_mesh_node_count"],
7,
)
assert_equal(
"iwooos_projection.summary.immediate_visual_mesh_link_count",
iwooos_projection["summary"]["immediate_visual_mesh_link_count"],
6,
)
assert_true(
"iwooos_projection.summary.immediate_visual_mesh_above_command_map",
iwooos_projection["summary"]["immediate_visual_mesh_above_command_map"],
)
assert_equal(
"iwooos_projection.summary.immediate_visual_mesh_runtime_gate_count",
iwooos_projection["summary"]["immediate_visual_mesh_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.topology_atlas_first_layer",
iwooos_projection["summary"]["topology_atlas_first_layer"],
)
assert_equal(
"iwooos_projection.summary.topology_atlas_lens_count",
iwooos_projection["summary"]["topology_atlas_lens_count"],
4,
)
assert_equal(
"iwooos_projection.summary.topology_atlas_node_count",
iwooos_projection["summary"]["topology_atlas_node_count"],
7,
)
assert_equal(
"iwooos_projection.summary.topology_drilldown_node_count",
iwooos_projection["summary"]["topology_drilldown_node_count"],
7,
)
assert_equal(
"iwooos_projection.summary.topology_drilldown_default_node",
iwooos_projection["summary"]["topology_drilldown_default_node"],
"productSurface",
)
assert_true(
"iwooos_projection.summary.topology_drilldown_interactive_node_allowed",
iwooos_projection["summary"]["topology_drilldown_interactive_node_allowed"],
)
assert_equal(
"iwooos_projection.summary.topology_path_explorer_path_count",
iwooos_projection["summary"]["topology_path_explorer_path_count"],
4,
)
assert_equal(
"iwooos_projection.summary.topology_path_explorer_default_path",
iwooos_projection["summary"]["topology_path_explorer_default_path"],
"externalToGate",
)
assert_true(
"iwooos_projection.summary.topology_path_explorer_interactive_path_allowed",
iwooos_projection["summary"]["topology_path_explorer_interactive_path_allowed"],
)
assert_equal(
"iwooos_projection.summary.topology_intelligence_deck_count",
iwooos_projection["summary"]["topology_intelligence_deck_count"],
4,
)
assert_equal(
"iwooos_projection.summary.topology_intelligence_default_item",
iwooos_projection["summary"]["topology_intelligence_default_item"],
"assetContext",
)
assert_true(
"iwooos_projection.summary.topology_intelligence_interactive_item_allowed",
iwooos_projection["summary"]["topology_intelligence_interactive_item_allowed"],
)
assert_equal(
"iwooos_projection.summary.topology_atlas_layer_count",
iwooos_projection["summary"]["topology_atlas_layer_count"],
5,
)
assert_equal(
"iwooos_projection.summary.topology_atlas_technical_chart_count",
iwooos_projection["summary"]["topology_atlas_technical_chart_count"],
3,
)
assert_true(
"iwooos_projection.summary.topology_atlas_interactive_lens_allowed",
iwooos_projection["summary"]["topology_atlas_interactive_lens_allowed"],
)
assert_true(
"iwooos_projection.summary.topology_atlas_above_gate_radar",
iwooos_projection["summary"]["topology_atlas_above_gate_radar"],
)
assert_equal(
"iwooos_projection.summary.topology_atlas_runtime_gate_count",
iwooos_projection["summary"]["topology_atlas_runtime_gate_count"],
0,
)
assert_equal(
"iwooos_projection.summary.topology_drilldown_runtime_gate_count",
iwooos_projection["summary"]["topology_drilldown_runtime_gate_count"],
0,
)
assert_equal(
"iwooos_projection.summary.topology_path_explorer_runtime_gate_count",
iwooos_projection["summary"]["topology_path_explorer_runtime_gate_count"],
0,
)
assert_equal(
"iwooos_projection.summary.topology_intelligence_runtime_gate_count",
iwooos_projection["summary"]["topology_intelligence_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.decision_runway_first_layer",
iwooos_projection["summary"]["decision_runway_first_layer"],
)
assert_false(
"iwooos_projection.summary.decision_runway_default_visible",
iwooos_projection["summary"]["decision_runway_default_visible"],
)
assert_equal(
"iwooos_projection.summary.decision_runway_step_count",
iwooos_projection["summary"]["decision_runway_step_count"],
5,
)
assert_equal(
"iwooos_projection.summary.decision_runway_default_step",
iwooos_projection["summary"]["decision_runway_default_step"],
"ownerEvidence",
)
assert_equal(
"iwooos_projection.summary.decision_runway_dependency_count",
iwooos_projection["summary"]["decision_runway_dependency_count"],
6,
)
assert_equal(
"iwooos_projection.summary.decision_runway_boundary_signal_count",
iwooos_projection["summary"]["decision_runway_boundary_signal_count"],
4,
)
assert_true(
"iwooos_projection.summary.decision_runway_above_gate_radar",
iwooos_projection["summary"]["decision_runway_above_gate_radar"],
)
assert_true(
"iwooos_projection.summary.decision_runway_interactive_step_allowed",
iwooos_projection["summary"]["decision_runway_interactive_step_allowed"],
)
assert_equal(
"iwooos_projection.summary.decision_runway_runtime_gate_count",
iwooos_projection["summary"]["decision_runway_runtime_gate_count"],
0,
)
assert_equal(
"iwooos_projection.summary.decision_runway_owner_response_received_count",
iwooos_projection["summary"]["decision_runway_owner_response_received_count"],
0,
)
assert_equal(
"iwooos_projection.summary.decision_runway_owner_response_accepted_count",
iwooos_projection["summary"]["decision_runway_owner_response_accepted_count"],
0,
)
assert_true(
"iwooos_projection.summary.gate_radar_first_layer",
iwooos_projection["summary"]["gate_radar_first_layer"],
)
assert_false(
"iwooos_projection.summary.gate_radar_default_visible",
iwooos_projection["summary"]["gate_radar_default_visible"],
)
assert_equal(
"iwooos_projection.summary.gate_radar_lane_count",
iwooos_projection["summary"]["gate_radar_lane_count"],
4,
)
assert_equal(
"iwooos_projection.summary.gate_radar_default_lane",
iwooos_projection["summary"]["gate_radar_default_lane"],
"visible",
)
assert_true(
"iwooos_projection.summary.gate_radar_above_command_map",
iwooos_projection["summary"]["gate_radar_above_command_map"],
)
assert_true(
"iwooos_projection.summary.gate_radar_interactive_lens_allowed",
iwooos_projection["summary"]["gate_radar_interactive_lens_allowed"],
)
assert_equal(
"iwooos_projection.summary.gate_radar_runtime_gate_count",
iwooos_projection["summary"]["gate_radar_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.all_product_coverage_snapshot_detail_ledger_collapsed",
iwooos_projection["summary"]["all_product_coverage_snapshot_detail_ledger_collapsed"],
)
assert_true(
"iwooos_projection.summary.global_security_mesh_matrix_first_layer",
iwooos_projection["summary"]["global_security_mesh_matrix_first_layer"],
)
assert_false(
"iwooos_projection.summary.global_security_mesh_matrix_default_visible",
iwooos_projection["summary"]["global_security_mesh_matrix_default_visible"],
)
assert_equal(
"iwooos_projection.summary.global_security_mesh_matrix_asset_count",
iwooos_projection["summary"]["global_security_mesh_matrix_asset_count"],
8,
)
assert_equal(
"iwooos_projection.summary.global_security_mesh_matrix_read_only_count",
iwooos_projection["summary"]["global_security_mesh_matrix_read_only_count"],
8,
)
assert_equal(
"iwooos_projection.summary.global_security_mesh_matrix_runtime_gate_count",
iwooos_projection["summary"]["global_security_mesh_matrix_runtime_gate_count"],
0,
)
assert_true(
"iwooos_projection.summary.host_tool_evidence_chain_first_layer",
iwooos_projection["summary"]["host_tool_evidence_chain_first_layer"],
)
assert_false(
"iwooos_projection.summary.host_tool_evidence_chain_default_visible",
iwooos_projection["summary"]["host_tool_evidence_chain_default_visible"],
)
assert_equal(
"iwooos_projection.summary.host_tool_evidence_chain_host_count",
iwooos_projection["summary"]["host_tool_evidence_chain_host_count"],
3,
)
assert_equal(
"iwooos_projection.summary.host_tool_evidence_chain_tool_lane_count",
iwooos_projection["summary"]["host_tool_evidence_chain_tool_lane_count"],
6,
)
assert_equal(
"iwooos_projection.summary.host_tool_evidence_chain_step_count",
iwooos_projection["summary"]["host_tool_evidence_chain_step_count"],
5,
)
assert_true(
"iwooos_projection.summary.vibework_security_onboarding_first_layer",
iwooos_projection["summary"]["vibework_security_onboarding_first_layer"],
)
assert_false(
"iwooos_projection.summary.vibework_security_onboarding_default_visible",
iwooos_projection["summary"]["vibework_security_onboarding_default_visible"],
)
assert_equal(
"iwooos_projection.summary.vibework_security_onboarding_item_count",
iwooos_projection["summary"]["vibework_security_onboarding_item_count"],
6,
)
assert_equal(
"iwooos_projection.summary.vibework_security_onboarding_runtime_gate_count",
iwooos_projection["summary"]["vibework_security_onboarding_runtime_gate_count"],
0,
)
expected_iwooos_surface_ids = [
"security_compliance",
"legacy_security",
"legacy_compliance",
"alerts",
"errors",
"authorizations",
"governance",
"alert_operation_logs",
"awooop_approvals",
"code_review",
]
assert_equal(
"iwooos_projection.summary.existing_frontend_surface_count",
iwooos_projection["summary"]["existing_frontend_surface_count"],
len(expected_iwooos_surface_ids),
)
assert_equal(
"iwooos_projection.summary.frontend_surface_reverse_bridge_status_count",
iwooos_projection["summary"]["frontend_surface_reverse_bridge_status_count"],
len(expected_iwooos_surface_ids),
)
expected_iwooos_coverage_group_ids = [
"signals_and_exposure",
"human_control_boundary",
"governance_and_audit",
"engineering_review",
]
expected_iwooos_conflict_control_ids = [
"preserve_original_route_ownership",
"no_runtime_lift_from_index",
"code_review_not_deploy_gate",
"awooop_approval_not_security_approval",
"frontend_index_does_not_call_kali",
]
expected_iwooos_journey_step_ids = [
"read_current_posture",
"open_existing_security_surface",
"triage_non_blocking_lane",
"collect_owner_evidence",
"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",
]
expected_iwooos_host_coverage_item_ids = [
"kali_112_security_host",
"dev_168_development_host",
"dev_111_development_host",
]
expected_iwooos_kali_maintenance_readiness_item_ids = [
"kali_112_read_only_snapshot",
"kali_112_upgradable_package_count",
"kali_112_failed_systemd_unit_count",
"kali_112_full_upgrade_reboot_gate",
]
expected_iwooos_host_action_gate_item_ids = [
"host_active_scan_gate",
"host_credentialed_scan_gate",
"kali_execute_gate",
"ssh_host_change_gate",
"kali_host_update_gate",
"runtime_blocking_control_gate",
]
expected_iwooos_host_evidence_readiness_item_ids = [
"host_scope_boundary_evidence",
"host_owner_decision_record_evidence",
"host_credential_handling_evidence",
"host_maintenance_window_evidence",
"host_rollback_plan_evidence",
"host_validation_metrics_evidence",
"host_redacted_ingestion_evidence",
]
expected_iwooos_host_evidence_collection_step_ids = [
"collect_scope_boundary_first",
"collect_owner_decision_second",
"collect_credential_handling_third",
"collect_maintenance_window_fourth",
"collect_rollback_plan_fifth",
"collect_validation_metrics_sixth",
"collect_redacted_ingestion_seventh",
]
expected_iwooos_host_evidence_intake_preflight_check_ids = [
"host_metadata_pointer_shape_check",
"host_collection_dependency_order_check",
"host_scope_boundary_before_scan_check",
"host_owner_decision_before_change_check",
"host_credential_plaintext_rejection_check",
"host_raw_payload_rejection_check",
"host_counter_transition_freeze_check",
]
expected_iwooos_host_evidence_review_outcome_lane_ids = [
"host_ready_for_human_review_lane",
"host_needs_scope_evidence_lane",
"host_needs_owner_decision_lane",
"host_quarantine_dependency_skip_lane",
"host_reject_raw_payload_lane",
"host_reject_credential_plaintext_lane",
"host_waiting_runtime_gate_lane",
]
expected_iwooos_host_evidence_review_handoff_packet_ids = [
"host_scope_summary_handoff_packet",
"host_owner_decision_handoff_packet",
"host_credential_handling_handoff_packet",
"host_maintenance_rollback_handoff_packet",
"host_validation_metrics_handoff_packet",
"host_redaction_attestation_handoff_packet",
"host_runtime_gate_pointer_handoff_packet",
]
expected_iwooos_host_evidence_reviewer_checklist_item_ids = [
"host_scope_boundary_match_check",
"host_owner_decision_scope_expiry_check",
"host_credential_handling_metadata_only_check",
"host_redaction_attestation_pass_check",
"host_maintenance_rollback_complete_check",
"host_validation_metrics_linked_check",
"host_runtime_gate_separated_check",
]
expected_iwooos_host_evidence_reviewer_outcome_lane_ids = [
"host_ready_for_owner_decision_outcome_lane",
"host_scope_mismatch_outcome_lane",
"host_owner_decision_expired_outcome_lane",
"host_credential_metadata_failed_outcome_lane",
"host_redaction_failed_outcome_lane",
"host_rollback_missing_outcome_lane",
"host_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_candidate_packet_ids = [
"host_scope_approval_candidate_packet",
"host_scan_mode_candidate_packet",
"host_credential_handling_candidate_packet",
"host_maintenance_window_candidate_packet",
"host_rollback_owner_candidate_packet",
"host_validation_metrics_candidate_packet",
"host_runtime_gate_candidate_packet",
]
expected_iwooos_host_owner_decision_review_checklist_item_ids = [
"host_scope_boundary_readable_review_check",
"host_scan_mode_not_authorization_review_check",
"host_credential_boundary_metadata_only_review_check",
"host_maintenance_window_not_change_review_check",
"host_rollback_owner_readable_review_check",
"host_validation_metrics_predefined_review_check",
"host_runtime_gate_still_separate_review_check",
]
expected_iwooos_host_owner_decision_review_outcome_lane_ids = [
"host_ready_for_decision_record_outcome_lane",
"host_scope_refresh_required_decision_outcome_lane",
"host_scan_mode_scope_required_decision_outcome_lane",
"host_credential_boundary_failed_decision_outcome_lane",
"host_maintenance_window_required_decision_outcome_lane",
"host_rollback_owner_required_decision_outcome_lane",
"host_runtime_gate_required_decision_outcome_lane",
]
expected_iwooos_host_owner_decision_record_draft_packet_ids = [
"host_decision_record_scope_draft_packet",
"host_decision_record_scan_mode_draft_packet",
"host_decision_record_credential_boundary_draft_packet",
"host_decision_record_maintenance_constraints_draft_packet",
"host_decision_record_rollback_owner_draft_packet",
"host_decision_record_validation_metrics_draft_packet",
"host_decision_record_runtime_gate_draft_packet",
]
expected_iwooos_host_owner_decision_record_draft_review_checklist_item_ids = [
"host_decision_record_scope_statement_review_check",
"host_decision_record_scan_mode_review_check",
"host_decision_record_credential_boundary_review_check",
"host_decision_record_maintenance_constraints_review_check",
"host_decision_record_rollback_owner_review_check",
"host_decision_record_validation_metrics_review_check",
"host_decision_record_runtime_gate_review_check",
]
expected_iwooos_host_owner_decision_record_draft_review_outcome_lane_ids = [
"host_decision_record_ready_for_writeup_outcome_lane",
"host_decision_record_scope_draft_incomplete_outcome_lane",
"host_decision_record_scan_mode_ambiguous_outcome_lane",
"host_decision_record_credential_boundary_incomplete_outcome_lane",
"host_decision_record_maintenance_constraints_incomplete_outcome_lane",
"host_decision_record_rollback_owner_incomplete_outcome_lane",
"host_decision_record_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_record_writeup_packet_ids = [
"host_decision_record_summary_writeup_packet",
"host_decision_record_scope_writeup_packet",
"host_decision_record_scan_mode_limits_writeup_packet",
"host_decision_record_credential_boundary_writeup_packet",
"host_decision_record_maintenance_rollback_writeup_packet",
"host_decision_record_validation_evidence_writeup_packet",
"host_decision_record_runtime_gate_pointer_writeup_packet",
]
expected_iwooos_host_owner_decision_record_writeup_review_checklist_item_ids = [
"host_decision_record_summary_writeup_review_check",
"host_decision_record_scope_writeup_review_check",
"host_decision_record_scan_mode_limits_writeup_review_check",
"host_decision_record_credential_boundary_writeup_review_check",
"host_decision_record_maintenance_rollback_writeup_review_check",
"host_decision_record_validation_evidence_writeup_review_check",
"host_decision_record_runtime_gate_writeup_review_check",
]
expected_iwooos_host_owner_decision_record_writeup_review_outcome_lane_ids = [
"host_decision_record_writeup_review_ready_for_formal_record_outcome_lane",
"host_decision_record_writeup_summary_needs_clarification_outcome_lane",
"host_decision_record_writeup_scope_expiry_needs_refresh_outcome_lane",
"host_decision_record_writeup_scan_mode_ambiguous_outcome_lane",
"host_decision_record_writeup_credential_boundary_failed_outcome_lane",
"host_decision_record_writeup_maintenance_rollback_incomplete_outcome_lane",
"host_decision_record_writeup_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_record_formal_candidate_packet_ids = [
"host_decision_record_formal_candidate_identity_packet",
"host_decision_record_formal_candidate_decision_summary_packet",
"host_decision_record_formal_candidate_approved_scope_packet",
"host_decision_record_formal_candidate_scan_mode_limits_packet",
"host_decision_record_formal_candidate_credential_boundary_packet",
"host_decision_record_formal_candidate_maintenance_rollback_packet",
"host_decision_record_formal_candidate_validation_runtime_gate_packet",
]
expected_iwooos_host_owner_decision_record_formal_candidate_review_checklist_item_ids = [
"host_decision_record_formal_candidate_identity_review_check",
"host_decision_record_formal_candidate_summary_review_check",
"host_decision_record_formal_candidate_scope_review_check",
"host_decision_record_formal_candidate_scan_limits_review_check",
"host_decision_record_formal_candidate_credential_boundary_review_check",
"host_decision_record_formal_candidate_maintenance_rollback_review_check",
"host_decision_record_formal_candidate_runtime_gate_review_check",
]
expected_iwooos_host_owner_decision_record_formal_candidate_review_outcome_lane_ids = [
"host_decision_record_formal_candidate_review_ready_for_record_queue_outcome_lane",
"host_decision_record_formal_candidate_review_identity_needs_trace_outcome_lane",
"host_decision_record_formal_candidate_review_summary_needs_clarification_outcome_lane",
"host_decision_record_formal_candidate_review_scope_expiry_needs_refresh_outcome_lane",
"host_decision_record_formal_candidate_review_scan_limits_ambiguous_outcome_lane",
"host_decision_record_formal_candidate_review_credential_boundary_failed_outcome_lane",
"host_decision_record_formal_candidate_review_maintenance_rollback_incomplete_outcome_lane",
"host_decision_record_formal_candidate_review_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_record_formal_record_queue_packet_ids = [
"host_decision_record_formal_record_queue_identity_packet",
"host_decision_record_formal_record_queue_decision_summary_packet",
"host_decision_record_formal_record_queue_scope_expiry_packet",
"host_decision_record_formal_record_queue_scan_limits_packet",
"host_decision_record_formal_record_queue_credential_boundary_packet",
"host_decision_record_formal_record_queue_maintenance_rollback_packet",
"host_decision_record_formal_record_queue_validation_runtime_gate_packet",
"host_decision_record_formal_record_queue_no_execution_attestation_packet",
]
expected_iwooos_host_owner_decision_record_formal_record_queue_review_checklist_item_ids = [
"host_decision_record_formal_record_queue_review_identity_traceable_check",
"host_decision_record_formal_record_queue_review_decision_summary_readable_check",
"host_decision_record_formal_record_queue_review_scope_expiry_fresh_check",
"host_decision_record_formal_record_queue_review_scan_limits_not_authorization_check",
"host_decision_record_formal_record_queue_review_credential_boundary_metadata_only_check",
"host_decision_record_formal_record_queue_review_maintenance_rollback_linked_check",
"host_decision_record_formal_record_queue_review_validation_runtime_gate_separate_check",
"host_decision_record_formal_record_queue_review_no_execution_attestation_present_check",
]
expected_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lane_ids = [
"host_decision_record_formal_record_queue_review_ready_for_human_record_owner_handoff_outcome_lane",
"host_decision_record_formal_record_queue_review_identity_needs_trace_refresh_outcome_lane",
"host_decision_record_formal_record_queue_review_summary_needs_clarification_outcome_lane",
"host_decision_record_formal_record_queue_review_scope_expiry_needs_refresh_outcome_lane",
"host_decision_record_formal_record_queue_review_scan_limits_ambiguous_outcome_lane",
"host_decision_record_formal_record_queue_review_credential_boundary_failed_outcome_lane",
"host_decision_record_formal_record_queue_review_maintenance_rollback_incomplete_outcome_lane",
"host_decision_record_formal_record_queue_review_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_record_human_handoff_readiness_packet_ids = [
"host_decision_record_handoff_readiness_identity_trace_packet",
"host_decision_record_handoff_readiness_owner_boundary_packet",
"host_decision_record_handoff_readiness_decision_summary_packet",
"host_decision_record_handoff_readiness_scope_expiry_packet",
"host_decision_record_handoff_readiness_scan_limits_packet",
"host_decision_record_handoff_readiness_credential_boundary_packet",
"host_decision_record_handoff_readiness_maintenance_rollback_packet",
"host_decision_record_handoff_readiness_runtime_gate_packet",
]
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_item_ids = [
"host_decision_record_handoff_readiness_review_identity_trace_readable_check",
"host_decision_record_handoff_readiness_review_owner_boundary_readable_check",
"host_decision_record_handoff_readiness_review_decision_summary_readable_check",
"host_decision_record_handoff_readiness_review_scope_expiry_current_check",
"host_decision_record_handoff_readiness_review_scan_limits_not_authorization_check",
"host_decision_record_handoff_readiness_review_credential_boundary_metadata_only_check",
"host_decision_record_handoff_readiness_review_maintenance_rollback_traceable_check",
"host_decision_record_handoff_readiness_review_runtime_gate_separate_check",
]
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lane_ids = [
"host_decision_record_handoff_readiness_review_ready_for_human_record_owner_review_candidate_outcome_lane",
"host_decision_record_handoff_readiness_review_identity_trace_needs_refresh_outcome_lane",
"host_decision_record_handoff_readiness_review_owner_boundary_needs_clarification_outcome_lane",
"host_decision_record_handoff_readiness_review_decision_summary_needs_clarification_outcome_lane",
"host_decision_record_handoff_readiness_review_scope_expiry_needs_refresh_outcome_lane",
"host_decision_record_handoff_readiness_review_scan_limits_ambiguous_outcome_lane",
"host_decision_record_handoff_readiness_review_credential_boundary_failed_outcome_lane",
"host_decision_record_handoff_readiness_review_maintenance_rollback_incomplete_outcome_lane",
"host_decision_record_handoff_readiness_review_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_packet_ids = [
"host_decision_record_human_record_owner_review_candidate_identity_packet",
"host_decision_record_human_record_owner_review_candidate_owner_boundary_packet",
"host_decision_record_human_record_owner_review_candidate_decision_summary_packet",
"host_decision_record_human_record_owner_review_candidate_scope_expiry_packet",
"host_decision_record_human_record_owner_review_candidate_scan_limits_packet",
"host_decision_record_human_record_owner_review_candidate_credential_boundary_packet",
"host_decision_record_human_record_owner_review_candidate_maintenance_rollback_packet",
"host_decision_record_human_record_owner_review_candidate_validation_runtime_gate_packet",
"host_decision_record_human_record_owner_review_candidate_no_execution_attestation_packet",
]
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_item_ids = [
"host_decision_record_human_record_owner_review_candidate_identity_traceable_check",
"host_decision_record_human_record_owner_review_candidate_owner_boundary_readable_check",
"host_decision_record_human_record_owner_review_candidate_decision_summary_readable_check",
"host_decision_record_human_record_owner_review_candidate_scope_expiry_current_check",
"host_decision_record_human_record_owner_review_candidate_scan_limits_not_authorization_check",
"host_decision_record_human_record_owner_review_candidate_credential_boundary_metadata_only_check",
"host_decision_record_human_record_owner_review_candidate_maintenance_rollback_traceable_check",
"host_decision_record_human_record_owner_review_candidate_validation_runtime_gate_separate_check",
"host_decision_record_human_record_owner_review_candidate_no_execution_attestation_present_check",
]
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lane_ids = [
"host_decision_record_human_record_owner_review_candidate_ready_for_human_record_owner_review_preparation_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_identity_trace_needs_refresh_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_owner_boundary_needs_clarification_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_decision_summary_needs_clarification_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_scope_expiry_needs_refresh_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_scan_limits_ambiguous_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_credential_boundary_failed_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_maintenance_rollback_incomplete_outcome_lane",
"host_decision_record_human_record_owner_review_candidate_runtime_gate_required_outcome_lane",
]
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_packet_ids = [
"host_decision_record_human_record_owner_review_preparation_identity_trace_packet",
"host_decision_record_human_record_owner_review_preparation_owner_boundary_packet",
"host_decision_record_human_record_owner_review_preparation_decision_summary_packet",
"host_decision_record_human_record_owner_review_preparation_scope_expiry_packet",
"host_decision_record_human_record_owner_review_preparation_scan_limits_packet",
"host_decision_record_human_record_owner_review_preparation_credential_boundary_packet",
"host_decision_record_human_record_owner_review_preparation_maintenance_rollback_packet",
"host_decision_record_human_record_owner_review_preparation_validation_runtime_gate_packet",
"host_decision_record_human_record_owner_review_preparation_no_execution_attestation_packet",
]
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_item_ids = [
"host_decision_record_human_record_owner_review_preparation_identity_trace_readable_check",
"host_decision_record_human_record_owner_review_preparation_owner_boundary_readable_check",
"host_decision_record_human_record_owner_review_preparation_decision_summary_readable_check",
"host_decision_record_human_record_owner_review_preparation_scope_expiry_current_check",
"host_decision_record_human_record_owner_review_preparation_scan_limits_not_authorization_check",
"host_decision_record_human_record_owner_review_preparation_credential_boundary_metadata_only_check",
"host_decision_record_human_record_owner_review_preparation_maintenance_rollback_traceable_check",
"host_decision_record_human_record_owner_review_preparation_validation_runtime_gate_separate_check",
"host_decision_record_human_record_owner_review_preparation_no_execution_attestation_present_check",
]
assert_equal(
"iwooos_projection.summary.visual_command_dashboard_widget_count",
iwooos_projection["summary"]["visual_command_dashboard_widget_count"],
14,
)
assert_true(
"iwooos_projection.summary.visual_command_dashboard_first_layer",
iwooos_projection["summary"]["visual_command_dashboard_first_layer"],
)
assert_false(
"iwooos_projection.summary.visual_command_dashboard_default_visible",
iwooos_projection["summary"]["visual_command_dashboard_default_visible"],
)
assert_true(
"iwooos_projection.summary.professional_security_experience_first_layer",
iwooos_projection["summary"]["professional_security_experience_first_layer"],
)
assert_false(
"iwooos_projection.summary.professional_security_experience_default_visible",
iwooos_projection["summary"]["professional_security_experience_default_visible"],
)
assert_equal(
"iwooos_projection.summary.professional_security_experience_tab_count",
iwooos_projection["summary"]["professional_security_experience_tab_count"],
3,
)
assert_equal(
"iwooos_projection.summary.professional_security_experience_attack_path_node_count",
iwooos_projection["summary"]["professional_security_experience_attack_path_node_count"],
6,
)
assert_equal(
"iwooos_projection.summary.professional_security_experience_asset_heat_cell_count",
iwooos_projection["summary"]["professional_security_experience_asset_heat_cell_count"],
9,
)
assert_equal(
"iwooos_projection.summary.professional_security_experience_response_flow_step_count",
iwooos_projection["summary"]["professional_security_experience_response_flow_step_count"],
5,
)
assert_true(
"iwooos_projection.summary.concrete_work_snapshot_first_layer",
iwooos_projection["summary"]["concrete_work_snapshot_first_layer"],
)
assert_false(
"iwooos_projection.summary.concrete_work_snapshot_default_visible",
iwooos_projection["summary"]["concrete_work_snapshot_default_visible"],
)
assert_equal(
"iwooos_projection.summary.concrete_work_snapshot_workstream_count",
iwooos_projection["summary"]["concrete_work_snapshot_workstream_count"],
6,
)
assert_true(
"iwooos_projection.summary.long_form_sections_default_collapsed",
iwooos_projection["summary"]["long_form_sections_default_collapsed"],
)
assert_equal(
"iwooos_projection.summary.frontend_surface_coverage_group_count",
iwooos_projection["summary"]["frontend_surface_coverage_group_count"],
len(expected_iwooos_coverage_group_ids),
)
assert_equal(
"iwooos_projection.summary.frontend_surface_conflict_control_count",
iwooos_projection["summary"]["frontend_surface_conflict_control_count"],
len(expected_iwooos_conflict_control_ids),
)
assert_equal(
"iwooos_projection.summary.operator_journey_step_count",
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),
)
assert_equal(
"iwooos_projection.summary.host_coverage_item_count",
iwooos_projection["summary"]["host_coverage_item_count"],
len(expected_iwooos_host_coverage_item_ids),
)
assert_equal(
"iwooos_projection.summary.kali_maintenance_readiness_item_count",
iwooos_projection["summary"]["kali_maintenance_readiness_item_count"],
len(expected_iwooos_kali_maintenance_readiness_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_action_gate_item_count",
iwooos_projection["summary"]["host_action_gate_item_count"],
len(expected_iwooos_host_action_gate_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_readiness_item_count",
iwooos_projection["summary"]["host_evidence_readiness_item_count"],
len(expected_iwooos_host_evidence_readiness_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_collection_step_count",
iwooos_projection["summary"]["host_evidence_collection_step_count"],
len(expected_iwooos_host_evidence_collection_step_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_intake_preflight_check_count",
iwooos_projection["summary"]["host_evidence_intake_preflight_check_count"],
len(expected_iwooos_host_evidence_intake_preflight_check_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_review_outcome_lane_count",
iwooos_projection["summary"]["host_evidence_review_outcome_lane_count"],
len(expected_iwooos_host_evidence_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_review_handoff_packet_count",
iwooos_projection["summary"]["host_evidence_review_handoff_packet_count"],
len(expected_iwooos_host_evidence_review_handoff_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_reviewer_checklist_item_count",
iwooos_projection["summary"]["host_evidence_reviewer_checklist_item_count"],
len(expected_iwooos_host_evidence_reviewer_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_evidence_reviewer_outcome_lane_count",
iwooos_projection["summary"]["host_evidence_reviewer_outcome_lane_count"],
len(expected_iwooos_host_evidence_reviewer_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_candidate_packet_count",
iwooos_projection["summary"]["host_owner_decision_candidate_packet_count"],
len(expected_iwooos_host_owner_decision_candidate_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_review_checklist_item_count",
iwooos_projection["summary"]["host_owner_decision_review_checklist_item_count"],
len(expected_iwooos_host_owner_decision_review_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_review_outcome_lane_count",
iwooos_projection["summary"]["host_owner_decision_review_outcome_lane_count"],
len(expected_iwooos_host_owner_decision_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_draft_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_draft_packet_count"],
len(expected_iwooos_host_owner_decision_record_draft_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_draft_review_checklist_item_count",
iwooos_projection["summary"]["host_owner_decision_record_draft_review_checklist_item_count"],
len(expected_iwooos_host_owner_decision_record_draft_review_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_draft_review_outcome_lane_count",
iwooos_projection["summary"]["host_owner_decision_record_draft_review_outcome_lane_count"],
len(expected_iwooos_host_owner_decision_record_draft_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_writeup_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_writeup_packet_count"],
len(expected_iwooos_host_owner_decision_record_writeup_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_writeup_review_checklist_item_count",
iwooos_projection["summary"]["host_owner_decision_record_writeup_review_checklist_item_count"],
len(expected_iwooos_host_owner_decision_record_writeup_review_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_writeup_review_outcome_lane_count",
iwooos_projection["summary"]["host_owner_decision_record_writeup_review_outcome_lane_count"],
len(expected_iwooos_host_owner_decision_record_writeup_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_formal_candidate_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_formal_candidate_packet_count"],
len(expected_iwooos_host_owner_decision_record_formal_candidate_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_formal_candidate_review_checklist_item_count",
iwooos_projection["summary"]["host_owner_decision_record_formal_candidate_review_checklist_item_count"],
len(expected_iwooos_host_owner_decision_record_formal_candidate_review_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_formal_candidate_review_outcome_lane_count",
iwooos_projection["summary"]["host_owner_decision_record_formal_candidate_review_outcome_lane_count"],
len(expected_iwooos_host_owner_decision_record_formal_candidate_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_formal_record_queue_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_formal_record_queue_packet_count"],
len(expected_iwooos_host_owner_decision_record_formal_record_queue_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_formal_record_queue_review_checklist_item_count",
iwooos_projection["summary"]["host_owner_decision_record_formal_record_queue_review_checklist_item_count"],
len(expected_iwooos_host_owner_decision_record_formal_record_queue_review_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_formal_record_queue_review_outcome_lane_count",
iwooos_projection["summary"]["host_owner_decision_record_formal_record_queue_review_outcome_lane_count"],
len(expected_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_handoff_readiness_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_human_handoff_readiness_packet_count"],
len(expected_iwooos_host_owner_decision_record_human_handoff_readiness_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_handoff_readiness_review_checklist_item_count",
iwooos_projection["summary"]["host_owner_decision_record_human_handoff_readiness_review_checklist_item_count"],
len(expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_handoff_readiness_review_outcome_lane_count",
iwooos_projection["summary"]["host_owner_decision_record_human_handoff_readiness_review_outcome_lane_count"],
len(expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_record_owner_review_candidate_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_human_record_owner_review_candidate_packet_count"],
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_record_owner_review_candidate_checklist_item_count",
iwooos_projection["summary"][
"host_owner_decision_record_human_record_owner_review_candidate_checklist_item_count"
],
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_item_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_record_owner_review_candidate_outcome_lane_count",
iwooos_projection["summary"][
"host_owner_decision_record_human_record_owner_review_candidate_outcome_lane_count"
],
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lane_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_record_owner_review_preparation_packet_count",
iwooos_projection["summary"]["host_owner_decision_record_human_record_owner_review_preparation_packet_count"],
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_packet_ids),
)
assert_equal(
"iwooos_projection.summary.host_owner_decision_record_human_record_owner_review_preparation_checklist_item_count",
iwooos_projection["summary"][
"host_owner_decision_record_human_record_owner_review_preparation_checklist_item_count"
],
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_item_ids),
)
iwooos_progress = iwooos_projection["progress"]
assert_equal("iwooos_projection.progress.overall_percent", iwooos_progress["overall_percent"], progress["overall_percent"])
assert_equal(
"iwooos_projection.progress.framework_percent_min",
iwooos_progress["framework_percent_min"],
progress["framework_percent_min"],
)
assert_equal(
"iwooos_projection.progress.framework_percent_max",
iwooos_progress["framework_percent_max"],
progress["framework_percent_max"],
)
assert_equal(
"iwooos_projection.progress.runtime_landing_percent_min",
iwooos_progress["runtime_landing_percent_min"],
progress["runtime_landing_percent_min"],
)
assert_equal(
"iwooos_projection.progress.runtime_landing_percent_max",
iwooos_progress["runtime_landing_percent_max"],
progress["runtime_landing_percent_max"],
)
assert_equal(
"iwooos_projection.progress.headline_status",
iwooos_progress["headline_status"],
progress_display_policy["headline_status"],
)
assert_true("iwooos_projection.progress.not_authorization", iwooos_progress["not_authorization"])
expected_awooop_read_only_landing_item_ids = [
"awooop_landing_rollup_snapshot_readable",
"awooop_landing_evidence_refs_readable",
"awooop_landing_guard_checks_known",
"awooop_landing_route_groups_known",
"awooop_landing_forbidden_outputs_locked",
"awooop_landing_production_handoff_pending",
]
assert_equal(
"iwooos_projection.summary.awooop_read_only_landing_readiness_item_count",
iwooos_projection["summary"]["awooop_read_only_landing_readiness_item_count"],
len(expected_awooop_read_only_landing_item_ids),
)
awooop_read_only_landing_items = iwooos_projection["awooop_read_only_landing_readiness_items"]
assert_equal(
"iwooos_projection.awooop_read_only_landing_readiness_items.item_ids",
[item["item_id"] for item in awooop_read_only_landing_items],
expected_awooop_read_only_landing_item_ids,
)
assert_equal(
"iwooos_projection.awooop_read_only_landing_readiness_items.display_order",
[item["display_order"] for item in awooop_read_only_landing_items],
list(range(1, len(expected_awooop_read_only_landing_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.awooop_read_only_landing_readiness_items.current_states",
[item["current_state"] for item in awooop_read_only_landing_items],
[
"ready_for_read_only_intake",
"ready_for_read_only_intake",
"ready_for_read_only_intake",
"ready_for_read_only_intake",
"ready_for_read_only_intake",
"production_read_only_consumption_verified",
],
)
assert_equal(
"iwooos_projection.awooop_read_only_landing_readiness_items.landing_dependencies",
[item["landing_dependency"] for item in awooop_read_only_landing_items],
[
"security_mirror_status_rollup_snapshot",
"evidence_refs",
"guard_checks",
"security_mirror_route_groups",
"forbidden_outputs",
"awooop_mainline_consumption",
],
)
for item in awooop_read_only_landing_items:
landing_completed = item["item_id"] == "awooop_landing_production_handoff_pending"
assert_equal(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.display_mode",
item["display_mode"],
"awooop_read_only_landing_readiness_only",
)
assert_equal(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.headline_percent_delta",
item["headline_percent_delta"],
3 if landing_completed else 0,
)
if landing_completed:
assert_true(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
else:
assert_false(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
assert_false(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.execution_router_linked",
item["execution_router_linked"],
)
if landing_completed:
assert_true(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.progress_change_applied",
item["progress_change_applied"],
)
else:
assert_false(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.progress_change_applied",
item["progress_change_applied"],
)
assert_false(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.awooop_read_only_landing_readiness_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
expected_awooop_cross_session_handoff_packet_ids = [
"awooop_handoff_branch_and_pr_anchor",
"awooop_handoff_progress_semantics",
"awooop_handoff_required_guard_commands",
"awooop_handoff_forbidden_runtime_actions",
"awooop_handoff_read_only_inputs",
"awooop_handoff_next_coordination_gate",
]
assert_equal(
"iwooos_projection.summary.awooop_cross_session_handoff_packet_count",
iwooos_projection["summary"]["awooop_cross_session_handoff_packet_count"],
len(expected_awooop_cross_session_handoff_packet_ids),
)
awooop_cross_session_handoff_packets = iwooos_projection["awooop_cross_session_handoff_packets"]
assert_equal(
"iwooos_projection.awooop_cross_session_handoff_packets.packet_ids",
[item["packet_id"] for item in awooop_cross_session_handoff_packets],
expected_awooop_cross_session_handoff_packet_ids,
)
assert_equal(
"iwooos_projection.awooop_cross_session_handoff_packets.display_order",
[item["display_order"] for item in awooop_cross_session_handoff_packets],
list(range(1, len(expected_awooop_cross_session_handoff_packet_ids) + 1)),
)
assert_equal(
"iwooos_projection.awooop_cross_session_handoff_packets.handoff_axes",
[item["handoff_axis"] for item in awooop_cross_session_handoff_packets],
[
"branch_and_pr_anchor",
"progress_semantics",
"required_guard_commands",
"forbidden_runtime_actions",
"read_only_inputs",
"next_coordination_gate",
],
)
assert_equal(
"iwooos_projection.awooop_cross_session_handoff_packets.current_states",
[item["current_state"] for item in awooop_cross_session_handoff_packets],
[
"ready_for_parallel_session_sync",
"ready_for_parallel_session_sync",
"ready_for_parallel_session_sync",
"ready_for_parallel_session_sync",
"ready_for_parallel_session_sync",
"production_landing_evidence_recorded_waiting_remaining_gates",
],
)
for item in awooop_cross_session_handoff_packets:
assert_equal(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"awooop_cross_session_handoff_packet_only",
)
assert_equal(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.headline_percent_delta",
item["headline_percent_delta"],
0,
)
assert_false(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
assert_false(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.execution_router_linked",
item["execution_router_linked"],
)
assert_false(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.progress_change_applied",
item["progress_change_applied"],
)
assert_false(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.awooop_cross_session_handoff_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
expected_progress_hold_movement_gate_ids = [
"progress_hold_owner_response_accepted",
"progress_hold_redacted_payload_ingested",
"progress_hold_active_runtime_gate",
"progress_hold_github_primary_ready",
"progress_hold_awooop_read_only_landing",
]
assert_equal(
"iwooos_projection.summary.progress_hold_movement_gate_count",
iwooos_projection["summary"]["progress_hold_movement_gate_count"],
len(expected_progress_hold_movement_gate_ids),
)
progress_hold_movement_gates = iwooos_projection["progress_hold_movement_gates"]
assert_equal(
"iwooos_projection.progress_hold_movement_gates.gate_ids",
[item["gate_id"] for item in progress_hold_movement_gates],
expected_progress_hold_movement_gate_ids,
)
assert_equal(
"iwooos_projection.progress_hold_movement_gates.display_order",
[item["display_order"] for item in progress_hold_movement_gates],
list(range(1, len(expected_progress_hold_movement_gate_ids) + 1)),
)
assert_equal(
"iwooos_projection.progress_hold_movement_gates.movement_signals",
[item["movement_signal"] for item in progress_hold_movement_gates],
[
"owner_response_accepted",
"redacted_payload_ingested",
"active_runtime_gate",
"github_primary_ready",
"awooop_read_only_landing",
],
)
assert_equal(
"iwooos_projection.progress_hold_movement_gates.current_counter_names",
[item["current_counter_name"] for item in progress_hold_movement_gates],
[
"owner_response_validation_accepted_count",
"payloads_ingested",
"active_runtime_gate_count",
"github_primary_ready_count",
"awooop_read_only_production_landing_evidence_count",
],
)
assert_equal(
"iwooos_projection.progress_hold_movement_gates.current_counter_values",
[item["current_counter_value"] for item in progress_hold_movement_gates],
[0, False, 0, 0, 1],
)
for item in progress_hold_movement_gates:
awooop_landing_gate = item["gate_id"] == "progress_hold_awooop_read_only_landing"
assert_equal(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.display_mode",
item["display_mode"],
"progress_hold_movement_gate_only",
)
assert_equal(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.headline_percent_delta",
item["headline_percent_delta"],
3 if awooop_landing_gate else 0,
)
assert_equal(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.owner_response_received_count",
item["owner_response_received_count"],
0,
)
assert_equal(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.owner_response_accepted_count",
item["owner_response_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.payloads_ingested",
item["payloads_ingested"],
)
assert_equal(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.active_runtime_gate_count",
item["active_runtime_gate_count"],
0,
)
assert_equal(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.github_primary_ready_count",
item["github_primary_ready_count"],
0,
)
if awooop_landing_gate:
assert_true(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
assert_true(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.progress_change_applied",
item["progress_change_applied"],
)
else:
assert_false(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
assert_false(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.progress_change_applied",
item["progress_change_applied"],
)
assert_false(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.progress_hold_movement_gates.{item['gate_id']}.not_authorization",
item["not_authorization"],
)
assert_equal(
"iwooos_projection.summary.progress_acceleration_lane_count",
iwooos_projection["summary"]["progress_acceleration_lane_count"],
6,
)
progress_acceleration_lanes = iwooos_projection["progress_acceleration_lanes"]
expected_progress_acceleration_lane_ids = [
"progress_acceleration_owner_responses",
"progress_acceleration_redacted_ingestion",
"progress_acceleration_runtime_gate",
"progress_acceleration_github_readiness",
"progress_acceleration_awooop_landing",
"progress_acceleration_cadence_compression",
]
assert_equal(
"iwooos_projection.progress_acceleration_lanes.lane_ids",
[item["lane_id"] for item in progress_acceleration_lanes],
expected_progress_acceleration_lane_ids,
)
assert_equal(
"iwooos_projection.progress_acceleration_lanes.display_order",
[item["display_order"] for item in progress_acceleration_lanes],
list(range(1, len(expected_progress_acceleration_lane_ids) + 1)),
)
for item in progress_acceleration_lanes:
assert_equal(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"progress_acceleration_only",
)
assert_equal(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.owner_response_received_count",
item["owner_response_received_count"],
0,
)
assert_equal(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.owner_response_accepted_count",
item["owner_response_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.payloads_ingested",
item["payloads_ingested"],
)
assert_equal(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.active_runtime_gate_count",
item["active_runtime_gate_count"],
0,
)
assert_equal(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.github_primary_ready_count",
item["github_primary_ready_count"],
0,
)
if item["lane_id"] == "progress_acceleration_awooop_landing":
assert_true(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
else:
assert_false(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.production_landing_enabled",
item["production_landing_enabled"],
)
assert_false(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.progress_acceleration_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
expected_owner_response_next_action_focus_ids = [
"owner_response_focus_s4_9_gitea_owner_attestation",
"owner_response_focus_s4_10_github_target_owner_decision",
"owner_response_focus_s4_11_refs_truth_owner_response",
"owner_response_focus_s4_12_workflow_secret_name_owner_response",
]
assert_equal(
"iwooos_projection.summary.owner_response_next_action_focus_item_count",
iwooos_projection["summary"]["owner_response_next_action_focus_item_count"],
len(expected_owner_response_next_action_focus_ids),
)
owner_response_focus_items = iwooos_projection["owner_response_next_action_focus_items"]
assert_equal(
"iwooos_projection.owner_response_next_action_focus_items.ids",
[item["focus_id"] for item in owner_response_focus_items],
expected_owner_response_next_action_focus_ids,
)
assert_equal(
"iwooos_projection.owner_response_next_action_focus_items.display_order",
[item["display_order"] for item in owner_response_focus_items],
list(range(1, len(expected_owner_response_next_action_focus_ids) + 1)),
)
assert_equal(
"iwooos_projection.owner_response_next_action_focus_items.source_rollup_lane_ids",
[item["source_rollup_lane_id"] for item in owner_response_focus_items],
[
"s4_9_gitea_inventory_owner_attestation_response",
"s4_10_github_target_owner_decision_response",
"s4_11_ref_truth_owner_response",
"s4_12_workflow_secret_name_owner_response",
],
)
assert_equal(
"iwooos_projection.owner_response_next_action_focus_items.blocked_until_previous_focus_accepted",
[item["blocked_until_previous_focus_accepted"] for item in owner_response_focus_items],
[False, True, True, True],
)
for item in owner_response_focus_items:
assert_equal(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.display_mode",
item["display_mode"],
"owner_response_next_action_focus_only",
)
assert_equal(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.owner_response_received_count",
item["owner_response_received_count"],
0,
)
assert_equal(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.owner_response_accepted_count",
item["owner_response_accepted_count"],
0,
)
assert_equal(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.owner_response_rejected_count",
item["owner_response_rejected_count"],
0,
)
assert_equal(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.audit_events_emitted_count",
item["audit_events_emitted_count"],
0,
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.auto_chase_allowed",
item["auto_chase_allowed"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.autofill_allowed",
item["autofill_allowed"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.mark_received_allowed",
item["mark_received_allowed"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.mark_accepted_allowed",
item["mark_accepted_allowed"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.approval_record_created",
item["approval_record_created"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.repo_or_refs_mutation_allowed",
item["repo_or_refs_mutation_allowed"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.owner_response_next_action_focus_items.{item['focus_id']}.not_authorization",
item["not_authorization"],
)
source_control_readiness_items = iwooos_projection["source_control_primary_readiness_items"]
assert_equal(
"iwooos_projection.source_control_primary_readiness_items.ids",
[item["item_id"] for item in source_control_readiness_items],
expected_iwooos_source_control_primary_readiness_item_ids,
)
assert_equal(
"iwooos_projection.source_control_primary_readiness_items.display_order",
[item["display_order"] for item in source_control_readiness_items],
list(range(1, len(expected_iwooos_source_control_primary_readiness_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.source_control_primary_readiness_items.gate_ids",
[item["gate_id"] for item in source_control_readiness_items],
["S4.0", "S4.0", "S4.13", "S4.11", "S4.12", "S4.4"],
)
for item in source_control_readiness_items:
assert_equal(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.display_mode",
item["display_mode"],
"github_primary_readiness_only",
)
assert_equal(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.primary_ready_count",
item["primary_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.owner_response_received_count",
item["owner_response_received_count"],
0,
)
assert_equal(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.owner_response_accepted_count",
item["owner_response_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.github_primary_switch_authorized",
item["github_primary_switch_authorized"],
)
assert_false(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.source_control_primary_readiness_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
expected_s4_9_owner_response_request_template_ids = [
"response-public-only-vs-local-gitea-gap",
"response-org-user-endpoint-identity",
"response-internal-110-adjacent-scope",
"response-repo-owner-canonical-scope",
"response-legacy-or-inaccessible-disposition",
]
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_request_template_count",
iwooos_projection["summary"]["s4_9_owner_response_request_template_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_equal(
"s49_request_draft.schema_version",
s49_request_draft["schema_version"],
"gitea_inventory_owner_attestation_request_draft_v1",
)
assert_equal("s49_request_draft.status", s49_request_draft["status"], "request_draft_ready_not_sent")
assert_equal("s49_request_draft.stage_id", s49_request_draft["stage_id"], "S4.9")
assert_equal("s49_request_draft.mode", s49_request_draft["mode"], "owner_request_draft_only")
assert_false("s49_request_draft.runtime_execution_authorized", s49_request_draft["runtime_execution_authorized"])
assert_true(
"s49_request_draft.summary.request_draft_package_ready",
s49_request_draft["summary"]["request_draft_package_ready"],
)
assert_equal(
"s49_request_draft.summary.request_draft_template_count",
s49_request_draft["summary"]["request_draft_template_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_equal(
"s49_request_draft.summary.request_draft_template_ready_count",
s49_request_draft["summary"]["request_draft_template_ready_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_true(
"s49_request_draft.summary.frontstage_package_visible",
s49_request_draft["summary"]["frontstage_package_visible"],
)
assert_equal(
"s49_request_draft.summary.frontstage_card_count",
s49_request_draft["summary"]["frontstage_card_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_true(
"s49_request_draft.summary.frontstage_detail_visible",
s49_request_draft["summary"]["frontstage_detail_visible"],
)
assert_equal(
"s49_request_draft.summary.frontstage_detail_row_count",
s49_request_draft["summary"]["frontstage_detail_row_count"],
len(expected_s4_9_owner_response_request_template_ids),
)
assert_equal(
"s49_request_draft.summary.frontstage_required_field_total",
s49_request_draft["summary"]["frontstage_required_field_total"],
30,
)
assert_equal(
"s49_request_draft.summary.frontstage_forbidden_action_count",
s49_request_draft["summary"]["frontstage_forbidden_action_count"],
10,
)
assert_false("s49_request_draft.summary.request_sent", s49_request_draft["summary"]["request_sent"])
assert_equal("s49_request_draft.summary.request_sent_count", s49_request_draft["summary"]["request_sent_count"], 0)
assert_equal(
"s49_request_draft.summary.owner_response_received_count",
s49_request_draft["summary"]["owner_response_received_count"],
0,
)
assert_equal(
"s49_request_draft.summary.owner_response_accepted_count",
s49_request_draft["summary"]["owner_response_accepted_count"],
0,
)
assert_equal(
"s49_request_draft.summary.owner_response_rejected_count",
s49_request_draft["summary"]["owner_response_rejected_count"],
0,
)
assert_equal(
"s49_request_draft.summary.audit_events_emitted_count",
s49_request_draft["summary"]["audit_events_emitted_count"],
0,
)
assert_false("s49_request_draft.summary.runtime_gate_opened", s49_request_draft["summary"]["runtime_gate_opened"])
assert_false("s49_request_draft.summary.action_buttons_allowed", s49_request_draft["summary"]["action_buttons_allowed"])
assert_true("s49_request_draft.summary.not_authorization", s49_request_draft["summary"]["not_authorization"])
assert_equal(
"s49_request_draft.request_draft_templates.ids",
[item["template_id"] for item in s49_request_draft["request_draft_templates"]],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"s49_request_draft.request_draft_templates.display_order",
[item["display_order"] for item in s49_request_draft["request_draft_templates"]],
list(range(1, len(expected_s4_9_owner_response_request_template_ids) + 1)),
)
for item in s49_request_draft["request_draft_templates"]:
assert_equal(
f"s49_request_draft.request_draft_templates.{item['template_id']}.draft_status",
item["draft_status"],
"ready_not_sent",
)
s4_9_owner_response_request_templates = iwooos_projection["s4_9_owner_response_request_templates"]
assert_equal(
"iwooos_projection.s4_9_owner_response_request_templates.ids",
[item["template_id"] for item in s4_9_owner_response_request_templates],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"iwooos_projection.s4_9_owner_response_request_templates.display_order",
[item["display_order"] for item in s4_9_owner_response_request_templates],
list(range(1, len(expected_s4_9_owner_response_request_template_ids) + 1)),
)
assert_equal(
"iwooos_projection.s4_9_owner_response_request_templates.source_template_status_ids",
[item["source_template_status_id"] for item in s4_9_owner_response_request_templates],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"iwooos_projection.s4_9_owner_response_request_templates.attestation_item_ids",
[item["attestation_item_id"] for item in s4_9_owner_response_request_templates],
[
"public_only_vs_local_gitea_gap",
"org_user_endpoint_identity",
"internal_110_adjacent_scope",
"repo_owner_canonical_scope",
"legacy_or_inaccessible_repo_disposition",
],
)
for item in s4_9_owner_response_request_templates:
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.request_status",
item["request_status"],
"request_ready_not_sent",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.current_state",
item["current_state"],
"waiting_owner_response",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.display_mode",
item["display_mode"],
"s4_9_owner_response_request_template_only",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.request_sent_count",
item["request_sent_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.owner_response_received_count",
item["owner_response_received_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.owner_response_accepted_count",
item["owner_response_accepted_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.owner_response_rejected_count",
item["owner_response_rejected_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.audit_events_emitted_count",
item["audit_events_emitted_count"],
0,
)
for flag in [
"auto_chase_allowed",
"autofill_allowed",
"request_send_allowed",
"mark_received_allowed",
"mark_accepted_allowed",
"approval_record_created",
"gitea_inventory_completed",
"gitea_write_allowed",
"repo_or_refs_mutation_allowed",
"github_primary_ready",
"secret_value_collection_allowed",
"runtime_execution_authorized",
"action_buttons_allowed",
]:
assert_false(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.{flag}",
item[flag],
)
assert_true(
f"iwooos_projection.s4_9_owner_response_request_templates.{item['template_id']}.not_authorization",
item["not_authorization"],
)
expected_s4_9_owner_response_preflight_ids = [
"s4_9_preflight_known_attestation_item",
"s4_9_preflight_required_owner_fields",
"s4_9_preflight_allowed_decision",
"s4_9_preflight_redacted_evidence_only",
"s4_9_preflight_no_execution_request",
"s4_9_preflight_all_five_items_before_accepted",
]
assert_equal(
"iwooos_projection.summary.s4_9_owner_response_preflight_check_count",
iwooos_projection["summary"]["s4_9_owner_response_preflight_check_count"],
len(expected_s4_9_owner_response_preflight_ids),
)
s4_9_owner_response_preflight_checks = iwooos_projection["s4_9_owner_response_preflight_checks"]
assert_equal(
"iwooos_projection.s4_9_owner_response_preflight_checks.ids",
[item["preflight_id"] for item in s4_9_owner_response_preflight_checks],
expected_s4_9_owner_response_preflight_ids,
)
assert_equal(
"iwooos_projection.s4_9_owner_response_preflight_checks.display_order",
[item["display_order"] for item in s4_9_owner_response_preflight_checks],
list(range(1, len(expected_s4_9_owner_response_preflight_ids) + 1)),
)
assert_equal(
"iwooos_projection.s4_9_owner_response_preflight_checks.source_check_ids",
[item["source_check_id"] for item in s4_9_owner_response_preflight_checks],
[
"preflight-known-attestation-item",
"preflight-required-owner-fields",
"preflight-allowed-decision",
"preflight-redacted-evidence-only",
"preflight-no-execution-request",
"preflight-all-five-items-before-accepted",
],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_preflight_checks.failure_lanes",
[item["failure_lane"] for item in s4_9_owner_response_preflight_checks],
[
"request_owner_correction",
"request_more_evidence",
"request_owner_correction",
"quarantine_sensitive_payload",
"reject_execution_request",
"keep_waiting_owner_response",
],
)
for item in s4_9_owner_response_preflight_checks:
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.source_packet",
item["source_packet"],
"docs/security/GITEA-INVENTORY-OWNER-ATTESTATION-RESPONSE.md",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.display_mode",
item["display_mode"],
"s4_9_owner_response_preflight_only",
)
assert_true(f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.required", item["required"])
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.request_sent_count",
item["request_sent_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.owner_response_received_count",
item["owner_response_received_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.owner_response_accepted_count",
item["owner_response_accepted_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.owner_response_rejected_count",
item["owner_response_rejected_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.preflight_passed_count",
item["preflight_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.audit_events_emitted_count",
item["audit_events_emitted_count"],
0,
)
for flag in [
"request_sent_allowed",
"owner_response_collection_allowed",
"mark_passed_allowed",
"mark_received_allowed",
"mark_accepted_allowed",
"approval_record_created",
"runtime_gate_opened",
"gitea_write_allowed",
"repo_or_refs_mutation_allowed",
"secret_value_collection_allowed",
"sensitive_payload_allowed",
"runtime_execution_authorized",
"action_buttons_allowed",
]:
assert_false(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.{flag}",
item[flag],
)
assert_true(
f"iwooos_projection.s4_9_owner_response_preflight_checks.{item['preflight_id']}.not_authorization",
item["not_authorization"],
)
assert_equal(
"iwooos_projection.posture_pillars.ids",
[item["pillar_id"] for item in iwooos_projection["posture_pillars"]],
["exposure_posture", "source_control_supply_chain", "kali_112_mesh", "approval_boundary"],
)
assert_equal(
"iwooos_projection.posture_pillars.display_order",
[item["display_order"] for item in iwooos_projection["posture_pillars"]],
[1, 2, 3, 4],
)
for item in iwooos_projection["posture_pillars"]:
assert_equal(f"iwooos_projection.posture_pillars.{item['pillar_id']}.display_mode", item["display_mode"], "posture_only")
assert_false(
f"iwooos_projection.posture_pillars.{item['pillar_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(f"iwooos_projection.posture_pillars.{item['pillar_id']}.not_authorization", item["not_authorization"])
iwooos_surfaces = iwooos_projection["existing_frontend_surfaces"]
assert_equal(
"iwooos_projection.existing_frontend_surfaces.ids",
[item["surface_id"] for item in iwooos_surfaces],
expected_iwooos_surface_ids,
)
assert_equal(
"iwooos_projection.existing_frontend_surfaces.display_order",
[item["display_order"] for item in iwooos_surfaces],
list(range(1, len(expected_iwooos_surface_ids) + 1)),
)
for item in iwooos_surfaces:
assert_equal(
f"iwooos_projection.existing_frontend_surfaces.{item['surface_id']}.display_mode",
item["display_mode"],
"link_only",
)
assert_false(
f"iwooos_projection.existing_frontend_surfaces.{item['surface_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.existing_frontend_surfaces.{item['surface_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.existing_frontend_surfaces.{item['surface_id']}.not_authorization",
item["not_authorization"],
)
iwooos_surface_bridge_statuses = iwooos_projection["frontend_surface_reverse_bridge_statuses"]
assert_equal(
"iwooos_projection.frontend_surface_reverse_bridge_statuses.ids",
[item["surface_id"] for item in iwooos_surface_bridge_statuses],
expected_iwooos_surface_ids,
)
assert_equal(
"iwooos_projection.frontend_surface_reverse_bridge_statuses.display_order",
[item["display_order"] for item in iwooos_surface_bridge_statuses],
list(range(1, len(expected_iwooos_surface_ids) + 1)),
)
expected_iwooos_surface_bridge_states = [
"embedded_bridge_visible",
"direct_bridge_visible",
"direct_bridge_visible",
"direct_bridge_visible",
"direct_bridge_visible",
"direct_bridge_visible",
"direct_bridge_visible",
"direct_bridge_visible",
"awooop_candidate_visible",
"direct_bridge_visible",
]
assert_equal(
"iwooos_projection.frontend_surface_reverse_bridge_statuses.states",
[item["reverse_bridge_state"] for item in iwooos_surface_bridge_statuses],
expected_iwooos_surface_bridge_states,
)
for item in iwooos_surface_bridge_statuses:
assert_equal(
f"iwooos_projection.frontend_surface_reverse_bridge_statuses.{item['surface_id']}.display_mode",
item["display_mode"],
"reverse_bridge_status_only",
)
assert_false(
f"iwooos_projection.frontend_surface_reverse_bridge_statuses.{item['surface_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.frontend_surface_reverse_bridge_statuses.{item['surface_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.frontend_surface_reverse_bridge_statuses.{item['surface_id']}.not_authorization",
item["not_authorization"],
)
iwooos_coverage_groups = iwooos_projection["frontend_surface_coverage_groups"]
assert_equal(
"iwooos_projection.frontend_surface_coverage_groups.ids",
[item["group_id"] for item in iwooos_coverage_groups],
expected_iwooos_coverage_group_ids,
)
assert_equal(
"iwooos_projection.frontend_surface_coverage_groups.display_order",
[item["display_order"] for item in iwooos_coverage_groups],
list(range(1, len(expected_iwooos_coverage_group_ids) + 1)),
)
covered_surface_ids = sorted({surface_id for item in iwooos_coverage_groups for surface_id in item["surface_ids"]})
assert_equal("iwooos_projection.frontend_surface_coverage_groups.coverage", covered_surface_ids, sorted(expected_iwooos_surface_ids))
for item in iwooos_coverage_groups:
assert_equal(
f"iwooos_projection.frontend_surface_coverage_groups.{item['group_id']}.display_mode",
item["display_mode"],
"coverage_only",
)
assert_false(
f"iwooos_projection.frontend_surface_coverage_groups.{item['group_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.frontend_surface_coverage_groups.{item['group_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.frontend_surface_coverage_groups.{item['group_id']}.not_authorization",
item["not_authorization"],
)
iwooos_conflict_controls = iwooos_projection["frontend_surface_conflict_controls"]
assert_equal(
"iwooos_projection.frontend_surface_conflict_controls.ids",
[item["control_id"] for item in iwooos_conflict_controls],
expected_iwooos_conflict_control_ids,
)
assert_equal(
"iwooos_projection.frontend_surface_conflict_controls.display_order",
[item["display_order"] for item in iwooos_conflict_controls],
list(range(1, len(expected_iwooos_conflict_control_ids) + 1)),
)
for item in iwooos_conflict_controls:
assert_equal(
f"iwooos_projection.frontend_surface_conflict_controls.{item['control_id']}.display_mode",
item["display_mode"],
"conflict_control_only",
)
assert_false(
f"iwooos_projection.frontend_surface_conflict_controls.{item['control_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.frontend_surface_conflict_controls.{item['control_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.frontend_surface_conflict_controls.{item['control_id']}.not_authorization",
item["not_authorization"],
)
iwooos_journey_steps = iwooos_projection["operator_journey_steps"]
assert_equal(
"iwooos_projection.operator_journey_steps.ids",
[item["step_id"] for item in iwooos_journey_steps],
expected_iwooos_journey_step_ids,
)
assert_equal(
"iwooos_projection.operator_journey_steps.display_order",
[item["display_order"] for item in iwooos_journey_steps],
list(range(1, len(expected_iwooos_journey_step_ids) + 1)),
)
for item in iwooos_journey_steps:
assert_equal(
f"iwooos_projection.operator_journey_steps.{item['step_id']}.display_mode",
item["display_mode"],
"journey_only",
)
assert_false(
f"iwooos_projection.operator_journey_steps.{item['step_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.operator_journey_steps.{item['step_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
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"],
)
iwooos_host_coverage = iwooos_projection["host_coverage_items"]
assert_equal(
"iwooos_projection.host_coverage_items.ids",
[item["host_id"] for item in iwooos_host_coverage],
expected_iwooos_host_coverage_item_ids,
)
assert_equal(
"iwooos_projection.host_coverage_items.display_order",
[item["display_order"] for item in iwooos_host_coverage],
list(range(1, len(expected_iwooos_host_coverage_item_ids) + 1)),
)
for item in iwooos_host_coverage:
assert_equal(
f"iwooos_projection.host_coverage_items.{item['host_id']}.display_mode",
item["display_mode"],
"coverage_only",
)
assert_false(
f"iwooos_projection.host_coverage_items.{item['host_id']}.active_scan_authorized",
item["active_scan_authorized"],
)
assert_false(
f"iwooos_projection.host_coverage_items.{item['host_id']}.ssh_change_authorized",
item["ssh_change_authorized"],
)
assert_false(
f"iwooos_projection.host_coverage_items.{item['host_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_coverage_items.{item['host_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_coverage_items.{item['host_id']}.not_authorization",
item["not_authorization"],
)
iwooos_kali_maintenance_readiness = iwooos_projection["kali_maintenance_readiness_items"]
assert_equal(
"iwooos_projection.kali_maintenance_readiness_items.ids",
[item["item_id"] for item in iwooos_kali_maintenance_readiness],
expected_iwooos_kali_maintenance_readiness_item_ids,
)
assert_equal(
"iwooos_projection.kali_maintenance_readiness_items.display_order",
[item["display_order"] for item in iwooos_kali_maintenance_readiness],
list(range(1, len(expected_iwooos_kali_maintenance_readiness_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.kali_maintenance_readiness_items.upgradable_package_count",
iwooos_kali_maintenance_readiness[1]["metric_value"],
1994,
)
assert_equal(
"iwooos_projection.kali_maintenance_readiness_items.failed_systemd_unit_count",
iwooos_kali_maintenance_readiness[2]["metric_value"],
1,
)
assert_equal(
"iwooos_projection.kali_maintenance_readiness_items.reboot_gate_queue_item",
iwooos_kali_maintenance_readiness[3]["source_queue_item_id"],
"kali-full-upgrade-reboot-approval-20260513",
)
for item in iwooos_kali_maintenance_readiness:
assert_equal(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.display_mode",
item["display_mode"],
"maintenance_readiness_only",
)
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
if "full_upgrade_authorized" in item:
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.full_upgrade_authorized",
item["full_upgrade_authorized"],
)
if "reboot_authorized" in item:
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.reboot_authorized",
item["reboot_authorized"],
)
if "package_update_executed" in item:
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.package_update_executed",
item["package_update_executed"],
)
if "host_reboot_executed" in item:
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.host_reboot_executed",
item["host_reboot_executed"],
)
if "active_scan_executed" in item:
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.active_scan_executed",
item["active_scan_executed"],
)
if "action_buttons_allowed" in item:
assert_false(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.kali_maintenance_readiness_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_action_gates = iwooos_projection["host_action_gate_items"]
assert_equal(
"iwooos_projection.host_action_gate_items.ids",
[item["action_id"] for item in iwooos_host_action_gates],
expected_iwooos_host_action_gate_item_ids,
)
assert_equal(
"iwooos_projection.host_action_gate_items.display_order",
[item["display_order"] for item in iwooos_host_action_gates],
list(range(1, len(expected_iwooos_host_action_gate_item_ids) + 1)),
)
for item in iwooos_host_action_gates:
assert_equal(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.display_mode",
item["display_mode"],
"gate_only",
)
assert_false(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.active_scan_authorized",
item["active_scan_authorized"],
)
assert_false(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.credentialed_scan_authorized",
item["credentialed_scan_authorized"],
)
assert_false(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.ssh_change_authorized",
item["ssh_change_authorized"],
)
assert_false(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.host_update_authorized",
item["host_update_authorized"],
)
assert_false(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_action_gate_items.{item['action_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_readiness = iwooos_projection["host_evidence_readiness_items"]
assert_equal(
"iwooos_projection.host_evidence_readiness_items.ids",
[item["item_id"] for item in iwooos_host_evidence_readiness],
expected_iwooos_host_evidence_readiness_item_ids,
)
assert_equal(
"iwooos_projection.host_evidence_readiness_items.display_order",
[item["display_order"] for item in iwooos_host_evidence_readiness],
list(range(1, len(expected_iwooos_host_evidence_readiness_item_ids) + 1)),
)
for item in iwooos_host_evidence_readiness:
assert_equal(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.display_mode",
item["display_mode"],
"evidence_readiness_only",
)
assert_equal(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.active_scan_authorized",
item["active_scan_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.credentialed_scan_authorized",
item["credentialed_scan_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.ssh_change_authorized",
item["ssh_change_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.host_update_authorized",
item["host_update_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_readiness_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_collection_order = iwooos_projection["host_evidence_collection_order"]
assert_equal(
"iwooos_projection.host_evidence_collection_order.ids",
[item["step_id"] for item in iwooos_host_evidence_collection_order],
expected_iwooos_host_evidence_collection_step_ids,
)
assert_equal(
"iwooos_projection.host_evidence_collection_order.display_order",
[item["display_order"] for item in iwooos_host_evidence_collection_order],
list(range(1, len(expected_iwooos_host_evidence_collection_step_ids) + 1)),
)
expected_iwooos_host_evidence_collection_source_ids = [
"host_scope_boundary_evidence",
"host_owner_decision_record_evidence",
"host_credential_handling_evidence",
"host_maintenance_window_evidence",
"host_rollback_plan_evidence",
"host_validation_metrics_evidence",
"host_redacted_ingestion_evidence",
]
assert_equal(
"iwooos_projection.host_evidence_collection_order.source_item_ids",
[item["source_item_id"] for item in iwooos_host_evidence_collection_order],
expected_iwooos_host_evidence_collection_source_ids,
)
expected_iwooos_host_evidence_collection_dependencies = [
[],
["collect_scope_boundary_first"],
["collect_owner_decision_second"],
["collect_owner_decision_second"],
["collect_maintenance_window_fourth"],
["collect_rollback_plan_fifth"],
["collect_validation_metrics_sixth"],
]
assert_equal(
"iwooos_projection.host_evidence_collection_order.depends_on_step_ids",
[item["depends_on_step_ids"] for item in iwooos_host_evidence_collection_order],
expected_iwooos_host_evidence_collection_dependencies,
)
for item in iwooos_host_evidence_collection_order:
assert_equal(
f"iwooos_projection.host_evidence_collection_order.{item['step_id']}.display_mode",
item["display_mode"],
"collection_order_only",
)
assert_equal(
f"iwooos_projection.host_evidence_collection_order.{item['step_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_collection_order.{item['step_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_collection_order.{item['step_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_collection_order.{item['step_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_collection_order.{item['step_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_intake_preflight = iwooos_projection["host_evidence_intake_preflight_checks"]
assert_equal(
"iwooos_projection.host_evidence_intake_preflight_checks.ids",
[item["check_id"] for item in iwooos_host_evidence_intake_preflight],
expected_iwooos_host_evidence_intake_preflight_check_ids,
)
assert_equal(
"iwooos_projection.host_evidence_intake_preflight_checks.display_order",
[item["display_order"] for item in iwooos_host_evidence_intake_preflight],
list(range(1, len(expected_iwooos_host_evidence_intake_preflight_check_ids) + 1)),
)
expected_iwooos_host_evidence_intake_preflight_rejection_lanes = [
"reject_missing_redacted_metadata_pointer",
"quarantine_dependency_skip",
"reject_scan_without_scope",
"reject_change_without_owner_decision",
"reject_plaintext_credential_or_secret_value",
"reject_raw_payload_ingestion",
"reject_frontend_counter_transition",
]
assert_equal(
"iwooos_projection.host_evidence_intake_preflight_checks.rejection_lanes",
[item["rejection_lane"] for item in iwooos_host_evidence_intake_preflight],
expected_iwooos_host_evidence_intake_preflight_rejection_lanes,
)
for item in iwooos_host_evidence_intake_preflight:
assert_equal(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.display_mode",
item["display_mode"],
"intake_preflight_only",
)
assert_equal(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_intake_preflight_checks.{item['check_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_review_outcome_lanes = iwooos_projection["host_evidence_review_outcome_lanes"]
assert_equal(
"iwooos_projection.host_evidence_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_evidence_review_outcome_lanes],
expected_iwooos_host_evidence_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_evidence_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_evidence_review_outcome_lanes],
list(range(1, len(expected_iwooos_host_evidence_review_outcome_lane_ids) + 1)),
)
expected_iwooos_host_evidence_review_outcome_states = [
"candidate_only_not_received",
"needs_scope_evidence",
"needs_owner_decision_pointer",
"quarantine_dependency_skip",
"rejected_raw_payload",
"rejected_plaintext_credential",
"waiting_followup_runtime_gate",
]
assert_equal(
"iwooos_projection.host_evidence_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_evidence_review_outcome_lanes],
expected_iwooos_host_evidence_review_outcome_states,
)
for item in iwooos_host_evidence_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.approval_record_created",
item["approval_record_created"],
)
assert_false(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_review_handoff_packets = iwooos_projection["host_evidence_review_handoff_packets"]
assert_equal(
"iwooos_projection.host_evidence_review_handoff_packets.ids",
[item["packet_id"] for item in iwooos_host_evidence_review_handoff_packets],
expected_iwooos_host_evidence_review_handoff_packet_ids,
)
assert_equal(
"iwooos_projection.host_evidence_review_handoff_packets.display_order",
[item["display_order"] for item in iwooos_host_evidence_review_handoff_packets],
list(range(1, len(expected_iwooos_host_evidence_review_handoff_packet_ids) + 1)),
)
expected_iwooos_host_evidence_review_handoff_requirements = [
"redacted_scope_boundary_summary",
"owner_decision_record_pointer",
"credential_handling_metadata_only_statement",
"maintenance_window_and_rollback_pointer",
"post_review_validation_metrics_pointer",
"redaction_attestation_metadata_only",
"followup_runtime_gate_pointer_only",
]
assert_equal(
"iwooos_projection.host_evidence_review_handoff_packets.packet_requirements",
[item["packet_requirement"] for item in iwooos_host_evidence_review_handoff_packets],
expected_iwooos_host_evidence_review_handoff_requirements,
)
for item in iwooos_host_evidence_review_handoff_packets:
assert_equal(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"review_handoff_only",
)
assert_equal(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.approval_record_created",
item["approval_record_created"],
)
assert_false(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_review_handoff_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_reviewer_checklist = iwooos_projection["host_evidence_reviewer_checklist_items"]
assert_equal(
"iwooos_projection.host_evidence_reviewer_checklist_items.ids",
[item["check_id"] for item in iwooos_host_evidence_reviewer_checklist],
expected_iwooos_host_evidence_reviewer_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_evidence_reviewer_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_evidence_reviewer_checklist],
list(range(1, len(expected_iwooos_host_evidence_reviewer_checklist_item_ids) + 1)),
)
expected_iwooos_host_evidence_reviewer_checklist_pass_conditions = [
"redacted_scope_pointer_only_no_scan_started",
"decision_pointer_only_no_approval_record_created",
"secret_value_collection_false",
"raw_payload_allowed_false",
"future_change_conditions_only_no_change_execution",
"validation_pointer_only_runtime_gate_closed",
"active_runtime_gates_zero_action_buttons_false",
]
assert_equal(
"iwooos_projection.host_evidence_reviewer_checklist_items.pass_conditions",
[item["pass_condition"] for item in iwooos_host_evidence_reviewer_checklist],
expected_iwooos_host_evidence_reviewer_checklist_pass_conditions,
)
for item in iwooos_host_evidence_reviewer_checklist:
assert_equal(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.display_mode",
item["display_mode"],
"reviewer_checklist_only",
)
assert_equal(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.approval_record_created",
item["approval_record_created"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_reviewer_checklist_items.{item['check_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_evidence_reviewer_outcome_lanes = iwooos_projection["host_evidence_reviewer_outcome_lanes"]
assert_equal(
"iwooos_projection.host_evidence_reviewer_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_evidence_reviewer_outcome_lanes],
expected_iwooos_host_evidence_reviewer_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_evidence_reviewer_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_evidence_reviewer_outcome_lanes],
list(range(1, len(expected_iwooos_host_evidence_reviewer_outcome_lane_ids) + 1)),
)
expected_iwooos_host_evidence_reviewer_outcome_states = [
"candidate_only_not_accepted",
"needs_scope_rework",
"needs_owner_decision_refresh",
"quarantine_credential_metadata_gap",
"rejected_redaction_failed",
"needs_rollback_evidence",
"waiting_separate_runtime_gate",
]
assert_equal(
"iwooos_projection.host_evidence_reviewer_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_evidence_reviewer_outcome_lanes],
expected_iwooos_host_evidence_reviewer_outcome_states,
)
for item in iwooos_host_evidence_reviewer_outcome_lanes:
assert_equal(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"reviewer_outcome_only",
)
assert_equal(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.checklist_passed_count",
item["checklist_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.received_count",
item["received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.accepted_count",
item["accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.approval_record_created",
item["approval_record_created"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_evidence_reviewer_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_candidate_packets = iwooos_projection["host_owner_decision_candidate_packets"]
assert_equal(
"iwooos_projection.host_owner_decision_candidate_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_candidate_packets],
expected_iwooos_host_owner_decision_candidate_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_candidate_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_candidate_packets],
list(range(1, len(expected_iwooos_host_owner_decision_candidate_packet_ids) + 1)),
)
expected_iwooos_host_owner_decision_scopes = [
"scope_boundary_hosts_networks_services_exclusions",
"observe_only_future_active_or_credentialed_scan_mode",
"metadata_only_credential_handling_boundary",
"future_maintenance_window_constraints",
"rollback_owner_and_recovery_path",
"post_check_metrics_and_baseline_pointer",
"separate_runtime_gate_requirement",
]
assert_equal(
"iwooos_projection.host_owner_decision_candidate_packets.decision_scopes",
[item["decision_scope"] for item in iwooos_host_owner_decision_candidate_packets],
expected_iwooos_host_owner_decision_scopes,
)
for item in iwooos_host_owner_decision_candidate_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_candidate_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_candidate_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_review_checklist = iwooos_projection["host_owner_decision_review_checklist_items"]
assert_equal(
"iwooos_projection.host_owner_decision_review_checklist_items.ids",
[item["check_id"] for item in iwooos_host_owner_decision_review_checklist],
expected_iwooos_host_owner_decision_review_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_review_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_review_checklist],
list(range(1, len(expected_iwooos_host_owner_decision_review_checklist_item_ids) + 1)),
)
expected_iwooos_host_owner_decision_review_guard_conditions = [
"scope_review_only_owner_decision_received_zero",
"active_scan_and_credentialed_scan_authorized_false",
"secret_value_collection_allowed_false",
"host_update_authorized_false",
"owner_approval_record_created_false",
"runtime_gate_opened_false",
"action_buttons_allowed_false_runtime_gate_separate",
]
assert_equal(
"iwooos_projection.host_owner_decision_review_checklist_items.guard_conditions",
[item["guard_condition"] for item in iwooos_host_owner_decision_review_checklist],
expected_iwooos_host_owner_decision_review_guard_conditions,
)
for item in iwooos_host_owner_decision_review_checklist:
assert_equal(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.display_mode",
item["display_mode"],
"owner_decision_review_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_review_checklist_items.{item['check_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_review_outcome_lanes = iwooos_projection["host_owner_decision_review_outcome_lanes"]
assert_equal(
"iwooos_projection.host_owner_decision_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_owner_decision_review_outcome_lanes],
expected_iwooos_host_owner_decision_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_review_outcome_lanes],
list(range(1, len(expected_iwooos_host_owner_decision_review_outcome_lane_ids) + 1)),
)
expected_iwooos_host_owner_decision_review_outcome_states = [
"candidate_decision_record_only",
"needs_scope_refresh",
"needs_scan_mode_scope_review",
"quarantine_credential_boundary_gap",
"needs_maintenance_window",
"needs_rollback_owner",
"waiting_separate_runtime_gate",
]
assert_equal(
"iwooos_projection.host_owner_decision_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_owner_decision_review_outcome_lanes],
expected_iwooos_host_owner_decision_review_outcome_states,
)
for item in iwooos_host_owner_decision_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.owner_decision_review_passed_count",
item["owner_decision_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_draft_packets = iwooos_projection[
"host_owner_decision_record_draft_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_record_draft_packets],
expected_iwooos_host_owner_decision_record_draft_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_draft_packets],
list(range(1, len(expected_iwooos_host_owner_decision_record_draft_packet_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_draft_fields = [
"scope_statement",
"scan_mode_statement",
"credential_boundary_statement",
"maintenance_constraints_statement",
"rollback_owner_statement",
"validation_metrics_statement",
"runtime_gate_pointer_statement",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_packets.draft_fields",
[item["draft_field"] for item in iwooos_host_owner_decision_record_draft_packets],
expected_iwooos_host_owner_decision_record_draft_fields,
)
for item in iwooos_host_owner_decision_record_draft_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_draft_only",
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_draft_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_draft_review_checklist = iwooos_projection[
"host_owner_decision_record_draft_review_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.ids",
[item["check_id"] for item in iwooos_host_owner_decision_record_draft_review_checklist],
expected_iwooos_host_owner_decision_record_draft_review_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_draft_review_checklist],
list(range(1, len(expected_iwooos_host_owner_decision_record_draft_review_checklist_item_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_draft_review_conditions = [
"scope_statement_metadata_complete",
"scan_mode_not_authorization_confirmed",
"credential_boundary_metadata_only_confirmed",
"maintenance_constraints_no_change_confirmed",
"rollback_owner_recovery_pointer_readable",
"validation_metrics_baseline_linked",
"runtime_gate_separate_and_closed",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.review_conditions",
[item["review_condition"] for item in iwooos_host_owner_decision_record_draft_review_checklist],
expected_iwooos_host_owner_decision_record_draft_review_conditions,
)
for item in iwooos_host_owner_decision_record_draft_review_checklist:
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.display_mode",
item["display_mode"],
"owner_decision_record_draft_review_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.decision_record_review_passed_count",
item["decision_record_review_passed_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_draft_review_checklist_items.{item['check_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_draft_review_outcome_lanes = iwooos_projection[
"host_owner_decision_record_draft_review_outcome_lanes"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_owner_decision_record_draft_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_draft_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_draft_review_outcome_lanes],
list(range(1, len(expected_iwooos_host_owner_decision_record_draft_review_outcome_lane_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_draft_review_outcome_states = [
"candidate_decision_record_writeup_only",
"needs_scope_statement_refresh",
"needs_scan_mode_wording_refresh",
"needs_credential_boundary_metadata_refresh",
"needs_maintenance_constraints_refresh",
"needs_rollback_owner_refresh",
"waiting_separate_runtime_gate",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_owner_decision_record_draft_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_draft_review_outcome_states,
)
for item in iwooos_host_owner_decision_record_draft_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_record_draft_review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.decision_record_review_passed_count",
item["decision_record_review_passed_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_draft_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_writeup_packets = iwooos_projection[
"host_owner_decision_record_writeup_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_record_writeup_packets],
expected_iwooos_host_owner_decision_record_writeup_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_writeup_packets],
list(range(1, len(expected_iwooos_host_owner_decision_record_writeup_packet_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_writeup_fields = [
"decision_summary",
"approved_scope_statement",
"scan_mode_limits_statement",
"credential_boundary_statement",
"maintenance_and_rollback_statement",
"validation_evidence_statement",
"runtime_gate_pointer_statement",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_packets.writeup_fields",
[item["writeup_field"] for item in iwooos_host_owner_decision_record_writeup_packets],
expected_iwooos_host_owner_decision_record_writeup_fields,
)
for item in iwooos_host_owner_decision_record_writeup_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_writeup_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.decision_record_writeup_completed_count",
item["decision_record_writeup_completed_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_writeup_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_writeup_review_checklist_items = iwooos_projection[
"host_owner_decision_record_writeup_review_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.ids",
[item["check_id"] for item in iwooos_host_owner_decision_record_writeup_review_checklist_items],
expected_iwooos_host_owner_decision_record_writeup_review_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_writeup_review_checklist_items],
list(range(1, len(expected_iwooos_host_owner_decision_record_writeup_review_checklist_item_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_writeup_review_conditions = [
"decision_summary_risk_acceptance_and_no_execution_statement_readable",
"scope_exclusion_observation_intent_and_expiry_complete",
"scan_mode_limits_explicit_and_not_authorization",
"credential_boundary_metadata_only_and_no_secret_collection",
"maintenance_window_constraints_rollback_and_human_contact_linked",
"validation_metrics_baseline_evidence_and_acceptance_condition_linked",
"runtime_gate_pointer_separate_and_closed",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.review_conditions",
[item["review_condition"] for item in iwooos_host_owner_decision_record_writeup_review_checklist_items],
expected_iwooos_host_owner_decision_record_writeup_review_conditions,
)
for item in iwooos_host_owner_decision_record_writeup_review_checklist_items:
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.display_mode",
item["display_mode"],
"owner_decision_record_writeup_review_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.decision_record_writeup_review_passed_count",
item["decision_record_writeup_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.decision_record_writeup_completed_count",
item["decision_record_writeup_completed_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_writeup_review_checklist_items.{item['check_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_writeup_review_outcome_lanes = iwooos_projection[
"host_owner_decision_record_writeup_review_outcome_lanes"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_owner_decision_record_writeup_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_writeup_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_writeup_review_outcome_lanes],
list(range(1, len(expected_iwooos_host_owner_decision_record_writeup_review_outcome_lane_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_writeup_review_outcome_states = [
"candidate_formal_decision_record_only",
"needs_decision_summary_clarification",
"needs_scope_and_expiry_refresh",
"needs_scan_mode_limit_wording_refresh",
"needs_credential_boundary_metadata_refresh",
"needs_maintenance_rollback_refresh",
"waiting_separate_runtime_gate",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_owner_decision_record_writeup_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_writeup_review_outcome_states,
)
for item in iwooos_host_owner_decision_record_writeup_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_record_writeup_review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.decision_record_writeup_review_passed_count",
item["decision_record_writeup_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.decision_record_writeup_completed_count",
item["decision_record_writeup_completed_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_writeup_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_formal_candidate_packets = iwooos_projection[
"host_owner_decision_record_formal_candidate_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_record_formal_candidate_packets],
expected_iwooos_host_owner_decision_record_formal_candidate_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_formal_candidate_packets],
list(range(1, len(expected_iwooos_host_owner_decision_record_formal_candidate_packet_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_formal_candidate_fields = [
"record_identity_and_version",
"decision_summary",
"approved_scope_statement",
"scan_mode_limits_statement",
"credential_boundary_statement",
"maintenance_and_rollback_statement",
"validation_and_runtime_gate_statement",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_packets.candidate_fields",
[item["candidate_field"] for item in iwooos_host_owner_decision_record_formal_candidate_packets],
expected_iwooos_host_owner_decision_record_formal_candidate_fields,
)
for item in iwooos_host_owner_decision_record_formal_candidate_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.source_lane_id",
item["source_lane_id"],
"host_decision_record_writeup_review_ready_for_formal_record_outcome_lane",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_formal_candidate_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.formal_record_candidate_finalized_count",
item["formal_record_candidate_finalized_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_formal_candidate_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_formal_candidate_review_checklist_items = iwooos_projection[
"host_owner_decision_record_formal_candidate_review_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.ids",
[item["check_id"] for item in iwooos_host_owner_decision_record_formal_candidate_review_checklist_items],
expected_iwooos_host_owner_decision_record_formal_candidate_review_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_formal_candidate_review_checklist_items],
list(range(1, len(expected_iwooos_host_owner_decision_record_formal_candidate_review_checklist_item_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_formal_candidate_review_conditions = [
"record_identity_version_owner_scope_and_trace_source_readable",
"decision_summary_risk_acceptance_and_no_execution_statement_readable",
"scope_exclusion_observation_intent_and_expiry_consistent",
"scan_limits_explicit_and_not_authorization",
"credential_boundary_metadata_only_masked_and_no_secret_collection",
"maintenance_window_constraints_rollback_and_human_contact_traceable",
"validation_evidence_linked_and_runtime_gate_separate_closed",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.review_conditions",
[
item["review_condition"]
for item in iwooos_host_owner_decision_record_formal_candidate_review_checklist_items
],
expected_iwooos_host_owner_decision_record_formal_candidate_review_conditions,
)
for item in iwooos_host_owner_decision_record_formal_candidate_review_checklist_items:
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.display_mode",
item["display_mode"],
"owner_decision_record_formal_candidate_review_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.formal_record_candidate_review_passed_count",
item["formal_record_candidate_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.formal_record_candidate_finalized_count",
item["formal_record_candidate_finalized_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_checklist_items.{item['check_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_formal_candidate_review_outcome_lanes = iwooos_projection[
"host_owner_decision_record_formal_candidate_review_outcome_lanes"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_owner_decision_record_formal_candidate_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_formal_candidate_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_formal_candidate_review_outcome_lanes],
list(range(1, len(expected_iwooos_host_owner_decision_record_formal_candidate_review_outcome_lane_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_formal_candidate_review_outcome_states = [
"ready_for_separate_human_record_queue",
"record_identity_trace_missing",
"decision_summary_needs_clarification",
"scope_expiry_needs_refresh",
"scan_limits_ambiguous_not_authorization",
"credential_boundary_failed",
"maintenance_rollback_incomplete",
"waiting_separate_runtime_gate",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_owner_decision_record_formal_candidate_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_formal_candidate_review_outcome_states,
)
for item in iwooos_host_owner_decision_record_formal_candidate_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_record_formal_candidate_review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.formal_record_candidate_review_passed_count",
item["formal_record_candidate_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.formal_record_candidate_finalized_count",
item["formal_record_candidate_finalized_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_formal_candidate_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_formal_record_queue_packets = iwooos_projection[
"host_owner_decision_record_formal_record_queue_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_record_formal_record_queue_packets],
expected_iwooos_host_owner_decision_record_formal_record_queue_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_formal_record_queue_packets],
list(range(1, len(expected_iwooos_host_owner_decision_record_formal_record_queue_packet_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_formal_record_queue_fields = [
"record_identity_queue_packet",
"decision_summary_queue_packet",
"scope_expiry_queue_packet",
"scan_limits_queue_packet",
"credential_boundary_queue_packet",
"maintenance_rollback_queue_packet",
"validation_runtime_gate_queue_packet",
"no_execution_attestation_queue_packet",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.queue_fields",
[item["queue_field"] for item in iwooos_host_owner_decision_record_formal_record_queue_packets],
expected_iwooos_host_owner_decision_record_formal_record_queue_fields,
)
for item in iwooos_host_owner_decision_record_formal_record_queue_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.source_lane_id",
item["source_lane_id"],
"host_decision_record_formal_candidate_review_ready_for_record_queue_outcome_lane",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_formal_record_queue_packet_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_formal_record_queue_review_checklist_items = iwooos_projection[
"host_owner_decision_record_formal_record_queue_review_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.ids",
[item["item_id"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_checklist_items],
expected_iwooos_host_owner_decision_record_formal_record_queue_review_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_checklist_items],
list(range(1, len(expected_iwooos_host_owner_decision_record_formal_record_queue_review_checklist_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.source_packet_ids",
[item["source_packet_id"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_checklist_items],
expected_iwooos_host_owner_decision_record_formal_record_queue_packet_ids,
)
expected_iwooos_host_owner_decision_record_formal_record_queue_review_conditions = [
"identity_traceable_to_candidate_source",
"decision_summary_readable_without_approval_semantics",
"scope_expiry_current_and_bounded",
"scan_limits_not_authorization",
"credential_boundary_metadata_only",
"maintenance_rollback_pointer_linked",
"validation_runtime_gate_separate",
"no_execution_attestation_present",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.review_conditions",
[item["review_condition"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_checklist_items],
expected_iwooos_host_owner_decision_record_formal_record_queue_review_conditions,
)
for item in iwooos_host_owner_decision_record_formal_record_queue_review_checklist_items:
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.display_mode",
item["display_mode"],
"owner_decision_record_formal_record_queue_review_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_checklist_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lanes = iwooos_projection[
"host_owner_decision_record_formal_record_queue_review_outcome_lanes"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lanes],
list(range(1, len(expected_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lane_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_states = [
"ready_for_human_record_owner_handoff",
"identity_needs_trace_refresh",
"decision_summary_needs_clarification",
"scope_expiry_needs_refresh",
"scan_limits_remain_ambiguous",
"credential_boundary_failed",
"maintenance_rollback_incomplete",
"runtime_gate_still_required",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_formal_record_queue_review_outcome_states,
)
for item in iwooos_host_owner_decision_record_formal_record_queue_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_record_formal_record_queue_review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_formal_record_queue_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_handoff_readiness_packets = iwooos_projection[
"host_owner_decision_record_human_handoff_readiness_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_packets],
expected_iwooos_host_owner_decision_record_human_handoff_readiness_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_packets],
list(range(1, len(expected_iwooos_host_owner_decision_record_human_handoff_readiness_packet_ids) + 1)),
)
expected_iwooos_host_owner_decision_record_human_handoff_readiness_fields = [
"record_identity_and_trace",
"human_record_owner_contact_boundary",
"decision_summary_and_no_execution_statement",
"approved_scope_and_expiry_window",
"observe_only_and_future_scan_limits",
"metadata_only_credential_boundary",
"maintenance_constraints_and_rollback_owner",
"independent_runtime_gate_and_no_action_buttons",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.readiness_fields",
[item["readiness_field"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_packets],
expected_iwooos_host_owner_decision_record_human_handoff_readiness_fields,
)
for item in iwooos_host_owner_decision_record_human_handoff_readiness_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_handoff_readiness_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.source_outcome_lane_id",
item["source_outcome_lane_id"],
"host_decision_record_formal_record_queue_review_ready_for_human_record_owner_handoff_outcome_lane",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_items = iwooos_projection[
"host_owner_decision_record_human_handoff_readiness_review_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.ids",
[item["item_id"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_items],
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_items],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_item_ids) + 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_conditions = [
"identity_trace_readable",
"owner_boundary_readable",
"decision_summary_readable",
"scope_expiry_current",
"scan_limits_not_authorization",
"credential_boundary_metadata_only",
"maintenance_rollback_traceable",
"runtime_gate_separate",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.review_conditions",
[
item["review_condition"]
for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_items
],
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_conditions,
)
for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_checklist_items:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_handoff_readiness_review_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_checklist_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes = iwooos_projection[
"host_owner_decision_record_human_handoff_readiness_review_outcome_lanes"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.ids",
[item["lane_id"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lane_ids) + 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_states = [
"ready_for_human_record_owner_review_candidate",
"identity_trace_needs_refresh",
"owner_boundary_needs_clarification",
"decision_summary_needs_clarification",
"scope_expiry_needs_refresh",
"scan_limits_remain_ambiguous",
"credential_boundary_failed",
"maintenance_rollback_incomplete",
"runtime_gate_still_required",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.outcome_states",
[item["outcome_state"] for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes],
expected_iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_states,
)
for item in iwooos_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_handoff_readiness_review_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_handoff_readiness_review_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_record_owner_review_candidate_packets = iwooos_projection[
"host_owner_decision_record_human_record_owner_review_candidate_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.ids",
[item["packet_id"] for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_packets],
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.display_order",
[item["display_order"] for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_packets],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_packet_ids) + 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_fields = [
"candidate_identity_and_trace",
"human_record_owner_boundary",
"decision_summary_and_no_execution_statement",
"approved_scope_and_expiry_window",
"observe_only_and_future_scan_limits",
"metadata_only_credential_boundary",
"maintenance_constraints_and_rollback_owner",
"validation_evidence_and_independent_runtime_gate",
"no_execution_no_approval_attestation",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.review_candidate_fields",
[
item["review_candidate_field"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_packets
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_fields,
)
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.source_outcome_lane_id",
item["source_outcome_lane_id"],
"host_decision_record_handoff_readiness_review_ready_for_human_record_owner_review_candidate_outcome_lane",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_record_owner_review_candidate_packet_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.human_record_owner_review_started_count",
item["human_record_owner_review_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.human_record_owner_review_ready_count",
item["human_record_owner_review_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_items = iwooos_projection[
"host_owner_decision_record_human_record_owner_review_candidate_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.ids",
[
item["item_id"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_items
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.display_order",
[
item["display_order"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_items
],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_item_ids)
+ 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_review_conditions = [
"candidate_identity_traceable",
"candidate_owner_boundary_readable",
"candidate_decision_summary_readable",
"candidate_scope_expiry_current",
"candidate_scan_limits_not_authorization",
"candidate_credential_boundary_metadata_only",
"candidate_maintenance_rollback_traceable",
"candidate_validation_runtime_gate_separate",
"candidate_no_execution_attestation_present",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.review_conditions",
[
item["review_condition"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_items
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_review_conditions,
)
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_checklist_items:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_record_owner_review_candidate_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.human_record_owner_review_check_passed_count",
item["human_record_owner_review_check_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.human_record_owner_review_started_count",
item["human_record_owner_review_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.human_record_owner_review_ready_count",
item["human_record_owner_review_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_checklist_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes = iwooos_projection[
"host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.ids",
[
item["lane_id"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lane_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.display_order",
[
item["display_order"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes
],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lane_ids)
+ 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_states = [
"ready_for_human_record_owner_review_preparation_candidate",
"identity_trace_needs_refresh",
"owner_boundary_needs_clarification",
"decision_summary_needs_clarification",
"scope_expiry_needs_refresh",
"scan_limits_remain_ambiguous",
"credential_boundary_failed",
"maintenance_rollback_incomplete",
"runtime_gate_still_required",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.outcome_states",
[
item["outcome_state"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_states,
)
for item in iwooos_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_record_owner_review_candidate_outcome_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.human_record_owner_review_check_passed_count",
item["human_record_owner_review_check_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.human_record_owner_review_started_count",
item["human_record_owner_review_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.human_record_owner_review_ready_count",
item["human_record_owner_review_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_record_owner_review_preparation_packets = iwooos_projection[
"host_owner_decision_record_human_record_owner_review_preparation_packets"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.ids",
[
item["packet_id"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_packets
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_packet_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.display_order",
[
item["display_order"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_packets
],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_packet_ids) + 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_fields = [
"preparation_identity_trace",
"preparation_owner_boundary",
"preparation_decision_summary",
"preparation_scope_expiry",
"preparation_scan_limits",
"preparation_credential_boundary",
"preparation_maintenance_rollback",
"preparation_validation_runtime_gate",
"preparation_no_execution_attestation",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.preparation_fields",
[
item["preparation_field"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_packets
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_fields,
)
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_packets:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.source_outcome_lane_id",
item["source_outcome_lane_id"],
"host_decision_record_human_record_owner_review_candidate_ready_for_human_record_owner_review_preparation_outcome_lane",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_record_owner_review_preparation_packet_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_review_prepared_count",
item["human_record_owner_review_prepared_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_review_check_passed_count",
item["human_record_owner_review_check_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_review_started_count",
item["human_record_owner_review_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_review_ready_count",
item["human_record_owner_review_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_packets.{item['packet_id']}.not_authorization",
item["not_authorization"],
)
iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items = iwooos_projection[
"host_owner_decision_record_human_record_owner_review_preparation_checklist_items"
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.ids",
[
item["item_id"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_item_ids,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.display_order",
[
item["display_order"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items
],
list(
range(
1,
len(expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_item_ids) + 1,
)
),
)
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_review_conditions = [
"preparation_identity_trace_readable",
"preparation_owner_boundary_readable",
"preparation_decision_summary_readable",
"preparation_scope_expiry_current",
"preparation_scan_limits_not_authorization",
"preparation_credential_boundary_metadata_only",
"preparation_maintenance_rollback_traceable",
"preparation_validation_runtime_gate_separate",
"preparation_no_execution_attestation_present",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.review_conditions",
[
item["review_condition"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_review_conditions,
)
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_failure_routes = [
"refresh_preparation_identity_trace",
"clarify_preparation_owner_boundary",
"clarify_preparation_decision_summary",
"refresh_preparation_scope_expiry",
"clarify_preparation_scan_limits",
"quarantine_preparation_credential_boundary",
"complete_preparation_maintenance_rollback",
"keep_runtime_gate_separate",
"keep_no_execution_attestation_visible",
]
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.failure_routes",
[
item["failure_route"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_failure_routes,
)
assert_equal(
"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.source_preparation_packet_ids",
[
item["source_preparation_packet_id"]
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items
],
expected_iwooos_host_owner_decision_record_human_record_owner_review_preparation_packet_ids,
)
for item in iwooos_host_owner_decision_record_human_record_owner_review_preparation_checklist_items:
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.display_mode",
item["display_mode"],
"owner_decision_record_human_record_owner_review_preparation_checklist_only",
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_review_prepared_count",
item["human_record_owner_review_prepared_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_review_check_passed_count",
item["human_record_owner_review_check_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_review_started_count",
item["human_record_owner_review_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_review_ready_count",
item["human_record_owner_review_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_handoff_review_passed_count",
item["human_record_owner_handoff_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_handoff_started_count",
item["human_record_owner_handoff_started_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.human_record_owner_handoff_ready_count",
item["human_record_owner_handoff_ready_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.formal_record_queue_review_passed_count",
item["formal_record_queue_review_passed_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.formal_record_queue_enqueued_count",
item["formal_record_queue_enqueued_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.decision_record_created",
item["decision_record_created"],
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.owner_decision_received_count",
item["owner_decision_received_count"],
0,
)
assert_equal(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.owner_decision_accepted_count",
item["owner_decision_accepted_count"],
0,
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.owner_approval_record_created",
item["owner_approval_record_created"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.secret_value_collection_allowed",
item["secret_value_collection_allowed"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.host_owner_decision_record_human_record_owner_review_preparation_checklist_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
assert_equal(
"iwooos_projection.non_blocking_lane_ids",
iwooos_projection["non_blocking_lane_ids"],
expected_low_friction_lane_ids,
)
for evidence_ref in [
"docs/security/iwooos-posture-projection.snapshot.json",
"docs/security/security-rollout-policy.snapshot.json",
"docs/security/security-mirror-status-rollup.snapshot.json",
"docs/security/source-control-owner-response-validation-rollup.snapshot.json",
"docs/security/kali-integration-status.snapshot.json",
]:
assert_contains("iwooos_projection.evidence_refs", iwooos_projection["evidence_refs"], evidence_ref)
latest_kali_observation = kali_status["latest_read_only_observation"]
assert_equal(
"kali_status.latest_read_only_observation.observed_at_taipei",
latest_kali_observation["observed_at_taipei"],
"2026-05-31T17:22:20+08:00",
)
assert_equal(
"kali_status.latest_read_only_observation.collection_mode",
latest_kali_observation["collection_mode"],
"ssh_batch_read_only_existing_key",
)
assert_equal(
"kali_status.latest_read_only_observation.upgradable_package_count",
latest_kali_observation["upgradable_package_count"],
1994,
)
assert_equal(
"kali_status.latest_read_only_observation.failed_systemd_unit_count",
latest_kali_observation["failed_systemd_unit_count"],
1,
)
for forbidden_runtime_flag in [
"runtime_actions_executed",
"active_scan_executed",
"package_update_executed",
"host_reboot_executed",
]:
assert_false(
f"kali_status.latest_read_only_observation.{forbidden_runtime_flag}",
latest_kali_observation[forbidden_runtime_flag],
)
for output in [
"display_security_posture",
"display_progress_estimate",
"display_visual_command_dashboard",
"display_professional_security_experience",
"display_concrete_work_snapshot",
"display_global_security_mesh_matrix",
"display_host_tool_evidence_chain",
"display_awooop_read_only_landing_readiness",
"display_awooop_cross_session_handoff_packets",
"display_progress_hold_movement_gates",
"display_progress_acceleration_lanes",
"display_owner_response_next_action_focus",
"display_s4_9_owner_response_preflight_checks",
"display_s4_9_owner_response_request_templates",
"display_non_blocking_lanes",
"display_existing_frontend_security_surfaces",
"display_frontend_surface_reverse_bridge_statuses",
"display_frontend_surface_coverage_matrix",
"display_frontend_surface_conflict_controls",
"display_operator_journey_steps",
"display_owner_evidence_readiness_board",
"display_host_coverage_view",
"display_kali_maintenance_readiness_board",
"display_host_action_gate_matrix",
"display_host_evidence_readiness_board",
"display_host_evidence_collection_order",
"display_host_evidence_intake_preflight_checks",
"display_host_evidence_review_outcome_lanes",
"display_host_evidence_review_handoff_packets",
"display_host_evidence_reviewer_checklist",
"display_host_evidence_reviewer_outcome_lanes",
"display_host_owner_decision_candidate_packets",
"display_host_owner_decision_review_checklist",
"display_host_owner_decision_review_outcome_lanes",
"display_host_owner_decision_record_draft_packets",
"display_host_owner_decision_record_draft_review_checklist",
"display_host_owner_decision_record_draft_review_outcome_lanes",
"display_host_owner_decision_record_writeup_packets",
"display_host_owner_decision_record_writeup_review_checklist",
"display_host_owner_decision_record_writeup_review_outcome_lanes",
"display_host_owner_decision_record_formal_candidate_packets",
"display_host_owner_decision_record_formal_candidate_review_checklist",
"display_host_owner_decision_record_formal_candidate_review_outcome_lanes",
"display_host_owner_decision_record_formal_record_queue_packets",
"display_host_owner_decision_record_formal_record_queue_review_checklist",
"display_host_owner_decision_record_formal_record_queue_review_outcome_lanes",
"display_host_owner_decision_record_human_handoff_readiness_packets",
"display_host_owner_decision_record_human_handoff_readiness_review_checklist",
"display_host_owner_decision_record_human_handoff_readiness_review_outcome_lanes",
"display_host_owner_decision_record_human_record_owner_review_candidate_packets",
"display_host_owner_decision_record_human_record_owner_review_candidate_checklist",
"display_host_owner_decision_record_human_record_owner_review_candidate_outcome_lanes",
"display_host_owner_decision_record_human_record_owner_review_preparation_packets",
"display_host_owner_decision_record_human_record_owner_review_preparation_checklist",
"display_evidence_refs",
"display_forbidden_actions",
"display_source_control_primary_readiness_board",
"display_vibework_security_onboarding",
]:
assert_contains("iwooos_projection.allowed_frontend_outputs", iwooos_projection["allowed_frontend_outputs"], output)
for output in [
"add_scan_button",
"add_execute_button",
"add_repair_button",
"start_kali_scan",
"call_kali_execute_endpoint",
"create_github_repo",
"sync_git_refs",
"modify_workflow_or_secret",
"enable_runner",
"ssh_to_host",
"open_ssh_session",
"update_kali_host",
"auto_update_host",
"run_host_package_upgrade",
"credentialed_scan_host",
"mark_host_evidence_received",
"mark_host_evidence_accepted",
"ingest_raw_host_evidence",
"treat_reverse_bridge_status_as_authorization",
"create_runtime_gate_from_reverse_bridge_status",
"create_code_review_blocker_from_reverse_bridge_status",
"create_gitea_or_github_action_from_reverse_bridge_status",
"advance_host_collection_state",
"skip_host_evidence_dependency",
"accept_host_evidence_without_preflight",
"ingest_host_evidence_raw_payload",
"collect_host_credential_plaintext",
"advance_host_evidence_counters_from_frontend",
"create_host_approval_from_review_lane",
"treat_host_review_lane_as_runtime_gate",
"mark_host_review_outcome_accepted",
"treat_host_handoff_packet_as_approval",
"mark_host_handoff_packet_received",
"store_host_handoff_sensitive_payload",
"treat_host_reviewer_check_as_approval",
"mark_host_reviewer_check_passed_from_frontend",
"open_runtime_gate_from_reviewer_check",
"treat_host_reviewer_outcome_as_approval",
"mark_host_reviewer_outcome_passed",
"open_runtime_gate_from_reviewer_outcome",
"treat_host_owner_decision_candidate_as_approval",
"mark_host_owner_decision_approved",
"open_runtime_gate_from_owner_decision_candidate",
"treat_host_owner_decision_review_check_as_approval",
"mark_host_owner_decision_review_passed",
"open_runtime_gate_from_owner_decision_review_check",
"treat_host_owner_decision_review_outcome_as_approval",
"mark_host_owner_decision_review_outcome_passed",
"open_runtime_gate_from_owner_decision_review_outcome",
"create_host_owner_decision_record_from_draft",
"mark_host_owner_decision_record_created",
"open_runtime_gate_from_owner_decision_record_draft",
"treat_host_owner_decision_record_draft_review_as_approval",
"mark_host_owner_decision_record_draft_review_passed",
"create_host_owner_decision_record_from_draft_review",
"open_runtime_gate_from_owner_decision_record_draft_review",
"treat_host_owner_decision_record_draft_review_outcome_as_approval",
"mark_host_owner_decision_record_draft_review_outcome_passed",
"create_host_owner_decision_record_from_draft_review_outcome",
"open_runtime_gate_from_owner_decision_record_draft_review_outcome",
"create_host_owner_decision_record_from_writeup",
"mark_host_owner_decision_record_writeup_completed",
"mark_host_owner_decision_record_accepted_from_writeup",
"open_runtime_gate_from_owner_decision_record_writeup",
"treat_host_owner_decision_record_writeup_review_as_approval",
"mark_host_owner_decision_record_writeup_review_passed",
"mark_host_owner_decision_record_writeup_review_completed",
"create_host_owner_decision_record_from_writeup_review",
"open_runtime_gate_from_owner_decision_record_writeup_review",
"treat_host_owner_decision_record_writeup_review_outcome_as_approval",
"mark_host_owner_decision_record_writeup_review_outcome_passed",
"mark_host_owner_decision_record_writeup_review_outcome_completed",
"create_host_owner_decision_record_from_writeup_review_outcome",
"open_runtime_gate_from_owner_decision_record_writeup_review_outcome",
"treat_host_owner_decision_record_formal_candidate_as_approval",
"mark_host_owner_decision_record_formal_candidate_finalized",
"create_host_owner_decision_record_from_formal_candidate",
"accept_host_owner_decision_record_from_formal_candidate",
"open_runtime_gate_from_owner_decision_record_formal_candidate",
"treat_host_owner_decision_record_formal_candidate_review_as_approval",
"mark_host_owner_decision_record_formal_candidate_review_passed",
"mark_host_owner_decision_record_formal_candidate_review_finalized",
"create_host_owner_decision_record_from_formal_candidate_review",
"open_runtime_gate_from_owner_decision_record_formal_candidate_review",
"treat_host_owner_decision_record_formal_candidate_review_outcome_as_approval",
"mark_host_owner_decision_record_formal_candidate_review_outcome_passed",
"mark_host_owner_decision_record_formal_candidate_review_outcome_finalized",
"create_host_owner_decision_record_from_formal_candidate_review_outcome",
"open_runtime_gate_from_owner_decision_record_formal_candidate_review_outcome",
"treat_host_owner_decision_record_formal_record_queue_packet_as_approval",
"enqueue_host_owner_decision_record_formal_record_queue_from_frontend",
"create_host_owner_decision_record_from_formal_record_queue_packet",
"accept_host_owner_decision_record_from_formal_record_queue_packet",
"open_runtime_gate_from_owner_decision_record_formal_record_queue_packet",
"treat_host_owner_decision_record_formal_record_queue_review_as_approval",
"mark_host_owner_decision_record_formal_record_queue_review_passed",
"enqueue_host_owner_decision_record_from_formal_record_queue_review",
"create_host_owner_decision_record_from_formal_record_queue_review",
"open_runtime_gate_from_formal_record_queue_review",
"treat_host_owner_decision_record_formal_record_queue_review_outcome_as_approval",
"mark_host_owner_decision_record_formal_record_queue_review_outcome_passed",
"enqueue_host_owner_decision_record_from_formal_record_queue_review_outcome",
"create_host_owner_decision_record_from_formal_record_queue_review_outcome",
"open_runtime_gate_from_formal_record_queue_review_outcome",
"treat_host_owner_decision_record_handoff_readiness_as_approval",
"start_human_record_owner_handoff_from_readiness_packet",
"mark_human_record_owner_handoff_ready_from_frontend",
"create_host_owner_decision_record_from_handoff_readiness",
"open_runtime_gate_from_handoff_readiness",
"treat_host_owner_decision_record_handoff_readiness_review_as_approval",
"mark_human_record_owner_handoff_readiness_review_passed",
"start_human_record_owner_handoff_from_readiness_review",
"create_host_owner_decision_record_from_handoff_readiness_review",
"open_runtime_gate_from_handoff_readiness_review",
"treat_host_owner_decision_record_handoff_readiness_review_outcome_as_approval",
"mark_human_record_owner_handoff_readiness_review_outcome_passed",
"start_human_record_owner_handoff_from_readiness_review_outcome",
"create_host_owner_decision_record_from_handoff_readiness_review_outcome",
"open_runtime_gate_from_handoff_readiness_review_outcome",
"treat_host_owner_decision_record_human_record_owner_review_candidate_packet_as_approval",
"start_human_record_owner_review_from_candidate_packet",
"mark_human_record_owner_review_ready_from_candidate_packet",
"collect_owner_decision_from_human_record_owner_review_candidate_packet",
"create_host_owner_decision_record_from_human_record_owner_review_candidate_packet",
"open_runtime_gate_from_human_record_owner_review_candidate_packet",
"treat_host_owner_decision_record_human_record_owner_review_candidate_checklist_as_approval",
"mark_human_record_owner_review_candidate_checklist_passed",
"start_human_record_owner_review_from_candidate_checklist",
"mark_human_record_owner_review_ready_from_candidate_checklist",
"collect_owner_decision_from_human_record_owner_review_candidate_checklist",
"create_host_owner_decision_record_from_human_record_owner_review_candidate_checklist",
"open_runtime_gate_from_human_record_owner_review_candidate_checklist",
"treat_host_owner_decision_record_human_record_owner_review_candidate_outcome_as_approval",
"mark_human_record_owner_review_candidate_outcome_passed",
"start_human_record_owner_review_from_candidate_outcome",
"mark_human_record_owner_review_ready_from_candidate_outcome",
"collect_owner_decision_from_human_record_owner_review_candidate_outcome",
"create_host_owner_decision_record_from_human_record_owner_review_candidate_outcome",
"open_runtime_gate_from_human_record_owner_review_candidate_outcome",
"treat_host_owner_decision_record_human_record_owner_review_preparation_packet_as_approval",
"mark_human_record_owner_review_preparation_completed",
"start_human_record_owner_review_from_preparation_packet",
"mark_human_record_owner_review_ready_from_preparation_packet",
"collect_owner_decision_from_human_record_owner_review_preparation_packet",
"create_host_owner_decision_record_from_human_record_owner_review_preparation_packet",
"open_runtime_gate_from_human_record_owner_review_preparation_packet",
"treat_host_owner_decision_record_human_record_owner_review_preparation_checklist_as_approval",
"mark_human_record_owner_review_preparation_checklist_passed",
"mark_human_record_owner_review_prepared_from_preparation_checklist",
"start_human_record_owner_review_from_preparation_checklist",
"mark_human_record_owner_review_ready_from_preparation_checklist",
"collect_owner_decision_from_human_record_owner_review_preparation_checklist",
"create_host_owner_decision_record_from_human_record_owner_review_preparation_checklist",
"open_runtime_gate_from_human_record_owner_review_preparation_checklist",
"treat_awooop_landing_readiness_as_production_consumption",
"enable_awooop_execution_router_from_landing_readiness",
"mark_production_landing_enabled_from_readiness",
"create_action_button_from_awooop_landing_readiness",
"skip_guard_from_awooop_landing_readiness",
"mark_progress_changed_from_awooop_landing_readiness",
"treat_awooop_handoff_as_production_consumption",
"merge_from_awooop_handoff",
"deploy_from_awooop_handoff",
"switch_primary_from_awooop_handoff",
"modify_refs_from_awooop_handoff",
"skip_guard_from_awooop_handoff",
"mark_progress_changed_from_awooop_handoff",
"treat_progress_hold_gate_as_percent_increase",
"increase_headline_without_gate_evidence",
"mark_owner_response_received_from_hold_gate",
"mark_payload_ingested_from_hold_gate",
"open_runtime_gate_from_hold_gate",
"mark_github_primary_ready_from_hold_gate",
"enable_production_landing_from_hold_gate",
"treat_progress_acceleration_as_authorization",
"increase_headline_from_progress_acceleration_lane",
"open_runtime_gate_from_progress_acceleration_lane",
"mark_owner_response_received_from_progress_acceleration_lane",
"enable_github_primary_from_progress_acceleration_lane",
"enable_production_execution_from_progress_acceleration_lane",
"treat_owner_response_focus_as_received",
"collect_owner_response_from_iwooos_focus",
"autofill_owner_response_from_iwooos_focus",
"mark_owner_response_accepted_from_iwooos_focus",
"skip_s4_9_from_owner_response_focus",
"open_runtime_gate_from_owner_response_focus",
"switch_github_primary_from_owner_response_focus",
"create_repo_from_owner_response_focus",
"treat_s4_9_preflight_as_request_sent",
"treat_s4_9_preflight_as_received",
"mark_s4_9_preflight_passed_from_frontend",
"accept_s4_9_owner_response_from_preflight",
"emit_s4_9_audit_event_from_preflight",
"open_runtime_gate_from_s4_9_preflight",
"write_gitea_from_s4_9_preflight",
"sync_refs_from_s4_9_preflight",
"switch_primary_from_s4_9_preflight",
"send_s4_9_owner_response_request_from_iwooos",
"treat_s4_9_template_as_request_sent",
"mark_s4_9_template_received_from_iwooos",
"mark_s4_9_template_accepted_from_iwooos",
"autofill_s4_9_template_from_iwooos",
"create_gitea_inventory_from_s4_9_template",
"write_gitea_from_s4_9_template",
"sync_refs_from_s4_9_template",
"switch_primary_from_s4_9_template",
"collect_token_from_s4_9_template",
"create_github_repo_from_primary_readiness_board",
"change_repo_visibility_from_primary_readiness_board",
"sync_refs_from_primary_readiness_board",
"delete_refs_from_primary_readiness_board",
"force_push_from_primary_readiness_board",
"switch_github_primary_from_primary_readiness_board",
"collect_secret_value_from_primary_readiness_board",
"disable_gitea_from_primary_readiness_board",
"apply_runtime_blocking_control",
"switch_github_primary",
"production_deploy",
"treat_progress_as_authorization",
]:
assert_contains("iwooos_projection.forbidden_frontend_outputs", iwooos_projection["forbidden_frontend_outputs"], output)
assert_text_contains("awooop_home_page.security_mirror_panel", awooop_home_page, "SecurityMirrorPanel")
assert_text_contains("awooop_home_page.security_mirror_metrics", awooop_home_page, "securityMirrorMetrics")
assert_text_contains("awooop_home_page.iwooos_link", awooop_home_page, 'href="/iwooos"')
for text in [
"read_only_production_landing_evidence_count=1",
"execution_router_linked=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_home_page.security_mirror_boundary", awooop_home_page, text)
for key in ["title", "subtitle", "badge", "openIwooos", "metrics", "checkpoints"]:
assert_contains(
"web_messages.zh-TW.awooop.home.securityMirror",
list(web_messages_zh["awooop"]["home"]["securityMirror"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.home.securityMirror",
list(web_messages_en["awooop"]["home"]["securityMirror"].keys()),
key,
)
assert_text_contains(
"awooop_home_page.github_primary_panel",
awooop_home_page,
"GitHubPrimaryReadinessHomePanel",
)
assert_text_contains(
"awooop_home_page.github_primary_metrics",
awooop_home_page,
"githubPrimaryReadinessMetrics",
)
assert_text_contains("awooop_home_page.github_primary_iwooos_link", awooop_home_page, 'href="/iwooos"')
for text in [
"source_control_primary_readiness_gate_v1",
"source_control_owner_response_validation_rollup_v1",
"source_control_primary_rollback_adr_v1",
"source_control_workflow_secret_name_inventory_v1",
"repo_creation_authorized=false",
"refs_mutation_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_home_page.github_primary_boundary", awooop_home_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"metrics",
"readinessRefsTitle",
"readinessRefs",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
]:
assert_contains(
"web_messages.zh-TW.awooop.home.githubPrimaryReadiness",
list(web_messages_zh["awooop"]["home"]["githubPrimaryReadiness"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.home.githubPrimaryReadiness",
list(web_messages_en["awooop"]["home"]["githubPrimaryReadiness"].keys()),
key,
)
assert_text_contains(
"awooop_home_page.owner_response_validation_panel",
awooop_home_page,
"OwnerResponseValidationRollupPanel",
)
assert_text_contains(
"awooop_home_page.owner_response_validation_packets",
awooop_home_page,
"ownerResponseValidationPackets",
)
assert_text_contains(
"awooop_home_page.owner_response_validation_checks",
awooop_home_page,
"ownerResponseValidationChecks",
)
assert_text_contains("awooop_home_page.owner_response_validation_iwooos_link", awooop_home_page, 'href="/iwooos"')
for text in [
"source_control_owner_response_validation_rollup_v1",
"S4.9",
"S4.10",
"S4.11",
"S4.12",
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"owner_response_validation_rejected_count=0",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_home_page.owner_response_validation_boundary", awooop_home_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"packetsTitle",
"validationTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"fields",
"metrics",
"packets",
"checks",
]:
assert_contains(
"web_messages.zh-TW.awooop.home.ownerResponseValidation",
list(web_messages_zh["awooop"]["home"]["ownerResponseValidation"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.home.ownerResponseValidation",
list(web_messages_en["awooop"]["home"]["ownerResponseValidation"].keys()),
key,
)
assert_text_contains("awooop_work_items_page.security_mirror_item", awooop_work_items_page, "iwooosSecurityMirror")
assert_text_contains("awooop_work_items_page.github_primary_item", awooop_work_items_page, "githubPrimaryReadiness")
assert_text_contains("awooop_work_items_page.owner_response_validation_item", awooop_work_items_page, "ownerResponseValidation")
assert_text_contains(
"awooop_work_items_page.telegram_source_traditional_chinese",
awooop_work_items_page,
'source: "telegram_callback / 真相鏈鏡像"',
)
assert_text_contains(
"awooop_work_items_page.security_mirror_source",
awooop_work_items_page,
"security_mirror_status_rollup_v1 / iwooos_posture_projection_v1",
)
assert_text_contains(
"awooop_work_items_page.github_primary_source",
awooop_work_items_page,
"source-control-primary-readiness-gate.snapshot.json / iwooos_posture_projection_v1",
)
assert_text_contains(
"awooop_work_items_page.owner_response_validation_source",
awooop_work_items_page,
"source-control-owner-response-validation-rollup.snapshot.json / security_mirror_status_rollup_v1",
)
assert_text_contains("awooop_work_items_page.security_mirror_href", awooop_work_items_page, 'href: "/iwooos"')
assert_text_contains("awooop_work_items_page.security_mirror_status", awooop_work_items_page, 'status: "watching"')
for key in ["iwooos"]:
assert_contains(
"web_messages.zh-TW.awooop.workItems.surfaces",
list(web_messages_zh["awooop"]["workItems"]["surfaces"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.workItems.surfaces",
list(web_messages_en["awooop"]["workItems"]["surfaces"].keys()),
key,
)
for section in ["items", "gates", "evidence"]:
assert_contains(
f"web_messages.zh-TW.awooop.workItems.{section}",
list(web_messages_zh["awooop"]["workItems"][section].keys()),
"iwooosSecurityMirror",
)
assert_contains(
f"web_messages.en.awooop.workItems.{section}",
list(web_messages_en["awooop"]["workItems"][section].keys()),
"iwooosSecurityMirror",
)
assert_contains(
f"web_messages.zh-TW.awooop.workItems.{section}",
list(web_messages_zh["awooop"]["workItems"][section].keys()),
"githubPrimaryReadiness",
)
assert_contains(
f"web_messages.en.awooop.workItems.{section}",
list(web_messages_en["awooop"]["workItems"][section].keys()),
"githubPrimaryReadiness",
)
assert_contains(
f"web_messages.zh-TW.awooop.workItems.{section}",
list(web_messages_zh["awooop"]["workItems"][section].keys()),
"ownerResponseValidation",
)
assert_contains(
f"web_messages.en.awooop.workItems.{section}",
list(web_messages_en["awooop"]["workItems"][section].keys()),
"ownerResponseValidation",
)
for key in ["iwooosSecurityMirrorOwner", "iwooosSecurityMirrorBoundary"]:
assert_contains(
"web_messages.zh-TW.awooop.workItems.evidence",
list(web_messages_zh["awooop"]["workItems"]["evidence"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.workItems.evidence",
list(web_messages_en["awooop"]["workItems"]["evidence"].keys()),
key,
)
for key in ["githubPrimaryOwnerResponses", "githubPrimaryWorkflowNames", "githubPrimaryBoundary"]:
assert_contains(
"web_messages.zh-TW.awooop.workItems.evidence",
list(web_messages_zh["awooop"]["workItems"]["evidence"].keys()),
key,
)
for key in [
"ownerResponseValidationChecks",
"ownerResponseValidationBoundary",
]:
assert_contains(
"web_messages.zh-TW.awooop.workItems.evidence",
list(web_messages_zh["awooop"]["workItems"]["evidence"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.workItems.evidence",
list(web_messages_en["awooop"]["workItems"]["evidence"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.workItems.evidence",
list(web_messages_en["awooop"]["workItems"]["evidence"].keys()),
key,
)
assert_text_contains(
"awooop_tenants_page.security_tenant_scope_panel",
awooop_tenants_page,
"SecurityTenantScopeCandidatePanel",
)
assert_text_contains("awooop_tenants_page.iwooos_link", awooop_tenants_page, 'href="/iwooos"')
for text in [
"tenant_migration_mode_changed=false",
"tenant_policy_mutation_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_tenants_page.security_tenant_boundary", awooop_tenants_page, text)
for text in [
"AWOOOI 第一租戶",
"IwoooS 資安鏡像",
"Kali 112 / 開發主機 168 / 開發主機 111",
"S4.9-S4.12 負責人回覆等待中",
]:
assert_text_contains("awooop_tenants_page.security_tenant_scope_refs", awooop_tenants_page, text)
for key in [
"title",
"subtitle",
"badge",
"scopeRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"scopeRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.tenants.securityTenantScopeCandidate",
list(web_messages_zh["awooop"]["tenants"]["securityTenantScopeCandidate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.tenants.securityTenantScopeCandidate",
list(web_messages_en["awooop"]["tenants"]["securityTenantScopeCandidate"].keys()),
key,
)
assert_text_contains(
"awooop_tenants_page.github_tenant_scope_panel",
awooop_tenants_page,
"GitHubTenantReadinessScopePanel",
)
assert_text_contains(
"awooop_tenants_page.github_tenant_scope_metrics",
awooop_tenants_page,
"githubTenantReadinessMetrics",
)
assert_text_contains(
"awooop_tenants_page.github_tenant_scope_iwooos_link",
awooop_tenants_page,
'href="/iwooos"',
)
for text in [
"AWOOOI 第一租戶原始碼管控範圍",
"S4.9 Gitea 清冊負責人證明",
"S4.10 GitHub 目標負責人決策",
"S4.12 工作流程 / 機密名稱負責人回覆",
"tenant_source_control_scope_accepted=false",
"repo_owner_response_accepted=false",
"repo_creation_authorized=false",
"refs_mutation_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
"tenant_policy_mutation_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_tenants_page.github_tenant_scope_boundary", awooop_tenants_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"scopeRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"metrics",
"scopeRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.tenants.githubTenantReadinessScope",
list(web_messages_zh["awooop"]["tenants"]["githubTenantReadinessScope"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.tenants.githubTenantReadinessScope",
list(web_messages_en["awooop"]["tenants"]["githubTenantReadinessScope"].keys()),
key,
)
assert_text_contains(
"awooop_tenants_page.owner_response_validation_scope_panel",
awooop_tenants_page,
"OwnerResponseValidationTenantScopePanel",
)
assert_text_contains(
"awooop_tenants_page.owner_response_validation_refs",
awooop_tenants_page,
"ownerResponseValidationTenantRefs",
)
assert_text_contains(
"awooop_tenants_page.owner_response_validation_iwooos_link",
awooop_tenants_page,
'href="/iwooos"',
)
for text in [
"source_control_owner_response_validation_rollup_v1",
"gitea_inventory_owner_attestation_response_v1",
"github_target_owner_decision_response_v1",
"source_control_ref_truth_owner_response_v1",
"source_control_workflow_secret_name_owner_response_v1",
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"owner_response_validation_rejected_count=0",
"tenant_source_control_scope_accepted=false",
"tenant_policy_mutation_authorized=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_tenants_page.owner_response_validation_boundary", awooop_tenants_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"scopeRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"metrics",
"scopeRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.tenants.ownerResponseValidationScope",
list(web_messages_zh["awooop"]["tenants"]["ownerResponseValidationScope"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.tenants.ownerResponseValidationScope",
list(web_messages_en["awooop"]["tenants"]["ownerResponseValidationScope"].keys()),
key,
)
for key in [
"validationRollup",
"giteaAttestation",
"githubTarget",
"refsTruth",
"workflowSecret",
]:
assert_contains(
"web_messages.zh-TW.awooop.tenants.ownerResponseValidationScope.scopeRefs",
list(web_messages_zh["awooop"]["tenants"]["ownerResponseValidationScope"]["scopeRefs"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.tenants.ownerResponseValidationScope.scopeRefs",
list(web_messages_en["awooop"]["tenants"]["ownerResponseValidationScope"]["scopeRefs"].keys()),
key,
)
assert_text_contains(
"awooop_runs_page.security_run_state_panel",
awooop_runs_page,
"SecurityRunStateCandidatePanel",
)
assert_text_contains("awooop_runs_page.iwooos_link", awooop_runs_page, 'href="/iwooos"')
for text in [
"security_run_created=false",
"execution_router_linked=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_runs_page.security_run_boundary", awooop_runs_page, text)
for text in [
"security_mirror_run_state_candidate",
"read_only_dry_run_only",
"S4.9-S4.12 負責人回覆等待中",
"主動執行期閘門 0",
]:
assert_text_contains("awooop_runs_page.security_run_refs", awooop_runs_page, text)
for key in [
"title",
"subtitle",
"badge",
"runRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"runRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.runs.securityRunStateCandidate",
list(web_messages_zh["awooop"]["runs"]["securityRunStateCandidate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.runs.securityRunStateCandidate",
list(web_messages_en["awooop"]["runs"]["securityRunStateCandidate"].keys()),
key,
)
assert_text_contains(
"awooop_runs_page.github_run_boundary_panel",
awooop_runs_page,
"GitHubRunReadinessBoundaryPanel",
)
assert_text_contains(
"awooop_runs_page.github_run_boundary_metrics",
awooop_runs_page,
"githubRunReadinessMetrics",
)
assert_text_contains(
"awooop_runs_page.github_run_boundary_iwooos_link",
awooop_runs_page,
'href="/iwooos"',
)
for text in [
"source_control_primary_readiness_gate_v1",
"source_control_owner_response_validation_rollup_v1",
"source_control_workflow_secret_name_inventory_v1",
"source_control_primary_rollback_adr_v1",
"security_run_created=false",
"github_primary_run_created=false",
"execution_router_linked=false",
"repo_creation_authorized=false",
"refs_mutation_authorized=false",
"workflow_secret_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_runs_page.github_run_boundary", awooop_runs_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"runRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"metrics",
"runRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.runs.githubRunReadinessBoundary",
list(web_messages_zh["awooop"]["runs"]["githubRunReadinessBoundary"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.runs.githubRunReadinessBoundary",
list(web_messages_en["awooop"]["runs"]["githubRunReadinessBoundary"].keys()),
key,
)
assert_text_contains(
"awooop_runs_page.owner_response_validation_run_boundary_panel",
awooop_runs_page,
"OwnerResponseValidationRunBoundaryPanel",
)
assert_text_contains(
"awooop_runs_page.owner_response_validation_run_refs",
awooop_runs_page,
"ownerResponseValidationRunRefs",
)
assert_text_contains(
"awooop_runs_page.owner_response_validation_run_iwooos_link",
awooop_runs_page,
'href="/iwooos"',
)
for text in [
"source_control_owner_response_validation_rollup_v1",
"gitea_inventory_owner_attestation_response_v1",
"github_target_owner_decision_response_v1",
"source_control_ref_truth_owner_response_v1",
"source_control_workflow_secret_name_owner_response_v1",
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"owner_response_validation_rejected_count=0",
"security_run_created=false",
"owner_response_validation_run_created=false",
"platform_run_creation_authorized=false",
"execution_router_linked=false",
"approval_record_created=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_runs_page.owner_response_validation_run_boundary", awooop_runs_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"runRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"metrics",
"runRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.runs.ownerResponseValidationRunBoundary",
list(web_messages_zh["awooop"]["runs"]["ownerResponseValidationRunBoundary"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.runs.ownerResponseValidationRunBoundary",
list(web_messages_en["awooop"]["runs"]["ownerResponseValidationRunBoundary"].keys()),
key,
)
for key in [
"validationRollup",
"giteaAttestation",
"githubTarget",
"refsTruth",
"workflowSecret",
]:
assert_contains(
"web_messages.zh-TW.awooop.runs.ownerResponseValidationRunBoundary.runRefs",
list(web_messages_zh["awooop"]["runs"]["ownerResponseValidationRunBoundary"]["runRefs"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.runs.ownerResponseValidationRunBoundary.runRefs",
list(web_messages_en["awooop"]["runs"]["ownerResponseValidationRunBoundary"]["runRefs"].keys()),
key,
)
assert_text_contains(
"awooop_run_detail_page.owner_response_validation_detail_boundary_panel",
awooop_run_detail_page,
"OwnerResponseValidationDetailBoundaryPanel",
)
assert_text_contains(
"awooop_run_detail_page.owner_response_validation_detail_refs",
awooop_run_detail_page,
"ownerResponseValidationDetailRefs",
)
assert_text_contains(
"awooop_run_detail_page.owner_response_validation_detail_iwooos_link",
awooop_run_detail_page,
'href="/iwooos"',
)
for text in [
"source_control_owner_response_validation_rollup_v1",
"gitea_inventory_owner_attestation_response_v1",
"github_target_owner_decision_response_v1",
"source_control_ref_truth_owner_response_v1",
"source_control_workflow_secret_name_owner_response_v1",
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"owner_response_validation_rejected_count=0",
"run_detail_owner_response_linked=false",
"run_detail_approval_record_created=false",
"mcp_execution_authorized=false",
"remediation_execution_authorized=false",
"platform_run_creation_authorized=false",
"execution_router_linked=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_run_detail_page.owner_response_validation_detail_boundary", awooop_run_detail_page, text)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"detailRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"metrics",
"detailRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.runDetail.ownerResponseValidationDetailBoundary",
list(web_messages_zh["awooop"]["runDetail"]["ownerResponseValidationDetailBoundary"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.runDetail.ownerResponseValidationDetailBoundary",
list(web_messages_en["awooop"]["runDetail"]["ownerResponseValidationDetailBoundary"].keys()),
key,
)
for key in [
"validationRollup",
"giteaAttestation",
"githubTarget",
"refsTruth",
"workflowSecret",
]:
assert_contains(
"web_messages.zh-TW.awooop.runDetail.ownerResponseValidationDetailBoundary.detailRefs",
list(web_messages_zh["awooop"]["runDetail"]["ownerResponseValidationDetailBoundary"]["detailRefs"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.runDetail.ownerResponseValidationDetailBoundary.detailRefs",
list(web_messages_en["awooop"]["runDetail"]["ownerResponseValidationDetailBoundary"]["detailRefs"].keys()),
key,
)
assert_text_contains(
"awooop_approval_detail_page.owner_response_validation_decision_panel",
awooop_approval_detail_page,
"OwnerResponseValidationDecisionBoundaryPanel",
)
assert_text_contains(
"awooop_approval_detail_page.owner_response_validation_decision_refs",
awooop_approval_detail_page,
"ownerResponseValidationDecisionRefs",
)
assert_text_contains(
"awooop_approval_detail_page.owner_response_validation_decision_iwooos_link",
awooop_approval_detail_page,
'href="/iwooos"',
)
for text in [
"source_control_owner_response_validation_rollup_v1",
"gitea_inventory_owner_attestation_response_v1",
"github_target_owner_decision_response_v1",
"source_control_ref_truth_owner_response_v1",
"source_control_workflow_secret_name_owner_response_v1",
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"owner_response_validation_rejected_count=0",
"approval_decision_owner_response_linked=false",
"owner_response_acceptance_authorized=false",
"security_approval_record_created=false",
"platform_run_creation_authorized=false",
"execution_router_linked=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains(
"awooop_approval_detail_page.owner_response_validation_decision_boundary",
awooop_approval_detail_page,
text,
)
for key in [
"title",
"subtitle",
"badge",
"openIwooos",
"decisionRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"metrics",
"decisionRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.approvalDecision.ownerResponseValidationDecisionBoundary",
list(web_messages_zh["awooop"]["approvalDecision"]["ownerResponseValidationDecisionBoundary"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.approvalDecision.ownerResponseValidationDecisionBoundary",
list(web_messages_en["awooop"]["approvalDecision"]["ownerResponseValidationDecisionBoundary"].keys()),
key,
)
for key in [
"validationRollup",
"giteaAttestation",
"githubTarget",
"refsTruth",
"workflowSecret",
]:
assert_contains(
"web_messages.zh-TW.awooop.approvalDecision.ownerResponseValidationDecisionBoundary.decisionRefs",
list(
web_messages_zh["awooop"]["approvalDecision"]["ownerResponseValidationDecisionBoundary"][
"decisionRefs"
].keys()
),
key,
)
assert_contains(
"web_messages.en.awooop.approvalDecision.ownerResponseValidationDecisionBoundary.decisionRefs",
list(
web_messages_en["awooop"]["approvalDecision"]["ownerResponseValidationDecisionBoundary"][
"decisionRefs"
].keys()
),
key,
)
assert_text_contains("awooop_approvals_page.security_owner_response_panel", awooop_approvals_page, "SecurityOwnerResponseGatePanel")
assert_text_contains("awooop_approvals_page.iwooos_link", awooop_approvals_page, 'href="/iwooos"')
for text in [
"approval_record_created=false",
"owner_response_accepted_count=0",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_approvals_page.security_owner_response_boundary", awooop_approvals_page, text)
for key in [
"title",
"subtitle",
"badge",
"ownerChecksTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"checks",
]:
assert_contains(
"web_messages.zh-TW.awooop.approvals.securityOwnerResponseGate",
list(web_messages_zh["awooop"]["approvals"]["securityOwnerResponseGate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.approvals.securityOwnerResponseGate",
list(web_messages_en["awooop"]["approvals"]["securityOwnerResponseGate"].keys()),
key,
)
assert_text_contains(
"awooop_approvals_page.github_primary_boundary_panel",
awooop_approvals_page,
"GitHubPrimaryReadinessApprovalBoundaryPanel",
)
for text in [
"approval_record_created=false",
"github_primary_approval_granted=false",
"owner_response_accepted_count=0",
"repo_creation_authorized=false",
"refs_mutation_authorized=false",
"secret_value_collection_allowed=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_approvals_page.github_primary_boundary", awooop_approvals_page, text)
for text in [
"S4.9",
"S4.10",
"S4.11",
"S4.12",
"giteaOwnerAttestation",
"githubTargetOwner",
"refsTruthOwner",
"workflowSecretOwner",
]:
assert_text_contains("awooop_approvals_page.github_primary_response_lanes", awooop_approvals_page, text)
for key in [
"title",
"subtitle",
"badge",
"responseLanesTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"responseLanes",
]:
assert_contains(
"web_messages.zh-TW.awooop.approvals.githubPrimaryReadinessGate",
list(web_messages_zh["awooop"]["approvals"]["githubPrimaryReadinessGate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.approvals.githubPrimaryReadinessGate",
list(web_messages_en["awooop"]["approvals"]["githubPrimaryReadinessGate"].keys()),
key,
)
assert_text_contains(
"awooop_approvals_page.owner_response_validation_boundary_panel",
awooop_approvals_page,
"OwnerResponseValidationApprovalBoundaryPanel",
)
assert_text_contains("awooop_approvals_page.owner_response_validation_iwooos_link", awooop_approvals_page, 'href="/iwooos"')
for text in [
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"owner_response_validation_rejected_count=0",
"approval_record_created=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_approvals_page.owner_response_validation_boundary", awooop_approvals_page, text)
for text in [
"source_control_owner_response_validation_rollup_v1",
"gitea_inventory_owner_attestation_response_v1",
"github_target_owner_decision_response_v1",
"source_control_ref_truth_owner_response_v1",
"source_control_workflow_secret_name_owner_response_v1",
]:
assert_text_contains("awooop_approvals_page.owner_response_validation_refs", awooop_approvals_page, text)
for key in [
"title",
"subtitle",
"badge",
"reviewRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"reviewRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.approvals.ownerResponseValidationBoundary",
list(web_messages_zh["awooop"]["approvals"]["ownerResponseValidationBoundary"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.approvals.ownerResponseValidationBoundary",
list(web_messages_en["awooop"]["approvals"]["ownerResponseValidationBoundary"].keys()),
key,
)
assert_text_contains("awooop_contracts_page.security_contract_candidate_panel", awooop_contracts_page, "SecurityContractCandidatePanel")
assert_text_contains("awooop_contracts_page.iwooos_link", awooop_contracts_page, 'href="/iwooos"')
assert_text_contains("awooop_contracts_page.project_header_traditional_chinese", awooop_contracts_page, "專案 ID")
assert_text_contains("awooop_contracts_page.hash_header_traditional_chinese", awooop_contracts_page, "雜湊")
assert_text_not_contains("awooop_contracts_page.project_header_english", awooop_contracts_page, "Project ID")
assert_text_not_contains("awooop_contracts_page.hash_header_english", awooop_contracts_page, ">Hash<")
for text in [
"contract_publish_authorized=false",
"contract_mutation_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_contracts_page.security_contract_boundary", awooop_contracts_page, text)
for text in [
"security_mirror_status_rollup_v1",
"iwooos_posture_projection_v1",
"source_control_owner_response_validation_rollup_v1",
"security_rollout_policy_v1",
]:
assert_text_contains("awooop_contracts_page.security_contract_refs", awooop_contracts_page, text)
for key in [
"title",
"subtitle",
"badge",
"contractRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"contractRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.contracts.securityContractCandidate",
list(web_messages_zh["awooop"]["contracts"]["securityContractCandidate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.contracts.securityContractCandidate",
list(web_messages_en["awooop"]["contracts"]["securityContractCandidate"].keys()),
key,
)
assert_text_contains(
"awooop_contracts_page.github_primary_readiness_candidate_panel",
awooop_contracts_page,
"GitHubPrimaryReadinessContractCandidatePanel",
)
for text in [
"repo_creation_authorized=false",
"refs_mutation_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_contracts_page.github_primary_boundary", awooop_contracts_page, text)
for text in [
"source_control_primary_readiness_gate_v1",
"source_control_owner_response_validation_rollup_v1",
"source_control_primary_rollback_adr_v1",
"source_control_workflow_secret_name_inventory_v1",
"iwooos_posture_projection_v1",
]:
assert_text_contains("awooop_contracts_page.github_primary_refs", awooop_contracts_page, text)
for key in [
"title",
"subtitle",
"badge",
"contractRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"contractRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.contracts.githubPrimaryReadinessCandidate",
list(web_messages_zh["awooop"]["contracts"]["githubPrimaryReadinessCandidate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.contracts.githubPrimaryReadinessCandidate",
list(web_messages_en["awooop"]["contracts"]["githubPrimaryReadinessCandidate"].keys()),
key,
)
assert_text_contains(
"awooop_contracts_page.owner_response_validation_candidate_panel",
awooop_contracts_page,
"OwnerResponseValidationContractCandidatePanel",
)
for text in [
"owner_response_validation_received_count=0",
"owner_response_validation_accepted_count=0",
"approval_record_created=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
]:
assert_text_contains("awooop_contracts_page.owner_response_validation_boundary", awooop_contracts_page, text)
for text in [
"source_control_owner_response_validation_rollup_v1",
"gitea_inventory_owner_attestation_response_v1",
"github_target_owner_decision_response_v1",
"source_control_ref_truth_owner_response_v1",
"source_control_workflow_secret_name_owner_response_v1",
]:
assert_text_contains("awooop_contracts_page.owner_response_validation_refs", awooop_contracts_page, text)
for key in [
"title",
"subtitle",
"badge",
"contractRefsTitle",
"boundaryLabel",
"boundaryTitle",
"boundaryDetail",
"openIwooos",
"metrics",
"contractRefs",
]:
assert_contains(
"web_messages.zh-TW.awooop.contracts.ownerResponseValidationCandidate",
list(web_messages_zh["awooop"]["contracts"]["ownerResponseValidationCandidate"].keys()),
key,
)
assert_contains(
"web_messages.en.awooop.contracts.ownerResponseValidationCandidate",
list(web_messages_en["awooop"]["contracts"]["ownerResponseValidationCandidate"].keys()),
key,
)
assert_text_contains("iwooos_bridge.component", iwooos_bridge, "IwoooSReadOnlyBridge")
assert_text_contains("iwooos_bridge.testid", iwooos_bridge, 'data-testid="iwooos-read-only-bridge"')
assert_text_contains("iwooos_bridge.iwooos_link", iwooos_bridge, 'href="/iwooos"')
for text in [
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains("iwooos_bridge.boundary", iwooos_bridge, text)
for source_text in [
security_panel,
compliance_panel,
standalone_security_page,
standalone_compliance_page,
]:
assert_text_contains("existing_security_pages.iwooos_bridge_import", source_text, "IwoooSReadOnlyBridge")
assert_text_contains("existing_security_pages.iwooos_bridge_render", source_text, "<IwoooSReadOnlyBridge />")
for source_text in [
alerts_page,
authorizations_page,
governance_page,
errors_panel,
]:
assert_text_contains("security_control_pages.iwooos_bridge_import", source_text, "IwoooSReadOnlyBridge")
assert_text_contains("security_control_pages.iwooos_bridge_render", source_text, "<IwoooSReadOnlyBridge />")
for source_text in [
alert_operation_logs_page,
code_review_page,
]:
assert_text_contains("audit_engineering_pages.iwooos_bridge_import", source_text, "IwoooSReadOnlyBridge")
assert_text_contains(
"audit_engineering_pages.iwooos_bridge_render",
source_text,
'<IwoooSReadOnlyBridge variant="dark" />',
)
assert_text_contains("iwooos_page.surface_connection_board", iwooos_projection_page, "surfaceConnectionStatuses")
assert_text_contains("iwooos_page.surface_connection_testid", iwooos_projection_page, 'data-testid="iwooos-surface-connection-board"')
assert_text_contains("iwooos_page.surface_connection_embedded", iwooos_projection_page, "embeddedBridge")
assert_text_contains("iwooos_page.surface_connection_direct", iwooos_projection_page, "directBridge")
assert_text_contains("iwooos_page.surface_connection_awooop", iwooos_projection_page, "awooopCandidate")
assert_text_contains("iwooos_page.source_control_readiness_board", iwooos_projection_page, "sourceControlReadinessItems")
assert_text_contains(
"iwooos_page.source_control_readiness_testid",
iwooos_projection_page,
'data-testid="iwooos-source-control-readiness-board"',
)
assert_text_contains("iwooos_page.source_control_readiness_component", iwooos_projection_page, "SourceControlReadinessCard")
assert_text_contains("iwooos_page.awooop_coverage_board", iwooos_projection_page, "awooopCoverageStatuses")
assert_text_contains(
"iwooos_page.awooop_coverage_testid",
iwooos_projection_page,
'data-testid="iwooos-awooop-coverage-board"',
)
assert_text_contains("iwooos_page.awooop_coverage_component", iwooos_projection_page, "AwoooPCoverageStatusCard")
for text in [
"/awooop",
"/awooop/work-items",
"/awooop/contracts",
"/awooop/tenants",
"/awooop/runs",
"/awooop/runs/[run_id]",
"/awooop/approvals",
"/awooop/approvals/[run_id]",
"awooop_route_coverage_count=8",
"awooop_route_coverage_visible_count=8",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"secret_value_collection_allowed=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains("iwooos_page.awooop_coverage_boundary", iwooos_projection_page, text)
assert_text_contains("iwooos_page.security_convergence_steps", iwooos_projection_page, "securityConvergenceSteps")
assert_text_contains(
"iwooos_page.security_convergence_testid",
iwooos_projection_page,
'data-testid="iwooos-security-convergence-roadmap"',
)
assert_text_contains(
"iwooos_page.security_convergence_component",
iwooos_projection_page,
"SecurityConvergenceRoadmapBoard",
)
for text in [
"phase_tightening_mode=gradual",
"initial_enforcement_level=observe_warn_only",
"blocking_controls_enabled=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"owner_response_required_before_blocking=true",
"not_authorization=true",
"kali_execute_authorized=false",
"host_update_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains("iwooos_page.security_convergence_boundary", iwooos_projection_page, text)
assert_text_contains(
"iwooos_page.owner_response_collection_packets",
iwooos_projection_page,
"ownerResponseCollectionPackets",
)
assert_text_contains(
"iwooos_page.owner_response_collection_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-collection-board"',
)
assert_text_contains(
"iwooos_page.owner_response_collection_component",
iwooos_projection_page,
"OwnerResponseCollectionBoard",
)
for text in [
"owner_response_collection_packet_count=4",
"owner_response_required_template_count=22",
"owner_response_received_count=0",
"owner_response_accepted_count=0",
"owner_response_rejected_count=0",
"owner_response_collection_mode=human_intake_only",
"request_packet_visible=true",
"response_packet_created=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
]:
assert_text_contains("iwooos_page.owner_response_collection_boundary", iwooos_projection_page, text)
assert_text_contains(
"iwooos_page.owner_response_intake_safety_rules",
iwooos_projection_page,
"ownerResponseIntakeSafetyRules",
)
assert_text_contains(
"iwooos_page.owner_response_intake_safety_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-intake-safety-board"',
)
assert_text_contains(
"iwooos_page.owner_response_intake_safety_component",
iwooos_projection_page,
"OwnerResponseIntakeSafetyBoard",
)
for text in [
"owner_response_intake_safety_rule_count=6",
"owner_response_payload_ingested_count=0",
"owner_response_quarantine_count=0",
"owner_response_rejection_count=0",
"owner_response_auto_accept_allowed=false",
"owner_response_secret_value_quarantine_required=true",
"owner_response_mutation_request_allowed=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"kali_execute_authorized=false",
]:
assert_text_contains("iwooos_page.owner_response_intake_safety_boundary", iwooos_projection_page, text)
assert_text_contains(
"iwooos_page.owner_response_review_outcome_lanes",
iwooos_projection_page,
"ownerResponseReviewOutcomeLanes",
)
assert_text_contains(
"iwooos_page.owner_response_review_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-review-outcome-board"',
)
assert_text_contains(
"iwooos_page.owner_response_review_outcome_component",
iwooos_projection_page,
"OwnerResponseReviewOutcomeBoard",
)
for text in [
"owner_response_review_outcome_lane_count=7",
"owner_response_review_ready_count=0",
"owner_response_review_accepted_count=0",
"owner_response_review_escalated_count=0",
"owner_response_review_runtime_gate_count=0",
"owner_response_review_auto_decision_allowed=false",
"owner_response_review_human_decision_required=true",
"owner_response_review_only_updates_readonly_state=true",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
]:
assert_text_contains("iwooos_page.owner_response_review_outcome_boundary", iwooos_projection_page, text)
assert_text_contains(
"iwooos_page.owner_response_human_decision_queue_items",
iwooos_projection_page,
"ownerResponseHumanDecisionQueueItems",
)
assert_text_contains(
"iwooos_page.owner_response_human_decision_queue_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-human-decision-queue-board"',
)
assert_text_contains(
"iwooos_page.owner_response_human_decision_queue_component",
iwooos_projection_page,
"OwnerResponseHumanDecisionQueueBoard",
)
for text in [
"owner_response_human_decision_queue_item_count=6",
"owner_response_human_decision_ready_count=0",
"owner_response_human_decision_approved_count=0",
"owner_response_human_decision_runtime_gate_count=0",
"owner_response_human_decision_record_created=false",
"owner_response_human_decision_auto_approval_allowed=false",
"owner_response_human_decision_requires_reviewer=true",
"owner_response_human_decision_only_prepares_packet=true",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains("iwooos_page.owner_response_human_decision_queue_boundary", iwooos_projection_page, text)
assert_text_contains(
"iwooos_page.owner_response_decision_record_draft_guard_items",
iwooos_projection_page,
"ownerResponseDecisionRecordDraftGuardItems",
)
assert_text_contains(
"iwooos_page.owner_response_decision_record_draft_guard_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-decision-record-draft-guard-board"',
)
assert_text_contains(
"iwooos_page.owner_response_decision_record_draft_guard_component",
iwooos_projection_page,
"OwnerResponseDecisionRecordDraftGuardBoard",
)
for text in [
"owner_response_decision_record_draft_guard_count=6",
"owner_response_decision_record_draft_created_count=0",
"owner_response_decision_record_formal_count=0",
"owner_response_decision_record_approved_count=0",
"owner_response_decision_record_runtime_gate_count=0",
"owner_response_decision_record_draft_only=true",
"owner_response_decision_record_write_authorized=false",
"owner_response_decision_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_decision_record_draft_guard_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_preflight_items",
iwooos_projection_page,
"ownerResponseFormalRecordCandidatePreflightItems",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_preflight_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-candidate-preflight-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_preflight_component",
iwooos_projection_page,
"OwnerResponseFormalRecordCandidatePreflightBoard",
)
for text in [
"owner_response_formal_record_candidate_preflight_count=7",
"owner_response_formal_record_candidate_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_candidate_only=true",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_preflight_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_outcome_lanes",
iwooos_projection_page,
"ownerResponseFormalRecordCandidateOutcomeLanes",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-candidate-outcome-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_outcome_component",
iwooos_projection_page,
"OwnerResponseFormalRecordCandidateOutcomeBoard",
)
for text in [
"owner_response_formal_record_candidate_outcome_lane_count=8",
"owner_response_formal_record_candidate_ready_count=0",
"owner_response_formal_record_candidate_returned_count=0",
"owner_response_formal_record_candidate_quarantine_count=0",
"owner_response_formal_record_candidate_rejected_count=0",
"owner_response_formal_record_candidate_promoted_count=0",
"owner_response_formal_record_candidate_review_only=true",
"owner_response_formal_record_auto_promotion_allowed=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_candidate_outcome_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_packets",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerHandoffPackets",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-handoff-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerHandoffBoard",
)
for text in [
"owner_response_formal_record_owner_handoff_packet_count=7",
"owner_response_formal_record_owner_handoff_ready_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_handoff_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_items",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerHandoffReviewItems",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-handoff-review-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerHandoffReviewBoard",
)
for text in [
"owner_response_formal_record_owner_handoff_review_check_count=7",
"owner_response_formal_record_owner_handoff_review_passed_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_handoff_review_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_outcome_lanes",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerHandoffReviewOutcomeLanes",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-handoff-review-outcome-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_outcome_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerHandoffReviewOutcomeBoard",
)
for text in [
"owner_response_formal_record_owner_handoff_review_outcome_lane_count=8",
"owner_response_formal_record_owner_handoff_review_ready_count=0",
"owner_response_formal_record_owner_handoff_review_returned_count=0",
"owner_response_formal_record_owner_handoff_review_quarantine_count=0",
"owner_response_formal_record_owner_handoff_review_rejected_count=0",
"owner_response_formal_record_owner_handoff_review_promoted_count=0",
"owner_response_formal_record_owner_handoff_review_outcome_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_handoff_review_outcome_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_preparation_packets",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerReviewPreparationPackets",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_preparation_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-review-preparation-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_preparation_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerReviewPreparationBoard",
)
for text in [
"owner_response_formal_record_owner_review_preparation_packet_count=8",
"owner_response_formal_record_owner_review_preparation_ready_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_review_preparation_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_preparation_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_checklist_items",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerReviewChecklistItems",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_checklist_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-review-checklist-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_checklist_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerReviewChecklistBoard",
)
for text in [
"owner_response_formal_record_owner_review_check_count=8",
"owner_response_formal_record_owner_review_passed_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_review_checklist_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_checklist_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_outcome_lanes",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerReviewOutcomeLanes",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-review-outcome-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_outcome_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerReviewOutcomeBoard",
)
for text in [
"owner_response_formal_record_owner_review_outcome_lane_count=8",
"owner_response_formal_record_owner_review_outcome_ready_count=0",
"owner_response_formal_record_owner_review_outcome_returned_count=0",
"owner_response_formal_record_owner_review_outcome_quarantine_count=0",
"owner_response_formal_record_owner_review_outcome_rejected_count=0",
"owner_response_formal_record_owner_review_outcome_promoted_count=0",
"owner_response_formal_record_owner_review_outcome_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_review_outcome_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_preparation_packets",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerAssignmentPreparationPackets",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_preparation_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-assignment-preparation-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_preparation_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerAssignmentPreparationBoard",
)
for text in [
"owner_response_formal_record_owner_assignment_preparation_packet_count=8",
"owner_response_formal_record_owner_assignment_preparation_ready_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_assignment_preparation_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_preparation_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_checklist_items",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerAssignmentChecklistItems",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_checklist_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-assignment-checklist-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_checklist_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerAssignmentChecklistBoard",
)
for text in [
"owner_response_formal_record_owner_assignment_check_count=8",
"owner_response_formal_record_owner_assignment_check_passed_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_assignment_checklist_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_checklist_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_outcome_lanes",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerAssignmentOutcomeLanes",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-assignment-outcome-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_outcome_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerAssignmentOutcomeBoard",
)
for text in [
"owner_response_formal_record_owner_assignment_outcome_lane_count=8",
"owner_response_formal_record_owner_assignment_outcome_ready_count=0",
"owner_response_formal_record_owner_assignment_outcome_returned_count=0",
"owner_response_formal_record_owner_assignment_outcome_quarantine_count=0",
"owner_response_formal_record_owner_assignment_outcome_rejected_count=0",
"owner_response_formal_record_owner_assignment_outcome_promoted_count=0",
"owner_response_formal_record_owner_assignment_outcome_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_outcome_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_preparation_packets",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerAssignmentDecisionPreparationPackets",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_preparation_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-assignment-decision-preparation-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_preparation_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard",
)
for text in [
"owner_response_formal_record_owner_assignment_decision_preparation_packet_count=8",
"owner_response_formal_record_owner_assignment_decision_preparation_ready_count=0",
"owner_response_formal_record_owner_assignment_decision_created_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_assignment_decision_preparation_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_preparation_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_checklist_items",
iwooos_projection_page,
"ownerResponseFormalRecordOwnerAssignmentDecisionChecklistItems",
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_checklist_testid",
iwooos_projection_page,
'data-testid="iwooos-owner-response-formal-record-owner-assignment-decision-checklist-board"',
)
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_checklist_component",
iwooos_projection_page,
"OwnerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard",
)
for text in [
"owner_response_formal_record_owner_assignment_decision_check_count=8",
"owner_response_formal_record_owner_assignment_decision_check_passed_count=0",
"owner_response_formal_record_owner_assignment_decision_created_count=0",
"owner_response_formal_record_owner_assigned_count=0",
"owner_response_formal_record_created_count=0",
"owner_response_formal_record_approved_count=0",
"owner_response_formal_record_runtime_gate_count=0",
"owner_response_formal_record_owner_assignment_decision_checklist_only=true",
"owner_response_formal_record_owner_assignment_authorized=false",
"owner_response_formal_record_write_authorized=false",
"owner_response_formal_record_approval_authorized=false",
"owner_response_formal_record_execution_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.owner_response_formal_record_owner_assignment_decision_checklist_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.headline_movement_acceptance_gate_items",
iwooos_projection_page,
"headlineMovementAcceptanceGates",
)
assert_text_contains(
"iwooos_page.headline_movement_acceptance_gate_testid",
iwooos_projection_page,
'data-testid="iwooos-headline-movement-acceptance-gate-board"',
)
assert_text_contains(
"iwooos_page.headline_movement_acceptance_gate_component",
iwooos_projection_page,
"HeadlineMovementAcceptanceGateBoard",
)
assert_text_contains(
"iwooos_page.operator_next_tasks_items",
iwooos_projection_page,
"operatorNextTasks",
)
assert_text_contains(
"iwooos_page.operator_next_tasks_board",
iwooos_projection_page,
"IwoooSOperatorNextTasksBoard",
)
assert_text_contains(
"iwooos_page.operator_next_tasks_testid",
iwooos_projection_page,
'data-testid="iwooos-operator-next-tasks-board"',
)
assert_text_contains(
"iwooos_page.stage_completion_report_items",
iwooos_projection_page,
"stageCompletionReportItems",
)
assert_text_contains(
"iwooos_page.stage_completion_report_board",
iwooos_projection_page,
"IwoooSStageCompletionReportBoard",
)
assert_text_contains(
"iwooos_page.stage_completion_report_testid",
iwooos_projection_page,
'data-testid="iwooos-stage-completion-report-board"',
)
assert_text_not_contains(
"iwooos_page.stage_completion_report_stale_cd_run",
iwooos_projection_page,
"CD 3261",
)
stage_report_messages_zh = json.dumps(
web_messages_zh["iwooos"]["stageCompletionReport"],
ensure_ascii=False,
sort_keys=True,
)
stage_report_messages_en = json.dumps(
web_messages_en["iwooos"]["stageCompletionReport"],
ensure_ascii=False,
sort_keys=True,
)
assert_text_not_contains(
"iwooos_messages.stage_completion_report_stale_cd_run_zh",
stage_report_messages_zh,
"CD 3261",
)
assert_text_not_contains(
"iwooos_messages.stage_completion_report_stale_cd_run_en",
stage_report_messages_en,
"CD 3261",
)
assert_text_contains(
"iwooos_messages.stage_completion_report_deploy_marker_zh",
stage_report_messages_zh,
"deploy marker",
)
assert_text_contains(
"iwooos_messages.stage_completion_report_deploy_marker_en",
stage_report_messages_en,
"deploy marker",
)
for text in [
"headline_percent_after_this_stage=61",
"headline_movement_signal_count=1",
"awooop_read_only_production_landing_evidence_count=1",
"owner_response_received_count=0",
"owner_response_accepted_count=0",
"owner_response_acceptance_gate_open=false",
"redacted_payload_ingested=false",
"active_runtime_gate_count=0",
"github_primary_ready_count=0",
"production_landing_enabled=true",
"execution_router_linked=false",
"progress_review_authorized=true",
"runtime_execution_authorized=false",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.headline_movement_acceptance_gate_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.headlineMovementAcceptanceGate",
list(web_messages_zh["iwooos"].keys()),
"headlineMovementAcceptanceGate",
)
assert_contains(
"web_messages.en.iwooos.headlineMovementAcceptanceGate",
list(web_messages_en["iwooos"].keys()),
"headlineMovementAcceptanceGate",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.headlineMovementAcceptanceGate.keys",
list(web_messages_zh["iwooos"]["headlineMovementAcceptanceGate"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.headlineMovementAcceptanceGate.keys",
list(web_messages_en["iwooos"]["headlineMovementAcceptanceGate"].keys()),
key,
)
for key in [
"s49OwnerResponseAccepted",
"redactedPayloadAccepted",
"runtimeGateApproved",
"githubPrimaryEvidenceReady",
"awooopProductionLandingProof",
"nextHeadlineReviewRecord",
]:
assert_contains(
"web_messages.zh-TW.iwooos.headlineMovementAcceptanceGate.items",
list(web_messages_zh["iwooos"]["headlineMovementAcceptanceGate"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.headlineMovementAcceptanceGate.items",
list(web_messages_en["iwooos"]["headlineMovementAcceptanceGate"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.s49_owner_response_work_order_items",
iwooos_projection_page,
"s49OwnerResponseWorkOrderItems",
)
assert_text_contains(
"iwooos_page.s49_owner_response_work_order_testid",
iwooos_projection_page,
'data-testid="iwooos-s49-owner-response-work-order-board"',
)
assert_text_contains(
"iwooos_page.s49_owner_response_work_order_component",
iwooos_projection_page,
"S49OwnerResponseWorkOrderBoard",
)
for text in [
"s4_9_owner_response_work_order_item_count=5",
"s4_9_owner_response_required_field_count=6",
"s4_9_owner_response_received_count=0",
"s4_9_owner_response_accepted_count=0",
"s4_9_owner_response_rejected_count=0",
"s4_9_owner_response_request_sent=false",
"s4_9_owner_response_intake_open=false",
"owner_response_acceptance_gate_open=false",
"audit_events_emitted=0",
"progress_review_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_work_order_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseWorkOrder",
list(web_messages_zh["iwooos"].keys()),
"s49OwnerResponseWorkOrder",
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseWorkOrder",
list(web_messages_en["iwooos"].keys()),
"s49OwnerResponseWorkOrder",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseWorkOrder.keys",
list(web_messages_zh["iwooos"]["s49OwnerResponseWorkOrder"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseWorkOrder.keys",
list(web_messages_en["iwooos"]["s49OwnerResponseWorkOrder"].keys()),
key,
)
for key in [
"scopeGapResponse",
"endpointIdentityResponse",
"adjacentSourceResponse",
"canonicalOwnerResponse",
"legacyDispositionResponse",
]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseWorkOrder.items",
list(web_messages_zh["iwooos"]["s49OwnerResponseWorkOrder"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseWorkOrder.items",
list(web_messages_en["iwooos"]["s49OwnerResponseWorkOrder"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_fields",
iwooos_projection_page,
"s49OwnerResponseEnvelopeFields",
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_testid",
iwooos_projection_page,
'data-testid="iwooos-s49-owner-response-envelope-board"',
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_component",
iwooos_projection_page,
"S49OwnerResponseEnvelopeBoard",
)
for text in [
"s4_9_owner_response_envelope_field_count=6",
"s4_9_owner_response_envelope_filled_count=0",
"s4_9_owner_response_envelope_submitted_count=0",
"s4_9_owner_response_envelope_accepted_count=0",
"s4_9_owner_response_envelope_rejected_count=0",
"s4_9_owner_response_request_sent=false",
"s4_9_owner_response_received_count=0",
"s4_9_owner_response_accepted_count=0",
"owner_response_acceptance_gate_open=false",
"audit_events_emitted=0",
"progress_review_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelope",
list(web_messages_zh["iwooos"].keys()),
"s49OwnerResponseEnvelope",
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelope",
list(web_messages_en["iwooos"].keys()),
"s49OwnerResponseEnvelope",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelope.keys",
list(web_messages_zh["iwooos"]["s49OwnerResponseEnvelope"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelope.keys",
list(web_messages_en["iwooos"]["s49OwnerResponseEnvelope"].keys()),
key,
)
for key in [
"ownerRoleTeam",
"decision",
"decisionReason",
"affectedScope",
"redactedEvidenceRefs",
"followupOwner",
]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelope.items",
list(web_messages_zh["iwooos"]["s49OwnerResponseEnvelope"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelope.items",
list(web_messages_en["iwooos"]["s49OwnerResponseEnvelope"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_checks",
iwooos_projection_page,
"s49OwnerResponseEnvelopePreflightChecks",
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_testid",
iwooos_projection_page,
'data-testid="iwooos-s49-owner-response-envelope-preflight-board"',
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_component",
iwooos_projection_page,
"S49OwnerResponseEnvelopePreflightBoard",
)
for text in [
"s4_9_owner_response_envelope_preflight_check_count=6",
"s4_9_owner_response_envelope_preflight_passed_count=0",
"s4_9_owner_response_envelope_ready_to_submit_count=0",
"s4_9_owner_response_envelope_submitted_count=0",
"s4_9_owner_response_envelope_accepted_count=0",
"s4_9_owner_response_request_sent=false",
"s4_9_owner_response_received_count=0",
"s4_9_owner_response_accepted_count=0",
"owner_response_acceptance_gate_open=false",
"audit_events_emitted=0",
"progress_review_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelopePreflight",
list(web_messages_zh["iwooos"].keys()),
"s49OwnerResponseEnvelopePreflight",
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelopePreflight",
list(web_messages_en["iwooos"].keys()),
"s49OwnerResponseEnvelopePreflight",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelopePreflight.keys",
list(web_messages_zh["iwooos"]["s49OwnerResponseEnvelopePreflight"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelopePreflight.keys",
list(web_messages_en["iwooos"]["s49OwnerResponseEnvelopePreflight"].keys()),
key,
)
for key in [
"fieldCompleteness",
"allowedDisposition",
"redactedEvidence",
"scopeTraceability",
"mutationRequestRejected",
"followupOwnerTrace",
]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelopePreflight.items",
list(web_messages_zh["iwooos"]["s49OwnerResponseEnvelopePreflight"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelopePreflight.items",
list(web_messages_en["iwooos"]["s49OwnerResponseEnvelopePreflight"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_outcome_lanes",
iwooos_projection_page,
"s49OwnerResponseEnvelopePreflightOutcomeLanes",
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-s49-owner-response-envelope-preflight-outcome-board"',
)
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_outcome_component",
iwooos_projection_page,
"S49OwnerResponseEnvelopePreflightOutcomeBoard",
)
for text in [
"s4_9_owner_response_envelope_preflight_outcome_lane_count=7",
"s4_9_owner_response_envelope_preflight_ready_for_intake_count=0",
"s4_9_owner_response_envelope_preflight_quarantined_count=0",
"s4_9_owner_response_envelope_preflight_rejected_count=0",
"s4_9_owner_response_envelope_submitted_count=0",
"s4_9_owner_response_envelope_accepted_count=0",
"s4_9_owner_response_request_sent=false",
"s4_9_owner_response_received_count=0",
"s4_9_owner_response_accepted_count=0",
"owner_response_acceptance_gate_open=false",
"audit_events_emitted=0",
"progress_review_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_envelope_preflight_outcome_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelopePreflightOutcome",
list(web_messages_zh["iwooos"].keys()),
"s49OwnerResponseEnvelopePreflightOutcome",
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelopePreflightOutcome",
list(web_messages_en["iwooos"].keys()),
"s49OwnerResponseEnvelopePreflightOutcome",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelopePreflightOutcome.keys",
list(web_messages_zh["iwooos"]["s49OwnerResponseEnvelopePreflightOutcome"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelopePreflightOutcome.keys",
list(web_messages_en["iwooos"]["s49OwnerResponseEnvelopePreflightOutcome"].keys()),
key,
)
for key in [
"keepEnvelopeWaiting",
"requestFieldCompletion",
"requestDispositionCorrection",
"quarantineSensitiveEvidence",
"requestScopeCorrection",
"rejectMutationRequest",
"keepFollowupOwnerWaiting",
]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseEnvelopePreflightOutcome.items",
list(web_messages_zh["iwooos"]["s49OwnerResponseEnvelopePreflightOutcome"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseEnvelopePreflightOutcome.items",
list(web_messages_en["iwooos"]["s49OwnerResponseEnvelopePreflightOutcome"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.s49_owner_response_request_draft_items",
iwooos_projection_page,
"s49OwnerResponseRequestDraftItems",
)
assert_text_contains(
"iwooos_page.s49_owner_response_request_draft_testid",
iwooos_projection_page,
'data-testid="iwooos-s49-owner-response-request-draft-board"',
)
assert_text_contains(
"iwooos_page.s49_owner_response_request_draft_component",
iwooos_projection_page,
"S49OwnerResponseRequestDraftBoard",
)
for text in [
"s4_9_owner_response_request_draft_item_count=6",
"s4_9_owner_response_request_draft_ready_count=0",
"s4_9_owner_response_request_dispatch_authorized=false",
"s4_9_owner_response_request_sent=false",
"s4_9_owner_response_request_sent_count=0",
"s4_9_owner_response_request_recipients_confirmed_count=0",
"s4_9_owner_response_request_audit_event_draft_count=1",
"s4_9_owner_response_request_audit_events_emitted=0",
"s4_9_owner_response_received_count=0",
"s4_9_owner_response_accepted_count=0",
"owner_response_acceptance_gate_open=false",
"audit_events_emitted=0",
"progress_review_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_request_draft_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseRequestDraft",
list(web_messages_zh["iwooos"].keys()),
"s49OwnerResponseRequestDraft",
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseRequestDraft",
list(web_messages_en["iwooos"].keys()),
"s49OwnerResponseRequestDraft",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseRequestDraft.keys",
list(web_messages_zh["iwooos"]["s49OwnerResponseRequestDraft"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseRequestDraft.keys",
list(web_messages_en["iwooos"]["s49OwnerResponseRequestDraft"].keys()),
key,
)
for key in [
"scopeMappingDraft",
"ownerRecipientDraft",
"redactedEvidenceDraft",
"noMutationClauseDraft",
"auditTemplateDraft",
"manualDispatchGateDraft",
]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseRequestDraft.items",
list(web_messages_zh["iwooos"]["s49OwnerResponseRequestDraft"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseRequestDraft.items",
list(web_messages_en["iwooos"]["s49OwnerResponseRequestDraft"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.s49_owner_response_dispatch_flow_steps",
iwooos_projection_page,
"s49OwnerResponseDispatchFlowSteps",
)
assert_text_contains(
"iwooos_page.s49_owner_response_dispatch_flow_testid",
iwooos_projection_page,
'data-testid="iwooos-s49-owner-response-dispatch-flow-board"',
)
assert_text_contains(
"iwooos_page.s49_owner_response_dispatch_flow_component",
iwooos_projection_page,
"S49OwnerResponseDispatchFlowBoard",
)
for text in [
"s4_9_owner_response_dispatch_flow_step_count=6",
"s4_9_owner_response_dispatch_flow_current_step=request_draft",
"s4_9_owner_response_dispatch_flow_completed_count=0",
"s4_9_owner_response_dispatch_flow_blocked_count=0",
"s4_9_owner_response_request_sent=false",
"s4_9_owner_response_request_sent_count=0",
"s4_9_owner_response_received_count=0",
"s4_9_owner_response_accepted_count=0",
"s4_9_owner_response_request_dispatch_authorized=false",
"owner_response_acceptance_gate_open=false",
"audit_events_emitted=0",
"progress_review_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_dispatch_flow_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseDispatchFlow",
list(web_messages_zh["iwooos"].keys()),
"s49OwnerResponseDispatchFlow",
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseDispatchFlow",
list(web_messages_en["iwooos"].keys()),
"s49OwnerResponseDispatchFlow",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseDispatchFlow.keys",
list(web_messages_zh["iwooos"]["s49OwnerResponseDispatchFlow"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseDispatchFlow.keys",
list(web_messages_en["iwooos"]["s49OwnerResponseDispatchFlow"].keys()),
key,
)
for key in [
"workOrder",
"envelope",
"preflight",
"outcome",
"requestDraft",
"manualDispatchGate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseDispatchFlow.items",
list(web_messages_zh["iwooos"]["s49OwnerResponseDispatchFlow"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.s49OwnerResponseDispatchFlow.items",
list(web_messages_en["iwooos"]["s49OwnerResponseDispatchFlow"]["items"].keys()),
key,
)
assert_text_contains(
"security_compliance_page.frontstage_bridge_testid",
security_compliance_page,
'data-testid="security-compliance-iwooos-frontstage-bridge"',
)
assert_text_contains(
"security_compliance_page.authoritative_iwooos_strip_testid",
security_compliance_page,
'data-testid="security-compliance-authoritative-iwooos-strip"',
)
assert_text_contains(
"security_compliance_page.frontstage_component",
security_compliance_page,
"SecurityComplianceFrontStage",
)
assert_text_contains(
"security_compliance_page.frontstage_route_role_map_testid",
security_compliance_page,
'data-testid="security-compliance-frontstage-route-role-map"',
)
assert_text_contains(
"security_compliance_page.low_friction_rollout_ladder_testid",
security_compliance_page,
'data-testid="security-compliance-low-friction-rollout-ladder"',
)
assert_text_contains(
"security_compliance_page.frontstage_boundary_codes_testid",
security_compliance_page,
'data-testid="security-compliance-frontstage-boundary-codes"',
)
assert_text_contains(
"iwooos_page.security_compliance_frontstage_testid",
iwooos_projection_page,
'data-testid="iwooos-security-compliance-frontstage-board"',
)
assert_text_contains(
"iwooos_page.security_compliance_frontstage_component",
iwooos_projection_page,
"SecurityComplianceFrontStageBoard",
)
for text in [
"security_compliance_route_preserved=true",
"security_compliance_removed=false",
"security_compliance_integration_mode=iwooos_frontstage_bridge",
"iwooos_authoritative_security_entry=true",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"security_compliance_page.frontstage_boundary",
security_compliance_page,
text,
)
assert_text_contains(
"iwooos_page.security_compliance_frontstage_boundary",
iwooos_projection_page,
text,
)
for text in [
"security_compliance_frontstage_route_role_count=5",
"security_compliance_frontstage_primary_source=iwooos",
"security_compliance_frontstage_execution_entry_count=0",
"security_compliance_frontstage_links_read_only=true",
"security_compliance_authoritative_entry=iwooos",
"security_compliance_frontstage_summary_mode=compact_first",
"security_compliance_frontstage_default_detail_collapsed=true",
]:
assert_text_contains(
"security_compliance_page.frontstage_route_role_boundary",
security_compliance_page,
text,
)
for text in [
"security_compliance_rollout_phase_count=5",
"security_compliance_rollout_current_phase=observe_first",
"security_compliance_rollout_runtime_phase_enabled=false",
"security_compliance_rollout_enforcement_enabled=false",
"security_compliance_rollout_action_buttons_allowed=false",
]:
assert_text_contains(
"security_compliance_page.low_friction_rollout_boundary",
security_compliance_page,
text,
)
for text in [
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.security_compliance_frontstage_hard_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.securityCompliance",
list(web_messages_zh.keys()),
"securityCompliance",
)
assert_contains(
"web_messages.en.securityCompliance",
list(web_messages_en.keys()),
"securityCompliance",
)
for key in [
"eyebrow",
"title",
"subtitle",
"openIwooos",
"boundaryTitle",
"boundaryIntro",
"routeRoleTitle",
"routeRoleSubtitle",
"routeLabel",
"rolloutTitle",
"rolloutSubtitle",
"phaseLabel",
"boundaryCodesSummary",
"authority",
"items",
"routeRoles",
"rolloutPhases",
]:
assert_contains(
"web_messages.zh-TW.securityCompliance.frontStage.keys",
list(web_messages_zh["securityCompliance"]["frontStage"].keys()),
key,
)
assert_contains(
"web_messages.en.securityCompliance.frontStage.keys",
list(web_messages_en["securityCompliance"]["frontStage"].keys()),
key,
)
for key in ["eyebrow", "title", "body", "open", "signals"]:
assert_contains(
"web_messages.zh-TW.securityCompliance.frontStage.authority.keys",
list(web_messages_zh["securityCompliance"]["frontStage"]["authority"].keys()),
key,
)
assert_contains(
"web_messages.en.securityCompliance.frontStage.authority.keys",
list(web_messages_en["securityCompliance"]["frontStage"]["authority"].keys()),
key,
)
for key in ["source", "progress", "gate", "mode"]:
assert_contains(
"web_messages.zh-TW.securityCompliance.frontStage.authority.signals",
list(web_messages_zh["securityCompliance"]["frontStage"]["authority"]["signals"].keys()),
key,
)
assert_contains(
"web_messages.en.securityCompliance.frontStage.authority.signals",
list(web_messages_en["securityCompliance"]["frontStage"]["authority"]["signals"].keys()),
key,
)
for key in ["routePreserved", "iwooosBridge", "dedupeNarrative", "noRuntimeControl"]:
assert_contains(
"web_messages.zh-TW.securityCompliance.frontStage.items",
list(web_messages_zh["securityCompliance"]["frontStage"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.securityCompliance.frontStage.items",
list(web_messages_en["securityCompliance"]["frontStage"]["items"].keys()),
key,
)
for key in [
"iwooosOverview",
"securityComplianceHub",
"securityMonitor",
"complianceStats",
"awooopApprovals",
]:
assert_contains(
"web_messages.zh-TW.securityCompliance.frontStage.routeRoles",
list(web_messages_zh["securityCompliance"]["frontStage"]["routeRoles"].keys()),
key,
)
assert_contains(
"web_messages.en.securityCompliance.frontStage.routeRoles",
list(web_messages_en["securityCompliance"]["frontStage"]["routeRoles"].keys()),
key,
)
for key in [
"observe",
"evidence",
"humanReview",
"runtimeGate",
"tightening",
]:
assert_contains(
"web_messages.zh-TW.securityCompliance.frontStage.rolloutPhases",
list(web_messages_zh["securityCompliance"]["frontStage"]["rolloutPhases"].keys()),
key,
)
assert_contains(
"web_messages.en.securityCompliance.frontStage.rolloutPhases",
list(web_messages_en["securityCompliance"]["frontStage"]["rolloutPhases"].keys()),
key,
)
assert_contains(
"web_messages.zh-TW.iwooos.securityComplianceFrontStage",
list(web_messages_zh["iwooos"].keys()),
"securityComplianceFrontStage",
)
assert_contains(
"web_messages.en.iwooos.securityComplianceFrontStage",
list(web_messages_en["iwooos"].keys()),
"securityComplianceFrontStage",
)
for key in ["title", "subtitle", "summary", "items", "decisionLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.securityComplianceFrontStage.keys",
list(web_messages_zh["iwooos"]["securityComplianceFrontStage"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.securityComplianceFrontStage.keys",
list(web_messages_en["iwooos"]["securityComplianceFrontStage"].keys()),
key,
)
for key in ["route", "decision", "removed", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.securityComplianceFrontStage.summary",
list(web_messages_zh["iwooos"]["securityComplianceFrontStage"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.securityComplianceFrontStage.summary",
list(web_messages_en["iwooos"]["securityComplianceFrontStage"]["summary"].keys()),
key,
)
for key in ["routePreserved", "frontStageBridge", "singleSecurityNarrative", "runtimeControls"]:
assert_contains(
"web_messages.zh-TW.iwooos.securityComplianceFrontStage.items",
list(web_messages_zh["iwooos"]["securityComplianceFrontStage"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.securityComplianceFrontStage.items",
list(web_messages_en["iwooos"]["securityComplianceFrontStage"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.frontstage_security_entry_roles_testid",
iwooos_projection_page,
'data-testid="iwooos-frontstage-security-entry-roles-board"',
)
assert_text_contains(
"iwooos_page.frontstage_security_entry_roles_component",
iwooos_projection_page,
"FrontstageSecurityEntryRolesBoard",
)
for text in [
"frontstage_security_entry_role_count=5",
"frontstage_security_primary_entry=iwooos",
"frontstage_security_familiar_entry=security_compliance",
"frontstage_security_execution_entry_count=0",
"frontstage_security_links_read_only=true",
"frontstage_security_operator_confusion_reduction=true",
"frontstage_security_action_buttons_allowed=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.frontstage_security_entry_roles_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.frontstageEntryRoles",
list(web_messages_zh["iwooos"].keys()),
"frontstageEntryRoles",
)
assert_contains(
"web_messages.en.iwooos.frontstageEntryRoles",
list(web_messages_en["iwooos"].keys()),
"frontstageEntryRoles",
)
for key in ["title", "subtitle", "summary", "items", "routeLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.frontstageEntryRoles.keys",
list(web_messages_zh["iwooos"]["frontstageEntryRoles"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.frontstageEntryRoles.keys",
list(web_messages_en["iwooos"]["frontstageEntryRoles"].keys()),
key,
)
for key in ["entries", "primary", "familiar", "execution"]:
assert_contains(
"web_messages.zh-TW.iwooos.frontstageEntryRoles.summary",
list(web_messages_zh["iwooos"]["frontstageEntryRoles"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.frontstageEntryRoles.summary",
list(web_messages_en["iwooos"]["frontstageEntryRoles"]["summary"].keys()),
key,
)
for key in [
"iwooosOverview",
"securityComplianceHub",
"securityMonitor",
"complianceStats",
"awooopApprovals",
]:
assert_contains(
"web_messages.zh-TW.iwooos.frontstageEntryRoles.items",
list(web_messages_zh["iwooos"]["frontstageEntryRoles"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.frontstageEntryRoles.items",
list(web_messages_en["iwooos"]["frontstageEntryRoles"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.low_friction_rollout_testid",
iwooos_projection_page,
'data-testid="iwooos-low-friction-rollout-ladder-board"',
)
assert_text_contains(
"iwooos_page.low_friction_rollout_component",
iwooos_projection_page,
"IwoooSLowFrictionRolloutLadderBoard",
)
for text in [
"iwooos_rollout_phase_count=5",
"iwooos_rollout_current_phase=observe_first",
"iwooos_rollout_frontstage_source=security_compliance_s2_110",
"iwooos_rollout_runtime_phase_enabled=false",
"iwooos_rollout_enforcement_enabled=false",
"iwooos_rollout_action_buttons_allowed=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.low_friction_rollout_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionRollout",
list(web_messages_zh["iwooos"].keys()),
"lowFrictionRollout",
)
assert_contains(
"web_messages.en.iwooos.lowFrictionRollout",
list(web_messages_en["iwooos"].keys()),
"lowFrictionRollout",
)
for key in ["title", "subtitle", "summary", "items", "phaseLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionRollout.keys",
list(web_messages_zh["iwooos"]["lowFrictionRollout"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.lowFrictionRollout.keys",
list(web_messages_en["iwooos"]["lowFrictionRollout"].keys()),
key,
)
for key in ["phases", "current", "runtime", "enforcement"]:
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionRollout.summary",
list(web_messages_zh["iwooos"]["lowFrictionRollout"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.lowFrictionRollout.summary",
list(web_messages_en["iwooos"]["lowFrictionRollout"]["summary"].keys()),
key,
)
for key in ["observe", "evidence", "humanReview", "runtimeGate", "tightening"]:
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionRollout.items",
list(web_messages_zh["iwooos"]["lowFrictionRollout"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.lowFrictionRollout.items",
list(web_messages_en["iwooos"]["lowFrictionRollout"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.low_friction_next_actions_testid",
iwooos_projection_page,
'data-testid="iwooos-low-friction-next-actions-board"',
)
assert_text_contains(
"iwooos_page.low_friction_next_actions_component",
iwooos_projection_page,
"IwoooSLowFrictionNextActionsBoard",
)
for text in [
"iwooos_next_action_item_count=4",
"iwooos_next_action_allowed_mode=observe_and_evidence_only",
"iwooos_next_action_runtime_gate_required=true",
"iwooos_next_action_scan_authorized=false",
"iwooos_next_action_host_change_authorized=false",
"iwooos_next_action_deploy_authorized=false",
"iwooos_next_action_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.low_friction_next_actions_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionNextActions",
list(web_messages_zh["iwooos"].keys()),
"lowFrictionNextActions",
)
assert_contains(
"web_messages.en.iwooos.lowFrictionNextActions",
list(web_messages_en["iwooos"].keys()),
"lowFrictionNextActions",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionNextActions.keys",
list(web_messages_zh["iwooos"]["lowFrictionNextActions"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.lowFrictionNextActions.keys",
list(web_messages_en["iwooos"]["lowFrictionNextActions"].keys()),
key,
)
for key in ["allowed", "prep", "blocked", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionNextActions.summary",
list(web_messages_zh["iwooos"]["lowFrictionNextActions"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.lowFrictionNextActions.summary",
list(web_messages_en["iwooos"]["lowFrictionNextActions"]["summary"].keys()),
key,
)
for key in ["observeInventory", "evidencePacket", "humanReviewPrep", "runtimeClosed"]:
assert_contains(
"web_messages.zh-TW.iwooos.lowFrictionNextActions.items",
list(web_messages_zh["iwooos"]["lowFrictionNextActions"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.lowFrictionNextActions.items",
list(web_messages_en["iwooos"]["lowFrictionNextActions"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.progress_movement_signals_testid",
iwooos_projection_page,
'data-testid="iwooos-progress-movement-signals-board"',
)
assert_text_contains(
"iwooos_page.progress_movement_signals_component",
iwooos_projection_page,
"IwoooSProgressMovementSignalsBoard",
)
for text in [
"iwooos_progress_movement_signal_count=5",
"iwooos_progress_current_headline_percent=61",
"iwooos_progress_owner_response_accepted_count=0",
"iwooos_progress_redacted_payload_ingested=false",
"iwooos_progress_active_runtime_gate_count=0",
"iwooos_progress_github_primary_ready_count=0",
"iwooos_progress_awooop_landing_evidence_count=1",
"iwooos_progress_review_authorized=true",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.progress_movement_signals_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.progressMovementSignals",
list(web_messages_zh["iwooos"].keys()),
"progressMovementSignals",
)
assert_contains(
"web_messages.en.iwooos.progressMovementSignals",
list(web_messages_en["iwooos"].keys()),
"progressMovementSignals",
)
for key in ["title", "subtitle", "summary", "items", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.progressMovementSignals.keys",
list(web_messages_zh["iwooos"]["progressMovementSignals"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.progressMovementSignals.keys",
list(web_messages_en["iwooos"]["progressMovementSignals"].keys()),
key,
)
for key in ["headline", "signals", "passed", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.progressMovementSignals.summary",
list(web_messages_zh["iwooos"]["progressMovementSignals"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.progressMovementSignals.summary",
list(web_messages_en["iwooos"]["progressMovementSignals"]["summary"].keys()),
key,
)
for key in ["ownerResponse", "redactedEvidence", "runtimeGate", "sourceControl", "awooopLanding"]:
assert_contains(
"web_messages.zh-TW.iwooos.progressMovementSignals.items",
list(web_messages_zh["iwooos"]["progressMovementSignals"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.progressMovementSignals.items",
list(web_messages_en["iwooos"]["progressMovementSignals"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.concrete_security_work_map_testid",
iwooos_projection_page,
'data-testid="iwooos-concrete-security-work-map-board"',
)
assert_text_contains(
"iwooos_page.concrete_security_work_map_component",
iwooos_projection_page,
"IwoooSConcreteSecurityWorkMapBoard",
)
for text in [
"iwooos_concrete_security_workstream_count=6",
"iwooos_concrete_security_visible_workstream_count=6",
"iwooos_concrete_security_framework_only_stream_count=6",
"iwooos_concrete_security_runtime_workstream_count=0",
"iwooos_concrete_security_next_real_gate=s4_9_owner_response_accepted",
"iwooos_concrete_security_owner_response_received_count=0",
"iwooos_concrete_security_owner_response_accepted_count=0",
"iwooos_concrete_security_redacted_payload_ingested=false",
"iwooos_concrete_security_active_runtime_gate_count=0",
"iwooos_concrete_security_github_primary_ready_count=0",
"iwooos_concrete_security_kali_scan_authorized=false",
"iwooos_concrete_security_host_change_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.concrete_security_work_map_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityWorkMap",
list(web_messages_zh["iwooos"].keys()),
"concreteSecurityWorkMap",
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityWorkMap",
list(web_messages_en["iwooos"].keys()),
"concreteSecurityWorkMap",
)
for key in ["title", "subtitle", "summary", "items", "workLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityWorkMap.keys",
list(web_messages_zh["iwooos"]["concreteSecurityWorkMap"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityWorkMap.keys",
list(web_messages_en["iwooos"]["concreteSecurityWorkMap"].keys()),
key,
)
for key in ["streams", "visible", "realGate", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityWorkMap.summary",
list(web_messages_zh["iwooos"]["concreteSecurityWorkMap"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityWorkMap.summary",
list(web_messages_en["iwooos"]["concreteSecurityWorkMap"]["summary"].keys()),
key,
)
for key in [
"frontstageVisibility",
"hostScopeInventory",
"sourceControlMigration",
"ownerEvidenceIntake",
"reviewerHumanFlow",
"runtimeExecutionGate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityWorkMap.items",
list(web_messages_zh["iwooos"]["concreteSecurityWorkMap"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityWorkMap.items",
list(web_messages_en["iwooos"]["concreteSecurityWorkMap"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.concrete_security_delivery_checklist_testid",
iwooos_projection_page,
'data-testid="iwooos-concrete-security-delivery-checklist-board"',
)
assert_text_contains(
"iwooos_page.concrete_security_delivery_checklist_component",
iwooos_projection_page,
"IwoooSConcreteSecurityDeliveryChecklistBoard",
)
for text in [
"iwooos_concrete_security_delivery_item_count=6",
"iwooos_concrete_security_delivery_visible_item_count=6",
"iwooos_concrete_security_delivery_framework_only_count=6",
"iwooos_concrete_security_delivery_runtime_item_count=0",
"iwooos_concrete_security_delivery_next_owner_evidence=s4_9_owner_response",
"iwooos_concrete_security_delivery_ready_for_runtime_count=0",
"iwooos_concrete_security_delivery_evidence_received_count=0",
"iwooos_concrete_security_delivery_evidence_accepted_count=0",
"iwooos_concrete_security_delivery_reviewer_queue_open=false",
"iwooos_concrete_security_delivery_git_primary_ready=false",
"iwooos_concrete_security_delivery_kali_execution_ready=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.concrete_security_delivery_checklist_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityDeliveryChecklist",
list(web_messages_zh["iwooos"].keys()),
"concreteSecurityDeliveryChecklist",
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityDeliveryChecklist",
list(web_messages_en["iwooos"].keys()),
"concreteSecurityDeliveryChecklist",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"deliverableLabel",
"deliveredLabel",
"nextLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityDeliveryChecklist.keys",
list(web_messages_zh["iwooos"]["concreteSecurityDeliveryChecklist"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityDeliveryChecklist.keys",
list(web_messages_en["iwooos"]["concreteSecurityDeliveryChecklist"].keys()),
key,
)
for key in ["items", "framework", "blocked", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityDeliveryChecklist.summary",
list(web_messages_zh["iwooos"]["concreteSecurityDeliveryChecklist"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityDeliveryChecklist.summary",
list(web_messages_en["iwooos"]["concreteSecurityDeliveryChecklist"]["summary"].keys()),
key,
)
for key in [
"visibilitySurface",
"hostScopeEvidence",
"sourceControlEvidence",
"s49OwnerPacket",
"reviewerPreparation",
"runtimeGate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityDeliveryChecklist.items",
list(web_messages_zh["iwooos"]["concreteSecurityDeliveryChecklist"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityDeliveryChecklist.items",
list(web_messages_en["iwooos"]["concreteSecurityDeliveryChecklist"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.concrete_security_blocker_resolution_testid",
iwooos_projection_page,
'data-testid="iwooos-concrete-security-blocker-resolution-board"',
)
assert_text_contains(
"iwooos_page.concrete_security_blocker_resolution_component",
iwooos_projection_page,
"IwoooSConcreteSecurityBlockerResolutionBoard",
)
for text in [
"iwooos_concrete_security_blocker_count=6",
"iwooos_concrete_security_visible_blocker_count=6",
"iwooos_concrete_security_headline_blocker_count=6",
"iwooos_concrete_security_blocker_resolved_count=0",
"iwooos_concrete_security_first_resolvable_blocker=s4_9_owner_response_missing",
"iwooos_concrete_security_owner_response_required=true",
"iwooos_concrete_security_redacted_evidence_required=true",
"iwooos_concrete_security_reviewer_queue_open=false",
"iwooos_concrete_security_github_primary_ready=false",
"iwooos_concrete_security_kali_execution_ready=false",
"iwooos_concrete_security_runtime_gate_open=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.concrete_security_blocker_resolution_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityBlockerResolution",
list(web_messages_zh["iwooos"].keys()),
"concreteSecurityBlockerResolution",
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityBlockerResolution",
list(web_messages_en["iwooos"].keys()),
"concreteSecurityBlockerResolution",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"blockerLabel",
"whyLabel",
"unlockLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityBlockerResolution.keys",
list(web_messages_zh["iwooos"]["concreteSecurityBlockerResolution"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityBlockerResolution.keys",
list(web_messages_en["iwooos"]["concreteSecurityBlockerResolution"].keys()),
key,
)
for key in ["blockers", "resolved", "first", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityBlockerResolution.summary",
list(web_messages_zh["iwooos"]["concreteSecurityBlockerResolution"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityBlockerResolution.summary",
list(web_messages_en["iwooos"]["concreteSecurityBlockerResolution"]["summary"].keys()),
key,
)
for key in [
"ownerResponseMissing",
"redactedEvidenceMissing",
"reviewerQueueClosed",
"sourceControlNotReady",
"hostEvidencePending",
"runtimeGateClosed",
]:
assert_contains(
"web_messages.zh-TW.iwooos.concreteSecurityBlockerResolution.items",
list(web_messages_zh["iwooos"]["concreteSecurityBlockerResolution"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.concreteSecurityBlockerResolution.items",
list(web_messages_en["iwooos"]["concreteSecurityBlockerResolution"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_testid",
iwooos_projection_page,
'data-testid="iwooos-all-product-coverage-snapshot-board"',
)
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_boundary_testid",
iwooos_projection_page,
'data-testid="iwooos-all-product-coverage-snapshot-boundaries"',
)
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_component",
iwooos_projection_page,
"IwoooSAllProductCoverageSnapshotBoard",
)
for text in [
"iwooos_all_product_coverage_snapshot_scope_count=7",
"iwooos_all_product_coverage_snapshot_read_only_count=7",
"iwooos_all_product_coverage_snapshot_runtime_ready_count=0",
"iwooos_all_product_coverage_snapshot_default_summary_mode=compact_first",
"iwooos_all_product_coverage_snapshot_detail_ledger_collapsed=true",
"iwooos_all_product_coverage_snapshot_next_gate=s4_9_owner_response_accepted",
"vibework_project_read_only_in_scope=true",
"vibework_runtime_ready=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.all_product_coverage_snapshot_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot",
list(web_messages_zh["iwooos"].keys()),
"allProductCoverageSnapshot",
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot",
list(web_messages_en["iwooos"].keys()),
"allProductCoverageSnapshot",
)
for key in [
"title",
"subtitle",
"summary",
"states",
"items",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.keys",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.keys",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"].keys()),
key,
)
for key in ["scopeCount", "readOnlyScopes", "runtimeReady", "nextGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.summary",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.summary",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"]["summary"].keys()),
key,
)
for key in [
"connected",
"visible",
"waitingEvidence",
"approvalRequired",
"readOnlyFirst",
"newProjectReadOnly",
"templateReady",
]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.states",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"]["states"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.states",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"]["states"].keys()),
key,
)
for key in [
"awoooiCore",
"websites",
"sourceControl",
"hosts",
"toolsMonitoring",
"vibeWork",
"futureProducts",
]:
assert_contains(
"web_messages.zh-TW.iwooos.allProductCoverageSnapshot.items",
list(web_messages_zh["iwooos"]["allProductCoverageSnapshot"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.allProductCoverageSnapshot.items",
list(web_messages_en["iwooos"]["allProductCoverageSnapshot"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.global_security_mesh_matrix_testid",
iwooos_projection_page,
'data-testid="iwooos-global-security-mesh-matrix-board"',
)
assert_text_contains(
"iwooos_page.global_security_mesh_matrix_boundary_testid",
iwooos_projection_page,
'data-testid="iwooos-global-security-mesh-matrix-boundaries"',
)
assert_text_contains(
"iwooos_page.global_security_mesh_matrix_component",
iwooos_projection_page,
"IwoooSGlobalSecurityMeshMatrixBoard",
)
for text in [
"iwooos_global_security_mesh_first_layer=true",
"iwooos_global_security_mesh_asset_count=8",
"iwooos_global_security_mesh_read_only_count=8",
"iwooos_global_security_mesh_runtime_gate_count=0",
"iwooos_global_security_mesh_source_control_mutation_authorized=false",
"iwooos_global_security_mesh_kali_execution_authorized=false",
"iwooos_global_security_mesh_host_change_authorized=false",
"iwooos_global_security_mesh_scan_authorized=false",
"iwooos_global_security_mesh_production_deploy_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.global_security_mesh_matrix_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.globalSecurityMeshMatrix",
list(web_messages_zh["iwooos"].keys()),
"globalSecurityMeshMatrix",
)
assert_contains(
"web_messages.en.iwooos.globalSecurityMeshMatrix",
list(web_messages_en["iwooos"].keys()),
"globalSecurityMeshMatrix",
)
for key in [
"eyebrow",
"title",
"subtitle",
"coverageLabel",
"evidenceLabel",
"runtimeLabel",
"nextLabel",
"boundaryTitle",
"boundaryIntro",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.globalSecurityMeshMatrix.keys",
list(web_messages_zh["iwooos"]["globalSecurityMeshMatrix"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.globalSecurityMeshMatrix.keys",
list(web_messages_en["iwooos"]["globalSecurityMeshMatrix"].keys()),
key,
)
for key in ["assets", "readOnly", "runtime", "nextGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.globalSecurityMeshMatrix.summary",
list(web_messages_zh["iwooos"]["globalSecurityMeshMatrix"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.globalSecurityMeshMatrix.summary",
list(web_messages_en["iwooos"]["globalSecurityMeshMatrix"]["summary"].keys()),
key,
)
for key in ["awoooi", "awooop", "iwooos", "publicSites", "vibeWork", "kali112", "devHosts", "sourceControl"]:
assert_contains(
"web_messages.zh-TW.iwooos.globalSecurityMeshMatrix.items",
list(web_messages_zh["iwooos"]["globalSecurityMeshMatrix"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.globalSecurityMeshMatrix.items",
list(web_messages_en["iwooos"]["globalSecurityMeshMatrix"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.host_tool_evidence_chain_testid",
iwooos_projection_page,
'data-testid="iwooos-host-tool-evidence-chain-board"',
)
assert_text_contains(
"iwooos_page.host_tool_evidence_chain_boundary_testid",
iwooos_projection_page,
'data-testid="iwooos-host-tool-evidence-chain-boundaries"',
)
assert_text_contains(
"iwooos_page.host_tool_evidence_chain_component",
iwooos_projection_page,
"IwoooSHostToolEvidenceChainBoard",
)
for text in [
"iwooos_host_tool_evidence_chain_first_layer=true",
"iwooos_host_tool_evidence_chain_host_count=3",
"iwooos_host_tool_evidence_chain_tool_lane_count=6",
"iwooos_host_tool_evidence_chain_step_count=5",
"kali_112_integrated_as_read_only=true",
"dev_hosts_111_168_integrated_as_read_only=true",
"monitoring_tools_evidence_chain_linked=true",
"kali_112_execute_authorized=false",
"host_update_authorized=false",
"active_scan_authorized=false",
"ssh_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.host_tool_evidence_chain_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.hostToolEvidenceChain",
list(web_messages_zh["iwooos"].keys()),
"hostToolEvidenceChain",
)
assert_contains(
"web_messages.en.iwooos.hostToolEvidenceChain",
list(web_messages_en["iwooos"].keys()),
"hostToolEvidenceChain",
)
for key in [
"eyebrow",
"title",
"subtitle",
"flowTitle",
"evidenceLabel",
"nextLabel",
"boundaryTitle",
"boundaryIntro",
"summary",
"steps",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.hostToolEvidenceChain.keys",
list(web_messages_zh["iwooos"]["hostToolEvidenceChain"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.hostToolEvidenceChain.keys",
list(web_messages_en["iwooos"]["hostToolEvidenceChain"].keys()),
key,
)
for key in ["hosts", "toolLanes", "linkedEvidence", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.hostToolEvidenceChain.summary",
list(web_messages_zh["iwooos"]["hostToolEvidenceChain"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.hostToolEvidenceChain.summary",
list(web_messages_en["iwooos"]["hostToolEvidenceChain"]["summary"].keys()),
key,
)
for key in ["observe", "evidence", "review", "ownerGate", "runtimeHold"]:
assert_contains(
"web_messages.zh-TW.iwooos.hostToolEvidenceChain.steps",
list(web_messages_zh["iwooos"]["hostToolEvidenceChain"]["steps"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.hostToolEvidenceChain.steps",
list(web_messages_en["iwooos"]["hostToolEvidenceChain"]["steps"].keys()),
key,
)
for key in ["kali112", "dev111", "dev168", "monitoringTools", "automationTools", "sourceControl"]:
assert_contains(
"web_messages.zh-TW.iwooos.hostToolEvidenceChain.items",
list(web_messages_zh["iwooos"]["hostToolEvidenceChain"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.hostToolEvidenceChain.items",
list(web_messages_en["iwooos"]["hostToolEvidenceChain"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.vibework_security_onboarding_testid",
iwooos_projection_page,
'data-testid="iwooos-vibework-security-onboarding-board"',
)
assert_text_contains(
"iwooos_page.vibework_security_onboarding_boundary_testid",
iwooos_projection_page,
'data-testid="iwooos-vibework-security-onboarding-boundaries"',
)
assert_text_contains(
"iwooos_page.vibework_security_onboarding_component",
iwooos_projection_page,
"IwoooSVibeWorkSecurityOnboardingBoard",
)
for text in [
"vibework_security_onboarding_item_count=6",
"vibework_security_onboarding_read_only=true",
"vibework_owner_evidence_received=false",
"vibework_data_classification_received=false",
"vibework_source_control_evidence_received=false",
"vibework_deployment_boundary_received=false",
"vibework_runtime_gate_open=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"production_deploy_authorized=false",
]:
assert_text_contains(
"iwooos_page.vibework_security_onboarding_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.vibeWorkSecurityOnboarding",
list(web_messages_zh["iwooos"].keys()),
"vibeWorkSecurityOnboarding",
)
assert_contains(
"web_messages.en.iwooos.vibeWorkSecurityOnboarding",
list(web_messages_en["iwooos"].keys()),
"vibeWorkSecurityOnboarding",
)
for key in [
"eyebrow",
"title",
"subtitle",
"summary",
"items",
"checkLabel",
"stateLabel",
"missingLabel",
"nextLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.vibeWorkSecurityOnboarding.keys",
list(web_messages_zh["iwooos"]["vibeWorkSecurityOnboarding"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.vibeWorkSecurityOnboarding.keys",
list(web_messages_en["iwooos"]["vibeWorkSecurityOnboarding"].keys()),
key,
)
for key in ["readOnly", "missingEvidence", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.vibeWorkSecurityOnboarding.summary",
list(web_messages_zh["iwooos"]["vibeWorkSecurityOnboarding"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.vibeWorkSecurityOnboarding.summary",
list(web_messages_en["iwooos"]["vibeWorkSecurityOnboarding"]["summary"].keys()),
key,
)
for key in ["owner", "dataClass", "sourceRepo", "deployBoundary", "evidencePointer", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.vibeWorkSecurityOnboarding.items",
list(web_messages_zh["iwooos"]["vibeWorkSecurityOnboarding"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.vibeWorkSecurityOnboarding.items",
list(web_messages_en["iwooos"]["vibeWorkSecurityOnboarding"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.three_axis_product_progress_testid",
iwooos_projection_page,
'data-testid="iwooos-three-axis-product-progress-board"',
)
assert_text_contains(
"iwooos_page.three_axis_product_progress_component",
iwooos_projection_page,
"IwoooSThreeAxisProductProgressBoard",
)
for text in [
"iwooos_three_axis_progress_headline_percent=61",
"iwooos_three_axis_progress_framework_percent=86-88",
"iwooos_three_axis_progress_runtime_percent=40-45",
"iwooos_three_axis_progress_product_scope_count=7",
"iwooos_three_axis_progress_all_products_read_only=true",
"iwooos_three_axis_progress_vibework_read_only_in_scope=true",
"iwooos_three_axis_progress_vibework_runtime_ready=false",
"iwooos_three_axis_progress_runtime_product_rollout_count=0",
"iwooos_three_axis_progress_first_runtime_gate=s4_9_owner_response_accepted",
"iwooos_three_axis_progress_owner_response_accepted_count=0",
"iwooos_three_axis_progress_active_runtime_gate_count=0",
"iwooos_three_axis_progress_production_deploy_count=1",
"iwooos_three_axis_progress_kali_execution_authorized=false",
"iwooos_three_axis_progress_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.three_axis_product_progress_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.threeAxisProductProgress",
list(web_messages_zh["iwooos"].keys()),
"threeAxisProductProgress",
)
assert_contains(
"web_messages.en.iwooos.threeAxisProductProgress",
list(web_messages_en["iwooos"].keys()),
"threeAxisProductProgress",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"scopeLabel",
"currentLabel",
"nextLabel",
"boundaryLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.threeAxisProductProgress.keys",
list(web_messages_zh["iwooos"]["threeAxisProductProgress"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.threeAxisProductProgress.keys",
list(web_messages_en["iwooos"]["threeAxisProductProgress"].keys()),
key,
)
for key in ["headline", "framework", "runtime", "products"]:
assert_contains(
"web_messages.zh-TW.iwooos.threeAxisProductProgress.summary",
list(web_messages_zh["iwooos"]["threeAxisProductProgress"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.threeAxisProductProgress.summary",
list(web_messages_en["iwooos"]["threeAxisProductProgress"]["summary"].keys()),
key,
)
for key in [
"awoooiCore",
"websites",
"sourceControl",
"hosts",
"toolsMonitoring",
"vibeWork",
"futureProducts",
]:
assert_contains(
"web_messages.zh-TW.iwooos.threeAxisProductProgress.items",
list(web_messages_zh["iwooos"]["threeAxisProductProgress"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.threeAxisProductProgress.items",
list(web_messages_en["iwooos"]["threeAxisProductProgress"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_rollout_wave_ledger_testid",
iwooos_projection_page,
'data-testid="iwooos-product-rollout-wave-ledger-board"',
)
assert_text_contains(
"iwooos_page.product_rollout_wave_ledger_component",
iwooos_projection_page,
"IwoooSProductRolloutWaveLedgerBoard",
)
for text in [
"iwooos_product_rollout_wave_count=7",
"iwooos_product_rollout_all_products_count=7",
"iwooos_product_rollout_current_wave=read_only_visibility",
"iwooos_product_rollout_vibework_project_wave=read_only_visibility",
"iwooos_product_rollout_vibework_runtime_ready=false",
"iwooos_product_rollout_runtime_wave_count=0",
"iwooos_product_rollout_enforcement_wave_count=0",
"iwooos_product_rollout_owner_response_accepted_count=0",
"iwooos_product_rollout_active_runtime_gate_count=0",
"iwooos_product_rollout_first_runtime_candidate=s4_9_owner_response_accepted",
"iwooos_product_rollout_all_products_read_only=true",
"iwooos_product_rollout_public_secret_exposure_allowed=false",
"iwooos_product_rollout_kali_execution_authorized=false",
"iwooos_product_rollout_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_rollout_wave_ledger_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutWaveLedger",
list(web_messages_zh["iwooos"].keys()),
"productRolloutWaveLedger",
)
assert_contains(
"web_messages.en.iwooos.productRolloutWaveLedger",
list(web_messages_en["iwooos"].keys()),
"productRolloutWaveLedger",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"waveLabel",
"allowedLabel",
"beforeRuntimeLabel",
"forbiddenLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutWaveLedger.keys",
list(web_messages_zh["iwooos"]["productRolloutWaveLedger"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutWaveLedger.keys",
list(web_messages_en["iwooos"]["productRolloutWaveLedger"].keys()),
key,
)
for key in ["waves", "current", "runtime", "nextGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutWaveLedger.summary",
list(web_messages_zh["iwooos"]["productRolloutWaveLedger"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutWaveLedger.summary",
list(web_messages_en["iwooos"]["productRolloutWaveLedger"]["summary"].keys()),
key,
)
for key in [
"coreProduct",
"publicSurfaces",
"sourceControl",
"hostCoverage",
"monitoringTools",
"vibeWorkProject",
"futureTemplate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutWaveLedger.items",
list(web_messages_zh["iwooos"]["productRolloutWaveLedger"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutWaveLedger.items",
list(web_messages_en["iwooos"]["productRolloutWaveLedger"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_rollout_acceptance_gates_testid",
iwooos_projection_page,
'data-testid="iwooos-product-rollout-acceptance-gates-board"',
)
assert_text_contains(
"iwooos_page.product_rollout_acceptance_gates_component",
iwooos_projection_page,
"IwoooSProductRolloutAcceptanceGatesBoard",
)
for text in [
"iwooos_product_rollout_acceptance_gate_count=6",
"iwooos_product_rollout_acceptance_current_stage=read_only_acceptance",
"iwooos_product_rollout_acceptance_passed_count=0",
"iwooos_product_rollout_acceptance_failed_count=0",
"iwooos_product_rollout_acceptance_owner_response_received_count=0",
"iwooos_product_rollout_acceptance_owner_response_accepted_count=0",
"iwooos_product_rollout_acceptance_redacted_evidence_pointer_count=0",
"iwooos_product_rollout_acceptance_source_control_proof_count=0",
"iwooos_product_rollout_acceptance_host_safety_window_approved=false",
"iwooos_product_rollout_acceptance_rollback_disable_ready=false",
"iwooos_product_rollout_acceptance_runtime_gate_open=false",
"iwooos_product_rollout_acceptance_runtime_wave_count=0",
"iwooos_product_rollout_acceptance_enforcement_wave_count=0",
"iwooos_product_rollout_acceptance_public_secret_exposure_allowed=false",
"iwooos_product_rollout_acceptance_kali_execution_authorized=false",
"iwooos_product_rollout_acceptance_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_rollout_acceptance_gates_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceGates",
list(web_messages_zh["iwooos"].keys()),
"productRolloutAcceptanceGates",
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceGates",
list(web_messages_en["iwooos"].keys()),
"productRolloutAcceptanceGates",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"gateLabel",
"requiredEvidenceLabel",
"acceptanceSignalLabel",
"stillClosedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceGates.keys",
list(web_messages_zh["iwooos"]["productRolloutAcceptanceGates"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceGates.keys",
list(web_messages_en["iwooos"]["productRolloutAcceptanceGates"].keys()),
key,
)
for key in ["gateCount", "passed", "ownerEvidence", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceGates.summary",
list(web_messages_zh["iwooos"]["productRolloutAcceptanceGates"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceGates.summary",
list(web_messages_en["iwooos"]["productRolloutAcceptanceGates"]["summary"].keys()),
key,
)
for key in [
"visibilityEvidence",
"ownerEvidence",
"redactionReview",
"sourceControlProof",
"hostSafetyWindow",
"rollbackDisable",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceGates.items",
list(web_messages_zh["iwooos"]["productRolloutAcceptanceGates"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceGates.items",
list(web_messages_en["iwooos"]["productRolloutAcceptanceGates"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_rollout_acceptance_outcomes_testid",
iwooos_projection_page,
'data-testid="iwooos-product-rollout-acceptance-outcomes-board"',
)
assert_text_contains(
"iwooos_page.product_rollout_acceptance_outcomes_component",
iwooos_projection_page,
"IwoooSProductRolloutAcceptanceOutcomesBoard",
)
for text in [
"iwooos_product_rollout_acceptance_outcome_lane_count=7",
"iwooos_product_rollout_acceptance_outcome_current_stage=read_only_outcome_routing",
"iwooos_product_rollout_acceptance_outcome_keep_read_only_lane_count=1",
"iwooos_product_rollout_acceptance_outcome_returned_for_evidence_count=0",
"iwooos_product_rollout_acceptance_outcome_quarantined_count=0",
"iwooos_product_rollout_acceptance_outcome_source_control_hold_count=0",
"iwooos_product_rollout_acceptance_outcome_host_safety_hold_count=0",
"iwooos_product_rollout_acceptance_outcome_human_review_candidate_count=0",
"iwooos_product_rollout_acceptance_outcome_runtime_candidate_count=0",
"iwooos_product_rollout_acceptance_outcome_owner_response_received_count=0",
"iwooos_product_rollout_acceptance_outcome_owner_response_accepted_count=0",
"iwooos_product_rollout_acceptance_outcome_redacted_evidence_accepted_count=0",
"iwooos_product_rollout_acceptance_outcome_active_runtime_gate_count=0",
"iwooos_product_rollout_acceptance_outcome_runtime_gate_open=false",
"iwooos_product_rollout_acceptance_outcome_runtime_wave_count=0",
"iwooos_product_rollout_acceptance_outcome_enforcement_wave_count=0",
"iwooos_product_rollout_acceptance_outcome_public_secret_exposure_allowed=false",
"iwooos_product_rollout_acceptance_outcome_kali_execution_authorized=false",
"iwooos_product_rollout_acceptance_outcome_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_rollout_acceptance_outcomes_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceOutcomes",
list(web_messages_zh["iwooos"].keys()),
"productRolloutAcceptanceOutcomes",
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceOutcomes",
list(web_messages_en["iwooos"].keys()),
"productRolloutAcceptanceOutcomes",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"laneLabel",
"whyLabel",
"nextLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceOutcomes.keys",
list(web_messages_zh["iwooos"]["productRolloutAcceptanceOutcomes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceOutcomes.keys",
list(web_messages_en["iwooos"]["productRolloutAcceptanceOutcomes"].keys()),
key,
)
for key in ["outcomes", "accepted", "quarantine", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceOutcomes.summary",
list(web_messages_zh["iwooos"]["productRolloutAcceptanceOutcomes"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceOutcomes.summary",
list(web_messages_en["iwooos"]["productRolloutAcceptanceOutcomes"]["summary"].keys()),
key,
)
for key in [
"keepReadOnly",
"returnEvidence",
"quarantineSensitive",
"sourceControlHold",
"hostSafetyHold",
"humanReviewCandidate",
"runtimeDenied",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productRolloutAcceptanceOutcomes.items",
list(web_messages_zh["iwooos"]["productRolloutAcceptanceOutcomes"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productRolloutAcceptanceOutcomes.items",
list(web_messages_en["iwooos"]["productRolloutAcceptanceOutcomes"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_map_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-map-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_map_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringMapBoard",
)
for text in [
"iwooos_product_evidence_wiring_channel_count=6",
"iwooos_product_evidence_wiring_current_stage=read_only_evidence_wiring",
"iwooos_product_evidence_wiring_visible_channel_count=6",
"iwooos_product_evidence_wiring_connected_product_count=0",
"iwooos_product_evidence_wiring_owner_response_received_count=0",
"iwooos_product_evidence_wiring_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_monitoring_tool_payload_ingested=false",
"iwooos_product_evidence_wiring_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_runtime_gate_open=false",
"iwooos_product_evidence_wiring_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_map_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringMap",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringMap",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringMap",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringMap",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"channelLabel",
"evidenceLabel",
"handoffLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringMap.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringMap"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringMap.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringMap"].keys()),
key,
)
for key in ["channels", "connected", "accepted", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringMap.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringMap"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringMap.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringMap"]["summary"].keys()),
key,
)
for key in [
"productScope",
"ownerResponse",
"redactedEvidence",
"sourceControlTruth",
"hostSafetyWindow",
"monitoringToolEvidence",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringMap.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringMap"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringMap.items",
list(web_messages_en["iwooos"]["productEvidenceWiringMap"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_check_count=6",
"iwooos_product_evidence_wiring_preflight_current_stage=read_only_evidence_wiring_preflight",
"iwooos_product_evidence_wiring_preflight_visible_check_count=6",
"iwooos_product_evidence_wiring_preflight_passed_count=0",
"iwooos_product_evidence_wiring_preflight_failed_count=0",
"iwooos_product_evidence_wiring_preflight_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_returned_for_scope_count=0",
"iwooos_product_evidence_wiring_preflight_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_monitoring_tool_payload_ingested=false",
"iwooos_product_evidence_wiring_preflight_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_preflight_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflight",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflight",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflight",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflight",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"checkLabel",
"checkPointLabel",
"passSignalLabel",
"failRouteLabel",
"stillClosedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflight.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflight"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflight.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflight"].keys()),
key,
)
for key in ["checks", "passed", "quarantine", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflight.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflight"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflight.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflight"]["summary"].keys()),
key,
)
for key in [
"scopeMetadata",
"ownerEnvelope",
"redactionBoundary",
"sourceTruth",
"hostWindow",
"toolOutput",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflight.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflight"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflight.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflight"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_outcomes_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-outcomes-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_outcomes_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightOutcomesBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_outcome_lane_count=8",
"iwooos_product_evidence_wiring_preflight_outcome_current_stage=read_only_preflight_outcome_routing",
"iwooos_product_evidence_wiring_preflight_outcome_keep_read_only_lane_count=1",
"iwooos_product_evidence_wiring_preflight_outcome_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_returned_for_scope_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_returned_for_owner_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_source_control_hold_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_host_safety_hold_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_tool_summary_hold_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_runtime_candidate_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_outcome_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_outcome_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_outcome_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_outcome_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_outcomes_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightOutcomes",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightOutcomes",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightOutcomes",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightOutcomes",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"outcomeLabel",
"whyLabel",
"nextLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightOutcomes.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightOutcomes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightOutcomes.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightOutcomes"].keys()),
key,
)
for key in ["outcomes", "ready", "returned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightOutcomes.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightOutcomes"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightOutcomes.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightOutcomes"]["summary"].keys()),
key,
)
for key in [
"stayReadOnly",
"returnScope",
"returnOwnerEnvelope",
"quarantineSensitive",
"sourceTruthHold",
"hostWindowHold",
"toolSummaryHold",
"runtimeClosed",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightOutcomes.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightOutcomes"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightOutcomes.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightOutcomes"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_recovery_ledger_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-recovery-ledger-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_recovery_ledger_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRecoveryLedgerBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_recovery_queue_count=7",
"iwooos_product_evidence_wiring_preflight_recovery_current_stage=read_only_recovery_ledger",
"iwooos_product_evidence_wiring_preflight_recovery_visible_queue_count=7",
"iwooos_product_evidence_wiring_preflight_recovery_submitted_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_returned_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_ready_for_preflight_retry_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_recovery_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_recovery_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_recovery_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_recovery_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_recovery_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_recovery_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_recovery_ledger_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRecoveryLedger",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRecoveryLedger",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRecoveryLedger",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRecoveryLedger",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"queueLabel",
"ownerLabel",
"requiredLabel",
"handoffLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRecoveryLedger.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRecoveryLedger"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRecoveryLedger.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRecoveryLedger"].keys()),
key,
)
for key in ["queues", "submitted", "accepted", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRecoveryLedger.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRecoveryLedger"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRecoveryLedger.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRecoveryLedger"]["summary"].keys()),
key,
)
for key in [
"scopePacket",
"ownerEnvelope",
"redactedEvidence",
"sourceTruth",
"hostWindow",
"toolSummary",
"runtimeGate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRecoveryLedger.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRecoveryLedger"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRecoveryLedger.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRecoveryLedger"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_gates_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-gates-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_gates_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryGatesBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_gate_count=6",
"iwooos_product_evidence_wiring_preflight_retry_current_stage=read_only_recovery_retry_gate",
"iwooos_product_evidence_wiring_preflight_retry_visible_gate_count=6",
"iwooos_product_evidence_wiring_preflight_retry_candidate_count=0",
"iwooos_product_evidence_wiring_preflight_retry_submitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_passed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_failed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_returned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_retry_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_retry_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_preflight_retry_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_gates_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryGates",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryGates",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryGates",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryGates",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"gateLabel",
"readyLabel",
"retryLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryGates.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryGates"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryGates.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryGates"].keys()),
key,
)
for key in ["gates", "candidate", "passed", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryGates.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryGates"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryGates.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryGates"]["summary"].keys()),
key,
)
for key in [
"scopeReady",
"ownerReady",
"redactionReady",
"sourceReady",
"hostReady",
"toolReady",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryGates.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryGates"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryGates.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryGates"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_outcomes_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-outcomes-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_outcomes_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryOutcomesBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_outcome_lane_count=8",
"iwooos_product_evidence_wiring_preflight_retry_outcome_current_stage=read_only_retry_outcome_routing",
"iwooos_product_evidence_wiring_preflight_retry_outcome_visible_lane_count=8",
"iwooos_product_evidence_wiring_preflight_retry_outcome_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_returned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_human_review_candidate_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_runtime_candidate_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_outcome_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_outcome_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_outcome_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_outcome_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_outcome_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_outcome_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_outcomes_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryOutcomes",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryOutcomes",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryOutcomes",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryOutcomes",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"outcomeLabel",
"decisionLabel",
"nextLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryOutcomes.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryOutcomes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryOutcomes.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryOutcomes"].keys()),
key,
)
for key in ["outcomes", "ready", "review", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryOutcomes.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryOutcomes"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryOutcomes.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryOutcomes"]["summary"].keys()),
key,
)
for key in [
"stayCandidate",
"returnSupplement",
"quarantineSensitive",
"sourceTruthReturn",
"hostWindowPause",
"toolSummaryReturn",
"humanReviewWait",
"runtimeStillClosed",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryOutcomes.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryOutcomes"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryOutcomes.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryOutcomes"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-review-candidate-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryReviewCandidateBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_packet_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_current_stage=read_only_retry_review_candidate_preparation",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_visible_packet_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_packet_completed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_ready_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_queue_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_created_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_reviewer_assigned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_audit_event_emitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_review_candidate_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidate",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidate",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidate",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidate",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"packetLabel",
"requiredLabel",
"handoffLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidate.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidate"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidate.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidate"].keys()),
key,
)
for key in ["packets", "ready", "queue", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidate.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidate"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidate.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidate"]["summary"].keys()),
key,
)
for key in [
"candidateIdentity",
"sourceOutcomeTrace",
"ownerScopePacket",
"redactionAttestation",
"sourceControlReadiness",
"hostSafetyWindow",
"toolSummaryEvidence",
"runtimeSeparation",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidate.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidate"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidate.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidate"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-review-candidate-preflight-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryReviewCandidatePreflightBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_check_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_current_stage=read_only_retry_review_candidate_preflight",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_visible_check_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_passed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_failed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_ready_for_queue_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_queue_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_candidate_created_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_reviewer_assigned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_audit_event_emitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflight",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflight",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"checkLabel",
"requirementLabel",
"passLabel",
"failLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflight"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflight"].keys()),
key,
)
for key in ["checks", "passed", "queue", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflight"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflight"]["summary"].keys()),
key,
)
for key in [
"candidateIdentity",
"sourceOutcomeTrace",
"ownerScope",
"redactionAttestation",
"sourceControlTruth",
"hostSafetyWindow",
"toolSummary",
"runtimeSeparation",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflight"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflight.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflight"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_outcomes_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-review-candidate-preflight-outcomes-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_outcomes_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomesBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_lane_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_current_stage=read_only_retry_review_candidate_preflight_outcome_routing",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_visible_lane_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_ready_for_queue_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_returned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_candidate_created_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_reviewer_assigned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_audit_event_emitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_ready_for_connection_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_outcome_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_outcomes_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"outcomeLabel",
"decisionLabel",
"nextLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes"].keys()),
key,
)
for key in ["outcomes", "ready", "queue", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes"]["summary"].keys()),
key,
)
for key in [
"stayReadOnly",
"returnIdentity",
"returnTrace",
"returnOwnerScope",
"quarantineRedaction",
"sourceHostHold",
"readyForHumanReviewWait",
"runtimeStillClosed",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightOutcomes"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_ledger_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-review-candidate-preflight-recovery-ledger-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_ledger_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedgerBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_queue_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_current_stage=read_only_retry_review_candidate_preflight_recovery_ledger",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_visible_queue_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_submitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_rejected_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_quarantined_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_ready_for_preflight_retry_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_candidate_created_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_reviewer_assigned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_audit_event_emitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_ledger_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"queueLabel",
"ownerLabel",
"requiredLabel",
"recoveryLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger"].keys()),
key,
)
for key in ["queues", "submitted", "accepted", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger"]["summary"].keys()),
key,
)
for key in [
"identitySupplement",
"traceSupplement",
"ownerScopeSupplement",
"redactionResubmission",
"sourceControlEvidence",
"hostWindowEvidence",
"toolSummarySupplement",
"runtimeAttestation",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryLedger"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_retry_gates_testid",
iwooos_projection_page,
'data-testid="iwooos-product-evidence-wiring-preflight-retry-review-candidate-preflight-recovery-retry-gates-board"',
)
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_retry_gates_component",
iwooos_projection_page,
"IwoooSProductEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGatesBoard",
)
for text in [
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_gate_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_current_stage=read_only_retry_review_candidate_preflight_recovery_retry_gate",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_visible_gate_count=8",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_candidate_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_submitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_passed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_failed_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_ready_for_preflight_retry_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_ready_for_human_review_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_candidate_created_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_reviewer_assigned_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_audit_event_emitted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_ready_for_runtime_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_owner_response_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_redacted_evidence_pointer_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_source_control_truth_accepted_count=0",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_host_safety_window_approved=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_tool_summary_ingested=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_runtime_gate_open=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_public_secret_exposure_allowed=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_kali_execution_authorized=false",
"iwooos_product_evidence_wiring_preflight_retry_review_preflight_recovery_retry_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.product_evidence_wiring_preflight_retry_review_candidate_preflight_recovery_retry_gates_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates",
list(web_messages_zh["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates",
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates",
list(web_messages_en["iwooos"].keys()),
"productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates",
)
for key in [
"title",
"subtitle",
"summary",
"items",
"gateLabel",
"readyLabel",
"retryLabel",
"blockedLabel",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates.keys",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates.keys",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates"].keys()),
key,
)
for key in ["gates", "candidates", "passed", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates.summary",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates.summary",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates"]["summary"].keys()),
key,
)
for key in [
"identityGate",
"traceGate",
"ownerScopeGate",
"redactionGate",
"sourceControlGate",
"hostWindowGate",
"toolSummaryGate",
"runtimeGate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates.items",
list(web_messages_zh["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates.items",
list(web_messages_en["iwooos"]["productEvidenceWiringPreflightRetryReviewCandidatePreflightRecoveryRetryGates"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_progress_unlock_path_testid",
iwooos_projection_page,
'data-testid="iwooos-first-progress-unlock-path-board"',
)
assert_text_contains(
"iwooos_page.first_progress_unlock_path_component",
iwooos_projection_page,
"IwoooSFirstProgressUnlockPathBoard",
)
assert_equal(
"iwooos_page.first_progress_unlock_path_render_count",
iwooos_projection_page.count("<IwoooSFirstProgressUnlockPathBoard />"),
1,
)
assert_text_before(
"iwooos_page.first_progress_unlock_path_before_visual_dashboard",
iwooos_projection_page,
"<IwoooSFirstProgressUnlockPathBoard />",
"<IwoooSVisualCommandDashboard />",
)
assert_text_before(
"iwooos_page.first_progress_unlock_path_first_layer_order",
iwooos_projection_page,
"<IwoooSFirstProgressUnlockPathBoard />",
"<IwoooSProfessionalSecurityExperience />",
)
assert_text_before(
"iwooos_page.decision_gate_group_contains_first_progress_unlock_path",
iwooos_projection_page,
'id="iwooos-decision-gate-visuals"',
"<IwoooSFirstProgressUnlockPathBoard />",
)
assert_text_before(
"iwooos_page.first_progress_unlock_path_before_scope_evidence_group",
iwooos_projection_page,
"<IwoooSFirstProgressUnlockPathBoard />",
'id="iwooos-scope-evidence-visuals"',
)
assert_text_contains(
"iwooos_page.first_progress_unlock_path_boundary_details",
iwooos_projection_page,
'data-testid="iwooos-first-progress-unlock-path-boundaries"',
)
expected_first_progress_unlock_path_step_ids = [
"owner_response_scope",
"redacted_evidence_pointer",
"intake_preflight",
"review_acceptance",
"headline_review_candidate",
]
first_progress_unlock_path_steps = iwooos_projection["first_progress_unlock_path_steps"]
assert_equal(
"iwooos_projection.first_progress_unlock_path_steps.ids",
[item["step_id"] for item in first_progress_unlock_path_steps],
expected_first_progress_unlock_path_step_ids,
)
assert_equal(
"iwooos_projection.first_progress_unlock_path_steps.display_order",
[item["display_order"] for item in first_progress_unlock_path_steps],
list(range(1, len(expected_first_progress_unlock_path_step_ids) + 1)),
)
for item in first_progress_unlock_path_steps:
assert_equal(
f"iwooos_projection.first_progress_unlock_path_steps.{item['step_id']}.source_focus",
item["source_focus"],
"s4_9_owner_response",
)
assert_equal(
f"iwooos_projection.first_progress_unlock_path_steps.{item['step_id']}.display_mode",
item["display_mode"],
"first_layer_progress_unlock_path",
)
for count_key in [
"owner_response_received_count",
"owner_response_accepted_count",
"redacted_evidence_pointer_count",
"preflight_passed_count",
]:
assert_equal(
f"iwooos_projection.first_progress_unlock_path_steps.{item['step_id']}.{count_key}",
item[count_key],
0,
)
for flag in [
"headline_review_authorized",
"runtime_gate_opened",
"runtime_execution_authorized",
"action_buttons_allowed",
]:
assert_false(
f"iwooos_projection.first_progress_unlock_path_steps.{item['step_id']}.{flag}",
item[flag],
)
assert_true(
f"iwooos_projection.first_progress_unlock_path_steps.{item['step_id']}.not_authorization",
item["not_authorization"],
)
expected_progress_integrity_signal_ids = [
"coverageVisible",
"evidenceMissing",
"executionLocked",
]
progress_integrity_signals = iwooos_projection["progress_integrity_ribbon_signals"]
assert_equal(
"iwooos_projection.progress_integrity_ribbon_signals.ids",
[item["signal_id"] for item in progress_integrity_signals],
expected_progress_integrity_signal_ids,
)
assert_equal(
"iwooos_projection.progress_integrity_ribbon_signals.display_order",
[item["display_order"] for item in progress_integrity_signals],
list(range(1, len(expected_progress_integrity_signal_ids) + 1)),
)
assert_equal(
"iwooos_projection.progress_integrity_ribbon_signals.percents",
[item["percent"] for item in progress_integrity_signals],
[88, 0, 0],
)
assert_equal(
"iwooos_projection.progress_integrity_ribbon_signals.values",
[item["value"] for item in progress_integrity_signals],
["8 類", "0 / 3", "0"],
)
for item in progress_integrity_signals:
signal_id = item["signal_id"]
assert_equal(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.display_mode",
item["display_mode"],
"first_screen_progress_integrity_ribbon",
)
assert_equal(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.headline_percent",
item["headline_percent"],
61,
)
assert_equal(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.headline_percent_delta",
item["headline_percent_delta"],
0,
)
assert_equal(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.runtime_gate_count",
item["runtime_gate_count"],
0,
)
assert_false(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.progress_integrity_ribbon_signals.{signal_id}.not_authorization",
item["not_authorization"],
)
evidence_signal = next(item for item in progress_integrity_signals if item["signal_id"] == "evidenceMissing")
for count_key in [
"owner_response_received_count",
"owner_response_accepted_count",
"redacted_evidence_refs_received_count",
]:
assert_equal(
f"iwooos_projection.progress_integrity_ribbon_signals.evidenceMissing.{count_key}",
evidence_signal[count_key],
0,
)
execution_signal = next(item for item in progress_integrity_signals if item["signal_id"] == "executionLocked")
for flag in ["scan_authorized", "host_change_authorized", "source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.progress_integrity_ribbon_signals.executionLocked.{flag}",
execution_signal[flag],
)
for text in [
'data-testid="iwooos-progress-integrity-ribbon"',
'data-testid="iwooos-progress-integrity-ribbon-signals"',
'data-testid="iwooos-progress-integrity-ribbon-boundaries"',
"IwoooSProgressIntegrityRibbon",
"IwoooSProgressIntegritySignal",
"progressIntegritySignals",
"progressIntegrityRibbonBoundaries",
"conic-gradient",
"progressIntegrityRibbon",
]:
assert_text_contains(
"iwooos_page.progress_integrity_ribbon",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.progress_integrity_before_executive_snapshot",
iwooos_projection_page,
"<IwoooSProgressIntegrityRibbon />",
"<IwoooSExecutiveSnapshotBoard />",
)
for text in [
"iwooos_progress_integrity_ribbon_first_layer=true",
"iwooos_progress_integrity_ribbon_signal_count=3",
"iwooos_progress_integrity_ribbon_headline_percent=61",
"iwooos_progress_integrity_ribbon_headline_delta=0",
"iwooos_progress_integrity_ribbon_read_only_scope_count=8",
"iwooos_progress_integrity_ribbon_pending_evidence_gate_count=3",
"iwooos_progress_integrity_ribbon_runtime_gate_count=0",
"owner_response_received_count=0",
"owner_response_accepted_count=0",
"redacted_evidence_refs_received_count=0",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.progress_integrity_ribbon_boundary",
iwooos_projection_page,
text,
)
expected_executive_snapshot_card_ids = [
"visibleWork",
"assetMesh",
"nextBlocker",
"runtimeLock",
]
executive_snapshot_cards = iwooos_projection["executive_snapshot_cards"]
assert_equal(
"iwooos_projection.executive_snapshot_cards.ids",
[item["card_id"] for item in executive_snapshot_cards],
expected_executive_snapshot_card_ids,
)
assert_equal(
"iwooos_projection.executive_snapshot_cards.display_order",
[item["display_order"] for item in executive_snapshot_cards],
list(range(1, len(expected_executive_snapshot_card_ids) + 1)),
)
for item in executive_snapshot_cards:
card_id = item["card_id"]
assert_equal(
f"iwooos_projection.executive_snapshot_cards.{card_id}.display_mode",
item["display_mode"],
"first_screen_executive_snapshot",
)
assert_false(
f"iwooos_projection.executive_snapshot_cards.{card_id}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.executive_snapshot_cards.{card_id}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.executive_snapshot_cards.{card_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.executive_snapshot_cards.{card_id}.not_authorization",
item["not_authorization"],
)
runtime_lock_card = next(item for item in executive_snapshot_cards if item["card_id"] == "runtimeLock")
for flag in ["scan_authorized", "host_change_authorized", "source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.executive_snapshot_cards.runtimeLock.{flag}",
runtime_lock_card[flag],
)
next_blocker_card = next(item for item in executive_snapshot_cards if item["card_id"] == "nextBlocker")
for count_key in ["owner_response_received_count", "owner_response_accepted_count"]:
assert_equal(
f"iwooos_projection.executive_snapshot_cards.nextBlocker.{count_key}",
next_blocker_card[count_key],
0,
)
expected_executive_snapshot_axis_ids = [
"framework",
"evidence",
"runtime",
]
executive_snapshot_axes = iwooos_projection["executive_snapshot_axes"]
assert_equal(
"iwooos_projection.executive_snapshot_axes.ids",
[item["axis_id"] for item in executive_snapshot_axes],
expected_executive_snapshot_axis_ids,
)
assert_equal(
"iwooos_projection.executive_snapshot_axes.display_order",
[item["display_order"] for item in executive_snapshot_axes],
list(range(1, len(expected_executive_snapshot_axis_ids) + 1)),
)
assert_equal(
"iwooos_projection.executive_snapshot_axes.percents",
[item["percent"] for item in executive_snapshot_axes],
[88, 0, 0],
)
for item in executive_snapshot_axes:
axis_id = item["axis_id"]
assert_equal(
f"iwooos_projection.executive_snapshot_axes.{axis_id}.display_mode",
item["display_mode"],
"first_screen_executive_snapshot_axis",
)
assert_false(
f"iwooos_projection.executive_snapshot_axes.{axis_id}.runtime_delta",
item["runtime_delta"],
)
assert_true(
f"iwooos_projection.executive_snapshot_axes.{axis_id}.not_authorization",
item["not_authorization"],
)
for text in [
'data-testid="iwooos-executive-snapshot-board"',
'data-testid="iwooos-executive-snapshot-overview"',
'data-testid="iwooos-executive-snapshot-axes-grid"',
'data-testid="iwooos-executive-snapshot-cards-grid"',
'data-testid="iwooos-executive-snapshot-boundaries"',
"IwoooSExecutiveSnapshotBoard",
"IwoooSExecutiveSnapshotCard",
"IwoooSExecutiveSnapshotAxis",
"iwooosExecutiveSnapshotCards",
"iwooosExecutiveSnapshotAxes",
"iwooosExecutiveSnapshotBoundaries",
]:
assert_text_contains(
"iwooos_page.executive_snapshot",
iwooos_projection_page,
text,
)
for card_id in expected_executive_snapshot_card_ids:
assert_text_contains(
f"iwooos_page.executive_snapshot_card_{card_id}",
iwooos_projection_page,
f"data-testid={{`iwooos-executive-snapshot-card-${{item.key}}`}}",
)
for axis_id in expected_executive_snapshot_axis_ids:
assert_text_contains(
f"iwooos_page.executive_snapshot_axis_{axis_id}",
iwooos_projection_page,
f"data-testid={{`iwooos-executive-snapshot-axis-${{item.key}}`}}",
)
assert_text_before(
"iwooos_page.executive_snapshot_before_focus_deck",
iwooos_projection_page,
"<IwoooSExecutiveSnapshotBoard />",
"<IwoooSFocusDeckBoard />",
)
for text in [
"iwooos_executive_snapshot_first_layer=true",
"iwooos_executive_snapshot_card_count=4",
"iwooos_executive_snapshot_axis_count=3",
"iwooos_executive_snapshot_above_focus_deck=true",
"iwooos_executive_snapshot_explains_done_next_blocked=true",
"iwooos_executive_snapshot_execution_action_buttons_allowed=false",
"iwooos_executive_snapshot_runtime_gate_count=0",
"iwooos_executive_snapshot_owner_response_received_count=0",
"iwooos_executive_snapshot_owner_response_accepted_count=0",
"iwooos_executive_snapshot_scan_authorized=false",
"iwooos_executive_snapshot_host_change_authorized=false",
"iwooos_executive_snapshot_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.executive_snapshot_boundary",
iwooos_projection_page,
text,
)
expected_first_screen_depth_map_layer_ids = [
"visible",
"advanced",
"ledger",
"runtime",
]
first_screen_depth_map_layers = iwooos_projection["first_screen_depth_map_layers"]
assert_equal(
"iwooos_projection.first_screen_depth_map_layers.ids",
[item["layer_id"] for item in first_screen_depth_map_layers],
expected_first_screen_depth_map_layer_ids,
)
assert_equal(
"iwooos_projection.first_screen_depth_map_layers.display_order",
[item["display_order"] for item in first_screen_depth_map_layers],
list(range(1, len(expected_first_screen_depth_map_layer_ids) + 1)),
)
first_screen_depth_surface_counts = {
item["layer_id"]: item["surface_count"] for item in first_screen_depth_map_layers
}
assert_equal("iwooos_projection.first_screen_depth_map_layers.visible.surface_count", first_screen_depth_surface_counts["visible"], 4)
assert_equal("iwooos_projection.first_screen_depth_map_layers.advanced.surface_count", first_screen_depth_surface_counts["advanced"], 2)
assert_equal("iwooos_projection.first_screen_depth_map_layers.ledger.surface_count", first_screen_depth_surface_counts["ledger"], 4)
assert_equal("iwooos_projection.first_screen_depth_map_layers.runtime.surface_count", first_screen_depth_surface_counts["runtime"], 0)
for item in first_screen_depth_map_layers:
layer_id = item["layer_id"]
assert_equal(
f"iwooos_projection.first_screen_depth_map_layers.{layer_id}.display_mode",
item["display_mode"],
"first_screen_depth_map",
)
assert_equal(
f"iwooos_projection.first_screen_depth_map_layers.{layer_id}.default_visible",
item["default_visible"],
layer_id == "visible",
)
assert_equal(
f"iwooos_projection.first_screen_depth_map_layers.{layer_id}.runtime_gate_count",
item["runtime_gate_count"],
0,
)
assert_false(
f"iwooos_projection.first_screen_depth_map_layers.{layer_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.first_screen_depth_map_layers.{layer_id}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.first_screen_depth_map_layers.{layer_id}.not_authorization",
item["not_authorization"],
)
runtime_depth_layer = next(item for item in first_screen_depth_map_layers if item["layer_id"] == "runtime")
for flag in ["scan_authorized", "host_change_authorized", "source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.first_screen_depth_map_layers.runtime.{flag}",
runtime_depth_layer[flag],
)
expected_progress_evidence_rail_item_ids = [
"ownerResponses",
"redactedEvidence",
"reviewAcceptance",
"githubPrimary",
"runtimeGate",
]
progress_evidence_rail_items = iwooos_projection["progress_evidence_rail_items"]
assert_equal(
"iwooos_projection.progress_evidence_rail_items.ids",
[item["item_id"] for item in progress_evidence_rail_items],
expected_progress_evidence_rail_item_ids,
)
assert_equal(
"iwooos_projection.progress_evidence_rail_items.display_order",
[item["display_order"] for item in progress_evidence_rail_items],
list(range(1, len(expected_progress_evidence_rail_item_ids) + 1)),
)
progress_evidence_rail_values = {item["item_id"]: item["value"] for item in progress_evidence_rail_items}
assert_equal("iwooos_projection.progress_evidence_rail_items.ownerResponses.value", progress_evidence_rail_values["ownerResponses"], "0/4")
assert_equal("iwooos_projection.progress_evidence_rail_items.redactedEvidence.value", progress_evidence_rail_values["redactedEvidence"], "0")
assert_equal("iwooos_projection.progress_evidence_rail_items.reviewAcceptance.value", progress_evidence_rail_values["reviewAcceptance"], "0")
assert_equal("iwooos_projection.progress_evidence_rail_items.githubPrimary.value", progress_evidence_rail_values["githubPrimary"], "0/8")
assert_equal("iwooos_projection.progress_evidence_rail_items.runtimeGate.value", progress_evidence_rail_values["runtimeGate"], "0")
for item in progress_evidence_rail_items:
item_id = item["item_id"]
assert_equal(
f"iwooos_projection.progress_evidence_rail_items.{item_id}.display_mode",
item["display_mode"],
"first_screen_progress_evidence_rail",
)
assert_equal(
f"iwooos_projection.progress_evidence_rail_items.{item_id}.runtime_gate_count",
item["runtime_gate_count"],
0,
)
assert_false(
f"iwooos_projection.progress_evidence_rail_items.{item_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.progress_evidence_rail_items.{item_id}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.progress_evidence_rail_items.{item_id}.not_authorization",
item["not_authorization"],
)
owner_response_rail_item = next(item for item in progress_evidence_rail_items if item["item_id"] == "ownerResponses")
assert_equal(
"iwooos_projection.progress_evidence_rail_items.ownerResponses.owner_response_received_count",
owner_response_rail_item["owner_response_received_count"],
0,
)
assert_equal(
"iwooos_projection.progress_evidence_rail_items.ownerResponses.owner_response_accepted_count",
owner_response_rail_item["owner_response_accepted_count"],
0,
)
redacted_evidence_rail_item = next(item for item in progress_evidence_rail_items if item["item_id"] == "redactedEvidence")
assert_equal(
"iwooos_projection.progress_evidence_rail_items.redactedEvidence.redacted_evidence_count",
redacted_evidence_rail_item["redacted_evidence_count"],
0,
)
review_acceptance_rail_item = next(item for item in progress_evidence_rail_items if item["item_id"] == "reviewAcceptance")
assert_equal(
"iwooos_projection.progress_evidence_rail_items.reviewAcceptance.review_acceptance_count",
review_acceptance_rail_item["review_acceptance_count"],
0,
)
github_primary_rail_item = next(item for item in progress_evidence_rail_items if item["item_id"] == "githubPrimary")
assert_equal(
"iwooos_projection.progress_evidence_rail_items.githubPrimary.candidate_repo_count",
github_primary_rail_item["candidate_repo_count"],
8,
)
assert_equal(
"iwooos_projection.progress_evidence_rail_items.githubPrimary.github_primary_ready_count",
github_primary_rail_item["github_primary_ready_count"],
0,
)
for flag in ["source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.progress_evidence_rail_items.githubPrimary.{flag}",
github_primary_rail_item[flag],
)
runtime_gate_rail_item = next(item for item in progress_evidence_rail_items if item["item_id"] == "runtimeGate")
for flag in ["scan_authorized", "host_change_authorized", "source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.progress_evidence_rail_items.runtimeGate.{flag}",
runtime_gate_rail_item[flag],
)
expected_evidence_unlock_queue_item_ids = [
"giteaOwner",
"githubTarget",
"refTruth",
"workflowSecrets",
]
evidence_unlock_queue_items = iwooos_projection["evidence_unlock_queue_items"]
assert_equal(
"iwooos_projection.evidence_unlock_queue_items.ids",
[item["item_id"] for item in evidence_unlock_queue_items],
expected_evidence_unlock_queue_item_ids,
)
assert_equal(
"iwooos_projection.evidence_unlock_queue_items.display_order",
[item["display_order"] for item in evidence_unlock_queue_items],
list(range(1, len(expected_evidence_unlock_queue_item_ids) + 1)),
)
evidence_unlock_queue_gates = {item["item_id"]: item["gate"] for item in evidence_unlock_queue_items}
assert_equal("iwooos_projection.evidence_unlock_queue_items.giteaOwner.gate", evidence_unlock_queue_gates["giteaOwner"], "S4.9")
assert_equal("iwooos_projection.evidence_unlock_queue_items.githubTarget.gate", evidence_unlock_queue_gates["githubTarget"], "S4.10")
assert_equal("iwooos_projection.evidence_unlock_queue_items.refTruth.gate", evidence_unlock_queue_gates["refTruth"], "S4.11")
assert_equal("iwooos_projection.evidence_unlock_queue_items.workflowSecrets.gate", evidence_unlock_queue_gates["workflowSecrets"], "S4.12")
evidence_unlock_queue_values = {item["item_id"]: item["value"] for item in evidence_unlock_queue_items}
assert_equal("iwooos_projection.evidence_unlock_queue_items.giteaOwner.value", evidence_unlock_queue_values["giteaOwner"], "草稿 5")
assert_equal("iwooos_projection.evidence_unlock_queue_items.githubTarget.value", evidence_unlock_queue_values["githubTarget"], "0/8")
assert_equal("iwooos_projection.evidence_unlock_queue_items.refTruth.value", evidence_unlock_queue_values["refTruth"], "0/5")
assert_equal("iwooos_projection.evidence_unlock_queue_items.workflowSecrets.value", evidence_unlock_queue_values["workflowSecrets"], "0/5")
for item in evidence_unlock_queue_items:
item_id = item["item_id"]
assert_equal(
f"iwooos_projection.evidence_unlock_queue_items.{item_id}.display_mode",
item["display_mode"],
"first_screen_evidence_unlock_queue",
)
for count_key in ["request_sent_count", "received_count", "accepted_count", "runtime_gate_count"]:
assert_equal(
f"iwooos_projection.evidence_unlock_queue_items.{item_id}.{count_key}",
item[count_key],
0,
)
assert_false(
f"iwooos_projection.evidence_unlock_queue_items.{item_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.evidence_unlock_queue_items.{item_id}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.evidence_unlock_queue_items.{item_id}.not_authorization",
item["not_authorization"],
)
gitea_owner_queue_item = next(item for item in evidence_unlock_queue_items if item["item_id"] == "giteaOwner")
assert_true(
"iwooos_projection.evidence_unlock_queue_items.giteaOwner.request_draft_package_ready",
gitea_owner_queue_item["request_draft_package_ready"],
)
assert_equal(
"iwooos_projection.evidence_unlock_queue_items.giteaOwner.request_draft_template_count",
gitea_owner_queue_item["request_draft_template_count"],
5,
)
assert_equal(
"iwooos_projection.evidence_unlock_queue_items.giteaOwner.request_draft_ready_count",
gitea_owner_queue_item["request_draft_ready_count"],
1,
)
github_target_queue_item = next(item for item in evidence_unlock_queue_items if item["item_id"] == "githubTarget")
assert_equal(
"iwooos_projection.evidence_unlock_queue_items.githubTarget.candidate_repo_count",
github_target_queue_item["candidate_repo_count"],
8,
)
assert_equal(
"iwooos_projection.evidence_unlock_queue_items.githubTarget.github_primary_ready_count",
github_target_queue_item["github_primary_ready_count"],
0,
)
assert_false(
"iwooos_projection.evidence_unlock_queue_items.githubTarget.source_control_mutation_authorized",
github_target_queue_item["source_control_mutation_authorized"],
)
ref_truth_queue_item = next(item for item in evidence_unlock_queue_items if item["item_id"] == "refTruth")
assert_false(
"iwooos_projection.evidence_unlock_queue_items.refTruth.refs_sync_authorized",
ref_truth_queue_item["refs_sync_authorized"],
)
workflow_secrets_queue_item = next(item for item in evidence_unlock_queue_items if item["item_id"] == "workflowSecrets")
assert_false(
"iwooos_projection.evidence_unlock_queue_items.workflowSecrets.secret_plaintext_collection_allowed",
workflow_secrets_queue_item["secret_plaintext_collection_allowed"],
)
expected_s4_9_request_draft_package_item_ids = [
"publicGap",
"namespaceIdentity",
"adjacentScope",
"canonicalOwner",
"legacyDisposition",
]
s4_9_request_draft_package_items = iwooos_projection["s4_9_request_draft_package_items"]
assert_equal(
"iwooos_projection.s4_9_request_draft_package_items.ids",
[item["item_id"] for item in s4_9_request_draft_package_items],
expected_s4_9_request_draft_package_item_ids,
)
assert_equal(
"iwooos_projection.s4_9_request_draft_package_items.display_order",
[item["display_order"] for item in s4_9_request_draft_package_items],
list(range(1, len(expected_s4_9_request_draft_package_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.s4_9_request_draft_package_items.source_template_ids",
[item["source_template_id"] for item in s4_9_request_draft_package_items],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"iwooos_projection.s4_9_request_draft_package_items.template_labels",
[item["template_label"] for item in s4_9_request_draft_package_items],
["D1", "D2", "D3", "D4", "D5"],
)
for item in s4_9_request_draft_package_items:
assert_equal(
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.display_mode",
item["display_mode"],
"first_screen_s4_9_request_draft_package",
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.draft_status",
item["draft_status"],
"ready_not_sent",
)
for count_key in [
"request_sent_count",
"owner_response_received_count",
"owner_response_accepted_count",
"runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.{count_key}",
item[count_key],
0,
)
assert_false(
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.s4_9_request_draft_package_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
s4_9_request_draft_detail_rows = iwooos_projection["s4_9_request_draft_detail_rows"]
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.ids",
[item["row_id"] for item in s4_9_request_draft_detail_rows],
expected_s4_9_request_draft_package_item_ids,
)
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.display_order",
[item["display_order"] for item in s4_9_request_draft_detail_rows],
list(range(1, len(expected_s4_9_request_draft_package_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.source_template_ids",
[item["source_template_id"] for item in s4_9_request_draft_detail_rows],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"iwooos_projection.s4_9_request_draft_detail_rows.template_labels",
[item["template_label"] for item in s4_9_request_draft_detail_rows],
["D1", "D2", "D3", "D4", "D5"],
)
for item in s4_9_request_draft_detail_rows:
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.display_mode",
item["display_mode"],
"first_screen_s4_9_request_draft_detail",
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.draft_status",
item["draft_status"],
"ready_not_sent",
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.required_field_count",
item["required_field_count"],
6,
)
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.forbidden_action_count",
item["forbidden_action_count"],
10,
)
assert_true(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.redacted_evidence_refs_only",
item["redacted_evidence_refs_only"],
)
assert_false(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.secret_plaintext_collection_allowed",
item["secret_plaintext_collection_allowed"],
)
for count_key in [
"request_sent_count",
"owner_response_received_count",
"owner_response_accepted_count",
"runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.{count_key}",
item[count_key],
0,
)
assert_false(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.s4_9_request_draft_detail_rows.{item['row_id']}.not_authorization",
item["not_authorization"],
)
s4_9_owner_response_intake_lanes = iwooos_projection["s4_9_owner_response_intake_lanes"]
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_lanes.ids",
[item["lane_id"] for item in s4_9_owner_response_intake_lanes],
expected_s4_9_request_draft_package_item_ids,
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_lanes.display_order",
[item["display_order"] for item in s4_9_owner_response_intake_lanes],
list(range(1, len(expected_s4_9_request_draft_package_item_ids) + 1)),
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_lanes.source_template_ids",
[item["source_template_id"] for item in s4_9_owner_response_intake_lanes],
expected_s4_9_owner_response_request_template_ids,
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_lanes.template_labels",
[item["template_label"] for item in s4_9_owner_response_intake_lanes],
["D1", "D2", "D3", "D4", "D5"],
)
for item in s4_9_owner_response_intake_lanes:
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"first_screen_s4_9_owner_response_intake",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.collection_status",
item["collection_status"],
"waiting_owner_response",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.request_status",
item["request_status"],
"request_ready_not_sent",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.latest_outcome_lane",
item["latest_outcome_lane"],
"keep_waiting_owner_response",
)
for count_key in [
"received_response_count",
"preflight_passed_count",
"accepted_response_count",
"rejected_response_count",
"runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.{count_key}",
item[count_key],
0,
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.s4_9_owner_response_intake_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
s4_9_owner_response_intake_next_gates = iwooos_projection["s4_9_owner_response_intake_next_gates"]
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_next_gates.ids",
[item["gate_id"] for item in s4_9_owner_response_intake_next_gates],
["redactedOwnerResponse", "preflightChecks", "humanAcceptance"],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_next_gates.display_order",
[item["display_order"] for item in s4_9_owner_response_intake_next_gates],
[1, 2, 3],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_next_gates.gate_labels",
[item["gate_label"] for item in s4_9_owner_response_intake_next_gates],
["G1", "G2", "G3"],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_next_gates.required_signals",
[item["required_signal"] for item in s4_9_owner_response_intake_next_gates],
[
"redacted_owner_response_metadata_received",
"six_preflight_checks_passed",
"five_owner_response_lanes_accepted",
],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_next_gates.current_states",
[item["current_state"] for item in s4_9_owner_response_intake_next_gates],
["waiting_owner_response", "waiting_preflight", "waiting_human_acceptance"],
)
for item in s4_9_owner_response_intake_next_gates:
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_next_gates.{item['gate_id']}.display_mode",
item["display_mode"],
"first_screen_s4_9_owner_response_intake_next_gate",
)
for count_key in [
"received_response_count",
"preflight_passed_count",
"accepted_response_count",
"runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_next_gates.{item['gate_id']}.{count_key}",
item[count_key],
0,
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_next_gates.{item['gate_id']}.headline_review_authorized",
item["headline_review_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_next_gates.{item['gate_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_next_gates.{item['gate_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.s4_9_owner_response_intake_next_gates.{item['gate_id']}.not_authorization",
item["not_authorization"],
)
s4_9_owner_response_intake_blocker_focus = iwooos_projection[
"s4_9_owner_response_intake_blocker_focus"
]
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.focus_id",
s4_9_owner_response_intake_blocker_focus["focus_id"],
"currentBlocker",
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.display_mode",
s4_9_owner_response_intake_blocker_focus["display_mode"],
"first_screen_s4_9_owner_response_intake_blocker_focus",
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.current_gate",
s4_9_owner_response_intake_blocker_focus["current_gate"],
"G1",
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.current_gate_id",
s4_9_owner_response_intake_blocker_focus["current_gate_id"],
"redactedOwnerResponse",
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.blocker_state",
s4_9_owner_response_intake_blocker_focus["blocker_state"],
"waiting_redacted_owner_response",
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.completion_count",
s4_9_owner_response_intake_blocker_focus["completion_count"],
0,
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.gate_total",
s4_9_owner_response_intake_blocker_focus["gate_total"],
3,
)
for count_key in [
"received_response_count",
"preflight_passed_count",
"accepted_response_count",
"runtime_gate_count",
]:
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_blocker_focus.{count_key}",
s4_9_owner_response_intake_blocker_focus[count_key],
0,
)
assert_false(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.headline_review_authorized",
s4_9_owner_response_intake_blocker_focus["headline_review_authorized"],
)
assert_false(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.runtime_execution_authorized",
s4_9_owner_response_intake_blocker_focus["runtime_execution_authorized"],
)
assert_false(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.action_buttons_allowed",
s4_9_owner_response_intake_blocker_focus["action_buttons_allowed"],
)
assert_true(
"iwooos_projection.s4_9_owner_response_intake_blocker_focus.not_authorization",
s4_9_owner_response_intake_blocker_focus["not_authorization"],
)
s4_9_owner_response_intake_delivery_cards = iwooos_projection[
"s4_9_owner_response_intake_delivery_cards"
]
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_delivery_cards.ids",
[item["card_id"] for item in s4_9_owner_response_intake_delivery_cards],
["ownerDecision", "redactedEvidence", "reviewTrail"],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_delivery_cards.display_order",
[item["display_order"] for item in s4_9_owner_response_intake_delivery_cards],
[1, 2, 3],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_delivery_cards.required_evidence",
[item["required_evidence"] for item in s4_9_owner_response_intake_delivery_cards],
["負責人角色、判定、範圍、理由與後續負責人", "脫敏證據參照", "預檢驗收紀錄"],
)
assert_equal(
"iwooos_projection.s4_9_owner_response_intake_delivery_cards.current_states",
[item["current_state"] for item in s4_9_owner_response_intake_delivery_cards],
[
"waiting_owner_response",
"waiting_redacted_evidence_pointer",
"waiting_preflight_and_acceptance",
],
)
for item in s4_9_owner_response_intake_delivery_cards:
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.display_mode",
item["display_mode"],
"first_screen_s4_9_owner_response_intake_delivery_card",
)
assert_equal(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.completed_count",
item["completed_count"],
0,
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.raw_payload_allowed",
item["raw_payload_allowed"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.secret_plaintext_allowed",
item["secret_plaintext_allowed"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.headline_review_authorized",
item["headline_review_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_false(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.action_buttons_allowed",
item["action_buttons_allowed"],
)
assert_true(
f"iwooos_projection.s4_9_owner_response_intake_delivery_cards.{item['card_id']}.not_authorization",
item["not_authorization"],
)
for text in [
'data-testid="iwooos-first-screen-depth-map-board"',
'data-testid="iwooos-first-screen-depth-map-layers"',
'data-testid="iwooos-first-screen-depth-map-flow"',
'data-testid="iwooos-first-screen-depth-map-boundaries"',
"IwoooSFirstScreenDepthMapBoard",
"firstScreenDepthLayers",
"firstScreenDepthBoundaries",
"href: '#iwooos-decision-gate-visuals'",
"href: '#iwooos-scope-evidence-visuals'",
]:
assert_text_contains(
"iwooos_page.first_screen_depth_map",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.focus_deck_before_first_screen_depth_map",
iwooos_projection_page,
"<IwoooSFocusDeckBoard />",
"<IwoooSFirstScreenDepthMapBoard />",
)
assert_text_before(
"iwooos_page.first_screen_depth_map_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSFirstScreenDepthMapBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"iwooos_first_screen_depth_map_visible_layer_count=4",
"iwooos_first_screen_depth_map_advanced_group_count=2",
"iwooos_first_screen_depth_map_ledger_group_count=4",
"iwooos_first_screen_depth_map_runtime_gate_count=0",
"iwooos_first_screen_depth_map_advanced_default_visible=false",
"iwooos_first_screen_depth_map_scope_evidence_default_visible=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.first_screen_depth_map_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-progress-evidence-rail-board"',
'data-testid="iwooos-progress-evidence-rail-items"',
'data-testid="iwooos-progress-evidence-rail-boundaries"',
"IwoooSProgressEvidenceRailBoard",
"progressEvidenceRailItems",
"progressEvidenceRailBoundaries",
]:
assert_text_contains(
"iwooos_page.progress_evidence_rail",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.first_screen_depth_map_before_progress_evidence_rail",
iwooos_projection_page,
"<IwoooSFirstScreenDepthMapBoard />",
"<IwoooSProgressEvidenceRailBoard />",
)
assert_text_before(
"iwooos_page.progress_evidence_rail_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSProgressEvidenceRailBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"iwooos_progress_evidence_rail_owner_response_received_count=0",
"iwooos_progress_evidence_rail_owner_response_accepted_count=0",
"iwooos_progress_evidence_rail_redacted_evidence_count=0",
"iwooos_progress_evidence_rail_review_acceptance_count=0",
"iwooos_progress_evidence_rail_github_primary_ready_count=0",
"iwooos_progress_evidence_rail_runtime_gate_count=0",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.progress_evidence_rail_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-evidence-unlock-queue-board"',
'data-testid="iwooos-evidence-unlock-queue-items"',
'data-testid="iwooos-evidence-unlock-queue-boundaries"',
"IwoooSEvidenceUnlockQueueBoard",
"evidenceUnlockQueueItems",
"evidenceUnlockQueueBoundaries",
]:
assert_text_contains(
"iwooos_page.evidence_unlock_queue",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.progress_evidence_rail_before_evidence_unlock_queue",
iwooos_projection_page,
"<IwoooSProgressEvidenceRailBoard />",
"<IwoooSEvidenceUnlockQueueBoard />",
)
assert_text_before(
"iwooos_page.evidence_unlock_queue_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSEvidenceUnlockQueueBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"iwooos_evidence_unlock_queue_item_count=4",
"iwooos_evidence_unlock_queue_s4_9_request_draft_template_count=5",
"iwooos_evidence_unlock_queue_s4_9_request_draft_ready_count=1",
"iwooos_evidence_unlock_queue_request_sent_count=0",
"iwooos_evidence_unlock_queue_received_count=0",
"iwooos_evidence_unlock_queue_accepted_count=0",
"iwooos_evidence_unlock_queue_github_primary_ready_count=0",
"iwooos_evidence_unlock_queue_runtime_gate_count=0",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.evidence_unlock_queue_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-s49-request-draft-package-board"',
'data-testid="iwooos-s49-request-draft-package-items"',
'data-testid="iwooos-s49-request-draft-package-boundaries"',
"IwoooSS49RequestDraftPackageBoard",
"s49RequestDraftPackageItems",
"s49RequestDraftPackageBoundaries",
"publicGap",
"namespaceIdentity",
"adjacentScope",
"canonicalOwner",
"legacyDisposition",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_package",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.evidence_unlock_queue_before_s49_request_draft_package",
iwooos_projection_page,
"<IwoooSEvidenceUnlockQueueBoard />",
"<IwoooSS49RequestDraftPackageBoard />",
)
assert_text_before(
"iwooos_page.s49_request_draft_package_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSS49RequestDraftPackageBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"s4_9_owner_attestation_request_draft_frontstage_card_count=5",
"s4_9_owner_attestation_request_draft_template_ready_count=5",
"s4_9_owner_attestation_request_sent=false",
"s4_9_owner_attestation_owner_response_received_count=0",
"s4_9_owner_attestation_owner_response_accepted_count=0",
"s4_9_owner_attestation_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_package_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-s49-request-draft-detail-board"',
'data-testid="iwooos-s49-request-draft-detail-items"',
'data-testid="iwooos-s49-request-draft-detail-boundaries"',
"IwoooSS49RequestDraftDetailBoard",
"s49RequestDraftDetailItems",
"s49RequestDraftDetailBoundaries",
"s49RequestDraftDetail",
"requiredCount",
"forbiddenCount",
"redactedRefs",
"secret_plaintext_collection_allowed=false",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_detail",
iwooos_projection_page,
text,
)
for text in [
"publicGap",
"namespaceIdentity",
"adjacentScope",
"canonicalOwner",
"legacyDisposition",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_detail_items",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.s49_request_draft_package_before_detail",
iwooos_projection_page,
"<IwoooSS49RequestDraftPackageBoard />",
"<IwoooSS49RequestDraftDetailBoard />",
)
assert_text_before(
"iwooos_page.s49_request_draft_detail_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSS49RequestDraftDetailBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"s4_9_owner_attestation_request_draft_detail_frontstage_row_count=5",
"s4_9_owner_attestation_request_draft_detail_required_field_total=30",
"s4_9_owner_attestation_request_draft_detail_forbidden_action_count=10",
"s4_9_owner_attestation_request_sent=false",
"s4_9_owner_attestation_owner_response_received_count=0",
"s4_9_owner_attestation_owner_response_accepted_count=0",
"s4_9_owner_attestation_runtime_gate_opened=false",
"redacted_evidence_refs_only=true",
"secret_plaintext_collection_allowed=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.s49_request_draft_detail_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-s49-owner-response-intake-board"',
'data-testid="iwooos-s49-owner-response-intake-metrics"',
'data-testid="iwooos-s49-owner-response-intake-blocker-focus"',
'data-testid="iwooos-s49-owner-response-intake-completion-rail"',
'data-testid="iwooos-s49-owner-response-intake-delivery-cards"',
"iwooos-s49-owner-response-intake-delivery-card-${item.key}",
'data-testid="iwooos-s49-owner-response-intake-next-gates"',
"iwooos-s49-owner-response-intake-next-gate-${item.key}",
'data-testid="iwooos-s49-owner-response-intake-lanes"',
'data-testid="iwooos-s49-owner-response-intake-boundaries"',
"IwoooSS49OwnerResponseIntakeBoard",
"s49OwnerResponseIntakeLanes",
"s49OwnerResponseIntakeNextGates",
"s49OwnerResponseIntakeBlockerFocus",
"s49OwnerResponseIntakeDeliveryItems",
"s49OwnerResponseIntakeBoundaries",
"s49OwnerResponseIntake",
"blockerFocus",
"deliveryItems",
"ownerDecision",
"redactedEvidence",
"reviewTrail",
"nextGatesTitle",
"nextGates",
"redactedOwnerResponse",
"preflightChecks",
"humanAcceptance",
"G1",
"G2",
"G3",
"received",
"preflight",
"acceptance",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_intake",
iwooos_projection_page,
text,
)
for text in [
"publicGap",
"namespaceIdentity",
"adjacentScope",
"canonicalOwner",
"legacyDisposition",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_intake_lanes",
iwooos_projection_page,
text,
)
s49_owner_response_intake_strings = "\n".join(
collect_string_values(web_messages_zh["iwooos"]["s49OwnerResponseIntake"])
)
for forbidden in [
"read-only",
"runtime",
"headline review",
"owner role",
"owner response metadata",
"evidence refs",
"canonical source",
"visibility review owner",
]:
assert_text_not_contains(
"web_messages.zh-TW.iwooos.s49OwnerResponseIntake.forbidden_english_terms",
s49_owner_response_intake_strings,
forbidden,
)
assert_text_before(
"iwooos_page.s49_request_draft_detail_before_owner_response_intake",
iwooos_projection_page,
"<IwoooSS49RequestDraftDetailBoard />",
"<IwoooSS49OwnerResponseIntakeBoard />",
)
assert_text_before(
"iwooos_page.s49_owner_response_intake_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSS49OwnerResponseIntakeBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
for text in [
"s4_9_owner_response_intake_frontstage_lane_count=5",
"s4_9_owner_response_intake_next_gate_count=3",
"s4_9_owner_response_intake_next_gate_passed_count=0",
"s4_9_owner_response_intake_blocker_focus_count=1",
"s4_9_owner_response_intake_current_blocker_gate=G1",
"s4_9_owner_response_intake_next_gate_completion_count=0",
"s4_9_owner_response_intake_next_gate_total=3",
"s4_9_owner_response_intake_delivery_card_count=3",
"s4_9_owner_response_intake_delivery_card_completed_count=0",
"s4_9_owner_response_intake_delivery_raw_payload_allowed=false",
"s4_9_owner_response_intake_received_count=0",
"s4_9_owner_response_intake_preflight_passed_count=0",
"s4_9_owner_response_intake_accepted_count=0",
"s4_9_owner_response_intake_rejected_count=0",
"s4_9_owner_response_intake_runtime_gate_count=0",
"s4_9_owner_response_intake_runtime_gate_opened=false",
"s4_9_owner_response_intake_action_buttons_allowed=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.s49_owner_response_intake_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.focus_deck_testid",
iwooos_projection_page,
'data-testid="iwooos-focus-deck-board"',
)
assert_text_contains(
"iwooos_page.focus_deck_component",
iwooos_projection_page,
"IwoooSFocusDeckBoard",
)
assert_text_before(
"iwooos_page.focus_deck_before_command_map",
iwooos_projection_page,
"<IwoooSFocusDeckBoard />",
"<IwoooSCommandMapBoard />",
)
assert_text_contains(
"iwooos_page.focus_deck_boundaries",
iwooos_projection_page,
'data-testid="iwooos-focus-deck-boundaries"',
)
for text in [
"href: '#iwooos-decision-gate-visuals'",
"href: '#iwooos-scope-evidence-visuals'",
"id=\"iwooos-decision-gate-visuals\"",
"id=\"iwooos-scope-evidence-visuals\"",
"iwooos-command-map-source-control",
"iwooos_focus_deck_first_layer=true",
"iwooos_focus_deck_item_count=5",
"iwooos_focus_deck_anchor_navigation_allowed=true",
"iwooos_focus_deck_execution_action_buttons_allowed=false",
"iwooos_focus_deck_runtime_gate_count=0",
"iwooos_focus_deck_above_command_map=true",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.focus_deck_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-immediate-visual-mesh-board"',
'data-testid="iwooos-immediate-visual-mesh-canvas"',
'data-testid="iwooos-immediate-visual-mesh-boundaries"',
"IwoooSImmediateVisualMeshBoard",
"iwooosImmediateVisualMeshNodes",
"iwooosImmediateVisualMeshStats",
"iwooosImmediateVisualMeshBoundaries",
"conic-gradient",
]:
assert_text_contains(
"iwooos_page.immediate_visual_mesh",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.focus_deck_before_immediate_visual_mesh",
iwooos_projection_page,
"<IwoooSFocusDeckBoard />",
"<IwoooSImmediateVisualMeshBoard />",
)
assert_text_before(
"iwooos_page.immediate_visual_mesh_before_command_map",
iwooos_projection_page,
"<IwoooSImmediateVisualMeshBoard />",
"<IwoooSCommandMapBoard />",
)
for text in [
"iwooos_immediate_visual_mesh_first_layer=true",
"iwooos_immediate_visual_mesh_node_count=7",
"iwooos_immediate_visual_mesh_link_count=6",
"iwooos_immediate_visual_mesh_above_command_map=true",
"iwooos_immediate_visual_mesh_anchor_navigation_allowed=false",
"iwooos_immediate_visual_mesh_execution_action_buttons_allowed=false",
"iwooos_immediate_visual_mesh_runtime_gate_count=0",
"iwooos_immediate_visual_mesh_scan_authorized=false",
"iwooos_immediate_visual_mesh_host_change_authorized=false",
"iwooos_immediate_visual_mesh_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.immediate_visual_mesh_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-topology-atlas-board"',
'data-testid="iwooos-topology-atlas-canvas"',
'data-testid="iwooos-topology-atlas-active-panel"',
'data-testid="iwooos-topology-atlas-path-explorer"',
'data-testid="iwooos-topology-atlas-path-explorer-selector"',
'data-testid="iwooos-topology-atlas-path-explorer-sequence"',
'data-testid="iwooos-topology-atlas-path-explorer-summary"',
'data-testid="iwooos-topology-atlas-intelligence-deck"',
'data-testid="iwooos-topology-atlas-intelligence-selector"',
'data-testid="iwooos-topology-atlas-intelligence-trail"',
'data-testid="iwooos-topology-atlas-blast-rings"',
'data-testid="iwooos-topology-atlas-node-drilldown"',
'data-testid="iwooos-topology-atlas-node-drilldown-metrics"',
'data-testid="iwooos-topology-atlas-node-drilldown-selector"',
'data-testid="iwooos-topology-atlas-technical-charts"',
'data-testid="iwooos-topology-atlas-boundaries"',
"IwoooSTopologyAtlasBoard",
"IwoooSTopologyAtlasMode",
"IwoooSTopologyPathKey",
"IwoooSTopologyInsightKey",
"IwoooSTopologyNodeKey",
"IwoooSTopologyDrilldownNode",
"IwoooSTopologyPathExplorerPath",
"IwoooSTopologyInsightItem",
"iwooosTopologyAtlasLenses",
"iwooosTopologyAtlasNodes",
"iwooosTopologyDrilldownNodes",
"iwooosTopologyPathExplorerPaths",
"iwooosTopologyInsightDeck",
"iwooosTopologyAtlasLayers",
"iwooosTopologyAtlasCharts",
"iwooosTopologyAtlasBoundaries",
"iwooos-topology-grid",
]:
assert_text_contains(
"iwooos_page.topology_atlas",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.immediate_visual_mesh_before_topology_atlas",
iwooos_projection_page,
"<IwoooSImmediateVisualMeshBoard />",
"<IwoooSTopologyAtlasBoard />",
)
assert_text_before(
"iwooos_page.topology_atlas_before_gate_radar",
iwooos_projection_page,
"<IwoooSTopologyAtlasBoard />",
"<IwoooSGateRadarBoard />",
)
assert_text_before(
"iwooos_page.topology_atlas_before_command_map",
iwooos_projection_page,
"<IwoooSTopologyAtlasBoard />",
"<IwoooSCommandMapBoard />",
)
for text in [
"iwooos_topology_atlas_first_layer=true",
"iwooos_topology_atlas_lens_count=4",
"iwooos_topology_atlas_node_count=7",
"iwooos_topology_drilldown_node_count=7",
"iwooos_topology_drilldown_default_node=productSurface",
"iwooos_topology_drilldown_interactive_node_allowed=true",
"iwooos_topology_path_explorer_path_count=4",
"iwooos_topology_path_explorer_default_path=externalToGate",
"iwooos_topology_path_explorer_interactive_path_allowed=true",
"iwooos_topology_intelligence_deck_count=4",
"iwooos_topology_intelligence_default_item=assetContext",
"iwooos_topology_intelligence_interactive_item_allowed=true",
"iwooos_topology_atlas_layer_count=5",
"iwooos_topology_atlas_technical_chart_count=3",
"iwooos_topology_atlas_interactive_lens_allowed=true",
"iwooos_topology_atlas_execution_action_buttons_allowed=false",
"iwooos_topology_drilldown_execution_action_buttons_allowed=false",
"iwooos_topology_path_explorer_execution_action_buttons_allowed=false",
"iwooos_topology_intelligence_execution_action_buttons_allowed=false",
"iwooos_topology_atlas_runtime_gate_count=0",
"iwooos_topology_drilldown_runtime_gate_count=0",
"iwooos_topology_path_explorer_runtime_gate_count=0",
"iwooos_topology_intelligence_runtime_gate_count=0",
"iwooos_topology_atlas_scan_authorized=false",
"iwooos_topology_atlas_host_change_authorized=false",
"iwooos_topology_atlas_source_control_mutation_authorized=false",
"iwooos_topology_drilldown_scan_authorized=false",
"iwooos_topology_drilldown_host_change_authorized=false",
"iwooos_topology_drilldown_source_control_mutation_authorized=false",
"iwooos_topology_path_explorer_scan_authorized=false",
"iwooos_topology_path_explorer_host_change_authorized=false",
"iwooos_topology_path_explorer_source_control_mutation_authorized=false",
"iwooos_topology_intelligence_scan_authorized=false",
"iwooos_topology_intelligence_host_change_authorized=false",
"iwooos_topology_intelligence_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.topology_atlas_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-decision-runway-board"',
'data-testid="iwooos-decision-runway-progress-rail"',
'data-testid="iwooos-decision-runway-selector"',
'data-testid="iwooos-decision-runway-active-panel"',
'data-testid="iwooos-decision-runway-dependency-grid"',
'data-testid="iwooos-decision-runway-boundary-strip"',
'data-testid="iwooos-decision-runway-boundaries"',
"IwoooSDecisionRunwayBoard",
"IwoooSDecisionRunwayStepKey",
"IwoooSDecisionRunwayStep",
"IwoooSDecisionRunwayDependency",
"IwoooSDecisionRunwayBoundarySignal",
"iwooosDecisionRunwaySteps",
"iwooosDecisionRunwayDependencies",
"iwooosDecisionRunwayBoundarySignals",
"iwooosDecisionRunwayBoundaries",
"iwooos-decision-runway-grid",
]:
assert_text_contains(
"iwooos_page.decision_runway",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.topology_atlas_before_decision_runway",
iwooos_projection_page,
"<IwoooSTopologyAtlasBoard />",
"<IwoooSDecisionRunwayBoard />",
)
assert_text_before(
"iwooos_page.decision_runway_before_gate_radar",
iwooos_projection_page,
"<IwoooSDecisionRunwayBoard />",
"<IwoooSGateRadarBoard />",
)
assert_text_before(
"iwooos_page.decision_runway_before_command_map",
iwooos_projection_page,
"<IwoooSDecisionRunwayBoard />",
"<IwoooSCommandMapBoard />",
)
for text in [
"iwooos_decision_runway_first_layer=true",
"iwooos_decision_runway_step_count=5",
"iwooos_decision_runway_default_step=ownerEvidence",
"iwooos_decision_runway_dependency_count=6",
"iwooos_decision_runway_boundary_signal_count=4",
"iwooos_decision_runway_above_gate_radar=true",
"iwooos_decision_runway_interactive_step_allowed=true",
"iwooos_decision_runway_execution_action_buttons_allowed=false",
"iwooos_decision_runway_runtime_gate_count=0",
"iwooos_decision_runway_owner_response_received_count=0",
"iwooos_decision_runway_owner_response_accepted_count=0",
"iwooos_decision_runway_scan_authorized=false",
"iwooos_decision_runway_host_change_authorized=false",
"iwooos_decision_runway_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.decision_runway_boundary",
iwooos_projection_page,
text,
)
for text in [
'data-testid="iwooos-gate-radar-board"',
'data-testid="iwooos-gate-radar-canvas"',
'data-testid="iwooos-gate-radar-active-panel"',
'data-testid="iwooos-gate-radar-boundaries"',
"IwoooSGateRadarBoard",
"IwoooSGateRadarMode",
"iwooosGateRadarLanes",
"iwooosGateRadarSummary",
"iwooosGateRadarBoundaries",
"conic-gradient",
]:
assert_text_contains(
"iwooos_page.gate_radar",
iwooos_projection_page,
text,
)
assert_text_before(
"iwooos_page.immediate_visual_mesh_before_gate_radar",
iwooos_projection_page,
"<IwoooSImmediateVisualMeshBoard />",
"<IwoooSGateRadarBoard />",
)
assert_text_before(
"iwooos_page.gate_radar_before_command_map",
iwooos_projection_page,
"<IwoooSGateRadarBoard />",
"<IwoooSCommandMapBoard />",
)
for text in [
"iwooos_gate_radar_first_layer=true",
"iwooos_gate_radar_lane_count=4",
"iwooos_gate_radar_default_lane=visible",
"iwooos_gate_radar_above_command_map=true",
"iwooos_gate_radar_interactive_lens_allowed=true",
"iwooos_gate_radar_execution_action_buttons_allowed=false",
"iwooos_gate_radar_runtime_gate_count=0",
"iwooos_gate_radar_scan_authorized=false",
"iwooos_gate_radar_host_change_authorized=false",
"iwooos_gate_radar_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.gate_radar_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.command_map_testid",
iwooos_projection_page,
'data-testid="iwooos-command-map-board"',
)
assert_text_contains(
"iwooos_page.command_map_component",
iwooos_projection_page,
"IwoooSCommandMapBoard",
)
assert_text_before(
"iwooos_page.command_map_before_first_unlock_path",
iwooos_projection_page,
"<IwoooSCommandMapBoard />",
"<IwoooSFirstProgressUnlockPathBoard />",
)
assert_text_before(
"iwooos_page.command_map_before_visual_dashboard",
iwooos_projection_page,
"<IwoooSCommandMapBoard />",
"<IwoooSVisualCommandDashboard />",
)
assert_text_contains(
"iwooos_page.command_map_boundaries",
iwooos_projection_page,
'data-testid="iwooos-command-map-boundaries"',
)
for text in [
"iwooos_command_map_first_layer=true",
"iwooos_command_map_mode_count=6",
"iwooos_command_map_default_mode=unlock",
"iwooos_command_map_above_first_progress_unlock_path=true",
"iwooos_command_map_navigation_controls_allowed=true",
"iwooos_command_map_execution_action_buttons_allowed=false",
"iwooos_command_map_runtime_gate_count=0",
"iwooos_command_map_kali_execute_authorized=false",
"iwooos_command_map_host_mutation_authorized=false",
"iwooos_command_map_source_control_mutation_authorized=false",
"iwooos_command_map_github_primary_switch_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.command_map_boundary",
iwooos_projection_page,
text,
)
expected_command_map_item_ids = [
"unlock",
"scope",
"hosts",
"sourceControl",
"awooop",
"boundary",
]
command_map_items = iwooos_projection["command_map_items"]
assert_equal(
"iwooos_projection.command_map_items.ids",
[item["item_id"] for item in command_map_items],
expected_command_map_item_ids,
)
assert_equal(
"iwooos_projection.command_map_items.display_order",
[item["display_order"] for item in command_map_items],
list(range(1, len(expected_command_map_item_ids) + 1)),
)
for item in command_map_items:
assert_equal(
f"iwooos_projection.command_map_items.{item['item_id']}.display_mode",
item["display_mode"],
"first_layer_command_map",
)
assert_true(
f"iwooos_projection.command_map_items.{item['item_id']}.navigation_control_allowed",
item["navigation_control_allowed"],
)
assert_false(
f"iwooos_projection.command_map_items.{item['item_id']}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.command_map_items.{item['item_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.command_map_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.command_map_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
source_control_item = next(item for item in command_map_items if item["item_id"] == "sourceControl")
assert_false(
"iwooos_projection.command_map_items.sourceControl.source_control_mutation_authorized",
source_control_item["source_control_mutation_authorized"],
)
assert_false(
"iwooos_projection.command_map_items.sourceControl.github_primary_switch_authorized",
source_control_item["github_primary_switch_authorized"],
)
boundary_item = next(item for item in command_map_items if item["item_id"] == "boundary")
assert_false(
"iwooos_projection.command_map_items.boundary.kali_execute_authorized",
boundary_item["kali_execute_authorized"],
)
assert_false(
"iwooos_projection.command_map_items.boundary.host_mutation_authorized",
boundary_item["host_mutation_authorized"],
)
expected_focus_deck_item_ids = [
"workMap",
"unlockPath",
"productScope",
"hostTools",
"sourceControl",
]
focus_deck_items = iwooos_projection["focus_deck_items"]
assert_equal(
"iwooos_projection.focus_deck_items.ids",
[item["item_id"] for item in focus_deck_items],
expected_focus_deck_item_ids,
)
assert_equal(
"iwooos_projection.focus_deck_items.display_order",
[item["display_order"] for item in focus_deck_items],
list(range(1, len(expected_focus_deck_item_ids) + 1)),
)
for item in focus_deck_items:
assert_equal(
f"iwooos_projection.focus_deck_items.{item['item_id']}.display_mode",
item["display_mode"],
"first_layer_focus_deck",
)
assert_true(
f"iwooos_projection.focus_deck_items.{item['item_id']}.anchor_navigation_allowed",
item["anchor_navigation_allowed"],
)
assert_false(
f"iwooos_projection.focus_deck_items.{item['item_id']}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.focus_deck_items.{item['item_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.focus_deck_items.{item['item_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.focus_deck_items.{item['item_id']}.not_authorization",
item["not_authorization"],
)
source_control_focus = next(item for item in focus_deck_items if item["item_id"] == "sourceControl")
assert_false(
"iwooos_projection.focus_deck_items.sourceControl.source_control_mutation_authorized",
source_control_focus["source_control_mutation_authorized"],
)
assert_false(
"iwooos_projection.focus_deck_items.sourceControl.github_primary_switch_authorized",
source_control_focus["github_primary_switch_authorized"],
)
expected_immediate_visual_mesh_node_ids = [
"core",
"products",
"hosts",
"sourceControl",
"monitoring",
"awooop",
"runtimeGate",
]
immediate_visual_mesh_nodes = iwooos_projection["immediate_visual_mesh_nodes"]
assert_equal(
"iwooos_projection.immediate_visual_mesh_nodes.ids",
[item["node_id"] for item in immediate_visual_mesh_nodes],
expected_immediate_visual_mesh_node_ids,
)
assert_equal(
"iwooos_projection.immediate_visual_mesh_nodes.display_order",
[item["display_order"] for item in immediate_visual_mesh_nodes],
list(range(1, len(expected_immediate_visual_mesh_node_ids) + 1)),
)
for item in immediate_visual_mesh_nodes:
assert_equal(
f"iwooos_projection.immediate_visual_mesh_nodes.{item['node_id']}.display_mode",
item["display_mode"],
"first_screen_visual_mesh",
)
assert_true(
f"iwooos_projection.immediate_visual_mesh_nodes.{item['node_id']}.read_only",
item["read_only"],
)
assert_false(
f"iwooos_projection.immediate_visual_mesh_nodes.{item['node_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.immediate_visual_mesh_nodes.{item['node_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.immediate_visual_mesh_nodes.{item['node_id']}.not_authorization",
item["not_authorization"],
)
hosts_mesh_node = next(item for item in immediate_visual_mesh_nodes if item["node_id"] == "hosts")
assert_false(
"iwooos_projection.immediate_visual_mesh_nodes.hosts.host_change_authorized",
hosts_mesh_node["host_change_authorized"],
)
source_control_mesh_node = next(item for item in immediate_visual_mesh_nodes if item["node_id"] == "sourceControl")
assert_false(
"iwooos_projection.immediate_visual_mesh_nodes.sourceControl.source_control_mutation_authorized",
source_control_mesh_node["source_control_mutation_authorized"],
)
runtime_gate_mesh_node = next(item for item in immediate_visual_mesh_nodes if item["node_id"] == "runtimeGate")
assert_false(
"iwooos_projection.immediate_visual_mesh_nodes.runtimeGate.scan_authorized",
runtime_gate_mesh_node["scan_authorized"],
)
expected_topology_atlas_lens_ids = [
"architecture",
"topology",
"attackSurface",
"evidenceFlow",
]
topology_atlas_lenses = iwooos_projection["topology_atlas_lenses"]
assert_equal(
"iwooos_projection.topology_atlas_lenses.ids",
[item["lens_id"] for item in topology_atlas_lenses],
expected_topology_atlas_lens_ids,
)
assert_equal(
"iwooos_projection.topology_atlas_lenses.display_order",
[item["display_order"] for item in topology_atlas_lenses],
list(range(1, len(expected_topology_atlas_lens_ids) + 1)),
)
for item in topology_atlas_lenses:
assert_equal(
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.display_mode",
item["display_mode"],
"first_screen_professional_topology_atlas",
)
assert_true(
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.interactive_lens_allowed",
item["interactive_lens_allowed"],
)
assert_false(
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.topology_atlas_lenses.{item['lens_id']}.not_authorization",
item["not_authorization"],
)
topology_lens = next(item for item in topology_atlas_lenses if item["lens_id"] == "topology")
for flag in ["scan_authorized", "host_change_authorized"]:
assert_false(
f"iwooos_projection.topology_atlas_lenses.topology.{flag}",
topology_lens[flag],
)
attack_surface_lens = next(item for item in topology_atlas_lenses if item["lens_id"] == "attackSurface")
for flag in ["source_control_mutation_authorized", "github_primary_switch_authorized", "blast_radius_verified"]:
assert_false(
f"iwooos_projection.topology_atlas_lenses.attackSurface.{flag}",
attack_surface_lens[flag],
)
evidence_flow_lens = next(item for item in topology_atlas_lenses if item["lens_id"] == "evidenceFlow")
for count_key in ["owner_response_received_count", "reviewer_accepted_count"]:
assert_equal(
f"iwooos_projection.topology_atlas_lenses.evidenceFlow.{count_key}",
evidence_flow_lens[count_key],
0,
)
expected_topology_atlas_node_ids = [
"productSurface",
"sourceControl",
"kali",
"devHosts",
"monitoring",
"awooopTruth",
"runtimeGate",
]
topology_atlas_nodes = iwooos_projection["topology_atlas_nodes"]
assert_equal(
"iwooos_projection.topology_atlas_nodes.ids",
[item["node_id"] for item in topology_atlas_nodes],
expected_topology_atlas_node_ids,
)
assert_equal(
"iwooos_projection.topology_atlas_nodes.display_order",
[item["display_order"] for item in topology_atlas_nodes],
list(range(1, len(expected_topology_atlas_node_ids) + 1)),
)
for item in topology_atlas_nodes:
assert_true(
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.read_only",
item["read_only"],
)
assert_false(
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.topology_atlas_nodes.{item['node_id']}.not_authorization",
item["not_authorization"],
)
for node_id in ["kali", "devHosts"]:
node = next(item for item in topology_atlas_nodes if item["node_id"] == node_id)
assert_false(
f"iwooos_projection.topology_atlas_nodes.{node_id}.scan_authorized",
node["scan_authorized"],
)
assert_false(
f"iwooos_projection.topology_atlas_nodes.{node_id}.host_change_authorized",
node["host_change_authorized"],
)
source_control_topology_node = next(item for item in topology_atlas_nodes if item["node_id"] == "sourceControl")
assert_false(
"iwooos_projection.topology_atlas_nodes.sourceControl.source_control_mutation_authorized",
source_control_topology_node["source_control_mutation_authorized"],
)
expected_topology_atlas_chart_ids = [
"contextDepth",
"blastRadius",
"evidenceFreshness",
]
topology_atlas_charts = iwooos_projection["topology_atlas_technical_charts"]
assert_equal(
"iwooos_projection.topology_atlas_technical_charts.ids",
[item["chart_id"] for item in topology_atlas_charts],
expected_topology_atlas_chart_ids,
)
assert_equal(
"iwooos_projection.topology_atlas_technical_charts.display_order",
[item["display_order"] for item in topology_atlas_charts],
list(range(1, len(expected_topology_atlas_chart_ids) + 1)),
)
for item in topology_atlas_charts:
assert_equal(
f"iwooos_projection.topology_atlas_technical_charts.{item['chart_id']}.display_mode",
item["display_mode"],
"first_screen_professional_topology_atlas",
)
assert_false(
f"iwooos_projection.topology_atlas_technical_charts.{item['chart_id']}.runtime_delta",
item["runtime_delta"],
)
assert_true(
f"iwooos_projection.topology_atlas_technical_charts.{item['chart_id']}.not_authorization",
item["not_authorization"],
)
blast_radius_chart = next(item for item in topology_atlas_charts if item["chart_id"] == "blastRadius")
assert_false(
"iwooos_projection.topology_atlas_technical_charts.blastRadius.blast_radius_verified",
blast_radius_chart["blast_radius_verified"],
)
expected_topology_drilldown_node_ids = [
"productSurface",
"sourceControl",
"kali",
"devHosts",
"monitoring",
"awooopTruth",
"runtimeGate",
]
topology_drilldown_nodes = iwooos_projection["topology_drilldown_nodes"]
assert_equal(
"iwooos_projection.topology_drilldown_nodes.ids",
[item["node_id"] for item in topology_drilldown_nodes],
expected_topology_drilldown_node_ids,
)
assert_equal(
"iwooos_projection.topology_drilldown_nodes.display_order",
[item["display_order"] for item in topology_drilldown_nodes],
list(range(1, len(expected_topology_drilldown_node_ids) + 1)),
)
for item in topology_drilldown_nodes:
assert_true(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.interactive_node_allowed",
item["interactive_node_allowed"],
)
assert_false(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.scan_authorized",
item["scan_authorized"],
)
assert_false(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.host_change_authorized",
item["host_change_authorized"],
)
assert_false(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.source_control_mutation_authorized",
item["source_control_mutation_authorized"],
)
assert_false(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.topology_drilldown_nodes.{item['node_id']}.not_authorization",
item["not_authorization"],
)
expected_topology_path_explorer_path_ids = [
"externalToGate",
"sourceToHost",
"kaliToDev",
"evidenceToGate",
]
expected_topology_path_explorer_sequences = {
"externalToGate": ["productSurface", "sourceControl", "monitoring", "awooopTruth", "runtimeGate"],
"sourceToHost": ["sourceControl", "kali", "devHosts", "runtimeGate"],
"kaliToDev": ["kali", "devHosts", "runtimeGate"],
"evidenceToGate": ["monitoring", "awooopTruth", "runtimeGate"],
}
topology_path_explorer_paths = iwooos_projection["topology_path_explorer_paths"]
assert_equal(
"iwooos_projection.topology_path_explorer_paths.ids",
[item["path_id"] for item in topology_path_explorer_paths],
expected_topology_path_explorer_path_ids,
)
assert_equal(
"iwooos_projection.topology_path_explorer_paths.display_order",
[item["display_order"] for item in topology_path_explorer_paths],
list(range(1, len(expected_topology_path_explorer_path_ids) + 1)),
)
for item in topology_path_explorer_paths:
path_id = item["path_id"]
assert_equal(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.node_sequence",
item["node_sequence"],
expected_topology_path_explorer_sequences[path_id],
)
assert_true(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.interactive_path_allowed",
item["interactive_path_allowed"],
)
assert_false(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.scan_authorized",
item["scan_authorized"],
)
assert_false(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.host_change_authorized",
item["host_change_authorized"],
)
assert_false(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.source_control_mutation_authorized",
item["source_control_mutation_authorized"],
)
assert_false(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.topology_path_explorer_paths.{path_id}.not_authorization",
item["not_authorization"],
)
expected_topology_intelligence_deck_ids = [
"assetContext",
"attackPath",
"blastRadius",
"evidenceTimeline",
]
expected_topology_intelligence_sequences = {
"assetContext": ["productSurface", "sourceControl", "monitoring"],
"attackPath": ["sourceControl", "kali", "devHosts", "runtimeGate"],
"blastRadius": ["kali", "devHosts", "runtimeGate"],
"evidenceTimeline": ["monitoring", "awooopTruth", "runtimeGate"],
}
topology_intelligence_deck = iwooos_projection["topology_intelligence_deck"]
assert_equal(
"iwooos_projection.topology_intelligence_deck.ids",
[item["insight_id"] for item in topology_intelligence_deck],
expected_topology_intelligence_deck_ids,
)
assert_equal(
"iwooos_projection.topology_intelligence_deck.display_order",
[item["display_order"] for item in topology_intelligence_deck],
list(range(1, len(expected_topology_intelligence_deck_ids) + 1)),
)
for item in topology_intelligence_deck:
insight_id = item["insight_id"]
assert_equal(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.display_mode",
item["display_mode"],
"professional_graph_intelligence_deck",
)
assert_equal(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.node_sequence",
item["node_sequence"],
expected_topology_intelligence_sequences[insight_id],
)
assert_true(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.interactive_item_allowed",
item["interactive_item_allowed"],
)
assert_false(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.scan_authorized",
item["scan_authorized"],
)
assert_false(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.host_change_authorized",
item["host_change_authorized"],
)
assert_false(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.source_control_mutation_authorized",
item["source_control_mutation_authorized"],
)
assert_false(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.topology_intelligence_deck.{insight_id}.not_authorization",
item["not_authorization"],
)
expected_decision_runway_step_ids = [
"ownerEvidence",
"reviewerAcceptance",
"hostWindow",
"githubPrimary",
"runtimeGate",
]
decision_runway_steps = iwooos_projection["decision_runway_steps"]
assert_equal(
"iwooos_projection.decision_runway_steps.ids",
[item["step_id"] for item in decision_runway_steps],
expected_decision_runway_step_ids,
)
assert_equal(
"iwooos_projection.decision_runway_steps.display_order",
[item["display_order"] for item in decision_runway_steps],
list(range(1, len(expected_decision_runway_step_ids) + 1)),
)
assert_equal(
"iwooos_projection.decision_runway_steps.progress",
[item["progress"] for item in decision_runway_steps],
[18, 12, 35, 22, 0],
)
for item in decision_runway_steps:
step_id = item["step_id"]
assert_equal(
f"iwooos_projection.decision_runway_steps.{step_id}.display_mode",
item["display_mode"],
"first_screen_decision_runway",
)
assert_true(
f"iwooos_projection.decision_runway_steps.{step_id}.interactive_step_allowed",
item["interactive_step_allowed"],
)
assert_false(
f"iwooos_projection.decision_runway_steps.{step_id}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.decision_runway_steps.{step_id}.scan_authorized",
item["scan_authorized"],
)
assert_false(
f"iwooos_projection.decision_runway_steps.{step_id}.host_change_authorized",
item["host_change_authorized"],
)
assert_false(
f"iwooos_projection.decision_runway_steps.{step_id}.source_control_mutation_authorized",
item["source_control_mutation_authorized"],
)
assert_false(
f"iwooos_projection.decision_runway_steps.{step_id}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.decision_runway_steps.{step_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.decision_runway_steps.{step_id}.not_authorization",
item["not_authorization"],
)
expected_decision_runway_dependency_ids = [
"iwooos",
"awooop",
"vibework",
"kali",
"devHosts",
"monitoring",
]
decision_runway_dependencies = iwooos_projection["decision_runway_dependencies"]
assert_equal(
"iwooos_projection.decision_runway_dependencies.ids",
[item["dependency_id"] for item in decision_runway_dependencies],
expected_decision_runway_dependency_ids,
)
assert_equal(
"iwooos_projection.decision_runway_dependencies.display_order",
[item["display_order"] for item in decision_runway_dependencies],
list(range(1, len(expected_decision_runway_dependency_ids) + 1)),
)
for item in decision_runway_dependencies:
dependency_id = item["dependency_id"]
assert_equal(
f"iwooos_projection.decision_runway_dependencies.{dependency_id}.display_mode",
item["display_mode"],
"first_screen_decision_runway_dependency",
)
assert_false(
f"iwooos_projection.decision_runway_dependencies.{dependency_id}.runtime_delta",
item["runtime_delta"],
)
assert_true(
f"iwooos_projection.decision_runway_dependencies.{dependency_id}.not_authorization",
item["not_authorization"],
)
expected_decision_runway_boundary_signal_ids = [
"scan",
"hostChange",
"sourceMutation",
"runtimeExecution",
]
decision_runway_boundary_signals = iwooos_projection["decision_runway_boundary_signals"]
assert_equal(
"iwooos_projection.decision_runway_boundary_signals.ids",
[item["signal_id"] for item in decision_runway_boundary_signals],
expected_decision_runway_boundary_signal_ids,
)
assert_equal(
"iwooos_projection.decision_runway_boundary_signals.display_order",
[item["display_order"] for item in decision_runway_boundary_signals],
list(range(1, len(expected_decision_runway_boundary_signal_ids) + 1)),
)
for item in decision_runway_boundary_signals:
signal_id = item["signal_id"]
assert_false(
f"iwooos_projection.decision_runway_boundary_signals.{signal_id}.authorized",
item["authorized"],
)
assert_false(
f"iwooos_projection.decision_runway_boundary_signals.{signal_id}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_true(
f"iwooos_projection.decision_runway_boundary_signals.{signal_id}.not_authorization",
item["not_authorization"],
)
expected_gate_radar_lane_ids = [
"visible",
"blocker",
"review",
"locked",
]
gate_radar_lanes = iwooos_projection["gate_radar_lanes"]
assert_equal(
"iwooos_projection.gate_radar_lanes.ids",
[item["lane_id"] for item in gate_radar_lanes],
expected_gate_radar_lane_ids,
)
assert_equal(
"iwooos_projection.gate_radar_lanes.display_order",
[item["display_order"] for item in gate_radar_lanes],
list(range(1, len(expected_gate_radar_lane_ids) + 1)),
)
assert_equal(
"iwooos_projection.gate_radar_lanes.scores",
[item["score"] for item in gate_radar_lanes],
[86, 61, 40, 0],
)
for item in gate_radar_lanes:
assert_equal(
f"iwooos_projection.gate_radar_lanes.{item['lane_id']}.display_mode",
item["display_mode"],
"first_screen_gate_radar",
)
assert_true(
f"iwooos_projection.gate_radar_lanes.{item['lane_id']}.interactive_lens_allowed",
item["interactive_lens_allowed"],
)
assert_false(
f"iwooos_projection.gate_radar_lanes.{item['lane_id']}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.gate_radar_lanes.{item['lane_id']}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.gate_radar_lanes.{item['lane_id']}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.gate_radar_lanes.{item['lane_id']}.not_authorization",
item["not_authorization"],
)
blocker_gate_radar_lane = next(item for item in gate_radar_lanes if item["lane_id"] == "blocker")
for count_key in ["owner_response_received_count", "owner_response_accepted_count", "github_primary_ready_count"]:
assert_equal(
f"iwooos_projection.gate_radar_lanes.blocker.{count_key}",
blocker_gate_radar_lane[count_key],
0,
)
review_gate_radar_lane = next(item for item in gate_radar_lanes if item["lane_id"] == "review")
assert_true(
"iwooos_projection.gate_radar_lanes.review.human_review_required",
review_gate_radar_lane["human_review_required"],
)
assert_false(
"iwooos_projection.gate_radar_lanes.review.formal_decision_record_created",
review_gate_radar_lane["formal_decision_record_created"],
)
locked_gate_radar_lane = next(item for item in gate_radar_lanes if item["lane_id"] == "locked")
for flag in ["scan_authorized", "host_change_authorized", "source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.gate_radar_lanes.locked.{flag}",
locked_gate_radar_lane[flag],
)
for text in [
"iwooos_first_unlock_path_step_count=5",
"iwooos_first_unlock_path_current_focus=s4_9_owner_response",
"iwooos_first_unlock_path_owner_response_received_count=0",
"iwooos_first_unlock_path_owner_response_accepted_count=0",
"iwooos_first_unlock_path_redacted_evidence_pointer_count=0",
"iwooos_first_unlock_path_intake_preflight_passed_count=0",
"iwooos_first_unlock_path_headline_review_authorized=false",
"iwooos_first_unlock_path_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_progress_unlock_path_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstProgressUnlockPath",
list(web_messages_zh["iwooos"].keys()),
"firstProgressUnlockPath",
)
assert_contains(
"web_messages.en.iwooos.firstProgressUnlockPath",
list(web_messages_en["iwooos"].keys()),
"firstProgressUnlockPath",
)
for key in ["eyebrow", "title", "subtitle", "summary", "items", "stepLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstProgressUnlockPath.keys",
list(web_messages_zh["iwooos"]["firstProgressUnlockPath"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstProgressUnlockPath.keys",
list(web_messages_en["iwooos"]["firstProgressUnlockPath"].keys()),
key,
)
for key in ["focus", "steps", "accepted", "headline"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstProgressUnlockPath.summary",
list(web_messages_zh["iwooos"]["firstProgressUnlockPath"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstProgressUnlockPath.summary",
list(web_messages_en["iwooos"]["firstProgressUnlockPath"]["summary"].keys()),
key,
)
for key in [
"ownerResponseScope",
"redactedEvidencePointer",
"intakePreflight",
"reviewAcceptance",
"headlineReviewCandidate",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstProgressUnlockPath.items",
list(web_messages_zh["iwooos"]["firstProgressUnlockPath"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstProgressUnlockPath.items",
list(web_messages_en["iwooos"]["firstProgressUnlockPath"]["items"].keys()),
key,
)
assert_contains(
"web_messages.zh-TW.iwooos.commandMap",
list(web_messages_zh["iwooos"].keys()),
"commandMap",
)
assert_contains(
"web_messages.en.iwooos.commandMap",
list(web_messages_en["iwooos"].keys()),
"commandMap",
)
for key in ["eyebrow", "title", "subtitle", "tabsLabel", "boundaryTitle", "panelLabels", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.commandMap.keys",
list(web_messages_zh["iwooos"]["commandMap"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.commandMap.keys",
list(web_messages_en["iwooos"]["commandMap"].keys()),
key,
)
for key in ["evidence", "next", "locked"]:
assert_contains(
"web_messages.zh-TW.iwooos.commandMap.panelLabels",
list(web_messages_zh["iwooos"]["commandMap"]["panelLabels"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.commandMap.panelLabels",
list(web_messages_en["iwooos"]["commandMap"]["panelLabels"].keys()),
key,
)
for key in expected_command_map_item_ids:
assert_contains(
"web_messages.zh-TW.iwooos.commandMap.items",
list(web_messages_zh["iwooos"]["commandMap"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.commandMap.items",
list(web_messages_en["iwooos"]["commandMap"]["items"].keys()),
key,
)
for field in ["title", "state", "detail", "evidence", "next", "locked"]:
assert_contains(
f"web_messages.zh-TW.iwooos.commandMap.items.{key}",
list(web_messages_zh["iwooos"]["commandMap"]["items"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.commandMap.items.{key}",
list(web_messages_en["iwooos"]["commandMap"]["items"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot",
list(web_messages_zh["iwooos"].keys()),
"executiveSnapshot",
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot",
list(web_messages_en["iwooos"].keys()),
"executiveSnapshot",
)
for key in ["eyebrow", "title", "subtitle", "axes", "cards", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot.keys",
list(web_messages_zh["iwooos"]["executiveSnapshot"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot.keys",
list(web_messages_en["iwooos"]["executiveSnapshot"].keys()),
key,
)
for key in expected_executive_snapshot_axis_ids:
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot.axes",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["axes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot.axes",
list(web_messages_en["iwooos"]["executiveSnapshot"]["axes"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.executiveSnapshot.axes.{key}",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["axes"][key].keys()),
"label",
)
assert_contains(
f"web_messages.en.iwooos.executiveSnapshot.axes.{key}",
list(web_messages_en["iwooos"]["executiveSnapshot"]["axes"][key].keys()),
"label",
)
for key in expected_executive_snapshot_card_ids:
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot.cards",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["cards"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot.cards",
list(web_messages_en["iwooos"]["executiveSnapshot"]["cards"].keys()),
key,
)
for field in ["title", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.executiveSnapshot.cards.{key}",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["cards"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.executiveSnapshot.cards.{key}",
list(web_messages_en["iwooos"]["executiveSnapshot"]["cards"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.focusDeck",
list(web_messages_zh["iwooos"].keys()),
"focusDeck",
)
assert_contains(
"web_messages.en.iwooos.focusDeck",
list(web_messages_en["iwooos"].keys()),
"focusDeck",
)
for key in ["eyebrow", "title", "subtitle", "summary", "items", "boundaryTitle"]:
assert_contains(
"web_messages.zh-TW.iwooos.focusDeck.keys",
list(web_messages_zh["iwooos"]["focusDeck"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.focusDeck.keys",
list(web_messages_en["iwooos"]["focusDeck"].keys()),
key,
)
for key in ["items", "runtime", "mode"]:
assert_contains(
"web_messages.zh-TW.iwooos.focusDeck.summary",
list(web_messages_zh["iwooos"]["focusDeck"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.focusDeck.summary",
list(web_messages_en["iwooos"]["focusDeck"]["summary"].keys()),
key,
)
for key in expected_focus_deck_item_ids:
assert_contains(
"web_messages.zh-TW.iwooos.focusDeck.items",
list(web_messages_zh["iwooos"]["focusDeck"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.focusDeck.items",
list(web_messages_en["iwooos"]["focusDeck"]["items"].keys()),
key,
)
for field in ["label", "title", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.focusDeck.items.{key}",
list(web_messages_zh["iwooos"]["focusDeck"]["items"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.focusDeck.items.{key}",
list(web_messages_en["iwooos"]["focusDeck"]["items"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.immediateVisualMesh",
list(web_messages_zh["iwooos"].keys()),
"immediateVisualMesh",
)
assert_contains(
"web_messages.en.iwooos.immediateVisualMesh",
list(web_messages_en["iwooos"].keys()),
"immediateVisualMesh",
)
for key in ["eyebrow", "title", "subtitle", "center", "stats", "nodes", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.immediateVisualMesh.keys",
list(web_messages_zh["iwooos"]["immediateVisualMesh"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.immediateVisualMesh.keys",
list(web_messages_en["iwooos"]["immediateVisualMesh"].keys()),
key,
)
for key in ["assetScope", "hostScope", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.immediateVisualMesh.stats",
list(web_messages_zh["iwooos"]["immediateVisualMesh"]["stats"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.immediateVisualMesh.stats",
list(web_messages_en["iwooos"]["immediateVisualMesh"]["stats"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.immediateVisualMesh.stats.{key}",
list(web_messages_zh["iwooos"]["immediateVisualMesh"]["stats"][key].keys()),
"label",
)
assert_contains(
f"web_messages.en.iwooos.immediateVisualMesh.stats.{key}",
list(web_messages_en["iwooos"]["immediateVisualMesh"]["stats"][key].keys()),
"label",
)
for key in ["products", "hosts", "sourceControl", "monitoring", "awooop", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.immediateVisualMesh.nodes",
list(web_messages_zh["iwooos"]["immediateVisualMesh"]["nodes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.immediateVisualMesh.nodes",
list(web_messages_en["iwooos"]["immediateVisualMesh"]["nodes"].keys()),
key,
)
for field in ["title", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.immediateVisualMesh.nodes.{key}",
list(web_messages_zh["iwooos"]["immediateVisualMesh"]["nodes"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.immediateVisualMesh.nodes.{key}",
list(web_messages_en["iwooos"]["immediateVisualMesh"]["nodes"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas",
list(web_messages_zh["iwooos"].keys()),
"topologyAtlas",
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas",
list(web_messages_en["iwooos"].keys()),
"topologyAtlas",
)
for key in [
"eyebrow",
"title",
"subtitle",
"tabsLabel",
"mapLabel",
"panelLabels",
"pathExplorer",
"nodeDrilldown",
"lenses",
"nodes",
"layers",
"charts",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.keys",
list(web_messages_zh["iwooos"]["topologyAtlas"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.keys",
list(web_messages_en["iwooos"]["topologyAtlas"].keys()),
key,
)
for key in ["evidence", "next", "locked"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.panelLabels",
list(web_messages_zh["iwooos"]["topologyAtlas"]["panelLabels"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.panelLabels",
list(web_messages_en["iwooos"]["topologyAtlas"]["panelLabels"].keys()),
key,
)
for key in ["eyebrow", "selectorLabel", "fields", "paths"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.pathExplorer.keys",
list(web_messages_zh["iwooos"]["topologyAtlas"]["pathExplorer"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.pathExplorer.keys",
list(web_messages_en["iwooos"]["topologyAtlas"]["pathExplorer"].keys()),
key,
)
for key in ["evidence", "risk", "next", "locked"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.pathExplorer.fields",
list(web_messages_zh["iwooos"]["topologyAtlas"]["pathExplorer"]["fields"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.pathExplorer.fields",
list(web_messages_en["iwooos"]["topologyAtlas"]["pathExplorer"]["fields"].keys()),
key,
)
for key in ["externalToGate", "sourceToHost", "kaliToDev", "evidenceToGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.pathExplorer.paths",
list(web_messages_zh["iwooos"]["topologyAtlas"]["pathExplorer"]["paths"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.pathExplorer.paths",
list(web_messages_en["iwooos"]["topologyAtlas"]["pathExplorer"]["paths"].keys()),
key,
)
for field in ["title", "evidence", "risk", "next", "locked"]:
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.pathExplorer.paths.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["pathExplorer"]["paths"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.pathExplorer.paths.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["pathExplorer"]["paths"][key].keys()),
field,
)
for key in ["eyebrow", "title", "subtitle", "selectorLabel", "ringLabel", "fields", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.intelligenceDeck.keys",
list(web_messages_zh["iwooos"]["topologyAtlas"]["intelligenceDeck"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.intelligenceDeck.keys",
list(web_messages_en["iwooos"]["topologyAtlas"]["intelligenceDeck"].keys()),
key,
)
for key in ["signal", "interpretation", "next"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.intelligenceDeck.fields",
list(web_messages_zh["iwooos"]["topologyAtlas"]["intelligenceDeck"]["fields"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.intelligenceDeck.fields",
list(web_messages_en["iwooos"]["topologyAtlas"]["intelligenceDeck"]["fields"].keys()),
key,
)
for key in ["assetContext", "attackPath", "blastRadius", "evidenceTimeline"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.intelligenceDeck.items",
list(web_messages_zh["iwooos"]["topologyAtlas"]["intelligenceDeck"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.intelligenceDeck.items",
list(web_messages_en["iwooos"]["topologyAtlas"]["intelligenceDeck"]["items"].keys()),
key,
)
for field in ["title", "signal", "interpretation", "next", "ring"]:
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.intelligenceDeck.items.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["intelligenceDeck"]["items"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.intelligenceDeck.items.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["intelligenceDeck"]["items"][key].keys()),
field,
)
for key in ["eyebrow", "selectorLabel", "fields", "nodes"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.keys",
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.keys",
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"].keys()),
key,
)
for key in ["relation", "evidence", "next", "boundary"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.fields",
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"]["fields"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.fields",
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"]["fields"].keys()),
key,
)
for key in ["productSurface", "sourceControl", "kali", "devHosts", "monitoring", "awooopTruth", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.nodes",
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.nodes",
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.nodeDrilldown.nodes.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"][key].keys()),
"body",
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.nodeDrilldown.nodes.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["nodeDrilldown"]["nodes"][key].keys()),
"body",
)
for key in ["architecture", "topology", "attackSurface", "evidenceFlow"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.lenses",
list(web_messages_zh["iwooos"]["topologyAtlas"]["lenses"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.lenses",
list(web_messages_en["iwooos"]["topologyAtlas"]["lenses"].keys()),
key,
)
for field in ["title", "mapTitle", "detail", "evidence", "next", "locked"]:
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.lenses.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["lenses"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.lenses.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["lenses"][key].keys()),
field,
)
for key in ["productSurface", "sourceControl", "kali", "devHosts", "monitoring", "awooopTruth", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.nodes",
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.nodes",
list(web_messages_en["iwooos"]["topologyAtlas"]["nodes"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.nodes.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["nodes"][key].keys()),
"title",
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.nodes.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["nodes"][key].keys()),
"title",
)
for key in ["externalSurface", "codeSupply", "hostFabric", "evidenceOps", "gateControl"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.layers",
list(web_messages_zh["iwooos"]["topologyAtlas"]["layers"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.layers",
list(web_messages_en["iwooos"]["topologyAtlas"]["layers"].keys()),
key,
)
for field in ["title", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.layers.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["layers"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.layers.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["layers"][key].keys()),
field,
)
for key in ["contextDepth", "blastRadius", "evidenceFreshness"]:
assert_contains(
"web_messages.zh-TW.iwooos.topologyAtlas.charts",
list(web_messages_zh["iwooos"]["topologyAtlas"]["charts"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.topologyAtlas.charts",
list(web_messages_en["iwooos"]["topologyAtlas"]["charts"].keys()),
key,
)
for field in ["label", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.topologyAtlas.charts.{key}",
list(web_messages_zh["iwooos"]["topologyAtlas"]["charts"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.topologyAtlas.charts.{key}",
list(web_messages_en["iwooos"]["topologyAtlas"]["charts"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.decisionRunway",
list(web_messages_zh["iwooos"].keys()),
"decisionRunway",
)
assert_contains(
"web_messages.en.iwooos.decisionRunway",
list(web_messages_en["iwooos"].keys()),
"decisionRunway",
)
for key in [
"eyebrow",
"title",
"subtitle",
"railLabel",
"selectorLabel",
"fields",
"boundarySignals",
"steps",
"dependencies",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.decisionRunway.keys",
list(web_messages_zh["iwooos"]["decisionRunway"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.decisionRunway.keys",
list(web_messages_en["iwooos"]["decisionRunway"].keys()),
key,
)
for key in ["evidence", "next", "blocked"]:
assert_contains(
"web_messages.zh-TW.iwooos.decisionRunway.fields",
list(web_messages_zh["iwooos"]["decisionRunway"]["fields"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.decisionRunway.fields",
list(web_messages_en["iwooos"]["decisionRunway"]["fields"].keys()),
key,
)
for key in expected_decision_runway_boundary_signal_ids:
assert_contains(
"web_messages.zh-TW.iwooos.decisionRunway.boundarySignals",
list(web_messages_zh["iwooos"]["decisionRunway"]["boundarySignals"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.decisionRunway.boundarySignals",
list(web_messages_en["iwooos"]["decisionRunway"]["boundarySignals"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.decisionRunway.boundarySignals.{key}",
list(web_messages_zh["iwooos"]["decisionRunway"]["boundarySignals"][key].keys()),
"label",
)
assert_contains(
f"web_messages.en.iwooos.decisionRunway.boundarySignals.{key}",
list(web_messages_en["iwooos"]["decisionRunway"]["boundarySignals"][key].keys()),
"label",
)
for key in expected_decision_runway_step_ids:
assert_contains(
"web_messages.zh-TW.iwooos.decisionRunway.steps",
list(web_messages_zh["iwooos"]["decisionRunway"]["steps"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.decisionRunway.steps",
list(web_messages_en["iwooos"]["decisionRunway"]["steps"].keys()),
key,
)
for field in ["short", "title", "body", "evidence", "next", "blocked"]:
assert_contains(
f"web_messages.zh-TW.iwooos.decisionRunway.steps.{key}",
list(web_messages_zh["iwooos"]["decisionRunway"]["steps"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.decisionRunway.steps.{key}",
list(web_messages_en["iwooos"]["decisionRunway"]["steps"][key].keys()),
field,
)
for key in expected_decision_runway_dependency_ids:
assert_contains(
"web_messages.zh-TW.iwooos.decisionRunway.dependencies",
list(web_messages_zh["iwooos"]["decisionRunway"]["dependencies"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.decisionRunway.dependencies",
list(web_messages_en["iwooos"]["decisionRunway"]["dependencies"].keys()),
key,
)
for field in ["title", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.decisionRunway.dependencies.{key}",
list(web_messages_zh["iwooos"]["decisionRunway"]["dependencies"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.decisionRunway.dependencies.{key}",
list(web_messages_en["iwooos"]["decisionRunway"]["dependencies"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.gateRadar",
list(web_messages_zh["iwooos"].keys()),
"gateRadar",
)
assert_contains(
"web_messages.en.iwooos.gateRadar",
list(web_messages_en["iwooos"].keys()),
"gateRadar",
)
for key in [
"eyebrow",
"title",
"subtitle",
"tabsLabel",
"activeLabel",
"summary",
"panelLabels",
"lanes",
"boundaryTitle",
"boundaryIntro",
]:
assert_contains(
"web_messages.zh-TW.iwooos.gateRadar.keys",
list(web_messages_zh["iwooos"]["gateRadar"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.gateRadar.keys",
list(web_messages_en["iwooos"]["gateRadar"].keys()),
key,
)
for key in ["visibleScope", "currentBlocker", "runtimeGate"]:
assert_contains(
"web_messages.zh-TW.iwooos.gateRadar.summary",
list(web_messages_zh["iwooos"]["gateRadar"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.gateRadar.summary",
list(web_messages_en["iwooos"]["gateRadar"]["summary"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.gateRadar.summary.{key}",
list(web_messages_zh["iwooos"]["gateRadar"]["summary"][key].keys()),
"label",
)
assert_contains(
f"web_messages.en.iwooos.gateRadar.summary.{key}",
list(web_messages_en["iwooos"]["gateRadar"]["summary"][key].keys()),
"label",
)
for key in ["evidence", "next", "locked"]:
assert_contains(
"web_messages.zh-TW.iwooos.gateRadar.panelLabels",
list(web_messages_zh["iwooos"]["gateRadar"]["panelLabels"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.gateRadar.panelLabels",
list(web_messages_en["iwooos"]["gateRadar"]["panelLabels"].keys()),
key,
)
for key in ["visible", "blocker", "review", "locked"]:
assert_contains(
"web_messages.zh-TW.iwooos.gateRadar.lanes",
list(web_messages_zh["iwooos"]["gateRadar"]["lanes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.gateRadar.lanes",
list(web_messages_en["iwooos"]["gateRadar"]["lanes"].keys()),
key,
)
for field in ["title", "state", "detail", "evidence", "next", "locked"]:
assert_contains(
f"web_messages.zh-TW.iwooos.gateRadar.lanes.{key}",
list(web_messages_zh["iwooos"]["gateRadar"]["lanes"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.gateRadar.lanes.{key}",
list(web_messages_en["iwooos"]["gateRadar"]["lanes"][key].keys()),
field,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_slot_count=5",
"iwooos_first_unlock_evidence_packet_current_focus=s4_9_owner_response",
"iwooos_first_unlock_evidence_packet_filled_count=0",
"iwooos_first_unlock_evidence_packet_accepted_count=0",
"iwooos_first_unlock_evidence_packet_redacted_pointer_required=true",
"iwooos_first_unlock_evidence_packet_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacket",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacket",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacket",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacket",
)
for key in ["title", "subtitle", "summary", "items", "slotLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacket.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacket"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacket.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacket"].keys()),
key,
)
for key in ["slots", "filled", "accepted", "payload"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacket.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacket"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacket.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacket"]["summary"].keys()),
key,
)
for key in [
"ownerDecisionMetadata",
"scopeEvidenceRefs",
"redactionAttestation",
"preflightTrace",
"reviewAcceptanceSummary",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacket.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacket"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacket.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacket"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_preflight_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-preflight-outcome-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_preflight_outcome_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketPreflightOutcomeBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_preflight_outcome_lane_count=6",
"iwooos_first_unlock_evidence_packet_preflight_ready_for_review_count=0",
"iwooos_first_unlock_evidence_packet_preflight_needs_supplement_count=0",
"iwooos_first_unlock_evidence_packet_preflight_quarantined_count=0",
"iwooos_first_unlock_evidence_packet_preflight_rejected_count=0",
"iwooos_first_unlock_evidence_packet_review_accepted_count=0",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_preflight_outcome_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketPreflightOutcomes",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketPreflightOutcomes",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketPreflightOutcomes",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketPreflightOutcomes",
)
for key in ["title", "subtitle", "summary", "items", "laneLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketPreflightOutcomes.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketPreflightOutcomes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketPreflightOutcomes.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketPreflightOutcomes"].keys()),
key,
)
for key in ["lanes", "ready", "quarantine", "accepted"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketPreflightOutcomes.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketPreflightOutcomes"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketPreflightOutcomes.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketPreflightOutcomes"]["summary"].keys()),
key,
)
for key in [
"readyForReview",
"needsOwnerMetadata",
"needsScopeRefs",
"quarantineRawPayload",
"rejectSecretValue",
"waitingReviewer",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketPreflightOutcomes.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketPreflightOutcomes"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketPreflightOutcomes.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketPreflightOutcomes"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_path_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-supplement-path-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_path_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketSupplementPathBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_supplement_path_step_count=5",
"iwooos_first_unlock_evidence_packet_supplement_current_focus=owner_metadata_and_scope_refs",
"iwooos_first_unlock_evidence_packet_supplement_ready_count=0",
"iwooos_first_unlock_evidence_packet_supplement_submitted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_accepted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_blocked_count=0",
"iwooos_first_unlock_evidence_packet_supplement_quarantined_count=0",
"iwooos_first_unlock_evidence_packet_supplement_request_sent=false",
"iwooos_first_unlock_evidence_packet_supplement_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_supplement_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_path_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPath",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketSupplementPath",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPath",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketSupplementPath",
)
for key in ["title", "subtitle", "summary", "items", "stepLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPath.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPath"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPath.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPath"].keys()),
key,
)
for key in ["steps", "ready", "submitted", "accepted"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPath.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPath"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPath.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPath"]["summary"].keys()),
key,
)
for key in [
"ownerMetadataPatch",
"scopeRefsPatch",
"redactionPatch",
"preflightTracePatch",
"reviewerQueuePatch",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPath.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPath"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPath.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPath"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_pre_review_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-supplement-pre-review-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_pre_review_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketSupplementPreReviewBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_supplement_pre_review_check_count=6",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_current_focus=supplement_pre_review",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_passed_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_failed_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_ready_for_review_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_queue_open=false",
"iwooos_first_unlock_evidence_packet_supplement_request_sent=false",
"iwooos_first_unlock_evidence_packet_supplement_submitted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_accepted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_supplement_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_pre_review_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReview",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketSupplementPreReview",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReview",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketSupplementPreReview",
)
for key in ["title", "subtitle", "summary", "items", "checkLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReview.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPreReview"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReview.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPreReview"].keys()),
key,
)
for key in ["checks", "passed", "ready", "queue"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReview.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPreReview"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReview.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPreReview"]["summary"].keys()),
key,
)
for key in [
"ownerMetadataComplete",
"scopeRefsTraceable",
"redactionAttested",
"preflightTraceAttached",
"noMutationClauseHeld",
"reviewerQueueReady",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReview.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPreReview"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReview.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPreReview"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_pre_review_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-supplement-pre-review-outcome-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_pre_review_outcome_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketSupplementPreReviewOutcomeBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_supplement_pre_review_outcome_lane_count=6",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_ready_for_queue_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_returned_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_quarantined_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_rejected_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_reviewer_assigned_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_queue_open=false",
"iwooos_first_unlock_evidence_packet_supplement_request_sent=false",
"iwooos_first_unlock_evidence_packet_supplement_submitted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_accepted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_supplement_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_supplement_pre_review_outcome_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketSupplementPreReviewOutcomes",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketSupplementPreReviewOutcomes",
)
for key in ["title", "subtitle", "summary", "items", "outcomeLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPreReviewOutcomes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPreReviewOutcomes"].keys()),
key,
)
for key in ["lanes", "ready", "returned", "assigned"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPreReviewOutcomes"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPreReviewOutcomes"]["summary"].keys()),
key,
)
for key in [
"readyForReviewerQueue",
"returnToSupplement",
"quarantineSensitiveMaterial",
"rejectMutationRequest",
"keepQueueClosed",
"waitReviewerAssignment",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketSupplementPreReviewOutcomes"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketSupplementPreReviewOutcomes.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketSupplementPreReviewOutcomes"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preparation_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-reviewer-assignment-preparation-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preparation_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketReviewerAssignmentPreparationBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation_packet_count=6",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation_current_focus=reviewer_assignment_preparation",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation_ready_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation_reviewer_candidate_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation_reviewer_assigned_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preparation_audit_event_emitted=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_ready_for_queue_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_queue_open=false",
"iwooos_first_unlock_evidence_packet_supplement_request_sent=false",
"iwooos_first_unlock_evidence_packet_supplement_submitted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_accepted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_supplement_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preparation_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketReviewerAssignmentPreparation",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketReviewerAssignmentPreparation",
)
for key in ["title", "subtitle", "summary", "items", "packetLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreparation"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreparation"].keys()),
key,
)
for key in ["packets", "ready", "candidates", "assigned"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreparation"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreparation"]["summary"].keys()),
key,
)
for key in [
"queueStatusFreeze",
"reviewerRoleBoundary",
"scopePacket",
"evidencePointerIndex",
"conflictDisclosure",
"assignmentAuditDraft",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreparation"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreparation.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreparation"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preflight_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-reviewer-assignment-preflight-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preflight_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketReviewerAssignmentPreflightBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_check_count=6",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_current_focus=reviewer_assignment_preflight",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_passed_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_failed_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_ready_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_reviewer_candidate_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_reviewer_assigned_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_queue_open=false",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_audit_event_emitted=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_ready_for_queue_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_queue_open=false",
"iwooos_first_unlock_evidence_packet_supplement_request_sent=false",
"iwooos_first_unlock_evidence_packet_supplement_submitted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_accepted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_supplement_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preflight_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketReviewerAssignmentPreflight",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketReviewerAssignmentPreflight",
)
for key in ["title", "subtitle", "summary", "items", "checkLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflight"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflight"].keys()),
key,
)
for key in ["checks", "passed", "ready", "assigned"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflight"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflight"]["summary"].keys()),
key,
)
for key in [
"queueStillClosed",
"roleBoundaryTraceable",
"scopePacketTraceable",
"evidenceIndexRedacted",
"conflictDisclosureClear",
"auditDraftMetadataOnly",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflight"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflight.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflight"]["items"].keys()),
key,
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_testid",
iwooos_projection_page,
'data-testid="iwooos-first-unlock-evidence-packet-reviewer-assignment-preflight-outcome-board"',
)
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_component",
iwooos_projection_page,
"IwoooSFirstUnlockEvidencePacketReviewerAssignmentPreflightOutcomeBoard",
)
for text in [
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_lane_count=6",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_current_focus=reviewer_assignment_preflight_outcomes",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_ready_for_candidate_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_returned_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_quarantined_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_conflict_hold_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_audit_event_emitted=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_reviewer_candidate_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_reviewer_assigned_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_queue_open=false",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_passed_count=0",
"iwooos_first_unlock_evidence_packet_reviewer_assignment_preflight_ready_count=0",
"iwooos_first_unlock_evidence_packet_supplement_pre_review_queue_open=false",
"iwooos_first_unlock_evidence_packet_supplement_request_sent=false",
"iwooos_first_unlock_evidence_packet_supplement_submitted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_accepted_count=0",
"iwooos_first_unlock_evidence_packet_supplement_raw_payload_allowed=false",
"iwooos_first_unlock_evidence_packet_supplement_secret_value_allowed=false",
"iwooos_first_unlock_evidence_packet_headline_review_authorized=false",
"iwooos_first_unlock_evidence_packet_runtime_gate_opened=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
"secret_value_collection_allowed=false",
"repo_creation_authorized=false",
"refs_sync_authorized=false",
"workflow_modification_authorized=false",
"github_primary_switch_authorized=false",
"gitea_disablement_authorized=false",
]:
assert_text_contains(
"iwooos_page.first_unlock_evidence_packet_reviewer_assignment_preflight_outcome_boundary",
iwooos_projection_page,
text,
)
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome",
list(web_messages_zh["iwooos"].keys()),
"firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome",
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome",
list(web_messages_en["iwooos"].keys()),
"firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome",
)
for key in ["title", "subtitle", "summary", "items", "outcomeLabel", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome.keys",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome.keys",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome"].keys()),
key,
)
for key in ["outcomes", "candidates", "assigned", "audit"]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome.summary",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome.summary",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome"]["summary"].keys()),
key,
)
for key in [
"keepQueueClosed",
"returnRoleBoundary",
"returnScopePacket",
"quarantineEvidenceIndex",
"holdConflictDisclosure",
"keepAuditDraftMetadataOnly",
]:
assert_contains(
"web_messages.zh-TW.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome.items",
list(web_messages_zh["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome.items",
list(web_messages_en["iwooos"]["firstUnlockEvidencePacketReviewerAssignmentPreflightOutcome"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"compactTitle",
"compactDetail",
"openIwooos",
"sourceLabel",
"sourceDetail",
"boundaryLabel",
"metrics",
]:
assert_contains(
"web_messages.zh-TW.security.iwooosBridge",
list(web_messages_zh["security"]["iwooosBridge"].keys()),
key,
)
assert_contains(
"web_messages.en.security.iwooosBridge",
list(web_messages_en["security"]["iwooosBridge"].keys()),
key,
)
for key in ["overall", "framework", "runtimeGates", "actions"]:
assert_contains(
"web_messages.zh-TW.security.iwooosBridge.metrics",
list(web_messages_zh["security"]["iwooosBridge"]["metrics"].keys()),
key,
)
assert_contains(
"web_messages.en.security.iwooosBridge.metrics",
list(web_messages_en["security"]["iwooosBridge"]["metrics"].keys()),
key,
)
for key in ["title", "subtitle", "states", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.surfaceConnections",
list(web_messages_zh["iwooos"]["surfaceConnections"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.surfaceConnections",
list(web_messages_en["iwooos"]["surfaceConnections"].keys()),
key,
)
for key in ["embeddedBridge", "directBridge", "awooopCandidate"]:
assert_contains(
"web_messages.zh-TW.iwooos.surfaceConnections.states",
list(web_messages_zh["iwooos"]["surfaceConnections"]["states"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.surfaceConnections.states",
list(web_messages_en["iwooos"]["surfaceConnections"]["states"].keys()),
key,
)
for key in [
"securityCompliance",
"legacySecurity",
"legacyCompliance",
"alerts",
"errors",
"authorizations",
"governance",
"alertOperationLogs",
"awooopApprovals",
"codeReview",
]:
assert_contains(
"web_messages.zh-TW.iwooos.surfaceConnections.items",
list(web_messages_zh["iwooos"]["surfaceConnections"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.surfaceConnections.items",
list(web_messages_en["iwooos"]["surfaceConnections"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "gateLabel", "guardLabel", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.sourceControlReadiness",
list(web_messages_zh["iwooos"]["sourceControlReadiness"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.sourceControlReadiness",
list(web_messages_en["iwooos"]["sourceControlReadiness"].keys()),
key,
)
for key in [
"candidateRepos",
"primaryReady",
"ownerResponses",
"refsTruth",
"workflowSecrets",
"rollbackAdr",
]:
assert_contains(
"web_messages.zh-TW.iwooos.sourceControlReadiness.items",
list(web_messages_zh["iwooos"]["sourceControlReadiness"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.sourceControlReadiness.items",
list(web_messages_en["iwooos"]["sourceControlReadiness"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "routeLabel", "stageLabel", "boundaryLabel", "guardTitle", "summary", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.awooopCoverage",
list(web_messages_zh["iwooos"]["awooopCoverage"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.awooopCoverage",
list(web_messages_en["iwooos"]["awooopCoverage"].keys()),
key,
)
for key in ["routes", "covered", "runtimeGates", "actions"]:
assert_contains(
"web_messages.zh-TW.iwooos.awooopCoverage.summary",
list(web_messages_zh["iwooos"]["awooopCoverage"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.awooopCoverage.summary",
list(web_messages_en["iwooos"]["awooopCoverage"]["summary"].keys()),
key,
)
for key in ["home", "workItems", "contracts", "tenants", "runs", "runDetail", "approvals", "approvalDecision"]:
assert_contains(
"web_messages.zh-TW.iwooos.awooopCoverage.items",
list(web_messages_zh["iwooos"]["awooopCoverage"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.awooopCoverage.items",
list(web_messages_en["iwooos"]["awooopCoverage"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "movementLabel", "guardLabel", "boundaryTitle", "summary", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.securityConvergenceRoadmap",
list(web_messages_zh["iwooos"]["securityConvergenceRoadmap"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.securityConvergenceRoadmap",
list(web_messages_en["iwooos"]["securityConvergenceRoadmap"].keys()),
key,
)
for key in ["mode", "coverage", "accepted", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.securityConvergenceRoadmap.summary",
list(web_messages_zh["iwooos"]["securityConvergenceRoadmap"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.securityConvergenceRoadmap.summary",
list(web_messages_en["iwooos"]["securityConvergenceRoadmap"]["summary"].keys()),
key,
)
for key in [
"visibilityFirst",
"ownerResponse",
"redactedEvidence",
"humanDecision",
"runtimeGate",
"sourceControlCutover",
]:
assert_contains(
"web_messages.zh-TW.iwooos.securityConvergenceRoadmap.items",
list(web_messages_zh["iwooos"]["securityConvergenceRoadmap"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.securityConvergenceRoadmap.items",
list(web_messages_en["iwooos"]["securityConvergenceRoadmap"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "packetLabel", "movementLabel", "guardLabel", "boundaryTitle", "summary", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseCollectionBoard",
list(web_messages_zh["iwooos"]["ownerResponseCollectionBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseCollectionBoard",
list(web_messages_en["iwooos"]["ownerResponseCollectionBoard"].keys()),
key,
)
for key in ["packets", "templates", "received", "accepted"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseCollectionBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseCollectionBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseCollectionBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseCollectionBoard"]["summary"].keys()),
key,
)
for key in ["giteaAttestation", "githubTarget", "refsTruth", "workflowSecretNames"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseCollectionBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseCollectionBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseCollectionBoard.items",
list(web_messages_en["iwooos"]["ownerResponseCollectionBoard"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "laneLabel", "ruleLabel", "guardLabel", "boundaryTitle", "summary", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseIntakeSafetyBoard",
list(web_messages_zh["iwooos"]["ownerResponseIntakeSafetyBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseIntakeSafetyBoard",
list(web_messages_en["iwooos"]["ownerResponseIntakeSafetyBoard"].keys()),
key,
)
for key in ["rules", "ingested", "quarantined", "rejected"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseIntakeSafetyBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseIntakeSafetyBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseIntakeSafetyBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseIntakeSafetyBoard"]["summary"].keys()),
key,
)
for key in [
"redactedEvidenceOnly",
"ownerScopeCompletion",
"secretValueQuarantine",
"repoMutationRequest",
"refsMutationRequest",
"runtimeExecutionRequest",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseIntakeSafetyBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseIntakeSafetyBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseIntakeSafetyBoard.items",
list(web_messages_en["iwooos"]["ownerResponseIntakeSafetyBoard"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "laneLabel", "resultLabel", "guardLabel", "boundaryTitle", "summary", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseReviewOutcomeBoard",
list(web_messages_zh["iwooos"]["ownerResponseReviewOutcomeBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseReviewOutcomeBoard",
list(web_messages_en["iwooos"]["ownerResponseReviewOutcomeBoard"].keys()),
key,
)
for key in ["lanes", "ready", "accepted", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseReviewOutcomeBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseReviewOutcomeBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseReviewOutcomeBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseReviewOutcomeBoard"]["summary"].keys()),
key,
)
for key in [
"remainWaiting",
"needsEvidence",
"readyForHumanReview",
"quarantined",
"rejected",
"readonlyUpdate",
"humanDecisionRequired",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseReviewOutcomeBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseReviewOutcomeBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseReviewOutcomeBoard.items",
list(web_messages_en["iwooos"]["ownerResponseReviewOutcomeBoard"]["items"].keys()),
key,
)
for key in ["title", "subtitle", "queueLabel", "prepLabel", "guardLabel", "boundaryTitle", "summary", "items"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseHumanDecisionQueueBoard",
list(web_messages_zh["iwooos"]["ownerResponseHumanDecisionQueueBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseHumanDecisionQueueBoard",
list(web_messages_en["iwooos"]["ownerResponseHumanDecisionQueueBoard"].keys()),
key,
)
for key in ["queueItems", "ready", "approved", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseHumanDecisionQueueBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseHumanDecisionQueueBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseHumanDecisionQueueBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseHumanDecisionQueueBoard"]["summary"].keys()),
key,
)
for key in [
"decisionPacketDraft",
"evidenceTraceBundle",
"reviewerAssignment",
"rollbackWindowCandidate",
"runtimeGateSeparated",
"sourceControlCutoverSeparated",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseHumanDecisionQueueBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseHumanDecisionQueueBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseHumanDecisionQueueBoard.items",
list(web_messages_en["iwooos"]["ownerResponseHumanDecisionQueueBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"guardItemLabel",
"draftLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseDecisionRecordDraftGuardBoard",
list(web_messages_zh["iwooos"]["ownerResponseDecisionRecordDraftGuardBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseDecisionRecordDraftGuardBoard",
list(web_messages_en["iwooos"]["ownerResponseDecisionRecordDraftGuardBoard"].keys()),
key,
)
for key in ["guards", "drafts", "formalRecords", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseDecisionRecordDraftGuardBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseDecisionRecordDraftGuardBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseDecisionRecordDraftGuardBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseDecisionRecordDraftGuardBoard"]["summary"].keys()),
key,
)
for key in [
"recordIdentityDraft",
"decisionScopeSnapshot",
"reviewerRolePlaceholder",
"evidenceVersionFreeze",
"approvalNotExecutionBoundary",
"followupRuntimeGatePointer",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseDecisionRecordDraftGuardBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseDecisionRecordDraftGuardBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseDecisionRecordDraftGuardBoard.items",
list(web_messages_en["iwooos"]["ownerResponseDecisionRecordDraftGuardBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"checkItemLabel",
"preflightLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordCandidatePreflightBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordCandidatePreflightBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordCandidatePreflightBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordCandidatePreflightBoard"].keys()),
key,
)
for key in ["checks", "candidates", "formalRecords", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordCandidatePreflightBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordCandidatePreflightBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordCandidatePreflightBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordCandidatePreflightBoard"]["summary"].keys()),
key,
)
for key in [
"candidateIdentityTrace",
"reviewerIdentityBoundary",
"evidenceVersionChain",
"scopeAndExpiry",
"riskRollbackField",
"runtimeGateSeparation",
"sourceControlSeparation",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordCandidatePreflightBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordCandidatePreflightBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordCandidatePreflightBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordCandidatePreflightBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"laneLabel",
"resultLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordCandidateOutcomeBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordCandidateOutcomeBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordCandidateOutcomeBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordCandidateOutcomeBoard"].keys()),
key,
)
for key in ["lanes", "ready", "promoted", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordCandidateOutcomeBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordCandidateOutcomeBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordCandidateOutcomeBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordCandidateOutcomeBoard"]["summary"].keys()),
key,
)
for key in [
"remainCandidateWaiting",
"returnToDraft",
"needsEvidenceRefresh",
"needsReviewerClarification",
"readyForRecordOwner",
"quarantineSensitivePayload",
"rejectMutationRequest",
"runtimeOrCutoverGateRequired",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordCandidateOutcomeBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordCandidateOutcomeBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordCandidateOutcomeBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordCandidateOutcomeBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"packetLabel",
"handoffLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffBoard"].keys()),
key,
)
for key in ["packets", "ready", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffBoard"]["summary"].keys()),
key,
)
for key in [
"handoffIdentityBundle",
"handoffDecisionContext",
"handoffEvidenceLock",
"handoffReviewerNotes",
"handoffRiskRollback",
"handoffRuntimeGatePointer",
"handoffSourceControlPointer",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"checkLabel",
"reviewLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffReviewBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffReviewBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewBoard"].keys()),
key,
)
for key in ["checks", "passed", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffReviewBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffReviewBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewBoard"]["summary"].keys()),
key,
)
for key in [
"packetCompleteness",
"recordOwnerIdentityScope",
"authorityBoundaryMatch",
"evidenceVersionConfirm",
"reviewerNoteConfirm",
"mutationRequestReject",
"runtimeCutoverSeparation",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffReviewBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffReviewBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"laneLabel",
"resultLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard"].keys()),
key,
)
for key in ["lanes", "ready", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard"]["summary"].keys()),
key,
)
for key in [
"remainReviewWaiting",
"requestPacketCompletion",
"requestOwnerScopeClarification",
"requestEvidenceRefresh",
"readyForRecordOwnerReview",
"quarantineSensitivePayload",
"rejectMutationRequest",
"runtimeOrCutoverGateRequired",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerHandoffReviewOutcomeBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"packetLabel",
"prepareLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewPreparationBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewPreparationBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewPreparationBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewPreparationBoard"].keys()),
key,
)
for key in ["packets", "ready", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewPreparationBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewPreparationBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewPreparationBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewPreparationBoard"]["summary"].keys()),
key,
)
for key in [
"reviewIdentityPacket",
"handoffOutcomeSnapshot",
"ownerScopePacket",
"authorityBoundaryPacket",
"evidenceTracePacket",
"reviewerNotePacket",
"mutationRejectionPacket",
"runtimeCutoverPointer",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewPreparationBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewPreparationBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewPreparationBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewPreparationBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"checkLabel",
"reviewLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewChecklistBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewChecklistBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewChecklistBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewChecklistBoard"].keys()),
key,
)
for key in ["checks", "passed", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewChecklistBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewChecklistBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewChecklistBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewChecklistBoard"]["summary"].keys()),
key,
)
for key in [
"identityTraceCheck",
"handoffOutcomeCheck",
"ownerScopeCheck",
"authorityBoundaryCheck",
"evidenceTraceCheck",
"reviewerNoteCheck",
"mutationRejectionCheck",
"runtimeCutoverSeparationCheck",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewChecklistBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewChecklistBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewChecklistBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewChecklistBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"laneLabel",
"resultLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewOutcomeBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewOutcomeBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewOutcomeBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewOutcomeBoard"].keys()),
key,
)
for key in ["lanes", "ready", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewOutcomeBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewOutcomeBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewOutcomeBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewOutcomeBoard"]["summary"].keys()),
key,
)
for key in [
"remainOwnerReviewWaiting",
"requestTraceCompletion",
"requestOwnerScopeClarification",
"requestAuthorityBoundaryFix",
"readyForManualOwnerAssignmentReview",
"quarantineSensitivePayload",
"rejectMutationRequest",
"runtimeOrPrimaryGateRequired",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerReviewOutcomeBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerReviewOutcomeBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerReviewOutcomeBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerReviewOutcomeBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"packetLabel",
"preparationLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentPreparationBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentPreparationBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentPreparationBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentPreparationBoard"].keys()),
key,
)
for key in ["packets", "ready", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentPreparationBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentPreparationBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentPreparationBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentPreparationBoard"]["summary"].keys()),
key,
)
for key in [
"assignmentIdentityCandidate",
"ownerScopeConfirmation",
"authorityBoundaryConfirmation",
"evidenceTraceConfirmation",
"reviewOutcomeReference",
"backupOwnerNote",
"mutationRejectionConfirmation",
"runtimePrimarySeparation",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentPreparationBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentPreparationBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentPreparationBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentPreparationBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"checkLabel",
"confirmationLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentChecklistBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentChecklistBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentChecklistBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentChecklistBoard"].keys()),
key,
)
for key in ["checks", "passed", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentChecklistBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentChecklistBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentChecklistBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentChecklistBoard"]["summary"].keys()),
key,
)
for key in [
"assignmentIdentityReadable",
"ownerScopeCurrent",
"authorityBoundaryReadable",
"evidenceTraceReadable",
"reviewOutcomeLinked",
"backupOwnerNoteReadable",
"mutationRejectionConfirmed",
"runtimePrimarySeparated",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentChecklistBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentChecklistBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentChecklistBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentChecklistBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"laneLabel",
"resultLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentOutcomeBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentOutcomeBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentOutcomeBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentOutcomeBoard"].keys()),
key,
)
for key in ["lanes", "ready", "assigned", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentOutcomeBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentOutcomeBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentOutcomeBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentOutcomeBoard"]["summary"].keys()),
key,
)
for key in [
"remainAssignmentCheckWaiting",
"requestIdentityClarification",
"requestScopeRefresh",
"requestAuthorityBoundaryFix",
"readyForManualOwnerAssignmentDecision",
"quarantineSensitivePayload",
"rejectMutationRequest",
"runtimeOrPrimaryGateRequired",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentOutcomeBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentOutcomeBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentOutcomeBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentOutcomeBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"packetLabel",
"requirementLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard"].keys()),
key,
)
for key in ["packets", "ready", "decisions", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard"]["summary"].keys()),
key,
)
for key in [
"outcomeTracePacket",
"ownerIdentityPacket",
"scopeSnapshotPacket",
"authorityBoundaryPacket",
"evidenceReviewPacket",
"quarantineAndExceptionPacket",
"mutationRejectionPacket",
"runtimePrimaryGatePacket",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionPreparationBoard"]["items"].keys()),
key,
)
for key in [
"title",
"subtitle",
"checkLabel",
"confirmationLabel",
"guardLabel",
"boundaryTitle",
"summary",
"items",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard"].keys()),
key,
)
for key in ["checks", "passed", "decisions", "runtime"]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard.summary",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard"]["summary"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard.summary",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard"]["summary"].keys()),
key,
)
for key in [
"decisionTraceReadable",
"ownerIdentityConfirmable",
"scopeSnapshotCurrent",
"authorityBoundaryChecked",
"evidenceChainReadable",
"quarantineExceptionChecked",
"mutationRejectionChecked",
"runtimePrimarySeparated",
]:
assert_contains(
"web_messages.zh-TW.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard.items",
list(web_messages_zh["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard"]["items"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard.items",
list(web_messages_en["iwooos"]["ownerResponseFormalRecordOwnerAssignmentDecisionChecklistBoard"]["items"].keys()),
key,
)
owner_summary = owner_rollup["summary"]
assert_equal("owner_rollup.total_received_response_count", owner_summary["total_received_response_count"], 0)
assert_equal("owner_rollup.total_accepted_response_count", owner_summary["total_accepted_response_count"], 0)
assert_equal("owner_rollup.owner_response_evidence_routing_rule_count", owner_summary["owner_response_evidence_routing_rule_count"], 6)
assert_equal("owner_rollup.owner_response_validation_display_section_count", owner_summary["owner_response_validation_display_section_count"], 8)
assert_equal(
"owner_rollup.owner_response_validation_state_transition_rule_count",
owner_summary["owner_response_validation_state_transition_rule_count"],
7,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_checklist_count",
owner_summary["owner_response_validation_reviewer_checklist_count"],
9,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_outcome_lane_count",
owner_summary["owner_response_validation_reviewer_outcome_lane_count"],
7,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_event_template_count",
owner_summary["owner_response_validation_reviewer_audit_event_template_count"],
4,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_display_section_count",
owner_summary["owner_response_validation_reviewer_audit_display_section_count"],
5,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_collection_check_count",
owner_summary["owner_response_validation_reviewer_audit_collection_check_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_redaction_example_count",
owner_summary["owner_response_validation_reviewer_audit_redaction_example_count"],
5,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_retention_rule_count",
owner_summary["owner_response_validation_reviewer_audit_retention_rule_count"],
5,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_retention_check_count",
owner_summary["owner_response_validation_reviewer_audit_retention_check_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_handoff_packet_count",
owner_summary["owner_response_validation_reviewer_audit_handoff_packet_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_reviewer_audit_handoff_check_count",
owner_summary["owner_response_validation_reviewer_audit_handoff_check_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_parallel_session_sync_check_count",
owner_summary["owner_response_validation_parallel_session_sync_check_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_parallel_session_conflict_lane_count",
owner_summary["owner_response_validation_parallel_session_conflict_lane_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_parallel_session_recovery_check_count",
owner_summary["owner_response_validation_parallel_session_recovery_check_count"],
6,
)
assert_equal(
"owner_rollup.owner_response_validation_parallel_session_recovery_outcome_lane_count",
owner_summary["owner_response_validation_parallel_session_recovery_outcome_lane_count"],
7,
)
assert_false("owner_rollup.runtime_execution_authorized", owner_summary["runtime_execution_authorized"])
assert_false("owner_rollup.repo_creation_authorized", owner_summary["repo_creation_authorized"])
assert_false("owner_rollup.refs_sync_authorized", owner_summary["refs_sync_authorized"])
assert_false("owner_rollup.workflow_modification_authorized", owner_summary["workflow_modification_authorized"])
assert_false("owner_rollup.github_primary_switch_authorized", owner_summary["github_primary_switch_authorized"])
assert_false("owner_rollup.action_buttons_allowed", owner_summary["action_buttons_allowed"])
next_candidate = owner_rollup["next_collection_candidate"]
assert_equal("owner_rollup.next_collection_candidate.order", next_candidate["order"], 1)
assert_equal(
"owner_rollup.next_collection_candidate.lane_id",
next_candidate["lane_id"],
"s4_9_gitea_inventory_owner_attestation_response",
)
assert_equal(
"owner_rollup.next_collection_candidate.display_status",
next_candidate["display_status"],
"next_owner_response_required",
)
assert_equal(
"owner_rollup.next_collection_candidate.required_response_template_count",
next_candidate["required_response_template_count"],
5,
)
assert_equal("owner_rollup.next_collection_candidate.received_response_count", next_candidate["received_response_count"], 0)
assert_equal("owner_rollup.next_collection_candidate.accepted_response_count", next_candidate["accepted_response_count"], 0)
assert_equal(
"owner_rollup.next_collection_candidate.awooop_display_mode",
next_candidate["awooop_display_mode"],
"display_next_collection_item_only",
)
assert_true("owner_rollup.next_collection_candidate.blocked_until_received", next_candidate["blocked_until_received"])
assert_false("owner_rollup.next_collection_candidate.execution_authorized", next_candidate["execution_authorized"])
assert_true("owner_rollup.next_collection_candidate.not_approval", next_candidate["not_approval"])
owner_local_validation = owner_rollup["latest_local_validation"]
assert_equal("owner_rollup.latest_local_validation.status", owner_local_validation["status"], "repo_snapshot_guard_pass")
assert_equal("owner_rollup.latest_local_validation.scope", owner_local_validation["scope"], "repo_snapshot_only")
assert_equal("owner_rollup.latest_local_validation.result", owner_local_validation["result"], "SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK")
assert_equal("owner_rollup.latest_local_validation.received_response_count", owner_local_validation["received_response_count"], 0)
assert_equal("owner_rollup.latest_local_validation.accepted_response_count", owner_local_validation["accepted_response_count"], 0)
assert_false("owner_rollup.latest_local_validation.runtime_actions_authorized", owner_local_validation["runtime_actions_authorized"])
assert_false("owner_rollup.latest_local_validation.repo_or_refs_actions_authorized", owner_local_validation["repo_or_refs_actions_authorized"])
assert_false("owner_rollup.latest_local_validation.workflow_or_secret_actions_authorized", owner_local_validation["workflow_or_secret_actions_authorized"])
assert_true("owner_rollup.latest_local_validation.not_authorization", owner_local_validation["not_authorization"])
primary_summary = primary_gate["summary"]
assert_equal("primary_gate.candidate_repo_count", primary_summary["candidate_repo_count"], 8)
assert_equal("primary_gate.in_scope_repo_count", primary_summary["in_scope_repo_count"], 7)
assert_equal("primary_gate.primary_ready_count", primary_summary["primary_ready_count"], 0)
assert_equal("primary_gate.blocked_in_scope_count", primary_summary["blocked_in_scope_count"], 7)
assert_equal("owner_rollup.total_response_template_count", owner_summary["total_response_template_count"], 22)
assert_false("primary_gate.runtime_actions_authorized", primary_summary["runtime_actions_authorized"])
assert_false("primary_gate.github_primary_switch_authorized", primary_summary["github_primary_switch_authorized"])
assert_false("primary_gate.action_buttons_allowed", primary_summary["action_buttons_allowed"])
assert_false("primary_gate.raw_secret_storage_authorized", primary_summary["raw_secret_storage_authorized"])
acceptance_ids = [item["check_id"] for item in acceptance["acceptance_checks"]]
assert_equal("acceptance.total_contracts", acceptance["summary"]["total_contracts"], manifest_count)
assert_equal(
"acceptance.ready_for_mirror_count",
acceptance["summary"]["ready_for_mirror_count"],
readiness_summary["ready_for_mirror_count"],
)
assert_contains("acceptance_checks", acceptance_ids, "PROGRESS_ESTIMATE_NOT_AUTHORIZATION")
assert_equal("acceptance.summary.acceptance_check_count", acceptance["summary"]["acceptance_check_count"], len(acceptance_ids))
assert_equal(
"acceptance.summary.blocking_check_count",
acceptance["summary"]["blocking_check_count"],
sum(1 for item in acceptance["acceptance_checks"] if item["blocking_if_failed"]),
)
assert_false("acceptance.runtime_execution_authorized", acceptance["runtime_execution_authorized"])
dry_run_summary = dry_run["summary"]
dry_run_step_ids = [item["step_id"] for item in dry_run["dry_run_steps"]]
assert_equal("dry_run.dry_run_status", dry_run["dry_run_status"], "contract_defined_not_executed")
assert_equal("dry_run.total_contracts", dry_run_summary["total_contracts"], manifest_count)
assert_equal(
"dry_run.ready_for_mirror_count",
dry_run_summary["ready_for_mirror_count"],
readiness_summary["ready_for_mirror_count"],
)
assert_equal("dry_run.acceptance_check_count", dry_run_summary["acceptance_check_count"], 8)
assert_false("dry_run.runtime_execution_authorized", dry_run["runtime_execution_authorized"])
assert_false("dry_run.runtime_actions_executed", dry_run_summary["runtime_actions_executed"])
assert_false("dry_run.payloads_ingested", dry_run_summary["payloads_ingested"])
assert_contains("dry_run_steps", dry_run_step_ids, "CHECK_PROGRESS_GUARD")
assert_contains("dry_run_steps", dry_run_step_ids, "CHECK_OWNER_RESPONSE_GUARD")
local_validation = dry_run["latest_local_validation"]
assert_equal("dry_run.latest_local_validation.status", local_validation["status"], "repo_snapshot_guard_pass")
assert_equal("dry_run.latest_local_validation.scope", local_validation["scope"], "repo_snapshot_only")
assert_equal(
"dry_run.latest_local_validation.result",
local_validation["result"],
"SECURITY_MIRROR_PROGRESS_GUARD_OK; SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK",
)
assert_contains("dry_run.latest_local_validation.validated_steps", local_validation["validated_steps"], "CHECK_PROGRESS_GUARD")
assert_contains(
"dry_run.latest_local_validation.validated_steps",
local_validation["validated_steps"],
"CHECK_OWNER_RESPONSE_GUARD",
)
assert_false("dry_run.latest_local_validation.runtime_actions_executed", local_validation["runtime_actions_executed"])
assert_false("dry_run.latest_local_validation.payloads_ingested", local_validation["payloads_ingested"])
assert_false("dry_run.latest_local_validation.production_ingestion_enabled", local_validation["production_ingestion_enabled"])
assert_true("dry_run.latest_local_validation.not_authorization", local_validation["not_authorization"])
forbidden_actions = (
set(rollup["forbidden_actions"])
| set(acceptance["forbidden_actions"])
| set(iwooos_projection["forbidden_frontend_outputs"])
)
for action in [
"start_kali_scan",
"call_kali_execute_endpoint",
"create_github_repo",
"change_repo_visibility",
"sync_git_refs",
"switch_github_primary",
"production_deploy",
]:
assert_contains("forbidden_actions", list(forbidden_actions), action)
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"--root",
default=Path(__file__).resolve().parents[2],
type=Path,
help="Repository root. Defaults to the current script's repository.",
)
args = parser.parse_args()
validate(args.root.resolve())
print("SECURITY_MIRROR_PROGRESS_GUARD_OK")
if __name__ == "__main__":
main()