feat(FN-2944): merge fusion/fn-2944

- test(FN-2944): cover already checked out worktree conflict recovery
- fix(FN-2944): recognize git already checked out worktree conflict
- fix(engine): auto-recover from squash-merge orphan rebase failures

Fusion-Task-Id: FN-2944
This commit is contained in:
Fusion
2026-04-29 07:10:52 -07:00
committed by gsxdsm
parent a74b77cec5
commit ba3d868c2d
46 changed files with 454 additions and 163 deletions

View File

@@ -20,19 +20,23 @@ import { existsSync, mkdirSync, renameSync } from "node:fs";
import type { GlobalSettings } from "./types.js";
import { DEFAULT_GLOBAL_SETTINGS } from "./types.js";
function getHomeDir(): string {
return process.env.HOME || process.env.USERPROFILE || homedir();
}
/** Legacy directory for global settings (original name before rename to `.fusion`). */
export function legacyGlobalDir(): string {
return join(homedir(), ".pi", "fusion");
return join(getHomeDir(), ".pi", "fusion");
}
/** Legacy directory for global settings from the earliest fn version (`.pi/kb`). */
export function legacyGlobalDirOriginal(): string {
return join(homedir(), ".pi", "kb");
return join(getHomeDir(), ".pi", "kb");
}
/** Default directory for global fusion settings: `~/.fusion/` */
export function defaultGlobalDir(): string {
return join(homedir(), ".fusion");
return join(getHomeDir(), ".fusion");
}
/**