feat(app): sync Codex protocol and refine turn navigation - #91
Merged
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Sync the Codex fork with upstream main
db0568dbb(339 upstream commits) through merge commit852cac102, preserving the Windows host integration shims and updating the workspace lockfile.The UI now renders live asynchronous questions and sends answers through
turn/steerfor a running turn orturn/startwhen idle. Failed sends remain editable, drafts are preserved, and answered questions do not reappear after navigation. Historical messages alone do not create pending prompts. Current thread model/effort fields take precedence over stale cached preferences, including a cleared effort.The conversation minimap keeps one current-position marker. Hover moves a single longest, darkest tick with progressively narrower neighbors, temporarily replacing the reading-position highlight. Pointer exit restores the original appearance, and immediate geometry updates prevent stale primary highlights during fast movement. The tick styling follows the visual reference: square-ended 2 px strokes on 10 px spacing, hover widths of 26/20/14/10/6 px, a full-contrast primary mark, and subdued neighboring ticks.
The minimap now gives the rail ends and preview edges invisible click tolerance. The preview card and the gap leading to it are clickable, including where a short rail’s card extends beyond the ticks. Moving sideways keeps the previewed turn selected; clicks resolve that same turn after asynchronous loading updates its row. Releasing a valid click performs the jump, cancelled presses do not, and empty space still passes clicks to the transcript. Read-only snapshots lack turn ids, so their stable user-message ids now preserve the hovered and pressed target across refreshes; this fixes clicks silently disappearing while another process owns the session.
CLI readiness checks, host resume, the probe, and Flutter now share the complete
initialize/initializedhandshake. Account status uses v2account/read. Regenerate FRB bindings and raise the two embedding crates’ recursion limit to 256 for the updated app-server future.Validation:
-D warnings, and locked workspace tests: 303 passed, 6 ignored. Tests run with ambientPB_MAPPER_SERVER/MSG_HEADER_KEYunset because the existing unconfigured-install test assumes no relay environment.POCKET_CODEX_RELEASE_OKusing the existing Codex login.f0b12b0, verified its code signature and embedded server, and repeated the upstream-schema protocol smoke checks. The earlier real model round trip also passed.Windows runtime validation was not performed on this macOS host. Native window automation timed out; appearance was checked through Flutter desktop-theme render captures, while interaction was verified with widget tests. The release app process and embedded listener were checked directly.