mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
Dual-model review (Claude + Codex) found 1 CRITICAL, 9 HIGH, 10 MEDIUM, 7 LOW issues. All addressed: Security: - SSRF protection: block link previews to private/internal IPs - Context-menu dismiss listener leak on item click Type safety: - Replace `as any` casts with LocalVideoTrack/LocalTrack types - loadPref runtime typeof validation against corrupted localStorage - handleLocalTrackPublished typed with LocalTrackPublication Memory leaks / listener cleanup: - MessageInput.destroy() closes open pickers before aborting - ChannelSidebar/VoiceChannel dismiss setTimeout race guard - Context-menu item click aborts dismiss AbortController Async correctness: - attemptAutoReconnect takes AbortSignal; leaveVoice() aborts it - OG dedup returns shared in-flight Promise (not empty placeholder) - Clipboard copy handles rejection with user feedback State management: - setMembers() clears typing timers on reconnect - prependMessages() sets hasMore=true when trimming to cap - setVoiceStates() preserves currentChannelId when user absent Code quality: - VideoGrid: createIcon() replaces innerHTML SVG strings - VideoGrid: single setUserVolume on unmute (no volume spike) - api.ts: shared doFetch() eliminates request/adminRequest duplication - livekitSession: __owncord.lkDebug namespace replaces __lkDebug - console.error replaced with structured logger - YouTube oembed uses tauriFetch for consistency