Skip to content

feat: show jade plus and trezor safe 7 artwork - #1094

Open
coreyphillips wants to merge 7 commits into
masterfrom
feat/jade-plus-trezor-safe-7-artwork
Open

coreyphillips wants to merge 7 commits into
masterfrom
feat/jade-plus-trezor-safe-7-artwork

Conversation

@coreyphillips

@coreyphillips coreyphillips commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Closes #1091

Twin: synonymdev/bitkit-android#1665

This PR replaces the hardware wallet artwork of the original Jade and the Trezor Model One with the current Jade Plus and Trezor Safe 7.

Description

  • Replaces the Jade and Trezor device, card and cropped illustrations with official Jade Plus and Trezor Safe 7 renders, so the app no longer pictures the end-of-life Trezor Model One.
  • Adds the missing 2x and 3x scales for the Trezor card and the 3x scale for the cropped Trezor, so every imageset ships 1x, 2x and 3x at the existing sizes (device 341x512, card 288x288, cropped 172x256 at 1x, transparent background).
  • Keeps the left bleed of the cropped Trezor, so the hardware intro hero lines up with the Ledger art as before.
  • Retunes the device placement on the hardware wallet overview, because the old values turned the landscape Jade upright by 86° and would have laid the portrait Jade Plus on its side. Jade now leans -5° with a 70pt overhang; Trezor keeps its -15° lean with a 105pt overhang so the Safe 7 screen stays readable.
  • Adds screenshot checks for the Safe 7 art to the hardware suggestion and intro sheet journey and to the hardware wallet detail journey, worded as on Android, and fixes the stale horizontal scroll step, since the suggestions are a two-column grid.
  • Device names and copy stay "Jade" and "Trezor"; no string changes.

Sources:

The Android twin, synonymdev/bitkit-android#1665, uses the same two renders and the same journey wording; the issues ask to ship both together.

Out of Scope

Design

N/A: no design available. The renders come from the vendors' own materials, and design should confirm the choice.

Preview

Simulator screenshots from the J1 and J2 runs (iPhone Air, E2E Bridge build) are not attached yet; see Gaps.

QA Notes

Setup

Hardware wallet suite setup from journeys/hardware-wallet/README.md: a bitkit-docker checkout on main with docker compose up -d and ./scripts/trezor-emulator start, then an E2E_BUILD app built with TREZOR_BRIDGE=true and TREZOR_BRIDGE_URL=http://127.0.0.1:21325. Pair the emulator with connect-home-tile.xml first. Jade cases need a physical Jade (or Jade Plus) paired over BLE on a real iPhone.

Journeys

  • J1: updated suggestion-intro-sheet.xml: Hardware suggestion card, intro hero and Found Trezor step show the Trezor Safe 7
  • J2: updated detail-overview.xml: the hardware wallet overview shows the Safe 7 peeking in from the trailing edge with its screen readable, without covering the balance

Manual Tests

Retired: 1 (Trezor wallet overview art) moved into J2, because the emulator can drive it.

  • 2. Pair a Jade over BLE → Found Jade sheet → Jade Plus device art; then the Jade wallet overview → Jade Plus stands upright with a slight lean and its screen and wordmark on screen: BLE pairing not in Capabilities
  • 3. Jade wallet → Send on-chain and Transfer to Spending → sign step → Jade Plus card art fits the frame like the Trezor card does: BLE pairing not in Capabilities

Automated Checks

  • ran HwWalletVendorPresentationTests.swift: all Jade and Trezor illustrations resolve in the bundle and Jade art matches the Trezor art size

Evidence

  • Commit on this branch, iPhone 17 simulator (iOS from Xcode in /Applications/Xcode.app): the CI unit test selection from unit-tests.yml ran 2772 passing test cases, with 1 failure, SendConfirmationLifecycleTests.testCustomFeeWalletSwitchSurvivesFeeScreenNavigation. That test fails the same way on master, so it is not caused by this change. A first run on the branch showed 10 more failures in Contacts, Paykit, Profile, Send confirmation and USDT tests, which did not reproduce on rerun.
  • HwWalletVendorPresentationTests passed on both runs.
  • Every PNG checked with sips for size and alpha. The hero and wallet overview layouts were checked offline by compositing the assets with the exact HwDeviceIllustrations and DeviceIllustrationPlacement transforms, old art against new.
  • SwiftFormat 0.64.0 lint on HardwareWalletScreen.swift: 0/1 files need formatting. git diff --check is clean.
  • J1 and J2 driven with xcodebuildmcp 2.7.0 on an iPhone Air simulator, using an E2E_BUILD app with TREZOR_BRIDGE=true built from 8c1fade (the app code is unchanged in later commits), a fresh wallet, and bitkit-docker at ce003b01 (bitcoind, electrs and ./scripts/trezor-emulator start).
    • J1 passed. Steps 1 to 3 had no paired device to forget on the fresh wallet. The card, the intro hero and Found Trezor all show the Safe 7, and pairing ended with the "Bitkit Test Trezor" tile and a green indicator. On this run the device was found before the Searching step could be observed; Searching was confirmed in an earlier run on a Debug build.
    • J2 passed. With a zero balance, the Transfer and activity steps were skipped as the journey allows. The overview shows the Safe 7 at the trailing edge, clear of the balance header, and Remove returned to Home with no tile. That run predates 2579702c, which rewords the J2 step to match Android and adds the check that the Safe 7 screen is readable.
    • Harness note: an instant accessibility tap on the Hardware suggestion card does not open the sheet; a touch held for 0.15 s does.
  • Independent review in a fresh-context subagent. It flagged the 86° Jade rotation on the overview (fixed here) and the journey wording divergence from Android (now resolved by matching the Android wording).

Gaps

  • Manual tests 2 and 3 (Jade Plus art on Found Jade, the Jade wallet overview and the Jade signing screens) were not run: they need a physical Jade over BLE. The Jade overview placement was checked only offline, against the same transforms.
  • The Preview screenshots are not attached.
  • J2's screen-readable clause, added in 2579702c to match Android, has not been re-run on a simulator.
  • SendConfirmationLifecycleTests.testCustomFeeWalletSwitchSurvivesFeeScreenNavigation fails on master and on this branch.

Replace the original Jade and Trezor Model One renders with the Jade Plus
and Trezor Safe 7, add the missing 2x and 3x scales, retune the wallet
overview placement for the new shapes, and check the new art in the
hardware suggestion and intro sheet journey.

Closes #1091
@coreyphillips
coreyphillips marked this pull request as ready for review October 22, 2026 17:13
@greptile-apps

greptile-apps Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The reviewed changes appear safe to merge; no actionable defects were established.

Summary

Updates hardware-wallet artwork to Jade Plus and Trezor Safe 7 while keeping existing asset names and device copy.

  • Hardware wallet screens show Jade Plus and Trezor Safe 7 artwork.
  • The hardware wallet overview places each device image at a new angle and edge position.
  • Hardware wallet journeys check the Safe 7 artwork in its key screens.

coreyphillips acknowledged the remaining physical-Jade checks because they need physical hardware, missing preview screenshots, and the unrerun screen-readability check. coreyphillips deferred confirmation of render usage rights to design or brand before release.

Reviews (1) · Last reviewed commit: "test: match android hardware journey wor..." · Reviewed by Greptile

@coreyphillips

Copy link
Copy Markdown
Contributor Author

Answered

  • @greptile-apps[bot]: This is a summary comment with no findings and no requested change. The items it mentions (physical Jade checks, preview screenshots, the J2 re-run, render usage rights) are already recorded in the PR's Gaps and Out of Scope sections.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No findings. Swaps the Trezor and Jade device, card and cropped art for the Trezor Safe 7 and Jade Plus, fills the missing 2x/3x scales and retunes the overview placement. Reviewed 2579702, light tier.

What I checked, and 3 candidates I ruled out

Read in full: the diff of HardwareWalletScreen.swift (DeviceIllustrationPlacement), both Contents.json changes, both journeys, the changelog fragment, HwDeviceIllustrations.swift, HwWalletVendorPresentationTests.swift
Call sites traced: trezor-cropped (HwDeviceIllustrations), trezor-card (Suggestions.swift, HwWalletVendor+UI), trezor-device, jade-device, jade-card (HwWalletVendor+UI)
Assets: all 15 PNGs are exact 1x/2x/3x multiples (341x512, 288x288, 172x256), with alpha and transparent corners; every imageset now names a file for all three scales
CI: SwiftFormat, validate and Greptile green; Run Tests, Run Integration Tests and build-local were still pending at review time

Ruled out

  • Jade and Trezor art no longer the same size, breaking the presentation test: device art is 341x512 and card art 288x288 for both vendors, and the opaque height matches (614px at 2x on both device images), so HwWalletVendorPresentationTests holds.
  • The baked left bleed cuts the Safe 7's screen text: in trezor-cropped@2x.png the opaque area starts at x=0 and "Trezor Safe 7" and "secured with TROPIC01" are whole.
  • -5° on the Jade lays it on its side: the new Jade art is portrait (opaque 302x614 at 2x, against the old landscape 603x329), so the 86° turn had to go and a slight lean is right.

Merge confidence: 4/5, the unit and integration test jobs had not finished at review time and the overview placement was not rendered on a simulator here.

Reviewer model: claude-opus-5-5
Reasoning effort: Not exposed (the review runner does not report a reasoning setting)

@coreyphillips

Copy link
Copy Markdown
Contributor Author

Answered

  • @talosmachina: The review reports no findings and asks for no change. The placement it describes matches HardwareWalletScreen.swift:196: Trezor keeps -15° with a 105pt overhang, and the Jade's 86° turn has been replaced with a slight lean.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code scan: no findings.

Checked and clean:

  • Artwork is chosen by vendor (HwWalletVendor+UI.swift:8-17), and asset names are unchanged, so every call site (HwDeviceIllustrations, Suggestions.swift, the card and device sets) still resolves.
  • All five image sets now ship 1x, 2x and 3x at the expected sizes, with transparent corners. Raw PNG size grows about 0.5 MB before thinning.
  • Neither device is cut off by the square crop on the wallet screen, and dropping the old 86° Jade rotation is right for the upright Jade Plus render.
  • Twin synonymdev/bitkit-android#1665 ships the same renders, journey wording and changelog.

Device gate (partial): 2579702 — not run yet; pending suggestion-intro-sheet.xml and detail-overview.xml (including J2's new "screen readable" step) with the Trezor emulator paired. Device results will follow in a separate review.

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.

feat: replace jade and trezor device artwork with jade plus and trezor safe 7

4 participants