Conversation
- Deleted PageTransition.tsx and related SCSS. - Centralized password validation errors in PasswordInput component. - Simplified MediaService and PeerService by removing redundant methods. - Streamlined usePasswordProtection and usePasswordVerification hooks. - Consolidated type definitions for Media and Peer connections.
- Clear video stream on unmount to prevent memory leaks. - Use type imports for PeerJS to optimize build size. - Cache camera devices in mediaService for reduced latency. - Optimize QR scan by caching canvas context per video element.
- Removed `useEffect` from `usePasswordVerification` in favor of `useCallback` for better performance. - Switched from direct state mutation to `useRef` for persistent variables like `tempPeerForVerification`. - Simplified password message handling with `handlePasswordMessage`. - Removed unnecessary `hostPeerId` parameter and validation logic for cleaner implementation. - Updated README with new badge placement for improved visibility.
- Removed redundant connection validation steps in diagrams. - Added spacing adjustments to README for better readability.
Streamline join flow, error messaging, and client cleanup
- Convert to dynamic importing for QRCodeSVG component in `QRSharePanel` for improved loading time. - Switch `usePeerConnection` to async initialization with error handling enhancements for peer setup. - Refactor `peerService` to use dynamic imports for PeerJS, optimizing initial load with a cached promise. - Modify `qrScanner` to dynamically import `jsqr`, adding scan lock to manage concurrent QR scan requests more effectively.
Improve Peer initialization with config constants
Split heavy peer/QR dependencies with dynamic imports
- Implement HMAC-based password verification for added security. - Introduce nonce generation for request-response integrity. - Provide legacy support for non-HMAC clients. - Optimize password hashing and add error handling.
- Implement HMAC-based password proof for improved security. - Remove legacy support for non-HMAC password handling. - Update sequence diagrams in ARCHITECTURE.md for clarity. - Add error handling for missing nonce in proof creation. - Simplify related code in hooks and type definitions.
Enforce nonce-based HMAC password verification
- Added `onStreamEnded` callback to `useMediaStream` to handle video track end events. - Updated `useMediaStream` and `HostPage` to manage navigation on stream end. - Refactored stream end logic for improved clarity and maintenance.
Handle stream end events to stop sharing automatically
Add a main landmark on the landing page and set empty alt text on decorative images for clearer screen reader behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Upgrades password-protected sessions to use nonce-based HMAC proofs (no password hash transmitted), improves peer/QR module loading, and adds reliable stream-end cleanup. Also includes landing-page UX/accessibility tweaks and documentation/config updates.
Type of Change
Changes Made
Checklist