Skip to content

Hide Get Raw Keys behind Developer Mode#6069

Merged
j0ntz merged 1 commit into
developfrom
jon/hide-raw-keys-dev-mode
Jul 11, 2026
Merged

Hide Get Raw Keys behind Developer Mode#6069
j0ntz merged 1 commit into
developfrom
jon/hide-raw-keys-dev-mode

Conversation

@j0ntz

@j0ntz j0ntz commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

- changed: Hide the wallet "Get Raw Keys" option behind Developer Mode, while still showing it for wallets that fail to load.

Dependencies

none

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

Description

Asana task

Asana: https://app.asana.com/1/9976422036640/project/1201386023359449/task/1208354993842606

Hides the Get Raw Keys item in the wallet overflow menu unless the account has Developer Mode enabled. Raw Keys is a power-user tool; gating it behind Developer Mode declutters the menu for normal users while keeping the capability available to those who need it.

The safety fallback is preserved: when a wallet fails to load (wallet == null), Raw Keys still appears unconditionally, so keys can always be recovered from a broken wallet. This is handled by a separate early-return branch that is intentionally not gated.

No change was needed to make the Raw Keys JSON read-only: RawTextModal already renders the content as read-only text (a Paragraph, not an input) and getRawKeys passes disableCopy.

Implementation: read state.ui.settings.developerModeOn in WalletListMenuModal, and skip the getRawKeys option in the menu loop when Developer Mode is off.

Test evidence (iOS sim, edge-funds) attached below: menu with Developer Mode ON shows Get Raw Keys; menu with Developer Mode OFF hides it.


Note

Low Risk
Small UI gating change in the wallet menu with an explicit recovery exception for wallets that fail to load; no changes to key export APIs or authentication.

Overview
Get Raw Keys in the wallet list overflow menu is now shown only when Developer Mode is enabled (state.ui.settings.developerModeOn), so normal users see a simpler menu while power users can still reach raw key export from settings.

The modal reads that flag and skips the getRawKeys entry when building options for loaded wallets. Recovery is unchanged: if the wallet object is missing (wallet == null), the menu still offers Get Raw Keys (and archive) with no Developer Mode check, so keys can be exported from a broken wallet. Existing rules for light accounts (no seed/raw keys when username is null) and the loaded-wallet path are otherwise the same.

CHANGELOG documents the behavior change.

Reviewed by Cursor Bugbot for commit c35e3d6. Bugbot is set up for automated code reviews on this repo. Configure here.

@j0ntz

j0ntz commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence (iOS sim, edge-funds)

agent proof 1208354993842606 01 devmode on rawkeys visible

agent proof 1208354993842606 01 devmode on rawkeys visible

agent proof 1208354993842606 02 devmode off rawkeys hidden

agent proof 1208354993842606 02 devmode off rawkeys hidden

Captured by the agent's in-app test run (build-and-test).

Only show the wallet menu's Get Raw Keys option when Developer Mode is
enabled. Wallets that fail to load still expose raw keys through the
existing fallback so a broken wallet can always be recovered.
@j0ntz
j0ntz force-pushed the jon/hide-raw-keys-dev-mode branch from 28be422 to c35e3d6 Compare July 10, 2026 23:57
@j0ntz
j0ntz enabled auto-merge July 10, 2026 23:57
@j0ntz
j0ntz merged commit ede8d00 into develop Jul 11, 2026
7 checks passed
@j0ntz
j0ntz deleted the jon/hide-raw-keys-dev-mode branch July 11, 2026 00:11
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.

2 participants