Fix concurrency limits and remote branch fetching issues (#788)

* Changes from fix/bug-fixes

* feat: Refactor worktree iteration and improve error logging across services

* feat: Extract URL/port patterns to module level and fix abort condition

* fix: Improve IPv6 loopback handling, select component layout, and terminal UI

* feat: Add thinking level defaults and adjust list row padding

* Update apps/ui/src/store/app-store.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Add worktree-aware terminal creation and split options, fix npm security issues from audit

* feat: Add tracked remote detection to pull dialog flow

* feat: Add merge state tracking to git operations

* feat: Improve merge detection and add post-merge action preferences

* Update apps/ui/src/components/views/board-view/dialogs/git-pull-dialog.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update apps/ui/src/components/views/board-view/dialogs/git-pull-dialog.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: Pass merge detection info to stash reapplication and handle merge state consistently

* fix: Call onPulled callback in merge handlers and add validation checks

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
gsxdsm
2026-02-20 13:48:22 -08:00
committed by GitHub
parent 7df2182818
commit 0a5540c9a2
70 changed files with 4525 additions and 857 deletions

View File

@@ -375,10 +375,20 @@ export function BoardView() {
return specificTargetCollisions;
}
// Priority 2: Columns
const columnCollisions = pointerCollisions.filter((collision: Collision) =>
COLUMNS.some((col) => col.id === collision.id)
);
// Priority 2: Columns (including column headers and pipeline columns)
const columnCollisions = pointerCollisions.filter((collision: Collision) => {
const colId = String(collision.id);
// Direct column ID match (e.g. 'backlog', 'in_progress')
if (COLUMNS.some((col) => col.id === colId)) return true;
// Column header droppable (e.g. 'column-header-backlog')
if (colId.startsWith('column-header-')) {
const baseId = colId.replace('column-header-', '');
return COLUMNS.some((col) => col.id === baseId) || baseId.startsWith('pipeline_');
}
// Pipeline column IDs (e.g. 'pipeline_tests')
if (colId.startsWith('pipeline_')) return true;
return false;
});
// If we found a column collision, use that
if (columnCollisions.length > 0) {
@@ -1426,13 +1436,12 @@ export function BoardView() {
},
});
// Also update backend if auto mode is running
// Also update backend if auto mode is running.
// Use restartWithConcurrency to avoid toggle flickering - it restarts
// the backend without toggling isRunning off/on in the UI.
if (autoMode.isRunning) {
// Restart auto mode with new concurrency (backend will handle this)
autoMode.stop().then(() => {
autoMode.start().catch((error) => {
logger.error('[AutoMode] Failed to restart with new concurrency:', error);
});
autoMode.restartWithConcurrency().catch((error) => {
logger.error('[AutoMode] Failed to restart with new concurrency:', error);
});
}
}