chore: remove dead code (59 unused files + ~125 unused exports) (#1835)
* chore: remove dead/unreferenced files across ui, vscode Remove 59 unused source files (components, hooks, lib utils, stores, barrels, and orphaned vscode github modules) that are not imported by any entry-reachable code. Also drop a stale test mock for the removed execCommands module. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * refactor: remove unused exported symbols (types, functions, consts, hooks) Remove exported symbols whose identifier is referenced nowhere in the repository (verified via repo-wide search), across ui types/contracts, lib utilities, sync layer, stores, and components. Also drop the few imports/private helpers orphaned by these removals. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * refactor: remove more unused exports (desktop, shortcuts, worktree, vscode) Continue removing repo-wide unreferenced exported functions, consts and types across lib/desktop, shortcuts, worktreeSessionCreator, sync, and vscode gitService, with cascading orphaned helpers/imports cleaned up. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> * chore: add dead-code cleanup tooling * refactor: checkpoint dead-code cleanup * refactor: remove dead-code suppressions --------- Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com> Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
committed by
GitHub
co-authored by
Serhii Dziupin
Bohdan Triapitsyn
parent
4a37b9a005
commit
00821700de
@@ -285,173 +285,10 @@ export async function createWorktreeSession(): Promise<string | null> {
|
||||
/**
|
||||
* Check if a worktree session is currently being created.
|
||||
*/
|
||||
export function isCreatingWorktree(): boolean {
|
||||
return isCreatingWorktreeSession;
|
||||
}
|
||||
|
||||
export async function createWorktreeDraft(options?: { initialPrompt?: string; title?: string }): Promise<string | null> {
|
||||
return createInstantWorktreeDraft(options);
|
||||
}
|
||||
|
||||
export async function createWorktreeOnly(): Promise<string | null> {
|
||||
if (isCreatingWorktreeSession) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const activeProject = useProjectsStore.getState().getActiveProject();
|
||||
if (!activeProject?.path) {
|
||||
toast.error('No active project', {
|
||||
description: 'Please select a project first.',
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
const projectDirectory = activeProject.path;
|
||||
let isGitRepo = false;
|
||||
try {
|
||||
isGitRepo = await checkIsGitRepository(projectDirectory);
|
||||
} catch {
|
||||
// ignored
|
||||
}
|
||||
|
||||
if (!isGitRepo) {
|
||||
toast.error('Not a Git repository', {
|
||||
description: 'Worktrees can only be created in Git repositories.',
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
isCreatingWorktreeSession = true;
|
||||
|
||||
try {
|
||||
const projectRef: ProjectRef = { id: activeProject.id, path: projectDirectory };
|
||||
const preferredName = generateBranchName();
|
||||
const setupCommands = await getWorktreeSetupCommands(projectRef);
|
||||
const metadata = await createWorktreeWithDefaults(projectRef, {
|
||||
preferredName,
|
||||
mode: 'new',
|
||||
branchName: preferredName,
|
||||
worktreeName: preferredName,
|
||||
setupCommands,
|
||||
returnAfterDirectoryCreated: true,
|
||||
});
|
||||
|
||||
|
||||
return metadata.path;
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : 'Failed to create worktree';
|
||||
toast.error('Failed to create worktree', {
|
||||
description: message,
|
||||
});
|
||||
return null;
|
||||
} finally {
|
||||
isCreatingWorktreeSession = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new session with a worktree for a specific branch.
|
||||
* Unlike createWorktreeSession(), this allows specifying the project and branch explicitly.
|
||||
*
|
||||
* @param projectDirectory - The root directory of the git repository
|
||||
* @param branchName - The name of the branch to create a worktree for
|
||||
* @returns The created session, or null if creation failed
|
||||
*/
|
||||
export async function createWorktreeSessionForBranch(
|
||||
projectDirectory: string,
|
||||
branchName: string,
|
||||
options?: {
|
||||
kind?: 'pr' | 'standard';
|
||||
existingBranch?: string;
|
||||
worktreeName?: string;
|
||||
setUpstream?: boolean;
|
||||
upstreamRemote?: string;
|
||||
upstreamBranch?: string;
|
||||
ensureRemoteName?: string;
|
||||
ensureRemoteUrl?: string;
|
||||
createdFromBranch?: string;
|
||||
returnAfterDirectoryCreated?: boolean;
|
||||
}
|
||||
): Promise<{ id: string } | null> {
|
||||
if (isCreatingWorktreeSession) {
|
||||
return null;
|
||||
}
|
||||
|
||||
isCreatingWorktreeSession = true;
|
||||
|
||||
try {
|
||||
const projectRef = resolveProjectRef(projectDirectory);
|
||||
if (!projectRef) {
|
||||
throw new Error('Project is not registered in OpenChamber');
|
||||
}
|
||||
|
||||
// Check if it's a git repo (root project path)
|
||||
let isGitRepo = false;
|
||||
try {
|
||||
isGitRepo = await checkIsGitRepository(projectRef.path);
|
||||
} catch {
|
||||
// Ignore errors, treat as not a git repo
|
||||
}
|
||||
|
||||
if (!isGitRepo) {
|
||||
toast.error('Not a Git repository', {
|
||||
description: 'Worktrees can only be created in Git repositories.',
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
const setupCommands = await getWorktreeSetupCommands(projectRef);
|
||||
const rootBranch = await getRootBranch(projectRef.path);
|
||||
const metadata = await createWorktreeWithDefaults(projectRef, {
|
||||
preferredName: branchName,
|
||||
mode: 'existing',
|
||||
existingBranch: options?.existingBranch || branchName,
|
||||
branchName,
|
||||
worktreeName: options?.worktreeName || branchName,
|
||||
setUpstream: options?.setUpstream,
|
||||
upstreamRemote: options?.upstreamRemote,
|
||||
upstreamBranch: options?.upstreamBranch,
|
||||
ensureRemoteName: options?.ensureRemoteName,
|
||||
ensureRemoteUrl: options?.ensureRemoteUrl,
|
||||
setupCommands,
|
||||
returnAfterDirectoryCreated: options?.returnAfterDirectoryCreated,
|
||||
});
|
||||
|
||||
const kind = options?.kind ?? 'standard';
|
||||
const createdMetadata = {
|
||||
...metadata,
|
||||
createdFromBranch: options?.createdFromBranch || rootBranch,
|
||||
kind,
|
||||
};
|
||||
|
||||
await waitForWorktreeBootstrapIfEnabled(projectRef, metadata.path);
|
||||
|
||||
// Create the session
|
||||
const sessionStore = useSessionUIStore.getState();
|
||||
const session = await sessionStore.createSession(undefined, metadata.path);
|
||||
if (!session) {
|
||||
// Clean up the worktree if session creation failed
|
||||
await removeProjectWorktree(projectRef, metadata, { deleteLocalBranch: true }).catch(() => undefined);
|
||||
toast.error('Failed to create session', {
|
||||
description: 'Could not create a session for the worktree.',
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
initializeSessionForWorktree(session.id, createdMetadata);
|
||||
|
||||
return session;
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : 'Failed to create worktree session';
|
||||
toast.error('Failed to create worktree', {
|
||||
description: message,
|
||||
});
|
||||
return null;
|
||||
} finally {
|
||||
isCreatingWorktreeSession = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a worktree session for a new branch name.
|
||||
* Callers can still use startPoint for metadata or follow-up git operations.
|
||||
@@ -550,36 +387,3 @@ export async function createWorktreeSessionForNewBranch(
|
||||
isCreatingWorktreeSession = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Same as createWorktreeSessionForNewBranch, but preserves the exact branch name.
|
||||
* Use when the worktree must be tied to a specific ref (e.g. PR head ref).
|
||||
*/
|
||||
export async function createWorktreeSessionForNewBranchExact(
|
||||
projectDirectory: string,
|
||||
branchName: string,
|
||||
startPoint: string,
|
||||
options?: {
|
||||
kind?: 'pr' | 'standard';
|
||||
worktreeName?: string;
|
||||
setUpstream?: boolean;
|
||||
upstreamRemote?: string;
|
||||
upstreamBranch?: string;
|
||||
ensureRemoteName?: string;
|
||||
ensureRemoteUrl?: string;
|
||||
createdFromBranch?: string;
|
||||
returnAfterDirectoryCreated?: boolean;
|
||||
}
|
||||
): Promise<{ id: string; branch: string; path: string } | null> {
|
||||
return createWorktreeSessionForNewBranch(projectDirectory, branchName, startPoint, {
|
||||
kind: options?.kind,
|
||||
worktreeName: options?.worktreeName,
|
||||
setUpstream: options?.setUpstream,
|
||||
upstreamRemote: options?.upstreamRemote,
|
||||
upstreamBranch: options?.upstreamBranch,
|
||||
ensureRemoteName: options?.ensureRemoteName,
|
||||
ensureRemoteUrl: options?.ensureRemoteUrl,
|
||||
createdFromBranch: options?.createdFromBranch,
|
||||
returnAfterDirectoryCreated: options?.returnAfterDirectoryCreated,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user