Skip to content

Color theming, local web app, and wallet management tools#4

Open
FR-MaximeDev wants to merge 1 commit into
SwezyDev:mainfrom
FR-MaximeDev:feature/theme-webapp-and-tools
Open

Color theming, local web app, and wallet management tools#4
FR-MaximeDev wants to merge 1 commit into
SwezyDev:mainfrom
FR-MaximeDev:feature/theme-webapp-and-tools

Conversation

@FR-MaximeDev

Copy link
Copy Markdown

Implements the two planned TODO items (Color Customization and modern Web-App) plus seven additional features. All hard-coded colors now resolve through a central theme, and there are no new dependencies (stdlib + the existing cryptography).

✅ Planned TODO items

  • 🎨 Color Customization — new theme.py central color system. Built-in presets (Midnight, Nord, Dracula, Solarized, Ocean, Blood), a per-color picker with live preview in Settings, and theme import/export as JSON. The previously commented-out Export/Import Theme stubs in settings.py are now functional.
  • 🌐 Modern Web-App — new multi_exodus/webapp/ package: a self-contained SPA served on localhost only via http.server, reusing the same wallet logic and mirroring the desktop theme. POST actions are protected by a per-session anti-CSRF token. Launch it from Settings → Tools or the tray.

✨ New features

  • ⏳ Auto-Lock — re-encrypts wallet data and returns to the password screen after a configurable idle timeout (only when encryption is enabled). The session password is kept in memory only.
  • 📦 Encrypted Backup/Restore — portable, password-protected .mexbak archives (AES-256), all local. Supports full or selected-wallet backups.
  • 🟢 Active Wallet Indicator — highlights which saved wallet is currently loaded in Exodus (badge + border).
  • 📁 Wallet Groups — per-wallet grouping with a group filter in the toolbar.
  • 🧾 Local Action Journal — offline audit trail of load/delete/import/backup/lock actions. Nothing is ever uploaded.
  • ☑️ Bulk Actions — multi-select mode to delete, group, or export wallets at once.
  • 🧬 Duplicate Detection — finds wallets whose data is byte-for-byte identical.

New keybinds: F6 journal, F7 duplicates, Ctrl+L lock.

🗂️ New modules

theme.py, journal.py, groups.py, duplicates.py, backup.py, views.py, and the webapp/ package (api.py, server.py, static/).

🔒 Safety

Consistent with SAFETY.md: no network/blockchain calls added, no seed-phrase access, all operations local. The web app binds to 127.0.0.1 only.

🧪 Testing

  • All modules byte-compile.
  • Full import graph loads with no circular imports.
  • Logic verified for theme presets, groups, duplicates, journal, active-wallet tracking, and an encrypted backup/restore roundtrip.
  • Web front-end renders with no console errors.

Note: the GUI (ui.py) changes were validated by import/logic checks; a visual pass in a running Tk window is recommended before merge.

🤖 Generated with Claude Code

Implements the two planned TODO items and seven new features:

- Color customization: central theme system (theme.py) with presets, a
  per-color picker with live preview, and JSON theme import/export.
- Modern web app (multi_exodus/webapp): a self-contained SPA served on
  localhost only, reusing the existing wallet logic and mirroring the theme.
- Auto-lock: re-encrypts wallet data and returns to the password screen
  after a configurable idle timeout (only when encryption is enabled).
- Encrypted backup/restore: portable .mexbak archives (AES-256).
- Active wallet indicator: highlights the wallet currently loaded in Exodus.
- Wallet groups: per-wallet grouping with a group filter.
- Local action journal: offline audit trail of load/delete/import/backup/lock.
- Bulk actions: multi-select to delete, group, or export wallets at once.
- Duplicate detection: finds wallets with byte-for-byte identical data.

All hard-coded colors now resolve through the theme. No new dependencies
(stdlib + existing cryptography). New keybinds: F6 journal, F7 duplicates,
Ctrl+L lock.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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