self improving the extensions api#37
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedPull request was closed or merged during review WalkthroughThis PR introduces a non-blocking data loader for extension views. Extensions can now call Sequence DiagramsequenceDiagram
participant User as User/Renderer
participant App as App.tsx
participant Host as Host (main.ts)
participant Extension as Extension Code
Extension->>Host: return view with ctx.data.loader(fetchItems)
Host->>Host: detect loader handle, register in viewLoaderRegistry
Host->>App: render view with empty items, isLoading=true
App->>App: show LoadingSpinner (after 200ms debounce)
Host->>Host: spawn loader function in background
Host->>Host: invoke fetchItems() → resolves with items
Host->>App: send view:hydrate IPC event with items
App->>App: receive ViewHydratePayload, match viewId
App->>App: apply items patch, set isLoading=false
App->>App: hide spinner, display items
User->>App: click Retry action (if error occurred)
App->>Host: invoke view:hydrate:retry IPC
Host->>Host: re-execute loader
Host->>App: send view:hydrate event with new result
🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
Summary
Verification
mise exec -- pnpm testBackend API compatibility
If this PR changes backend routes, proxy/auth/token/device flows, model descriptors, rate limits, billing errors, or desktop compatibility headers:
backend/src/fixtures/contracts/fixtures when supported desktop clients depend on the changed shape.Summary by CodeRabbit