feat(tabs): reorder tabs by grip drag or Alt+arrows #16

Closed
gabrielgad wants to merge 2 commits from feat/tab-reorder into main
Owner

Change

Each tab in the strip has a grip, dragged by touch or mouse. Alt+Left/Right on a focused tab moves it too. The order shows at once and returns if herdr refuses. Adds POST /api/tab/move (tab.move), proxied to remote PCs and answered in the demo. herdr's insert index counts before the tab leaves its place; a move forward names the slot after the target.

Closes #15.

Validation

bun run check fast passes. New: dragSort.test.ts (moveIds, orderBy, sameIds); contract tests for validation, a real move and the local-PC alias. Screenshot to attach.

## Change Each tab in the strip has a grip, dragged by touch or mouse. Alt+Left/Right on a focused tab moves it too. The order shows at once and returns if herdr refuses. Adds `POST /api/tab/move` (tab.move), proxied to remote PCs and answered in the demo. herdr's insert index counts before the tab leaves its place; a move forward names the slot after the target. Closes #15. ## Validation `bun run check fast` passes. New: `dragSort.test.ts` (moveIds, orderBy, sameIds); contract tests for validation, a real move and the local-PC alias. Screenshot to attach.
feat(tabs): reorder tabs by grip drag or Alt+arrows
Some checks failed
CI / Native Windows install (pull_request) Has been cancelled
CI / Fast checks (pull_request) Has been cancelled
CI / Integration and browser (pull_request) Has been cancelled
Remote PC bundles / bundle (macos-15) (pull_request) Has been cancelled
Remote PC bundles / bundle (macos-15-intel) (pull_request) Has been cancelled
Remote PC bundles / bundle (ubuntu-24.04) (pull_request) Has been cancelled
Remote PC bundles / bundle (ubuntu-24.04-arm) (pull_request) Has been cancelled
Remote PC bundles / bundle-windows (pull_request) Has been cancelled
Remote PC bundles / smoke-windows (pull_request) Has been cancelled
Remote PC bundles / ssh (pull_request) Has been cancelled
Remote PC bundles / release (pull_request) Has been cancelled
376aced224
Grip drag by touch or mouse; the order shows at once and herdr's snapshot confirms it. Adds POST /api/tab/move (tab.move). Tab order now follows the snapshot, not tab number.
test(tabs): browser check for tab reorder
Some checks failed
CI / Native Windows install (pull_request) Has been cancelled
CI / Fast checks (pull_request) Has been cancelled
CI / Integration and browser (pull_request) Has been cancelled
Remote PC bundles / bundle (macos-15) (pull_request) Has been cancelled
Remote PC bundles / bundle (macos-15-intel) (pull_request) Has been cancelled
Remote PC bundles / bundle (ubuntu-24.04) (pull_request) Has been cancelled
Remote PC bundles / bundle (ubuntu-24.04-arm) (pull_request) Has been cancelled
Remote PC bundles / bundle-windows (pull_request) Has been cancelled
Remote PC bundles / ssh (pull_request) Has been cancelled
Remote PC bundles / smoke-windows (pull_request) Has been cancelled
Remote PC bundles / release (pull_request) Has been cancelled
12b340f039
A mouse drag, a finger drag and Alt+arrows on the tab strip, each checked against the order herdr reports.
Author
Owner

Desktop, mid-drag and after the drop.

desktop mid-drag

desktop after drop

Touch, 412x900: grips on every tab, then mid-drag.

touch grips

touch mid-drag

Desktop, mid-drag and after the drop. ![desktop mid-drag](https://git.gabeforge.com/attachments/148118b0-db16-4d61-a7a4-cb77a0f750b1) ![desktop after drop](https://git.gabeforge.com/attachments/9fb28479-9849-46b0-a064-674ff332e770) Touch, 412x900: grips on every tab, then mid-drag. ![touch grips](https://git.gabeforge.com/attachments/9993f8d8-e04c-4128-8611-7069462c9a5a) ![touch mid-drag](https://git.gabeforge.com/attachments/6ce1fce9-4b02-48b2-93d2-d1b774833841)
Author
Owner

The body omits the second commit, a browser check, scripts/tab-reorder-regression.ts.

The body omits the second commit, a browser check, `scripts/tab-reorder-regression.ts`.
Author
Owner

Video: drag a tab by its grip to reorder. Desktop · Touch

Video: drag a tab by its grip to reorder. [Desktop](https://git.gabeforge.com/attachments/98d87493-ac26-4bc3-b17f-0147635fa294) · [Touch](https://git.gabeforge.com/attachments/4988cd58-1488-4e72-a859-39e0e0c240ab)
gabrielgad closed this pull request 2026-10-22 14:57:21 -04:00
Some checks failed
CI / Native Windows install (pull_request) Has been cancelled
CI / Fast checks (pull_request) Has been cancelled
CI / Integration and browser (pull_request) Has been cancelled
Remote PC bundles / bundle (macos-15) (pull_request) Has been cancelled
Remote PC bundles / bundle (macos-15-intel) (pull_request) Has been cancelled
Remote PC bundles / bundle (ubuntu-24.04) (pull_request) Has been cancelled
Remote PC bundles / bundle (ubuntu-24.04-arm) (pull_request) Has been cancelled
Remote PC bundles / bundle-windows (pull_request) Has been cancelled
Remote PC bundles / ssh (pull_request) Has been cancelled
Remote PC bundles / smoke-windows (pull_request) Has been cancelled
Remote PC bundles / release (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
gabrielgad/ovis-web-ui!16
No description provided.