fix(identity): masthead address no longer clips its last chars (E2 follow-up) - #192
Merged
Conversation
…llow-up) The E2 masthead (#182) passed the mono address as `page_header`'s subtitle with a `min_w_0().truncate()`, which — because the header's v_flex sizes to the title's intrinsic width — clipped the already-truncated address to a second ellipsis (`0xf39F…22…` instead of `0xf39F…2266`). The address is short and should never truncate, so pin the subtitle with `flex_shrink_0` instead. Verified in the app: the masthead now renders the full `0xf39F…2266` (matches the golden ref). fmt clean; clippy -D warnings green; page_header has one caller (the masthead).
7 tasks
hellno
added a commit
that referenced
this pull request
Jul 4, 2026
Live GUI verification of the E3 rail caught the identity object clipping the wallet address to a second ellipsis (`0xf39F……` instead of `0xf39F…2266`) — the same defect the E2 masthead follow-up fixed (#192). Root cause: the sub's `truncate()` gives it a 0 min-content, so the text column sized to the shorter name and clipped the wider mono address. Pin the column with `flex_1` so it fills the row's remaining width; a short address now renders in full and only genuinely over-wide content still clamps (overflow-safe). fmt clean; just check green (both feature configs); cargo test --workspace green.
5 tasks
hellno
added a commit
that referenced
this pull request
Jul 4, 2026
) (#193) * feat(shell): three-pane shell + always-on right metadata rail (E3 · #183) Add the always-on ~300px right metadata rail as the shell's third pane (sidebar · main · rail), contextual to the focused object, and drop the Projects layer. - shell.rs: three-pane layout; the rail is a fixed-width flex_shrink_0 sibling (never collapsible), main stays flex_1 + min_w_0 so content overflows neither edge. - shell_chrome.rs: sidebar regrouped to Wallets · Agents · Connections (Connections = a list-only reserved slot; deep editing deferred #44). Selection::Project removed across shell/palette/welcome/breadcrumb. - shell_rail.rs (new): the rail dispatcher + the "This wallet" body (identity + honest facts + the live agent cap ledger) and a light "This agent" body. - activity_view.rs: the Activity rail — a selected/reviewed pending request's compact clear-signing, else the latest transaction's receipt, else a quiet empty state. Read-only (approve/deny stay on the feed -> no blind-approve). App-origin requests render a neutral header (never a false amber human signal). - widgets.rs: wire the E1 rail primitives (meta_rail/meta_section/ meta_obj/kv_row/origin_header/status_glyph); kv_row gains a loud Warn value for the unverified-read downgrade (DESIGN Trust rule 9). - welcome.rs: shared per_tx_cap_display() renders a Send cap honestly ("denied" / "no limit" / figure), never a false "0 ETH". - main.rs: widen the window (1200x760, min 1100x560) so the 460px confirm card never clips beside the two chrome columns. Colors via theme.*/amber/agent; sizes via tokens; two signal colors only. Reviewed adversarially (4-lens workflow + codex GPT-5 xhigh) vs the golden ref + the Rail fidelity checklist. Closes #183. Refs #179. * fix(widgets): meta_obj renders a short address in full (E3 GUI verify) Live GUI verification of the E3 rail caught the identity object clipping the wallet address to a second ellipsis (`0xf39F……` instead of `0xf39F…2266`) — the same defect the E2 masthead follow-up fixed (#192). Root cause: the sub's `truncate()` gives it a 0 min-content, so the text column sized to the shorter name and clipped the wider mono address. Pin the column with `flex_1` so it fills the row's remaining width; a short address now renders in full and only genuinely over-wide content still clamps (overflow-safe). fmt clean; just check green (both feature configs); cargo test --workspace green. * fix(shell): three-pane row clamps to window height (sidebar footer stays put) The 3-pane row used `size_full` (height:100%) as a sibling of the fixed title bar, so an over-tall surface (the wallet home, whose internal scroll is an imperfect TODO) stretched the row past the window — pushing the sidebar footer (Activity + Settings) and the bottom status strip off-screen on the home surface but not on Activity. That's the jarring "Settings comes and goes between screens" bug. Make the row a proper flex child (`flex_1` + `min_h_0`) so it fills exactly the space below the title bar and never grows: over-tall content now scrolls inside the middle column and the three panes stay full-height on every surface. Verified in the app (home now shows Activity + Settings + status strip, matching Activity). fmt clean; just check green (both feature configs); cargo test --workspace green.
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.
Small follow-up to #191 (E2 · #182), caught while driving the app for screenshots.
The bug
The identity masthead passed the mono address as
page_header's subtitle with amin_w_0().truncate(). Because the header's innerv_flexsizes to the title's intrinsic width, the already-truncated address got clipped to a second ellipsis — it rendered0xf39F…22…instead of0xf39F…2266.The fix
The address is short and should never truncate, so pin the subtitle with
flex_shrink_0instead ofmin_w_0().truncate().page_headerstill has a single caller (the masthead).Before → after (QA vault, anvil acct 0 → "Meridian")
0xf39F…22…0xf39F…2266(full truncated address, matches the golden ref)Verified live in the app (
just qa→ unlock → wallet home).DoD
cargo fmt --all --checkclean ·cargo clippy -p deckard-app -D warningsgreen ·cargo test --workspaceno failures · no dep changes.Part of #179.