Part 1 of the Monster Merge #1764
Closed
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.
Summary of Objectives
For some context, recently a branch was created by km where he went ham with Claude Code to deal with a lot of major things. However, the workload is a monster and we wanted human review and touch on it all. Therefore, the work is being split into 6 parts:
provideHttpClient, Build System Update,standalone: false.This is an incredibly terse summary of the plan and the scope of each but splitting it into six steps should make it tolerable to review. By taking the work from km's branch (after I made my own fixes so it passes tests etc.), I am systematically going through each aspect and documenting the changes so we can see what is occurring.
This is the first part of it and the changes made have been described below for a summary, including justifications. No tests additionally break compared to master (I tried fixing them more up but failed and left the effort for later, seeing it as wasted effort after hours of failing). The software itself compiles totally fine and the console is not screaming any additional errors in the browser console while looking at the end rendered product.
Detailed Modifications and Justifications
1. RxJS 7 Migration
.toPromise()method withfirstValueFromandlastValueFromacross 27 files.rxjs-compatpackage frompackage.json.firstValueFromandlastValueFromexplicitly convey intent and offer improved error handling.2. Tooling Updates
@typescript-eslint/semi(error level) and@typescript-eslint/no-unused-vars(warn level, ignoring underscore-prefixed identifiers) rules to.eslintrc.json.@typescript-eslint/member-ordering.npm run lint -- --fix) to 31 files, addressing:OnInit,OnChanges,DoBootstrap) to component classes and their respective imports.3. Service Worker Gating
src/app/app.module.tsfromregisterWithDelay:5000toregisterWhenStable:30000.4. Code Cleanup
src/app/folder/folderlist.component.ts:OnDestroylifecycle hook withprivate destroy$ = new Subject<void>();andtakeUntil(this.destroy$)for proper subscription cleanup (expansionModel.changedandfolderssubscriptions).ngOnChanges()to prevent stacking.document.getElementById('thedragcanvas')?.remove();).standalone: false.MatLegacyDialogtoMatDialog.src/app/http/progress.service.ts:httpRequestInProgress$: Observable<boolean> = this.httpRequestInProgress.pipe(delay(0));to preventExpressionChangedAfterItHasBeenCheckedErrorin templates.ExpressionChangedAfterItHasBeenCheckedErrorby ensuring proper change detection timing and subscription management.OnDestroyimplementation andtakeUntil.5. Styling Cleanup
@font-facedeclarations for "Avenir Next Pro Regular" and "Avenir Next Pro Medium" insrc/styles.scss.src/app/changelog/changelog.component.scssfor readability.Testing Information