Skip to content

fix(identity): masthead address no longer clips its last chars (E2 follow-up) - #192

Merged
hellno merged 1 commit into
mainfrom
hellno/masthead-address-clip
Jul 3, 2026
Merged

fix(identity): masthead address no longer clips its last chars (E2 follow-up)#192
hellno merged 1 commit into
mainfrom
hellno/masthead-address-clip

Conversation

@hellno

@hellno hellno commented Jul 3, 2026

Copy link
Copy Markdown
Owner

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 a min_w_0().truncate(). Because the header's inner v_flex sizes to the title's intrinsic width, the already-truncated address got clipped to a second ellipsis — it rendered 0xf39F…22… instead of 0xf39F…2266.

The fix

The address is short and should never truncate, so pin the subtitle with flex_shrink_0 instead of min_w_0().truncate(). page_header still has a single caller (the masthead).

Before → after (QA vault, anvil acct 0 → "Meridian")

  • Before: masthead subtitle 0xf39F…22…
  • After: masthead subtitle 0xf39F…2266 (full truncated address, matches the golden ref)

Verified live in the app (just qa → unlock → wallet home).

DoD

  • cargo fmt --all --check clean · cargo clippy -p deckard-app -D warnings green · cargo test --workspace no failures · no dep changes.

Part of #179.

…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).
@hellno
hellno merged commit 02af5f1 into main Jul 3, 2026
5 checks passed
@hellno
hellno deleted the hellno/masthead-address-clip branch July 3, 2026 11:25
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.
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant