Repository navigation
perf: cut extra requests, large list rendering and CI checkout time - #323
Merged
Merged
Conversation
- Uploads pass the File to the chunked upload library at once. They no longer read the whole file into memory and copy it to an unused blob. Remove the blob-util dependency. - User lookups share requests that are in flight. - Driver and module tab counts use the totals the state services already load, not a second count query. - The user group list loads when its tab opens. Until then a single row query gives the count. - The default locale reuses its bundled mappings instead of fetching the same file again. - Remove the unused API key users query. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opening a system sent 7 requests, including the full module list, and any action reloaded all 5 lists. - Load the module, zone and trigger lists when their tab opens. The item gives the module and zone counts, and a single row query gives the trigger count. - Settings, modules and triggers each have their own change signal. Module actions reload modules, editing a module also reloads the associated settings, and trigger actions reload triggers. Zones and the metadata count reload when the item changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Support zone searches ask for pages of 1000. Each group loaded every page one after another at the default size, so a 2000 zone group took about 20 requests per search. - The resource import check sent up to 1000 emails in one URL (about 30 KB) and read one page. Send 100 emails per request, read every page and match through a map. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- BUILD fetches only the branch history and tags (about 30 MB, not 560 MB with the build/* deploy branches). The changelog is identical. - git-cliff runs alongside the build. A failure still fails the step. - Do not copy the Monaco ts, css and html workers or the translated nls files. The app uses JSON and YAML only. 14 MB to 5.7 MB. - Remove the dead src/environments/dev asset entry. - Remove the Playwright browser cache. A hit saved about 2 s. - e2e: drop the fixed 500 ms wait after each page load. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Group membership tables (group users and zones, user groups, zone groups) use 72 px virtual rows. Each row computes its permission labels once. - The metadata history selects render 20 options and the selected one while closed. With 3000 versions, opening the modal no longer blocks for 125 ms. - Bulk add: validation and duplicate checks are computed from the list signal instead of running on every tick. The status list uses virtual rows and one signal per row instead of copying all statuses per update. - The markdown pipe loads marked and Shiki (67 KB gzip) on first use, so about pages without a description skip them. - Domain applications: a click anywhere no longer writes the secret state once per row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Problem
A follow-up audit after #322 found these performance problems:
Solution
One commit per area:
perf: drop redundant requests and upload buffering: pass the File to the upload library at once. Removeblob-util. Share user lookups. Use the loaded totals for the driver and module tab counts. Load the user group list when its tab opens. Reuse the bundled default locale. Remove the unused API key users query.perf(systems): …: load the module, zone and trigger lists when their tab opens. Settings, modules and triggers each reload only after an action that changes them.perf: page support zone searches …: ask for zone pages of 1000. Check resource emails 100 at a time, read every page and match through a map.perf(ui): …: 72 px virtual rows on the four group membership tables. The history selects render 20 options and the selected one while closed (mat-selectdoes not open without options). The bulk add checks becomecomputed, and the status list uses virtual rows with one signal per row. The markdown pipe imports its renderer on first use.perf(build): …: shallow checkout plusgit fetch --unshallow --tagsfor the branch. git-cliff runs alongside the build. Skip the Monaco ts/css/html workers and nls files. Remove the Playwright browser cache and the fixed 500 ms e2e wait.Notes for review
waitForTimeoutcalls, the CodeQL v3 upgrade, and running TEST on develop pushes.Checks
import().Reviewed with sol-loop: 1 round per block (5 blocks) with gpt-6.1-sol.
Changes made by Claude Opus 5.5 (
claude-opus-5-5) in Claude Code, running in T3 Code.🤖 Generated with Claude Code