Repository navigation
refactor: extract shared composer presentation and typed actions - #127
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.
Extract the existing Capture/Append composer content and page toolbar to Journal_composer_view. Its props contain kind, capture model, saving/enabled/error and camera availability; local typed actions carry complete edit records, task intent, save/close/discard and attachment requests. Application adapts them back to the existing handlers and remains the owner of routes, drafts, picker requests/completions, attachment effects and platform-specific mounting.
Preserve session/document/local revisions, complete edit payloads, stable composer/toolbar/attachment keys, handler names, retry-identity-locked rendering, guards, attachment limits, Close vs Discard, iOS overlay vs non-iOS sheet, armed picker ownership and existing region/cutoff behavior. Dune only registers the extracted module. Source-boundary assertions follow the new renderer and require Application's call to it.
Stacked phase-2 PR3, depends on #126; base b3e69a0, exact head2adc8f3c1d787fce58d92c24c77d561230a5a9f7. No spec, Swift, dependency or build-system expansion.
Validation: exact-head dune build @ALL app/native_embed.exe.o -j3, dune runtest --force -j3 and git diff --check passed. Independent read-only review found no issues, including event payloads, owner scope, picker lifecycle and input identity. An additional attempt to run the existing toplevel-based tool/test_macos_regressions.py --case mutation_input_diagnostics_pure_reducer could not load dllapp_stubs.so because the host OCaml toplevel lacks _caml_startup; that auxiliary invocation did not execute its cases and is not claimed as passed. No workaround or dependency change was applied. Full compiled regression results are retained separately.
Final validation: exact-head CI passed. The final combined phase-2 source18c1feab6ae6806cff58b01522eeca185f7a7d9b was built as the complete App and installed on the existing isolated iPhone13/iOS26.1 Simulator. Installed and built executable SHA256 both19d1c4a7e5539421d105ffea830a5653a7f402dc94ac9f1c2364957b297d0bbb. Capture text/task/save, Append close/reopen retention/save, Capture close/reopen/discard, owned PNG staging, picker Cancel retention and attachment save passed.
Acceptance used normal XCTest taps, typing and drag gestures with existing local synthetic fixtures. It retains experimental host-restamp/cross_abi_validated=false; no real-device ABI claim. Independent source and final evidence reviews found no unresolved confirmed product failure. New attachment save and existing fixture PNG preview are separate checks. Initial stale-selector/partially visible-row driver failures are retained with the passing corrected evidence. This UI matrix does not cover100-status pagination, artificial error/retry or IME composition; existing regression coverage remains intact. No merge or release authorization for this stage.