fix(reboot): mark redacted vmx package display-only
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m15s
CD Pipeline / build-and-deploy (push) Successful in 4m55s
CD Pipeline / post-deploy-checks (push) Successful in 1m48s

This commit is contained in:
Your Name
2026-07-03 11:34:23 +08:00
parent b207615c5d
commit 23ea6df467
8 changed files with 105 additions and 7 deletions

View File

@@ -485,6 +485,7 @@ from src.services.telegram_alert_monitoring_live_receipt_apply import (
)
from src.services.windows99_vmx_source_repair_package import (
load_latest_windows99_vmx_source_repair_package,
mark_windows99_vmx_source_repair_public_redaction_boundary,
)
router = APIRouter(prefix="/agents", tags=["Agent Teams"])
@@ -1521,7 +1522,10 @@ async def get_reboot_auto_recovery_slo_scorecard() -> dict[str, Any]:
load_latest_stockplatform_public_api_runtime_readback
)
apply_stockplatform_runtime_readback(payload, stockplatform_runtime)
return redact_public_lan_topology(payload)
redacted_payload = redact_public_lan_topology(payload)
return mark_windows99_vmx_source_repair_public_redaction_boundary(
redacted_payload
)
except FileNotFoundError as exc:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
@@ -1552,7 +1556,10 @@ async def get_windows99_vmx_source_repair_package() -> dict[str, Any]:
payload = await asyncio.to_thread(
load_latest_windows99_vmx_source_repair_package
)
return redact_public_lan_topology(payload)
redacted_payload = redact_public_lan_topology(payload)
return mark_windows99_vmx_source_repair_public_redaction_boundary(
redacted_payload
)
except FileNotFoundError as exc:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,

View File

@@ -47,6 +47,53 @@ def _with_ui_counts(
return payload
def _mark_package_public_redaction_boundary(
package: dict[str, Any],
) -> dict[str, Any]:
payload = dict(package)
payload["public_lan_topology_redacted"] = True
payload["redacted_public_display_only"] = True
payload["check_mode_probe_commands_executable"] = False
payload["internal_console_package_required_for_execution"] = True
payload["public_execution_note"] = (
"public_endpoint_redacts_lan_like_vmx_path_segments_use_authorized_"
"internal_console_package_before_executing_probe_commands"
)
vm_rows = payload.get("vm_rows")
if isinstance(vm_rows, list):
redacted_rows: list[Any] = []
for row in vm_rows:
if isinstance(row, dict):
redacted_row = dict(row)
redacted_row["public_lan_topology_redacted"] = True
redacted_row["check_mode_probe_commands_executable"] = False
redacted_rows.append(redacted_row)
else:
redacted_rows.append(row)
payload["vm_rows"] = redacted_rows
return payload
def mark_windows99_vmx_source_repair_public_redaction_boundary(
payload: dict[str, Any],
) -> dict[str, Any]:
"""Mark public-redacted VMX package fields as display-only evidence."""
if payload.get("schema_version") == (
"windows99_vmx_source_repair_check_mode_package_v1"
):
return _mark_package_public_redaction_boundary(payload)
package = payload.get("windows99_vmx_source_repair_package")
if isinstance(package, dict):
redacted_payload = dict(payload)
redacted_payload["windows99_vmx_source_repair_package"] = (
_mark_package_public_redaction_boundary(package)
)
return redacted_payload
return payload
def _alias_lists_match(package: dict[str, Any], windows99: dict[str, Any]) -> bool:
return _strings(package.get("missing_vmx_aliases")) == _strings(
windows99.get("missing_vmx_aliases")