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

@@ -568,6 +568,7 @@ type EventType =
| 'dev-server:started'
| 'dev-server:output'
| 'dev-server:stopped'
| 'dev-server:url-detected'
| 'test-runner:started'
| 'test-runner:output'
| 'test-runner:completed'
@@ -576,13 +577,17 @@ type EventType =
/**
* Dev server log event payloads for WebSocket streaming
*/
export interface DevServerStartedEvent {
/** Shared base for dev server events that carry URL/port information */
interface DevServerUrlEvent {
worktreePath: string;
port: number;
url: string;
port: number;
timestamp: string;
}
export type DevServerStartedEvent = DevServerUrlEvent;
export interface DevServerOutputEvent {
worktreePath: string;
content: string;
@@ -597,10 +602,13 @@ export interface DevServerStoppedEvent {
timestamp: string;
}
export type DevServerUrlDetectedEvent = DevServerUrlEvent;
export type DevServerLogEvent =
| { type: 'dev-server:started'; payload: DevServerStartedEvent }
| { type: 'dev-server:output'; payload: DevServerOutputEvent }
| { type: 'dev-server:stopped'; payload: DevServerStoppedEvent };
| { type: 'dev-server:stopped'; payload: DevServerStoppedEvent }
| { type: 'dev-server:url-detected'; payload: DevServerUrlDetectedEvent };
/**
* Test runner event payloads for WebSocket streaming
@@ -2204,10 +2212,14 @@ export class HttpApiClient implements ElectronAPI {
const unsub3 = this.subscribeToEvent('dev-server:stopped', (payload) =>
callback({ type: 'dev-server:stopped', payload: payload as DevServerStoppedEvent })
);
const unsub4 = this.subscribeToEvent('dev-server:url-detected', (payload) =>
callback({ type: 'dev-server:url-detected', payload: payload as DevServerUrlDetectedEvent })
);
return () => {
unsub1();
unsub2();
unsub3();
unsub4();
};
},
getPRInfo: (worktreePath: string, branchName: string) =>