feat(delivery): expose non110 autostart readback

This commit is contained in:
Your Name
2026-06-29 09:22:27 +08:00
parent 992215443f
commit c53cbca4a2
5 changed files with 58 additions and 5 deletions

View File

@@ -230,6 +230,15 @@ def build_delivery_closure_workbench(
"non110_runner_online_label_match"
)
is True,
"non110_runner_autostart_path_armed": production_deploy_readback.get(
"non110_runner_autostart_path_armed"
)
is True,
"non110_runner_ready_autostart_path_count": _int(
production_deploy_readback.get(
"non110_runner_ready_autostart_path_count"
)
),
"non110_runner_registration_condition_required": production_deploy_readback.get(
"non110_runner_registration_condition_required"
)
@@ -525,6 +534,15 @@ def build_delivery_closure_workbench(
production_deploy_readback.get("non110_runner_online_label_match")
is True
),
"production_deploy_non110_runner_autostart_path_armed": (
production_deploy_readback.get("non110_runner_autostart_path_armed")
is True
),
"production_deploy_non110_runner_ready_autostart_path_count": _int(
production_deploy_readback.get(
"non110_runner_ready_autostart_path_count"
)
),
"production_deploy_non110_runner_registration_condition_required": (
production_deploy_readback.get(
"non110_runner_registration_condition_required"

View File

@@ -108,6 +108,16 @@ def test_delivery_closure_workbench_endpoint_returns_product_summary():
data["summary"]["production_deploy_non110_runner_online_label_match"]
is False
)
assert (
data["summary"]["production_deploy_non110_runner_autostart_path_armed"]
is True
)
assert (
data["summary"][
"production_deploy_non110_runner_ready_autostart_path_count"
]
== 1
)
assert (
data["summary"][
"production_deploy_non110_runner_registration_condition_required"
@@ -167,7 +177,7 @@ def test_delivery_closure_workbench_endpoint_returns_product_summary():
assert lanes["production_deploy"]["blocker_count"] == 4
assert lanes["production_deploy"]["metric"][
"observed_source_control_main_short_sha"
] == "88607eae4d36"
] == "f84269453834"
assert lanes["production_deploy"]["metric"][
"production_image_tag_short_sha"
] == "af45811e87"
@@ -266,6 +276,16 @@ def test_delivery_closure_workbench_endpoint_returns_product_summary():
lanes["production_deploy"]["metric"]["non110_runner_online_label_match"]
is False
)
assert (
lanes["production_deploy"]["metric"]["non110_runner_autostart_path_armed"]
is True
)
assert (
lanes["production_deploy"]["metric"][
"non110_runner_ready_autostart_path_count"
]
== 1
)
assert (
lanes["production_deploy"]["metric"][
"non110_runner_registration_condition_required"

View File

@@ -2569,6 +2569,8 @@ export interface DeliveryClosureWorkbenchSnapshot {
production_deploy_non110_runner_host_label: string
production_deploy_non110_runner_ubuntu_label: string
production_deploy_non110_runner_online_label_match: boolean
production_deploy_non110_runner_autostart_path_armed: boolean
production_deploy_non110_runner_ready_autostart_path_count: number
production_deploy_non110_runner_registration_condition_required: boolean
production_deploy_non110_runner_ready_config_count: number
production_deploy_non110_runner_ready_service_count: number
@@ -2626,6 +2628,8 @@ export interface DeliveryClosureWorkbenchSnapshot {
non110_runner_host_label: string
non110_runner_ubuntu_label: string
non110_runner_online_label_match: boolean
non110_runner_autostart_path_armed: boolean
non110_runner_ready_autostart_path_count: number
non110_runner_registration_condition_required: boolean
non110_runner_ready_config_count: number
non110_runner_ready_service_count: number

View File

@@ -1,3 +1,11 @@
## 2026-06-29 — 09:15 Delivery Workbench non-110 autostart watcher 投影
**完成內容**
- 將 non-110 runner verifier 的 `READY_AUTOSTART_PATH_COUNT=1` 與 autostart path armed evidence 投影到 production deploy snapshot、Delivery Workbench summary 與 `production_deploy` lane metric。
- 刷新 source readback 觀測 SHA 為 `f84269453834`safe next step 改為 registration metadata 出現後由 autostart path enable runner service再重跑 verifier。
**邊界**:只改 committed source / snapshot / API type / tests未使用 GitHub未讀 token / `.runner` 內容 / cookie / session / secret未操作 host / Docker / K8s / runner service未 workflow_dispatch。
## 2026-06-29 — 09:13 post-reboot verifier false-positive 收斂與 service green readback
**背景**

View File

@@ -1,12 +1,12 @@
{
"schema_version": "awoooi_production_deploy_readback_blocker_v1",
"generated_at": "2026-06-29T08:51:04+08:00",
"generated_at": "2026-06-29T09:15:03+08:00",
"status": "blocked_waiting_authorized_gitea_workflow_dispatch_and_runner_queue",
"priority": "P0",
"scope": "awoooi_production_truth",
"readback": {
"observed_source_control_main_sha": "88607eae4d368416d04f5fe14fc47a53cd4f04a6",
"observed_source_control_main_short_sha": "88607eae4d36",
"observed_source_control_main_sha": "f84269453834a123eb40c6974e941f806b175b42",
"observed_source_control_main_short_sha": "f84269453834",
"governance_closure_merge_sha": "27b96f0450d0e3ca6651d6b5f274a341dd727ef2",
"governance_closure_commit_sha": "9e3e7fbb6ba3ffd324b45abf3ad1e7b6ec826b22",
"production_image_tag_sha": "af45811e876fda322ee63c036fbc39c9f07ffd76",
@@ -41,6 +41,8 @@
"non110_runner_host_label": "awoooi-non110-host",
"non110_runner_ubuntu_label": "awoooi-non110-ubuntu",
"non110_runner_online_label_match": false,
"non110_runner_autostart_path_armed": true,
"non110_runner_ready_autostart_path_count": 1,
"non110_runner_registration_condition_required": true,
"non110_runner_ready": false,
"non110_runner_ready_config_count": 1,
@@ -53,7 +55,7 @@
"runner_service_not_active",
"no_active_runner_service"
],
"non110_runner_safe_next_step": "run_safe_registration_helper_from_interactive_tty_without_capturing_token_then_enable_service_and_rerun_verifier"
"non110_runner_safe_next_step": "run_register_awoooi_non110_runner_script_without_printing_token_then_autostart_path_will_enable_service_and_rerun_this_verifier"
},
"blockers": [
{
@@ -106,6 +108,7 @@
"authorized_dispatch_channel_ready": false,
"non110_runner_ready": false,
"non110_runner_online_label_match": false,
"non110_runner_autostart_path_armed": true,
"non110_runner_remaining_blocker_count": 3,
"runtime_write_performed": false,
"secret_values_collected": false