Skip to content

perf(app): optimize network requests, bound caches, and trim memos - #180

Draft
wgordon17 wants to merge 3 commits into
gordon-code:mainfrom
wgordon17:feat/site-modernization-pr4
Draft

wgordon17 wants to merge 3 commits into
gordon-code:mainfrom
wgordon17:feat/site-modernization-pr4

Conversation

@wgordon17

@wgordon17 wgordon17 commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Use conditional cachedRequest calls with projected payloads for hot-poll workflow run checks (run:<owner>/<repo>:<id>, deleting cache entries on terminal completed or waiting status; empirically verified live that GET /repos/{owner}/{repo}/actions/runs/{run_id} returns 304 Not Modified with X-RateLimit-Remaining unchanged while in-flight and returns 200 OK with a new ETag on state transition), skip status-badge re-renders on 304 unless recovering from consecutive failures, deduplicate initial Jira load fetches within 20s while preserving error retries, manual refreshes, and in-flight scope changes, and request right-sized (40px/56px) lazy-decoded GitHub avatars
  • Project cached workflow-run list pages under runs2: keys to strip unused repository/actor payload fields, refresh fetchedAt hourly on 304 for unbounded entries, and schedule hourly stale-entry eviction plus IDBKeyRange.bound prefix eviction when repositories are deselected
  • Clean up detached DOM references in TrackedTab on row disposal, cap notification seen-ID sets at 20,000 entries with two-pass LRU eviction, and split customTabData so exclusiveOwnership does not recompute on tab switches

Use conditional cachedRequest calls in fetchWorkflowRunById and delete
cache entries on terminal status, skip status-badge re-renders on 304
unless recovering from consecutive failures, deduplicate mount and
post-refresh Jira fetches within 20s, and request right-sized lazy
GitHub avatars.
Project cached workflow run list entries under runs2: (old fat runs:
entries age out via the 24h eviction), schedule hourly stale-entry
eviction and repo-deselection prefix eviction in App, clean up
TrackedTab itemRefs on unmount, cap notification seen-ID sets at 20,000
entries with LRU eviction, and split customTabData so exclusiveOwnership
does not recompute on built-in tab switches.
Use IDBKeyRange.bound in evictKeysWithPrefix, project single-run cache
entries via projectSingleRun, delete run: entries on completed and
waiting status with best-effort error handling, evict run: prefixes on
repo deselection, refresh fetchedAt hourly on 304 for unbounded entries,
and reset Jira dedupe on errors/manual refresh while rerunning on
in-flight scope changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant