Skip to content

Conversation

@boldbitcoin
Copy link
Contributor

@boldbitcoin boldbitcoin commented Jan 25, 2026

🚀 Release v2.1.12

This release includes significant enhancements to developer tools, settings, typography, and overall app performance and stability.

✨ New Features

Settings Enhancements

  • Dev Debug Mode (Advanced): Hidden developer section accessible via build number (7 clicks on Android)

    • Debug logging toggle for logcat visibility (Android only)
    • Session-only logging that resets on app restart
    • Visual progress indicator with badge and toast notifications
    • Enhanced UI with status indicators and card-based layout
    • Warning messages for sensitive information handling
  • Wallet Balance Formatting Option: New user preference for balance display formatting

    • Toggle between raw numbers and formatted display with thousand separators
    • Better readability for large Bitcoin amounts and satoshi values
    • Preference persists across app sessions
    • Enhanced visual clarity for decimal precision verification

Typography & Design

  • Custom Font System: Professional typography with Inter and JetBrains Mono fonts

    • Inter font family for UI text (Regular, Medium, SemiBold weights)
    • JetBrains Mono font family for technical content like Bitcoin addresses (Regular, Medium, Bold weights)
    • New font system with proper font family mappings and weight-to-family conversion
    • Font comparison and verification components for testing and validation
    • Automated font download scripts and comprehensive documentation
    • Font assets properly linked for both iOS and Android platforms
    • Enhanced typography consistency across all screens and components
  • Font Normalizations (iOS and Android): Enhanced cross-platform font consistency

    • Improved font rendering consistency across iOS and Android platforms
    • Better font weight mapping and family selection
    • Optimized font loading and caching
    • Enhanced monospace font rendering for technical content

Privacy & Configuration

  • Mempool Privacy Configuration: New user preference screen for enhanced privacy

    • Custom mempool.space API endpoint configuration during wallet setup
    • Privacy-focused feature to reduce third-party tracking of Bitcoin addresses
    • API endpoint validation with automatic URL normalization
    • Option to skip configuration and use default public mempool servers
    • Settings integration for changing API endpoint after wallet creation
    • Educational information about privacy benefits of self-hosted mempool servers
  • Comprehensive Icon Asset Library: Added 50+ new icon assets for improved UI consistency

    • Icons for settings, actions, network status, and wallet features
    • Theme-aware icon support with inverted variants for dark mode
    • Consistent icon styling across all screens and components

🔄 Improvements

  • Typography System Refactoring: Complete font system overhaul

    • Migrated from system fonts to custom Inter and JetBrains Mono fonts
    • New theme/fonts.ts module with font utilities and mappings
    • Font weight to font family mapping for proper font selection
    • Enhanced font style creation with theme integration
    • All components updated to use new font system
  • Nostr Pairing UI Flow Simplification: Streamlined device pairing experience

    • Simplified pairing flow with clearer step indicators
    • Reduced UI complexity and improved user guidance
    • Better error messaging and recovery paths
    • Enhanced visual feedback during pairing process
  • Enhanced Device Keyshare Modal Info Optimization: Improved keyshare information display

    • Enhanced wallet information display with better organization
    • Clearer capabilities and feature indicators
    • Bold Web Extension connector information
    • Watch Wallet Export with output descriptor support
    • Better visual hierarchy and information architecture
  • Better Network Handling: Improved network error management

    • Reduced annoying UI error alerts for network issues
    • Background API retry logic with exponential backoff
    • Better error recovery and user feedback
    • Graceful degradation when network is unavailable
    • Improved timeout handling and connection management
  • React Native Performance Optimization and Refactoring: Enhanced app performance

    • Code refactoring for better maintainability
    • Performance optimizations across components and screens
    • Reduced re-renders and improved state management
    • Better memory management and resource cleanup
    • Optimized asset loading and caching
  • Nostr/TSS Performance and Stability Enhancements: Improved reliability

    • Enhanced Nostr transport layer performance
    • Better TSS library stability and error handling
    • Improved session management and recovery
    • Optimized message processing and chunk handling
    • Enhanced panic recovery and error logging

🐛 Fixes

  • Font Consistency Issues: Fixed inconsistent font rendering across platforms

    • Proper font family mapping for iOS and Android
    • Fixed font weight issues with correct font file selection
    • Improved monospace font rendering for Bitcoin addresses
    • Better font fallback handling
  • Code Cleanup: Removed unused code and contexts

    • Removed unused NetworkContext, UserContext, WalletContext files
    • Cleaned up unused components and utilities
    • Removed deprecated useQRScanner hook
    • Improved code organization and maintainability
  • Co-Signing Timeout Fix: Fixed transaction co-signing timeout issues

    • Added validation to ensure all npubs are fully converted before enabling co-signing button
    • Prevents session ID mismatch between devices during pre-agreement phase
    • Button now properly disabled until all device npubs are loaded and converted from hex format
    • Fixes timeout issues when Android and iOS devices have different session IDs
  • Final Step UI Improvements: Enhanced Final Step section UI and layout

    • Removed card container wrapper for cleaner layout
    • Moved "All devices ready" checkbox and "Start Key Generation" button to appropriate sections
    • Improved spacing and visual hierarchy in Final Step section
    • Better participant device information display
    • Updated typography for participant titles
  • Dev Debug Section UI/UX: Enhanced developer tools interface

    • Improved visual design with card-based layout
    • Better status indicators and feedback
    • Enhanced button styling and interactions
    • Improved accessibility and user experience

🔧 Technical Details

  • Font System: New theme/fonts.ts module with comprehensive font utilities

    • Font family mappings for Inter and JetBrains Mono
    • Weight-to-family conversion for proper font selection
    • Font style creation utilities with theme integration
    • Platform-specific font handling
  • Font Assets: Added font files for both iOS and Android

    • Inter-Regular.ttf, Inter-Medium.ttf, Inter-SemiBold.ttf
    • JetBrainsMono-Regular.ttf, JetBrainsMono-Medium.ttf, JetBrainsMono-Bold.ttf
    • Proper font linking via link-assets-manifest.json files
  • User Preference Screen: New screen component for privacy configuration

    • API endpoint validation with timeout handling
    • URL normalization and validation logic
    • Integration with UserContext for API provider management
  • Dev Debug Implementation: New developer tools section in WalletSettings

    • Build number click tracking with visual feedback
    • Session-based debug logging toggle
    • Enhanced UI components with status indicators
  • Performance Improvements: Multiple optimization passes

    • Component refactoring for better performance
    • State management optimizations
    • Network handling improvements
  • Asset Management: 50+ new icon assets added

    • Icons organized in assets/assets/assets/ directory
    • Theme-aware icon variants for light and dark modes
  • Files Changed: 144+ files changed with significant additions and improvements

  • Components Updated: All major components updated for new font system and enhancements

  • Screens Updated: All screens updated with font improvements, privacy features, and performance optimizations

  • Build System: Updated iOS Xcode project and Android build configuration for font assets

  • Native Libraries: Updated TSS framework binaries for iOS and Android

See CHANGELOG.md for complete details.

- Custom Font System: Added Inter and JetBrains Mono fonts with comprehensive font system
  - Inter font family for UI text (Regular, Medium, SemiBold weights)
  - JetBrains Mono font family for technical content (Regular, Medium, Bold weights)
  - New font system with proper font family mappings and weight-to-family conversion
  - Font comparison and verification components for testing
  - Automated font download scripts and documentation
  - Enhanced typography consistency across all screens and components

- Mempool Privacy Configuration: New user preference screen for enhanced privacy
  - Custom mempool.space API endpoint configuration during wallet setup
  - Privacy-focused feature to reduce third-party tracking of Bitcoin addresses
  - API endpoint validation with automatic URL normalization
  - Settings integration for changing API endpoint after wallet creation

- Comprehensive Icon Asset Library: Added 50+ new icon assets
  - Icons for settings, actions, network status, and wallet features
  - Theme-aware icon support with inverted variants for dark mode
  - Consistent icon styling across all screens and components

- Typography System Refactoring: Complete font system overhaul
  - Migrated from system fonts to custom Inter and JetBrains Mono fonts
  - New theme/fonts.ts module with font utilities and mappings
  - All components updated to use new font system

- Code Cleanup: Removed unused contexts and components
  - Removed unused NetworkContext, UserContext, WalletContext files
  - Cleaned up unused components and utilities

- Updated CHANGELOG.md for v2.1.12 release
bbtc added 13 commits January 25, 2026 12:42
- Wrap StyleSheet.create in useMemo with theme dependency
- Fixes issue where sections didn't update correctly when switching between OS Default, Light, or Dark mode
- All sections now properly re-render with correct theme colors when theme mode changes
- Add themeUpdateKey state that increments when theme changes
- Use useEffect to watch theme.colors.background and themeMode
- Apply key to SafeAreaView and ScrollView to force complete re-render
- Fixes Android-specific issue where sections didn't update correctly
  when switching between OS Default, Light, or Dark mode
- iOS already worked correctly, this ensures Android behaves the same
- WalletSettings theme switching: Force re-render on Android when theme changes
  - Wrap styles in useMemo with theme dependency for reactive updates
  - Add themeUpdateKey state to force complete re-render on Android
  - Fixes issue where sections didn't update correctly when switching themes

- SendBitcoinModal: Fix derivation path computation for non-Nostr keyshares
  - Compute derivation path inline if currentDerivationPath is empty
  - Prevents 'Derivation path is required' error when sending Bitcoin
  - Uses getDerivePathForNetwork with proper network and address type

- Modal border colors: Fix dark mode visibility for all modals
  - ShowcaseScreen: Add borders to modalContent and fix header border
  - TransportModeSelector: Add border to modalContent
  - MobilesPairing: Add border to modalContent
  - MobileNostrPairing: Add border to modalContent
  - All modals now use theme-aware borders (blackOverlay10/whiteOverlay20)

- Button colors: Use Bitcoin orange for enabled states
  - BackupKeyshareModal: Enabled button always uses bitcoinOrange
  - BackupKeyshareModal: Improved disabled button visibility
  - SendBitcoinModal: Send button uses bitcoinOrange when enabled
  - Better visual consistency and dark mode readability
- Remove redundant nil check in btc.go (len() for nil slices is defined as zero)
- Make address font size shrink to fit on one line in ReceiveModal
- Add Dev Debug section in WalletSettings (after Storage, before Legal)
- Add warning message for advanced developers only
- Implement debug logging toggle that reloads app
- Fix dbg() function to respect debug logging state
- Fix fontVariant 'no-ligatures' error by using fontFeatureSettings
- Store original console methods to restore when enabling logging
- Note: Timeout issues on Go side were fixed in separate agent session
- Extract color calculations to variables before using in style objects
- Use IIFE to scope variables and avoid inline ternary expressions
- Resolves ESLint warnings about inline style complexity
- Remove warningBg from theme types and definitions
- Use conditional background color in WalletSettings based on theme mode
- Keep warningBorder and warningText in theme for consistency
- Add warningBg back to theme types and definitions
- Remove hardcoded background colors from WalletSettings
- Use theme.colors.warningBg instead of conditional hardcoded values
- All warning colors now centralized in theme system
- Add switchTrackFalse, switchTrackTrue, switchThumb, switchIosBackground to theme
- Light theme: Light gray track when off, success green when on, white thumb
- Dark theme: Dark gray track when off, success green when on, white thumb
- Apply theme colors to all Switch components in WalletSettings
- Improves visual consistency and accessibility in both themes
- Use disabled color (#cbd5e1 light, #424242 dark) for switchTrackFalse
- Use success color (#34C759) for switchTrackTrue (already matched)
- Use white color (#fff light, #FFFFFF dark) for switchThumb (already matched)
- Use disabled color for switchIosBackground
- All Switch colors now use values from existing theme palette for consistency
Copy link
Contributor

@kar1timmins kar1timmins left a comment

Choose a reason for hiding this comment

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

LGTM.

bbtc added 5 commits January 26, 2026 02:07
- Fix PSBT co-sign button color in dark mode (use bitcoinOrange for better visibility)
- Fix PSBT details scrolling on Android (enable nestedScrollEnabled and increase maxHeight)
- Update PSBT details text colors to bitcoinOrange in dark mode for better visibility
- Add network parameter to route params for PSBT signing (for consistency, network is read from app state)
- Fix missing useEffect import in SignedPSBTModal
- Fix co-signing timeout by ensuring all npubs are fully converted before enabling button
- Prevents session ID mismatch between Android and iOS devices
- Improve Final Step section UI: remove card wrapper, better spacing
- Move checkbox and button to appropriate sections
- Update participant device information display and typography
- Restore LocalStateNostr type definition that was accidentally deleted
- Fix concurrent map access issues with mutex protection
- Fix potential deadlock in RunRelay by unlocking before calling StopRelay
- Add mutex protection for hookListener, goLogListener, and server variable
- Format code with gofmt
- Add Dev Debug Mode (advanced) accessible via build number clicks
- Add wallet balance formatting option in settings
- Enhance Dev Debug section UI with card layout and status indicators
- Improve build number badge with progress tracking and toasts
- Update CHANGELOG with v2.1.13 features:
  * Font normalizations (iOS and Android)
  * Settings: wallet balances formatting option
  * Settings: Dev Debug Mode (advanced)
  * Nostr Pairing UI Flow simplification
  * Enhanced Device Keyshare Modal info optimization
  * Better Network handling with background retries
  * React Native performance optimization and refactoring
  * Nostr/TSS performance and stability enhancements
@boldbitcoin boldbitcoin changed the title Release v2.1.12: Font normalizations and mempool privacy configuration Release v2.1.13: Dev Debug Mode, Settings Enhancements, and Performance Improvements Jan 26, 2026
@boldbitcoin boldbitcoin changed the title Release v2.1.13: Dev Debug Mode, Settings Enhancements, and Performance Improvements Release v2.1.12: Dev Debug Mode, Settings Enhancements, Font System, and Performance Improvements Jan 26, 2026
bbtc added 2 commits January 27, 2026 00:13
…ling

- Fix network routing when scanning QR codes with Nostr transport
  - Normalize network format (testnet -> testnet3) before passing to BBMTLib
  - Update LocalCache 'api' key to use correct network API
  - Temporarily update WalletService internal state for getWalletBalance calls
  - Ensures both devices use network from QR code regardless of their current network
  - Fixes timeout issues when devices are on different networks

- Fix Android exit button border styling
  - Use thinner border (0.5px) on Android to prevent distortion
  - Remove elevation on Android to prevent border rendering issues
  - Update informationCard border styling in MobileNostrPairing for consistency

- Apply fixes to both MobilesPairing and MobileNostrPairing screens
@boldbitcoin boldbitcoin merged commit b5dff43 into main Jan 26, 2026
1 check passed
@boldbitcoin boldbitcoin deleted the v2.1.12 branch January 26, 2026 21:56
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.

4 participants