Skip to content

Conversation

@luvkapur
Copy link
Member

@luvkapur luvkapur commented Feb 6, 2026

Proposed Changes

luvkapur and others added 5 commits February 5, 2026 15:33
… query loading

Split the workspace GraphQL query into three progressive stages:
- Light query (~120ms): component list, env info, server URLs, build status
- Heavy query (~78ms): compositions, aspects, descriptions, issue counts
- Status query (~13s): deferred — doesn't block the UI

Only the light query triggers the global loading spinner (useDataQuery).
Heavy and status queries use useQuery directly, so they resolve silently
in the background without blocking interaction.

Additional changes:
- Switch lanes, cloud, and drawer hooks from useDataQuery to useQuery
  to remove them from the global loader
- Disable Apollo BatchHttpLink by default (fast queries were blocked
  by slow ones in the same batch)
- Fix drawer loading state: return loading=false when viewing workspace
  versions instead of waiting on lane queries
- Proxy: add cache-control headers on JS/CSS, normalize double-slash
  URLs, configure timeouts

Measured results (212 components):
- Global loader visible ~120ms (was 12-16s) — ~100x improvement
- Component data available in <200ms
- Status resolves in background (~13s, doesn't block UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)
The env icon in workspace component cards was not updating after the
heavy GraphQL query delivered aspect data. Root cause: useCardPlugins()
memoization only depended on component count, not on descriptor data.

Fix: add descriptorAspectsSignature to the memo dependencies so plugins
are recreated when aspect data arrives. Also show a subtle placeholder
while env data is loading instead of a broken image.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 6, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
4 Security Hotspots

See analysis details on SonarQube Cloud

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