Skip to content

Add Image Playground launch recovery lifecycle - #8

Merged
backslash-f merged 3 commits into
mainfrom
codex/image-playground-lifecycle
Oct 19, 2026
Merged

backslash-f merged 3 commits into
mainfrom
codex/image-playground-lifecycle

Conversation

@backslash-f

@backslash-f backslash-f commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

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 imagePlaygroundBridgePresentation adapter 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.0 for 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 build and generic iOS Simulator xcodebuild: passed; no compiler warnings. Added the iOS build to PR/main CI because this adapter is conditionally compiled.
  • DocC generation, strict Swift Format, consumer validation, Markdown wrapping and git diff --check: passed.
  • Audited package compiler settings, privacy-safe logging, registry emoji, and unchanged shared .gitignore patterns. No localization/catalog changes or third-party runtime dependencies.
  • Genuine Image Playground hardware presentation is not verified: local use is limited to the owner's existing simulator. WortJagd's native alert/loading integration is validated separately in the consumer change.

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.

@backslash-f

Copy link
Copy Markdown
Contributor Author

Reasoning Relay / ChatGPT delta review approved this exact head with no unresolved P0/P1 findings.

  • PR: Add Image Playground launch recovery lifecycle聽#8
  • Base: 1ff94623027e7b0687e52f2e0defa736a6f907c0
  • Approved head: c4d9b3d65eb77be31bbf451ad3998724145d08f8
  • Previous head: 23dd20737b958c4f96289b20301fe1a8f04476a9
  • Delegation: del_a5fc7f48-7737-4364-88a7-4137df532cb7
  • Response SHA-256: f4fdf7113dc24a782cf97aecf9f76d5b1831bde6e75c455996ea17273aaec1ea

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.

@backslash-f
backslash-f marked this pull request as ready for review October 19, 2026 10:55
@backslash-f
backslash-f merged commit 29dcd32 into main Oct 19, 2026
3 checks passed
@backslash-f
backslash-f deleted the codex/image-playground-lifecycle branch October 19, 2026 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant