Repository navigation
Bind Installed Apps actions to the loaded device - #13
Draft
hideouts-io wants to merge 16 commits into
Draft
hideouts-io wants to merge 16 commits into
hideouts-io wants to merge 16 commits into
Conversation
Capture the inventory generation and target for Launch and Remove, invalidate stale selections and refreshes, and reject actions whose device is no longer selected. Headless app compilation and Swift package checks pass; native two-simulator acceptance remains pending.
Selection generation already rejects obsolete device results. Retain a successful result if discovery changes metadata for the same selected device while the refresh is in flight. Strict Swift package checks and headless app compilation pass; native two-simulator UI acceptance remains pending.
Exercise a real owned-simulator inventory failure, retain A provenance and action denial, recover B through the production Start route, and verify explicit confirmation cancellation. Local strict package and app/UI compilation pass; hosted native acceptance and current-candidate Swift CodeQL remain pending on this draft PR.
Require actual main/key-window readiness and native row selection around one real Demo inventory click. Preserve every action-denial assertion and the existing five-second bounds. Shared read-only diagnostics capture readiness and selection without changing focus, binding or selection. The prior hosted click was inside the cell; its missing key-window evidence is a capture gap, so no historical focus cause is asserted. Strict local app/UI compilation passes; hosted native validation remains open.
Read the macOS StaticText values using checked string unwraps and retain exact message/recovery equality plus bounded typed receipts. The previous hosted recording displays the expected real shutdown error; its label was empty. Local strict UI compilation passes. Hosted recovery and current-candidate Swift CodeQL remain pending.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and behavior
Installed Apps could retain an earlier device's inventory or action while selection changed. Launch and Remove now capture the row, target and inventory generation. Selection/refresh invalidates stale confirmations, preparation and execution require matching ownership, and obsolete results cannot replace the current inventory. A failed refresh retains the previous rows and owner with stale actions disabled. Cancelled simulator discovery cannot replace a completed snapshot, and the target picker fits the minimum window width while retaining full menu names.
Native acceptance
A standalone CI host creates two owner-registered simulators with A-only, B-only and shared apps. It verifies B's identity and successful inventory read, shuts down only B, and requires a real nonzero shutdown-state listapps result. The sandboxed UI runner then drives the app's ordinary controls. Explicit Debug acceptance excludes physical discovery and exposes only the owned targets.
The test verifies the actual error/recovery values, retained A rows/source/owner and disabled stale controls, production B Start/reload, explicit removal Cancel, confirmed B-only removal with A/B isolation, rejection of an actually delivered late successful A reply while preserving B selection/provenance, and confirmation dismissal after genuine owned-A loss. Cleanup freshly verifies both UUIDs and exact owned names absent.
Read-only Debug UI-test diagnostics observe actual app/main/key-window readiness. A unique identified name cell must be reachable with positive geometry inside the main window; one real click must produce native selection. Diagnostics never set focus or selection, and ordinary bindings are unchanged. The earlier Demo failure's historical focus cause remains unproven; its inside-cell click was retained as evidence. Exact native error assertions read checked StaticText values.
Verification at
27b3654a7e064b906d237d04c2414d1b475766e8Remaining gates
The PR remains draft and unmerged. Additional reconnect/modal cases, VoiceOver, representative physical compatibility and final release/distribution acceptance remain separate. No private evidence or telemetry is added.