feat(web): add IwoooS visual mesh
All checks were successful
CD Pipeline / tests (push) Successful in 1m43s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 4m12s
CD Pipeline / post-deploy-checks (push) Successful in 2m43s

This commit is contained in:
Your Name
2026-06-01 02:02:59 +08:00
parent 68c8bb9e5c
commit 1afd7e9e9f
7 changed files with 659 additions and 0 deletions

View File

@@ -610,6 +610,7 @@ def validate(root: Path) -> None:
"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",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -1540,6 +1541,29 @@ def validate(root: Path) -> None:
"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.all_product_coverage_snapshot_detail_ledger_collapsed",
iwooos_projection["summary"]["all_product_coverage_snapshot_detail_ledger_collapsed"],
@@ -11857,6 +11881,54 @@ def validate(root: Path) -> None:
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,
)
assert_text_contains(
"iwooos_page.command_map_testid",
iwooos_projection_page,
@@ -12021,6 +12093,63 @@ def validate(root: Path) -> None:
"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"],
)
for text in [
"iwooos_first_unlock_path_step_count=5",
"iwooos_first_unlock_path_current_focus=s4_9_owner_response",
@@ -12203,6 +12332,70 @@ def validate(root: Path) -> None:
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_text_contains(
"iwooos_page.first_unlock_evidence_packet_testid",
iwooos_projection_page,