Skip to content

v0.6.14: performance improvements, connectors UX, collapsed sidebar actions#3809

Merged
waleedlatif1 merged 8 commits intomainfrom
staging
Mar 27, 2026
Merged

v0.6.14: performance improvements, connectors UX, collapsed sidebar actions#3809
waleedlatif1 merged 8 commits intomainfrom
staging

Conversation

@waleedlatif1
Copy link
Copy Markdown
Collaborator

@waleedlatif1 waleedlatif1 commented Mar 27, 2026

adithyaakrishna and others added 5 commits March 27, 2026 09:39
* feat: update sidebar and knowledge

* chore: fix rernders on knowledge

* chore: fix review changes

* chore: fix review changes
* chore: fix antialiasing

* chore: remove antialiasing
* chore: fix rerenders on files

* chore: fix review changes
* fix(knowledge): show spinner on connector chip while syncing

* fix(knowledge): scope sync spinner to mutation lifetime, not cooldown
…stency, and UI polish (#3807)

* improvement(sidebar): collapsed sidebar UX, quick-create, hover consistency, and UI polish

Made-with: Cursor

* fix(sidebar): use stable handlers for root workflow items instead of inline lambdas

Made-with: Cursor

* fix(sidebar): reset actionsOpen state before triggering rename in collapsed dropdown

Made-with: Cursor
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Mar 29, 2026 6:32am

Request Review

@cursor
Copy link
Copy Markdown

cursor bot commented Mar 27, 2026

PR Summary

Medium Risk
Moderate risk: broad UI refactors add memoization, refs, and debounced state across files/knowledge/sidebar flows, which could introduce stale-state or event-handling regressions despite being mostly behavior-preserving.

Overview
Improves perceived performance across resource screens by aggressively memoizing components (Resource, table rows/cells, headers/options bars, file previews/modals/menus) and stabilizing callbacks/props; the files and knowledge list pages also switch to debounced search and ref-based state access to reduce dependency churn and rerenders.

Enhances UX for knowledge connectors by showing a per-connector syncing spinner while a sync is pending, and updates the collapsed/expanded sidebar interactions with consistent --surface-hover vs --surface-active styling plus new collapsed-workflow actions (open-in-new-tab/rename via submenus) and more reliable “more” button visibility.

Polishes destructive confirmation copy across multiple modals to emphasize permanence (error-colored warning text), introduces --surface-hover theme tokens, and removes global body antialiasing.

Written by Cursor Bugbot for commit 34df333. Configure here.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 27, 2026

Greptile Summary

This release bundles five commits that collectively improve rendering performance across the resource/table layer, refine sidebar UX in both expanded and collapsed states, and surface a sync-pending spinner on knowledge-base connectors. The changes are well-structured and follow the codebase's architecture conventions.\n\nKey changes:\n- Performance (resource.tsx, files.tsx, knowledge.tsx)Resource, DataRow, CellContent, CreateRow, ResourceColGroup, DataTableSkeleton, Pagination, and SearchSection are all wrapped in memo(); stable JSX constants replace inline element creation; manual debounce timer refs replace the useDebounce hook to avoid unnecessary re-renders in search inputs.\n- Sidebar UX — Hover and active item states are now semantically separated via a new --surface-hover / --surface-active CSS token split; collapsed-sidebar workflow actions migrated from an external context-menu to an inline DropdownMenuSub; active-state highlight persists on items while their context menu is open.\n- Collapsed sidebar quick-create / upgrade — Free-plan users now see an "Upgrade" button in the workspace header (gated behind isBillingEnabled); the subscription fetch is similarly guarded.\n- Knowledge connectors UXsyncingConnectorId state drives an immediate spinner on the connector chip as soon as sync is triggered, before the server reflects the syncing status.\n- Font antialiasing removed@apply antialiased removed from body in globals.css.\n- EMCN input focus stylesfocus-visible:border-[var(--text-muted)] removed from Input, Textarea, Combobox, DatePicker, and TimePicker base variants; worth verifying whether an alternative focus indicator is provided.

Confidence Score: 5/5

Safe to merge; all remaining findings are P2 style/accessibility suggestions with no runtime or data-integrity risk.

The logic changes (connector sync spinner, isCollapsedRef pattern, SearchSection render-time sync, collapsed workflow DropdownMenuSub) are all correct. The two flagged items are P2: the globals.css edit (justified for CSS-variable addition, debatable for the antialiasing line) and the removed focus-visible border on EMCN inputs (accessibility polish, not a breakage). No data-loss, crash, or security risk identified.

EMCN input components (input.tsx, textarea.tsx, combobox.tsx, date-picker.tsx, time-picker.tsx) — verify that an alternative keyboard focus indicator exists before these land in production.

Important Files Changed

Filename Overview
apps/sim/app/_styles/globals.css Adds --surface-hover CSS variable for distinct hover vs active states; removes @apply antialiased from body. Editing globals.css violates the custom rule for this project.
apps/sim/components/emcn/components/input/input.tsx Removes focus-visible:border-[var(--text-muted)] from the base CVA variant; combined with the existing outline-none, keyboard-focused inputs now have no visible focus ring.
apps/sim/components/emcn/components/combobox/combobox.tsx Strips hover-on-dark styles from the root CVA variant and the inner input; switches option-highlight colour from --border-1 to --surface-active for consistency with the new surface token rename.
apps/sim/app/workspace/[workspaceId]/components/resource/resource.tsx Major perf refactor: wraps Resource, Pagination, CellContent, DataRow, CreateRow, ResourceColGroup, DataTableSkeleton in memo(); extracts stable JSX constants; adds useCallback for checkbox handlers to prevent child re-renders.
apps/sim/app/workspace/[workspaceId]/components/resource/components/resource-options-bar/resource-options-bar.tsx Extracts search UI into a memoised SearchSection with local debounce state using the render-time sync pattern; extracts SortDropdown into memo().
apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx Removes collapsed-workflow context-menu plumbing (replaced by inline DropdownMenuSub); adds isCollapsedRef to break stale-closure dependency on isCollapsed in nav callbacks; adds menuOpenTaskId state to keep active item highlighted while menu is open.
apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/collapsed-sidebar-menu/collapsed-sidebar-menu.tsx Replaces the external context-menu pattern for collapsed workflow items with an inline DropdownMenuSub; adds isMenuOpen prop to CollapsedTaskFlyoutItem so the active background persists while the menu is open.
apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx Adds syncingConnectorId state to show a spinner on the connector chip immediately after triggering a sync, before the server reflects the syncing status.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User types in SearchSection] --> B[setLocalValue - immediate]
    B --> C[search.onChange called]
    C --> D[Parent debounces / filters data]

    E[Parent clears search externally] --> F{search.value !== lastReportedRef?}
    F -- yes --> G[render-time setLocalValue sync]
    G --> H[Re-render with synced value]

    I[User triggers connector Sync] --> J[setSyncingConnectorId]
    J --> K[Spinner shown immediately on chip]
    K --> L{triggerSync}
    L -- onSuccess --> M[setSyncingConnectorId null]
    L -- onError --> M

    N[User opens context menu on workflow item] --> O[setMenuOpenTaskId / actionsOpen]
    O --> P[Item stays bg-surface-active while menu is open]
    P --> Q{Menu closes}
    Q --> R[menuOpenTaskId cleared / actionsOpen false]
Loading

Reviews (1): Last reviewed commit: "improvement(sidebar): collapsed sidebar ..." | Re-trigger Greptile

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@cursor review

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

…3812)

* fix(knowledge): scope sync/update state per-connector to prevent race conditions

* feat(knowledge): add connectors column to knowledge base list

* refactor(knowledge): extract set helpers, handleTogglePause, and filter-before-map

* refactor(knowledge): use onSettled for syncingIds cleanup, consistent with updatingIds
@waleedlatif1 waleedlatif1 merged commit 14089f7 into main Mar 27, 2026
25 of 26 checks passed
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.

2 participants