Repository navigation
Refine Detail typography, Copy, and native feedback - #62
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ceb45bdf26
ℹ️ 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".
| |> Journal_header.detail | ||
| ~capture_enabled:actions_enabled | ||
| ~on_capture:(on_action Open_append) | ||
| ~copy_enabled:(state.graph_ready && Option.is_some detail) |
There was a problem hiding this comment.
Disable Detail copy while a subtree deletion is pending
When a descendant is deleted from Detail, hide_deleted immediately removes it from the rendered outline but delays the worker deletion during the undo window; this new header action remains enabled because it ignores pending_delete. Copying the root during that window therefore reads the unchanged worker subtree and puts the now-hidden descendant on the clipboard, and it can race the later delete commit. Gate this action on the pending mutation state, as the existing Detail actions already do.
Useful? React with 👍 / 👎.
| .contentShape(Rectangle()) | ||
| .onTapGesture { | ||
| if actionInteractive(branchAction) { rowEvent(action: branchAction.key, row: row.key) } | ||
| } | ||
| .accessibilityHint(branchAction.title) |
There was a problem hiding this comment.
Preserve native disclosure semantics for branch rows
For VoiceOver, Switch Control, or keyboard users, replacing DisclosureGroup with an onTapGesture on otherwise plain row content removes the native expandable-control role and expanded/collapsed state. The added hint and named accessibility action describe an operation, but they do not expose the row's current disclosure state or make it a standard focusable disclosure control; preserve native disclosure semantics or explicitly provide equivalent role, state, and activation behavior while keeping the desired visual treatment.
AGENTS.md reference: AGENTS.md:L11-L11
Useful? React with 👍 / 👎.
Block Detail now uses aligned rows with three regular, primary-color typography tiers (26/21/17pt; target line heights 40/33/27 and paragraph gaps 24/18/12), scaled with Dynamic Type. The existing Detail reducer owns depth, order, expansion and explicit 128-item paging across Open block, Favorites, retry, branch expansion and Load more. The trailing ellipsis exposes Copy through the existing full-subtree paging, formatting, cancellation and clipboard chain, including descendants outside the current UI page; feedback belongs to the current Detail and operation. Native Back, metadata tags, media and the shared Capture/Composer remain connected.
Feedback bars, Favorites sync feedback and bottom controls compose existing LUI EdgeInset, ViewThatFits and Stack elements in OCaml. Root feedback belongs to the native root navigation page and reserves space around its actual content, keeping root controls usable above unresolved attachment errors. Returning from Detail preserves the root error and content identity; retired Detail actions are ignored, and retry updates the original child. The redundant Swift feedback/bottomControls modes are removed.
Existing Swift adapters retain behavior that current LUI APIs cannot express with parity: native soft scroll-edge/page/header presentation, custom Dynamic Type text and scalable row spacing, Detail title/toolbar adaptation, standalone unlock Form/input/accessibility, and Swift-only presenters. The dependency update freezes merged LUI184+185 at
3855125. Journal’s native Detail toolbar now applies the matching button menu/plain style and hides the shared native toolbar background around LUI’s existing capsule. Actual edge taps reproduced a dead upper strip without this host adaptation. Journal does not adopt the new CSS-adjacent properties or broaden the font scope.Validation on
318f4de29bafc9eee7a637a213c96e60d15729e7:318f4de29bafc9eee7a637a213c96e60d15729e7: @all/native embed and all 21 suites / 692 cases. Uploaded LUI, Signal and both Datascript package identities match the frozen snapshot.Dependency identities: LUI
38551254511c59d9141a8f9b276c78783cbac044, Signal02e18cdc5e0ad672aa223f638eaa3ba52fc9421e, Datascript0561660e4894faee250d551ab2a32a6b5c25a5fb.