mirror of
https://github.com/kccleoc/seedpgp-web.git
synced 2026-03-07 09:57:50 +08:00
fix(qr): resolve scanner race condition and crashes
This commit addresses several issues related to the QR code scanner: - Fixes a build failure by defining stable handlers (`handleRestoreClose`, `handleRestoreError`) for the QRScanner component in `App.tsx` using `useCallback`. - Resolves a race condition that caused an `AbortError` when the scanner was initialized, particularly in React Strict Mode. This was fixed by ensuring all props passed to the scanner are stable. - Implements more robust error handling within the `QRScanner` component to prevent crashes when `null` or `undefined` errors are caught. - Updates documentation (`README.md`, `GEMINI.md`) to version 1.4.5.
This commit is contained in:
13
GEMINI.md
13
GEMINI.md
@@ -2,7 +2,7 @@
|
||||
|
||||
## Project Overview
|
||||
|
||||
**SeedPGP v1.4.4**: Client-side BIP39 mnemonic encryption webapp
|
||||
**SeedPGP v1.4.5**: Client-side BIP39 mnemonic encryption webapp
|
||||
**Stack**: Bun + Vite + React + TypeScript + OpenPGP.js + Tailwind CSS
|
||||
**Deploy**: Cloudflare Pages (private repo: `seedpgp-web`)
|
||||
**Live URL**: <https://seedpgp-web.pages.dev/>
|
||||
@@ -300,13 +300,12 @@ await window.runSessionCryptoTest()
|
||||
|
||||
---
|
||||
|
||||
## Current Version: v1.4.4
|
||||
## Current Version: v1.4.5
|
||||
|
||||
**Recent Changes (v1.4.4):**
|
||||
- Enhanced security documentation with explicit threat model
|
||||
- Improved README with simple examples and best practices
|
||||
- Better air-gapped usage guidance for maximum security
|
||||
- Version bump with security audit improvements
|
||||
**Recent Changes (v1.4.5):**
|
||||
- Fixed QR Scanner bugs related to camera initialization and race conditions.
|
||||
- Improved error handling in the scanner to prevent crashes and provide better feedback.
|
||||
- Stabilized component props to prevent unnecessary re-renders and fix `AbortError`.
|
||||
|
||||
**Known Limitations (Critical):**
|
||||
1. **Browser extensions** can read DOM, memory, keystrokes - use dedicated browser
|
||||
|
||||
Reference in New Issue
Block a user