feat(web): add iwooos rollout ladder

This commit is contained in:
Your Name
2026-05-24 15:10:19 +08:00
parent a9119561bd
commit f830d362f9
8 changed files with 361 additions and 2 deletions

View File

@@ -362,6 +362,7 @@ def validate(root: Path) -> None:
"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",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -636,6 +637,11 @@ def validate(root: Path) -> None:
[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)],
@@ -8294,6 +8300,82 @@ def validate(root: Path) -> None:
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,
)
for key in [
"title",
"subtitle",