feat(web): add IwoooS AwoooP handoff packets

This commit is contained in:
Your Name
2026-05-20 14:38:12 +08:00
parent a957adde4b
commit f2e3873ed5
11 changed files with 499 additions and 9 deletions

View File

@@ -203,6 +203,7 @@ def validate(root: Path) -> None:
"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",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -969,6 +970,89 @@ def validate(root: Path) -> None:
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",
"waiting_external_production_evidence",
],
)
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",
@@ -4417,6 +4501,7 @@ def validate(root: Path) -> None:
"display_security_posture",
"display_progress_estimate",
"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",
@@ -4621,6 +4706,13 @@ def validate(root: Path) -> None:
"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",