Files
agent-pet-companion/script
xjxandgd-ops 47ba3a44b3 Fix blank Control Center launch and gate releases on live UI (#14)
## Summary

- defer the initial Control Center reveal until SwiftUI finishes the
current render pass
- avoid synchronous AppKit layout/display calls from updateNSView
- add a regression test and bilingual changelog entry
- require exact-commit local Computer Use acceptance before every GitHub
Release
- block tag creation and archive builds when live UI acceptance failed,
is missing, or targets another commit

## Root cause

The initial appearance gate called layoutSubtreeIfNeeded() and
displayIfNeeded() while SwiftUI was rendering its NSHostingView. macOS
reported a reentrant layout fault and skipped the content render,
leaving the installed 0.4.0 Control Center visually blank even though
its accessibility tree was present.

The previous Release path could miss this because packaged UI validation
deliberately ran without a real main window and live Computer Use
verification was optional.

## Impact

The installed macOS App now presents onboarding or Control Center
content normally on launch while still suppressing the pre-theme
title-bar flash.

Release publication is now explicit-dispatch only. Before dispatch, the
exact clean main commit must pass the documented local Computer Use
checklist: visible nonblank launch, all five destinations, bundled pets
and preview, desktop-pet hide/show, window reopen, and quit/relaunch.
The workflow requires the same full commit in host_ui_tested_commit and
host_ui_result=passed before it can create a tag or build archives.
Failed or unobservable checks stop publication and leave the next action
to the user.

## Validation

- ./script/validate_swift_tests.sh --scope all — 735 tests passed
- ./script/build_and_run.sh --run — bundle built, signed, launched, and
synchronized with PetCore; 124 overlay/interaction checks passed
- Computer Use visual verification — first-run onboarding and all three
bundled pet cards rendered correctly
- unified log verification — the fixed build no longer emitted the
NSHostingView reentrant-layout fault
- python3 -m unittest script.tests.test_release_distribution_contracts —
44 tests passed
- ./script/validate_build_scripts_safety.sh — passed
- actionlint .github/workflows/release.yml — passed

---------

Co-authored-by: gd-ops <gd-ops@xmfunny.com>
2026-08-12 11:28:05 +08:00
..
2026-08-10 18:41:19 +08:00
2026-08-10 18:41:19 +08:00
2026-08-10 18:41:19 +08:00
2026-08-11 12:08:39 +08:00