Repository navigation
Keep graph Timeline hosts stable through right-swipe transitions - #143
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Right-swiping into a resident graph moved its Timeline from a preview hierarchy into the focused navigation hierarchy. The resulting remount/layout/offset restoration caused an end-of-switch jump, and disabled preview ancestors tinted image buttons. Closing and reopening a graph could also leave an old image release waiting after its session had retired.
This change keeps each full graph owner’s Timeline and navigation host in a stable native container. Warm switches move the existing pages and change their interaction role; hidden presentation updates stay frozen while graph synchronization continues. Preview hit testing and accessibility are blocked without applying the disabled appearance to images.
For a first visit, a source-only snapshot follows the pan, then a native 0.24s slide starts before target construction. The target reveals after its own post-slide layout is ready, using a 0.15s fade. Loading readiness is fenced by owner, motion nonce and phase token. Cancelled or stale callbacks cannot complete a newer transition. Initial state/feed preparation runs once per admitted owner without mounting hidden UI. Retired resource requests finish through their original owner so image lease cleanup cannot block later graph actions.
The existing right-only, maximum-three graph behavior, per-graph drafts/navigation/scroll, resident management and hidden synchronization remain covered.
Validation
Final head:
5db35c0f00b29ea27bfeb3738b3fe472b248cd7e; base:161c096e9dffd7aeb2a75801a3daa9964807a2d8.dune build @all app/native_embed.exe.oanddune runtest --force: passed. Exact production hashes match the final commit.Limits
First construction still has measured 127–135ms main display-callback gaps. The native first-open transition handles presentation; it does not remove that CPU cost or guarantee every device’s frame rate. Cold snapshot capture measured approximately 21ms.
The optimized Simulator fixture used the explicitly experimental host-restamp route (
cross_abi_validated=false), not a device/TestFlight archive. The profile includes XCTest/accessibility overhead and is one paired run. PNG asset tests exercise the legacy managed raw-PNG path, not real-account encrypted image packages. Peak memory, dedicated rotation/background behavior and an injected first-feed-still-queued case were not separately measured.spec-dev-toolwas unavailable.See
docs/agent-guide/001-fixed-timeline-hosts.mdfor ownership, transition and cleanup decisions. No protected spec or Dune changes, test/CI infrastructure meta-tests, merge or release are part of this PR.