Repository navigation
feat(gui-sdl): add production adapter foundation - #17
Conversation
Codex Review Summary: ✅ CompletedThis 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. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Status update — 2026-11-07Frontend CI run 42295241142 passed the Linux/macOS/Windows and Pipeline matrix. The SDL3 job passed AddressSanitizer model/adapter tests, installed the public The earlier SDL smoke crash was traced to the test constructing an This PR is marked Ready for Review as an installable adapter foundation only. The renderer is still ASCII/debug text and the live CDIN Backend/Runtime integration smoke remains a separate gate in CDIN PR #110. No desktop release-readiness claim is made. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 06235437dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Integration verification update — 2026-11-07Current PR head CDIN pins this exact immutable commit in its current |
Summary
Add the first reusable production GUI-SDL adapter layer, separately from the SDL smoke preview.
cdin::frontend_ui_gui_sdlwhenCDIN_FRONTEND_BUILD_UI_SDL=ON; keep the preview application as a separate target.view.linesresponses, response-flush commit/ACK, and version-pinned line requests.Deliberately incomplete
This is a production adapter foundation, not a claim of a completed desktop editor. The renderer is currently an ASCII/debug-text baseline and renders one attached view. Full pane-tree rendering, style roles, selections/cursor visualization, scrolling, font fallback, shaping, grapheme mapping, bidi/Persian rendering, IME composition, mouse capabilities, panels/widgets, device-loss recovery and the full SDL native matrix remain open.
The optional FreeType/HarfBuzz/FriBidi proposal is not introduced as a dependency.
Verification
cdin::frontend_ui_gui_sdland resolved the SDL3 dependency in CI run 42295241142.Snapshot commit semantics
The GUI semantic model now stages snapshot fields independently of the renderable state and commits them only on a valid snapshot-scoped
ui.flush. It validates the flush revision, rejects stale snapshot groups without mutating the committed version/cursor/selection/style state, and acknowledges stale flush sequences so Backend queue capacity is released. Response-scoped line data remains staged until its own response flush. Regression coverage verifies pre-flush invisibility, atomic commit, version-pinned line response commit and stale revision rejection.Latest status — 2026-11-07
The current PR head
1dd2fc0826d302883fa0e6bab0cbead3ec84a6d4passed the full Frontend CI run 42304001468. The SDL3 job includes AddressSanitizer execution of the GUI model and adapter tests, package installation and a clean-prefix downstream CMake consumer. This head also corrects the model test's NUL terminator literal so it checks the actual empty view-id state. The earlier adapter smoke crash atcdin_frontend_session_resizewas caused by a test constructing an attached Session without the attach-established pixel/cell units; Core Session now rejects missing/invalid units, and the test sets the same state that a negotiated attach establishes.The GUI-SDL model now binds its first semantic Runtime view ID from the first view-scoped snapshot message; it no longer assumes the Frontend ATTACH viewport ID equals Runtime's document view ID. The adapter smoke also pushes SDL text input and Ctrl+S key-down events through the same SDL queue/pump and verifies that the Core Session emits distinct
input.textandinput.keyframes. Both native and AddressSanitizer GUI-specific suites passed in CI run 42304001468.This PR is ready for independent review as an installable adapter foundation. It does not claim a complete desktop editor: the renderer remains an ASCII/debug-text baseline and text shaping, bidi/Persian, IME, multi-pane rendering and recovery remain open. The live CDIN Backend/Runtime composition smoke is tracked separately in CDIN PR #110 and is not part of this repository's component-only CI.
CDIN integration pin — 2026-11-07
CDIN currently consumes this PR candidate at immutable revision
1dd2fc0826d302883fa0e6bab0cbead3ec84a6d4. The adapter's semantic model binds the first view-scoped snapshot to the Runtime-generated view ID instead of assuming the Frontend's attach view ID and Runtime's document view ID are identical. Frontend CI run 42304001468 passed all native jobs, SDL3 AddressSanitizer/package-consumer verification and Pipeline quality. CDIN's end-to-end GUI smoke remains a separate product-level check in PR #110; no full editor/release readiness is claimed here.