Repository navigation
Add Image Playground launch recovery lifecycle - #8
Merged
Merged
Conversation
Contributor
Author
|
Reasoning Relay / ChatGPT delta review approved this exact head with no unresolved P0/P1 findings.
Both prior P1 issues are resolved: pending presentation reconciliation and cleanup retention after host teardown. All three CI checks passed at the approved head. Hardware Image Playground generation remains the explicitly accepted validation gap. No current-PR Codex review signal is present; none was requested manually. |
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.
Image Playground's SwiftUI binding does not confirm that its native editor opened, leaving consumers unable to recover from a silent launch failure. Add an iOS
imagePlaygroundBridgePresentationadapter with confirmed opening, completed dismissal, and typed unavailable/timeout outcomes. The 12-second deadline covers opening only; editing and generation never expire. Existing cross-platform sheet calls remain compatible.The bridge owns Apple's native controller, consumes result callbacks before dismissal, and serializes cleanup with attempt-scoped stale-callback rejection. A finite two-second reconciliation window follows closing; it targets only the owned editor, observes late attachment or detachment independently of UIKit callbacks, and never reports an attached editor as dismissed. UIKit exposes no definitive rejection signal, so README/DocC document the remaining permanently stuck system limitation. It leaves draft state, storage, decoding, and localized alerts to WortJagd. This prepares release
0.3.0for the authorized WortJagd image recovery work.Validation:
swift test: 24 tests passed, including controlled opening timeout, confirmed opening, completion/cancellation races, stale callbacks, cleanup ordering, unacknowledged native presentation, late attachment, retained cleanup after coordinator release, and observed detachment without callbacks.swift buildand generic iOS Simulatorxcodebuild: passed; no compiler warnings. Added the iOS build to PR/main CI because this adapter is conditionally compiled.git diff --check: passed..gitignorepatterns. No localization/catalog changes or third-party runtime dependencies.Adopts AgentGuidelines 0.0.38 from 0.0.34 in a separate commit; the subtree matches the tagged tree exactly. Root review contract is synchronized. Public README, DocC, and changelog describe callback ordering and the opening-only deadline.