Remove obsolete fork code and correct core lifecycle failures - #81
Open
ProtonDev-sys wants to merge 64 commits into
Open
Remove obsolete fork code and correct core lifecycle failures#81ProtonDev-sys wants to merge 64 commits into
ProtonDev-sys wants to merge 64 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Keep global badge rendering on the existing per-user lookup, hide the raw cache, and remove the intermediate key that the profile adapter never uses. Exercise the per-user results in the existing tests instead of preserving an unused display API for test inspection. Validation: the three focused global badge tests pass with both old and new implementations; source snapshots were verified against Git blob hashes. Local checks used Node 22.16.0 and the available TypeScript 5.8.3 transpiler, not the repository's full dependency installation.
SettingsStore creates a new proxy for each nested object read. Both theme-list memoizations therefore miss on every render; compute the same lists directly instead of retaining unused cache machinery and dependency lists. Validation: 2,880 before/after projection comparisons using the actual SettingsStore source cover null/empty/populated lists, all filters, search, pinning, nested name and activation edits, and unpinning. The dependency-comparison model records zero cache hits in the old code. This is not a live React/Discord rendering test. Local Node 22.16.0 / TypeScript 5.8.3 transpilation and whitespace checks pass.
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.
The fork retained replaced implementations and duplicate UI paths, alongside failures in persistence and lifecycle cleanup. This PR removes those remnants and repairs the confirmed failures while tracing their callers and historical commits. It currently changes 214 files, with 7,889 additions and 4,779 deletions; most substantial additions are regression tests.
Changes:
Remove the unused bundled Monaco editor, packaging helpers and dependencies; obsolete Markdown Tables/bookmark/scheduler paths; duplicate GIF metadata and FFmpeg loading; unused settings definitions, CSS, HTTP wrappers and VS Code tasks; and upstream-only release workflows. Keep the independently hosted QuickCSS editor and active plugin implementations.
Remove SupportHelper's action that executes JavaScript from chat messages and AlwaysTrust's extra server-deletion path. Server deletion now uses Discord's existing confirmation flow.
Make DataStore updates atomic and settle transaction failures. Remove MoreStickers' custom mutex and unused pack-set API. Await backup reading/import, remove backup-content logging, and delete the unreachable recursive cloud-settings copier.
Clean up replaced CSS watchers and pending renderer setup, preserve quit cancellation and Chromium flags, and await React DevTools extraction/loading. Recover from invalid native settings roots and simplify CRX parsing. Preserve CSP values and reject incomplete custom-policy requests, following the CSP parsing rules.
Preserve userscript CSS literals and caller fetch options, handle adapter/message failures, and correct extension output cleanup. Background updater checks retain the selected download. Crash recovery releases its guard on all exit paths. Notifications release dismissed queues before callbacks; explicit zero audio volume is preserved.
Reject obsolete theme/QuickCSS results, retain resources until replacements are ready, and preserve disabled and activation preferences. Remove the duplicate theme card, copied name state, text-shortening hook and repeated refresh work. Validate the current URL draft and await all uploads before refreshing. ClientTheme cancels stopped loads, tolerates unrelated stylesheet failures, uses live validated color settings and sends lowercase theme values; remove its duplicate helper and string-building paths.
Keep original plugin event handlers and registered wrappers separate. Propagate nested dependency failures/restarts, permit retries, detect missing/cyclic dependencies, bind initially disabled callbacks and reject duplicate lifecycle calls. Resolve complete dependency/API closure before collecting patches, including later-enabled plugins. Remove duplicate badge wrapping; validate independent badge downloads, retry failures, ignore stale results and filter display preferences from existing data. Use declarative FriendshipRanks badges and cover milestone days.
Remove duplicated editable-input, badge-layout and role-menu state/actions. Preserve expanded component identity, frozen styles and folder render trees. Cancel obsolete folder tasks, release failed toggles and honor live animation settings. Correct numeric validation, switch/link behavior, icon reuse and prop forwarding; remove unused stream-menu declarations and counter markup. Open account/server profile modals through the existing action with captured context. Apply animation preferences consistently and keep inactive blur styles inactive.
Keep session names and polling scoped to their account. Ignore stopped or obsolete reads/responses, coalesce checks, retry failures, validate intervals and capture persistence snapshots. Remove copied title state; update loaded names live, await rename persistence, reject old-account dialogs and mark only displayed sessions seen.
Preserve extensionless upload names and honor extension/spoiler preferences when anonymisation is disabled for an upload. Remove the circular plugin import and repeated suffix/prefix handling. Retain compound archive suffixes and bound random-name generation, falling back to the existing default for invalid settings.
Reject superseded presence updates, scope clearing to owned sockets and preserve replacement cache entries. Restore WebRichPresence browser visibility and replace its startup timer with socket events. Coalesce Apple Music polls, handle failures, preserve literal/blank metadata and position-zero timestamps. Remove obsolete CallTimer fields/arguments and clear observations on logout.
Remove duplicated clipboard success state, timers and icon; use the shared keyboard-accessible button with failure feedback. Remove unnecessary emoji helper indirection and redundant image-URL parsing. A comparison using the real lazy proxy confirms both old and new helper forms defer resolution; the earlier premature-resolution claim is withdrawn.
Match complete tracking parameter names, apply raw URL rules without requiring query parameters, preserve unchanged URL text and atomically install validated rule catalogs. Cancel stale downloads and retain valid rules on failure. Remove ConsoleJanitor's copied allow-level Set so external settings changes apply immediately.
Remove ConsoleShortcuts' automatic eager loader, native listener, export mutation and redundant caches. Restore owned globals and reuse/clean up the preview root. Explicit access resolves aliases; automatic preload-based autocomplete is intentionally removed.
Preserve custom command ownership and failed edits/renames; keep registrations aligned with imported settings. Normalize arguments once, preserve equals signs in defaults, and retain replies after local previews or rejected/stale sends. Restore only owned timestamp rounding changes.
Move CustomRPC update scheduling into plugin lifecycle, reject obsolete/account-stale results, preserve asset-cache ownership and optional-image independence, pair buttons with destinations, and repair stable/looping timestamps. Remove UI clear-before-update work and cancel stopped timers.
Keep RPC presets limited to activity fields, clear omitted fields without changing enablement, and preserve concurrent saves/deletions with atomic transactions. Remove duplicate preset lists and numeric parseInt conversion; keep invalid drafts visible and expose storage errors with retry. Retain explicit preset remounting to discard same-value invalid drafts. Isolated React/IndexedDB checks pass.
Limit image-quality rewrites to Discord attachments and preserve host behavior for invalid dimensions or unavailable guild-owner context. Delete redundant image help-list markup. Two old-source comparisons fail and both repaired regressions pass.
Remove unused Decor API/store methods, copied avatar state, redundant grid-key prefixes/button aliases and abandoned modal CSS. Preserve newer decoration records, cancel obsolete lookups, validate public responses and keep avatars aligned with removal, reuse, restart and expiry. Retain startup failure containment.
Bind Decor credentials to their account/service and replace mirrored token persistence with atomic storage. Cancel obsolete authorization/configuration, validate callback destinations and disable credential redirects. Preserve failed storage and show retryable errors. Legacy sessions require one-time sign-in; older token records are kept. Synthetic React/IndexedDB checks pass.
Wait for confirmed Decor writes, reject competing or obsolete operations, reconcile private/public caches and preserve failed dialog drafts. Remove the upload response union, optimistic selection, duplicate submitting state and non-null assertions. Validate decoration/preset responses, scope dialog actions, cancel obsolete preset/author work and revoke replaced previews. Old-source and isolated React checks pass; remaining transport/upload/host investigations stay explicit.
Cancel closed Decor views before lazy dialogs open, validate square PNG headers and names at upload boundaries, and retain failed drafts with inputs locked during writes. Delete custom invitation workflows in favor of standard links, duplicated modal declarations and redundant avatar path processing. Expanded isolated React Strict Mode checks pass.
Anchor Decor batches to their first lookup so continuous scrolling cannot postpone dispatch. Consolidate duplicate command-option declarations, correct chunk-loader promise arrays and declare the type package's existing Node dependency. Isolated compiler comparisons and standalone declaration compilation pass.
Give DevCompanion one connection owner and discard stopped or replaced events and delayed replies. Delete its duplicate loading banner, deferred promise, render-time handlers/timers, redundant connection flag, reconnect global and one-use type-renaming helpers. Synthetic connection tests and both development builds pass.
Make offline backup sections explicit, reject incomplete or lossy JSON exports, preserve empty CSS and nested settings, and report partial imports. Delete duplicate picker/button paths and obsolete flags. Persist native renderer settings through a flushed temporary file before publishing changes; failed saves retain the previous file and state. Synthetic fault tests and real isolated React/IndexedDB and Windows filesystem checks pass.
Correct raw embed optional fields and numeric colors, and share media declarations, following the Discord embed specification. Correct select accessibility label types and label CustomRPC selectors. Actual compiler comparisons confirm valid inputs were rejected by the old declarations and are accepted by the repair.
Simplify recent DM cycling and save account-owned history directly. Cancel stopped loads and dismissed previews, retain failed saves for retry, and replace custom overlay wrappers with the host modal and responsive cards. Eleven regression tests and isolated React/IndexedDB keyboard checks pass.
Send Orbolay the current streamer mode on the host update event. Remove the incorrect payload assumption, preserve pairing gates and extend the existing isolated protocol regression checks.
Share media engine event signatures across registration, one-time registration and cleanup. Remove incomplete overload copies that rejected valid listener removal; strict compiler checks preserve callback inference and subclass chaining.
Generate the public API type package from its entry points, remove unrelated emission/copied declarations, retain required native types and include the license. Use the matching fork dependency and simplify recursive settings-path types. Replace the placeholder package test with strict compilation and add it to existing CI. Both actual tarballs compile in an isolated consumer; repeat generation removes stale output.
Validation:
1b9ac5d823602bf8dd4aa368a8716d486b9333e2; both passed on previous heade7f8893a737f37457d25de4749110a92a32ae8e2.This remains an incremental PR within the active whole-project audit. The ledger accounts for every tracked path: 588 original files are source-reviewed, 18 added regression scripts, one added source module and one added build config are reviewed, and ten original asset/data/mixed entries were inspected or validated separately. The remaining 1,102 baseline files are pending. Searches, asset validation and passing tests are not counted as manual source review, and reviewed files retain explicit unresolved investigations.
No live account mutations, server deletions, real uploads or live Discord patches were performed. Current full-client compatibility has not been established. Scheduled workflows run from default
main, so removed daily workflows stop only after promotion fromnightly.