fix(app): UX pass — layout, scroll, wrap, copy & design-slop cleanup - #13
Merged
Conversation
…/overlap The two-pane row is an h_flex (children centered vertically). The sidebar opts into full height with .h_full(), but the content column didn't — so any view shorter than the viewport collapsed to its intrinsic height and floated mid-pane, bunching the breadcrumb, body, and bottom status strip into an overlapping stack. Give the content column .h_full()/.min_h_0() to match the sidebar.
Text columns sitting next to a control/glyph had no width bound, so long copy laid out on one line and ran off the right edge: Settings toggles + RPC input pushed off-card, and the Shield/Receive descriptions clipped. Bound each text column with .flex_1()/.min_w_0() so it wraps within the available width.
…atus strip The content slot clipped/overflowed instead of scrolling (a TODO had disabled it), so a view taller than the pane (Settings, a funded Wallet) slid under the bottom status strip. Wrap the slot in gpui-component's Scrollable (overflow_y_scrollbar, which owns its own scroll handle) so it clips to the pane and scrolls.
The compose note still claimed the 0zk address 'auto-fills in a later release', but Wave-2 shipped the auto-fill and the field is pre-filled. Show honest, state-aware copy keyed off whether the recipient field has content.
…home Project Home's view label is itself 'Personal', so the breadcrumb repeated it. Skip the trailing '> <view>' segment when it would just repeat the project name.
The shared scroll wrapper on the content slot caused two regressions codex flagged: (1) gpui-component's Scrollable keys its offset by call site, so one wrapper shared a single offset across every surface — scrolling a long page then navigating opened the next one pre-scrolled with its header hidden; (2) the centered Receive/Shield cards lost their full-height parent and rendered top-aligned. Move scrolling into each surface's own match arm (distinct call sites -> independent offsets) and leave Receive/Shield unwrapped so they stay centered against the full-height slot. Drops the now-stale TODO(scroll) notes.
…our 0zk (codex P2) The helper line said 'Pre-filled with your own 0zk address' for any non-empty recipient, including a user-typed/edited one — misrepresenting where the deposit goes. Key the copy off whether the recipient equals the wallet's auto-filled railgun address; a manual recipient now gets neutral 'double-check it' copy.
…x column gpui's Style::default() is display:block (verified style.rs), so the prior div().flex_1().min_h_0() content slot never let the centered cards' flex_1 take effect — Receive/Shield sized to their card and sat under the breadcrumb. Make the slot a v_flex (flex column) so flex_1 + justify_center actually fills + centers. Verified live: Receive now centers; scrolling surfaces (size_full children) unaffected.
Removing the stale TODO(scroll) comments let rustfmt collapse the home-view roots and re-indent ~460 lines. Restore the original layout with a one-line note (scrolling now lives in shell.rs's per-surface wrapper), shrinking the welcome.rs diff from ~470 lines of churn to the handful that actually changed.
Drop the redundant flex_1/min_w_0 'wraps text' comments (3 files — a standard gpui idiom), tighten two over-long shell.rs comments, and revert welcome.rs to main (its only change was formatting-motivated notes that triggered a 460-line rustfmt reflow). Keep the comments that document real footguns (gpui div=block, Scrollable call-site keying) and the shield honesty rationale.
…yline Per design review the 2px amber left-keyline on caution cards read as generic alert-card slop. Flatten the Receive warning to an inline amber icon + risk text (no banner box), and remove the keyline from the Shield honesty box (keep its calm fill). Update DESIGN.md to drop the keyline rule (caution = amber icon + text).
hellno
pushed a commit
that referenced
this pull request
Jun 14, 2026
Validate the code-fit layer from a four-cluster read of the actual codebase: per-item crate placement, seam-vs-expansion, size, and risk, plus an EIP-7702 spike brief. Key findings: - deckard-core already has the right seams (multi-account derivation, reserved enclave flag, alloy/7702-ready builder-agnostic broadcast) - Un-gating Send is UI-only (daemon path tested) and the dependency hub - deckard-contract (frozen) is the higher-ceremony expansion point; batch RevokeApproval/Intent::Batch/session-token changes together - Re-tier #13 RPC-before-first-request UP to L (provider spawns with DEFAULT_RPC before the auth gate); re-tier #8/#9 multi-identity DOWN (core already derives accounts) Reworks the sequencing tiers with the measured sizes.
hellno
pushed a commit
that referenced
this pull request
Jun 14, 2026
Validate the code-fit layer from a four-cluster read of the actual codebase: per-item crate placement, seam-vs-expansion, size, and risk, plus an EIP-7702 spike brief. Key findings: - deckard-core already has the right seams (multi-account derivation, reserved enclave flag, alloy/7702-ready builder-agnostic broadcast) - Un-gating Send is UI-only (daemon path tested) and the dependency hub - deckard-contract (frozen) is the higher-ceremony expansion point; batch RevokeApproval/Intent::Batch/session-token changes together - Re-tier #13 RPC-before-first-request UP to L (provider spawns with DEFAULT_RPC before the auth gate); re-tier #8/#9 multi-identity DOWN (core already derives accounts) Reworks the sequencing tiers with the measured sizes.
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.
UX pass on the new infra↔UI integration, found by driving the live app. Every commit is green (fmt, clippy on default + tray, 87 tests); the structural fixes were verified live and the scroll/centering reworks were cross-reviewed by codex (final verdict: clean).
Fixes
divdefaults todisplay: block, soflex_1/justify_centerwas inert before).DESIGN.mdrule); removed AI-slop comments while keeping the substantive gotcha/honesty notes.