v0.6.87: performance improvements#4707
Conversation
…lash) (#4694) The reveal used a lagging nullable `revealed` state with a `revealed ?? kind.text` fallback in the caller. Under React 18 concurrent rendering a committed render could observe `revealed === null` while `text` was the full value, so the fallback painted the entire string for one frame before the type-on — an intermittent flash, reproducible on a large Run-all (verified in-browser: 60+ cells flashing). Derive the revealed slice from `text` + elapsed time during render instead of holding it in state. For a non-null value the result is never `null` and never the full string on the frame `text` changes (elapsed ≈ 0 → 0 chars), so the fallback can't fire. `prevText` is tracked in state (not a ref) so a discarded render rolls it back and the change is re-detected on the committed render. Verified via DOM MutationObserver: 0 flashes across 213 animated cells.
…d redirect path drop (#4700)
…efetch storm (#4701) * fix(mcp): write per-server cache from discoverServerTools to prevent post-OAuth refetch storm * improvement(mcp): update server status from discoverServerTools + cap list-tools timeout at 30s
…rs (#4697) The ContextMenu component already has a showDelete prop with conditional rendering, but workflow-item and folder-item never pass it, leaving it at the default value of true. This causes write members to see an active Delete option that always fails with 403, since the DELETE API requires admin permission. Pass showDelete={userPermissions.canAdmin} from both workflow-item and folder-item so that non-admin users no longer see the Delete menu. Simplify disableDelete to only check canDeleteSelection and effectiveLocked, since permission gating is now handled by showDelete.
* perf(db): reduce read/write fanout across hot paths * fix(templates): include name/workflowId/status/tags in DELETE projection * fix(db): address review feedback (joinedAt backfill, mcp delete error, chatDeploy projection, sql newline) * fix(webhooks): include NULL failedCount in markWebhookSuccess guard
… streaming lims (#4692) * fix(logs-cleanup): listing active workspaces into mem + download time streaming lims * fix * fix ci * address comments * add skill * fix client-server sep * fix parse bytes enforcement * address comments, antipatterns * address slides ssrf comment * more fixes * fix tests * fix
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview Multipart upload/import endpoints ( External/tool proxies (DocuSign, image, video, TTS, new Google Slides export, new Typeform file download) now use bounded reads for JSON/text/binary responses, add explicit max-byte budgets, and in some cases store large outputs as uploaded files while only inlining small legacy base64 payloads. Separately reduces DB read fanout by selecting only needed columns in several hot paths (admin list endpoints, templates/settings fetches, row delete returning, webhook PATCH no-op early return), adjusts logs live refresh intervals, and refines table cell typewriter rendering to avoid full-text flash. Reviewed by Cursor Bugbot for commit 4002242. Bugbot is set up for automated code reviews on this repo. Configure here. |
…te (#4693) * feat(tables): virtualize data grid with bounded copy and chunked delete * fix(tables): keyboard scroll past sticky header, copy toast row count, clipboard error handling Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(tables): keep copy/cut progress toast until the operation completes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(tables): stop bulk cut chunks on first failure, reconcile grid on error Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(table): derive typewriter slice from elapsed time (no full-text flash) (#4694)
fix(copilot): default SIM_AGENT_API_URL to www.copilot.sim.ai to avoid redirect path drop (#4700)
fix(mcp): cache result of discoverServerTools to prevent post-OAuth refetch storm (#4701)
fix(sidebar): pass showDelete to hide delete menu for non-admin members (#4697)
perf(db): reduce read/write fanout across hot paths (#4704)
fix(logs-cleanup): listing active workspaces into mem + download time streaming lims (#4692)
feat(tables): virtualize data grid with bounded copy and chunked delete (#4693)