## What & why
RUFU-042. The open **Engine Controls** popover (footer status bar,
bottom-right) carries the shared `.card` class. Since FN-8802, `.card`
bases set `min-width: 0; max-width: 100%` (TaskCard.css). The popover's
containing block (`.engine-control-menu`) sizes to the narrow trigger
button, so `.card`'s `max-width: 100%` clamped the intended `24rem` grid
down to ~the trigger's width — a **~5mm-wide invisible popover**.
## Fix (CSS only, `EngineControlMenu.css`)
- Footer-scoped desktop rule (`0,3,0`) re-asserts
`min-width`/`max-width` clamped to the **viewport** (not the trigger
wrapper), deterministically beating the shared `.card` (`0,1,0`) by
specificity — same pattern as `.selection-comment-panel.card`.
- Mobile `@media (max-width:1024px)` resets `min-width:0;
max-width:none` so the full-width gutter panel cannot overflow nor be
re-clamped by `.card`.
- No `className="card"` removal; shared `.card` base untouched.
## Regression tests
Two new tests in `EngineControlMenu.test.tsx` assert the desktop min/max
guard and the mobile reset, so the collapse cannot silently return.
**17/17 tests pass.**
No changeset (`@fusion/dashboard` is a private package).
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved engine control popovers so they size correctly without
collapsing or overflowing.
* Enhanced mobile layouts to maintain full-width display with
appropriate screen gutters.
* **Tests**
* Added regression coverage for desktop width limits and narrow-screen
popover behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: Fusion <noreply@runfusion.ai>
Co-authored-by: gsxdsm <gsxdsm@users.noreply.github.com>
Restore horizontal concurrency thumb drags on mobile by opting range inputs out of the pan-y ancestor lock.
- Set touch-action:none on Engine Control menu and Command Center concurrency range inputs
- Update geometry/touch contract test to assert none and reject pan-y
- Add patch changeset for the mobile slider fix
Files changed:
.changeset/fn-7973-mobile-concurrency-sliders.md | 7 +++++++
packages/dashboard/app/components/EngineControlMenu.css | 5 ++++-
.../app/components/__tests__/EngineControlMenu.test.tsx | 11 ++++++++---
.../app/components/command-center/CommandCenterControls.css | 5 ++++-
4 files changed, 23 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7973
Fusion-Task-Lineage: bf36e544-c24f-49ae-beae-b11707be9c79
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Align footer Engine Controls current-use dots with Command Center slider geometry.
- Mirror Command Center range sizing, touch behavior, and mobile thumb geometry in the footer controls.
- Cover the shared marker geometry contract and pending-cap marker recalculation in EngineControlMenu tests.
- Document the footer/Command Center alignment requirement and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7340-footer-concurrency-dot-alignment.md | 7 ++
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/EngineControlMenu.css | 28 ++++++-
packages/dashboard/app/components/__tests__/EngineControlMenu.test.tsx | 85 ++++++++++++++++++++++
4 files changed, 121 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7340
Fusion-Task-Lineage: 5cb4d829-2b70-429c-b9da-0c559fdbf131
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Add a "Global Max Concurrent" slider to the footer engine menu and the
Command Center Concurrency card, and group the Scheduling settings by
Global vs Project scope so the global cap isn't mistaken for a per-project
setting (clearer on mobile).
Both sliders are backed by a single shared `useGlobalConcurrency` hook
(module-level store) so they read/write one source of truth and revalidate
after every PUT /api/global-concurrency — fixing the last-writer-wins and
stale-clobber races a per-component cache would cause. The hook treats a
fetch error as non-interactive (slider disabled, not stuck at 1), surfaces
a save-state indicator, and flushes a pending edit on menu close / unmount
so a quick drag-then-dismiss is never silently dropped.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keep the footer engine controls popover opaque by using valid dashboard CSS tokens.
- Replace the undefined elevated surface token with the solid card surface.
- Align disabled action opacity, range accent, and mobile height CSS with defined tokens/values.
- Add a CSS token regression test for the engine control menu popover.
Files changed:
.../dashboard/app/components/EngineControlMenu.css | 8 +-
.../dashboard/app/components/EngineControlMenu.tsx | 3 +
.../__tests__/EngineControlMenu.css.test.ts | 99 ++++++++++++++++++++++
3 files changed, 106 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6862
Fusion-Task-Lineage: 5e41177a-6fc5-48d0-861d-fefbcfca7060