fix(tabs): restore the resource header's spacing and clear the scroll fades - #6967
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview
Also drops Reviewed by Cursor Bugbot for commit 821aa0c. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 821aa0c. Configure here.
| * `attempt_count = 1` — no retry happened, and the dispatch row was left | ||
| * `dispatching` forever. The escalating preset is what makes the documented | ||
| * resume actually reachable; the cleanup sweep is the backstop for a dispatch | ||
| * whose holder dies without one. |
There was a problem hiding this comment.
Dispatcher OOM retry removed
High Severity
This tabs-only PR drops retry.outOfMemory from tableRunDispatcherTask and deletes the test that pinned it. Trigger.dev does not OOM-retry unless that preset is set, so a TASK_PROCESS_OOM_KILLED run stays dispatching until the ~95-minute stale sweep — the same failure mode the removed comments documented in production.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 821aa0c. Configure here.
Greptile SummaryThis PR adjusts resource-header and shared tab-strip geometry, including fade-aware active-tab revealing and a configurable floating-tab width. It also removes the table dispatcher’s OOM retry escalation and its regression test.
Confidence Score: 4/5The table dispatcher’s OOM retry regression should be fixed before merging because memory-terminated table runs will be cancelled without completing. Removing the larger-machine OOM fallback eliminates the path that resumed an interrupted dispatcher from its persisted cursor; stale cleanup only cancels the abandoned run. Files Needing Attention: apps/sim/background/table-run-dispatcher.ts, apps/sim/background/table-run-dispatcher.test.ts
|
| Filename | Overview |
|---|---|
| apps/sim/background/table-run-dispatcher.ts | Removes the OOM retry and machine-escalation policy, causing memory-terminated table runs to be abandoned and later cancelled instead of resumed. |
| apps/sim/background/table-run-dispatcher.test.ts | Removes the regression assertions that required OOM escalation and three retry attempts. |
| packages/emcn/src/components/tab-strip/tab-strip.tsx | Adds fade-aware reveal targets, scroll-extreme clamping, and a configurable maximum width for floating tabs; no concrete changed-code defect was established. |
| packages/emcn/src/components/tab-strip/tab-strip.dom.test.tsx | Updates active-tab reveal expectations and adds coverage for clamping the last tab at the maximum scroll position. |
| apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-tabs/resource-tab-controls.ts | Increases resource-header height, accounts for the strip border, and configures a 160px floating-tab cap. |
| apps/sim/app/workspace/[workspaceId]/home/home.tsx | Restores the collapse toggle’s 8px corner radius. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Table workflow run] --> B[Trigger table-run-dispatcher]
B --> C[Run dispatcher windows on small-2x]
C -->|Success| D[Complete dispatch]
C -->|OOM termination| E[No OOM retry or escalation]
E --> F[Dispatch remains active with stale heartbeat]
F --> G[Stale cleanup cancels dispatch]
G --> H[User work remains incomplete]
Reviews (1): Last reviewed commit: "fix(tabs): restore the resource header's..." | Re-trigger Greptile
| * run length (10x the duration moves it ~4 MB), and it has crept ~2% per | ||
| * release for a month — 446 MB in late July to 545 MB, past the 512 MiB | ||
| * `small-1x` ceiling. Meanwhile CPU utilization peaks at 0.19 and sits at | ||
| * 0.03 for p90, so the larger preset is bought for its RAM. |
There was a problem hiding this comment.
When a table dispatcher exceeds the small-2x memory limit, removing the OOM retry escalation prevents Trigger.dev from resuming it from its persisted cursor. The dispatch remains active until stale cleanup cancels it, leaving the table run incomplete and requiring the user to rerun it.
… fades Porting the tabs onto the shared strip had taken the header from 43px to 34px, which moved the overlaid collapse toggle from 6.5px below the panel's top edge to 2px while its right inset stayed at 16px — the corner read lopsided. The header goes to 40px: still shorter than it was, with the toggle back to 5px. The toggle also gets its 8px radius back, dropped in that port for no reason anyone asked for. Selecting a partly-hidden tab scrolled it flush against the container edge, which is exactly where the fade gradient sits, so it arrived half-faded and still looked cut off. Reveal now insets by the fade width and clamps at the scroll extremes, where no gradient is drawn. Floating tabs cap at 160px so no single tab dominates the row.
821aa0c to
968eb9c
Compare


Summary
TabStrip, so the browser and terminal strips get it tooType of Change
Testing
Tested manually
Checklist