Repository navigation
Fix Journal composer limits, blank drafts and recovery guidance - #64
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.
The shared Journal composer left attachment actions looking active at nine items, admitted Unicode-only blank drafts, labeled the multiline Return key as Send, and offered reselection even when a failed batch could be retried in place.
This change disables Files/Photos/Camera at the cap and explains how to restore them, uses Unicode White_Space consistently for admission and attachment-only naming, keeps native Return for multiline editing, and chooses recovery guidance from the retained import state. Worker interruptions preserve the correct recovery instruction; nonstaged failures retain reselection guidance.
Current integration: head
601a114f27b0e39b66b01aaf6f2b355fea70c5a7incorporates mainc1276ec28ea0a28804db7b8bcd1df0b1cb725915. The sole conflict was appended route tests; both suites and registrations are preserved. The production fix is equivalent to the original PR64 patch. PR63's typography, Timeline indicator, ten-level Detail expansion and visible-demand read budgets are preserved.Validation:
dune build @all app/native_embed.exe.oand completedune runtest test --force -j 2passed, including 41 routes and 79 Application tests and the PR63 read-budget assertions.5425b1e: the broader 16-test Simulator matrix passed before integration. That run is retained as historical evidence, not attributed to the current head.Tests use an isolated synthetic graph/account and dedicated app bundle with the actual Application → C → Swift/LUI host; native keyboard and pickers are driven through XCTest. The nonstaged reselection branch is covered through its public callback/Worker completion, not a visible iOS entry point.
Limits: IME composition, VoiceOver, physical iPhone, live server/sync, successful camera capture, actual imported bytes and final asset persistence are untested. Photos tests used only synthetic QA images. Dependency pins, Dune and spec files are unchanged.