feat(KB-336): rename data directory from .kb to .fusion
- Rename data directory from .kb to .fusion across core, CLI, dashboard, and engine - Update all path references in source files, tests, and CLI output - Remove deprecated central-core infrastructure (central-core, central-db, central-integration) - Remove obsolete test files (PlanningModeModal.test.tsx, ScheduleForm.test.tsx) - Add changeset for the directory rename breaking change
This commit is contained in:
@@ -14,7 +14,7 @@ import { applyPresetToSelection, generatePresetId, validatePresetId } from "../u
|
||||
* Each section groups related settings fields under a sidebar nav item.
|
||||
* Sections have a `scope` to indicate where their settings are stored:
|
||||
* - "global": User-level settings stored in ~/.pi/kb/settings.json (shared across projects)
|
||||
* - "project": Project-specific settings stored in .kb/config.json
|
||||
* - "project": Project-specific settings stored in .fusion/config.json
|
||||
* - undefined: Section operates independently of settings storage (e.g. authentication)
|
||||
*
|
||||
* To add a new section:
|
||||
@@ -1256,8 +1256,8 @@ export function SettingsModal({
|
||||
<input
|
||||
id="autoBackupDir"
|
||||
type="text"
|
||||
placeholder=".kb/backups"
|
||||
value={form.autoBackupDir || ".kb/backups"}
|
||||
placeholder=".fusion/backups"
|
||||
value={form.autoBackupDir || ".fusion/backups"}
|
||||
onChange={(e) =>
|
||||
setForm((f) => ({ ...f, autoBackupDir: e.target.value }))
|
||||
}
|
||||
|
||||
@@ -455,7 +455,7 @@ describe("task file operations", () => {
|
||||
await readFile(mockStore, "FN-123", "PROMPT.md");
|
||||
|
||||
expect(mockReadFile).toHaveBeenCalledWith(
|
||||
"/project/.kb/tasks/KB-123/PROMPT.md",
|
||||
"/project/.fusion/tasks/KB-123/PROMPT.md",
|
||||
"utf-8",
|
||||
);
|
||||
});
|
||||
@@ -476,7 +476,7 @@ describe("task file operations", () => {
|
||||
await readFile(mockStore, "FN-123", "PROMPT.md");
|
||||
|
||||
expect(mockReadFile).toHaveBeenCalledWith(
|
||||
"/project/.kb/tasks/KB-123/PROMPT.md",
|
||||
"/project/.fusion/tasks/KB-123/PROMPT.md",
|
||||
"utf-8",
|
||||
);
|
||||
});
|
||||
@@ -597,7 +597,7 @@ describe("workspace operations", () => {
|
||||
|
||||
expect(result.content).toBe("Task description");
|
||||
expect(mockReadFile).toHaveBeenCalledWith(
|
||||
"/project/.kb/tasks/KB-123/PROMPT.md",
|
||||
"/project/.fusion/tasks/KB-123/PROMPT.md",
|
||||
"utf-8",
|
||||
);
|
||||
});
|
||||
@@ -641,7 +641,7 @@ describe("workspace operations", () => {
|
||||
|
||||
expect(result.success).toBe(true);
|
||||
expect(mockWriteFile).toHaveBeenCalledWith(
|
||||
"/project/.kb/tasks/KB-123/output.txt",
|
||||
"/project/.fusion/tasks/KB-123/output.txt",
|
||||
"Task output",
|
||||
"utf-8",
|
||||
);
|
||||
|
||||
@@ -96,7 +96,7 @@ async function getTaskBasePath(store: TaskStore, taskId: string): Promise<string
|
||||
}
|
||||
// Fall back to task directory
|
||||
const rootDir = store.getRootDir();
|
||||
return resolve(join(rootDir, ".kb", "tasks", taskId));
|
||||
return resolve(join(rootDir, ".fusion", "tasks", taskId));
|
||||
} catch (err: any) {
|
||||
if (err.code === "ENOENT" || err.message?.includes("not found")) {
|
||||
throw new FileServiceError(`Task ${taskId} not found`, "ENOTASK");
|
||||
|
||||
@@ -1949,7 +1949,7 @@ export function createApiRoutes(store: TaskStore, options?: ServerOptions): Rout
|
||||
// Remove PROMPT.md to force regeneration
|
||||
const { rm } = await import("node:fs/promises");
|
||||
const { join } = await import("node:path");
|
||||
const promptPath = join(store.getRootDir(), ".kb", "tasks", task.id, "PROMPT.md");
|
||||
const promptPath = join(store.getRootDir(), ".fusion", "tasks", task.id, "PROMPT.md");
|
||||
await rm(promptPath, { force: true });
|
||||
|
||||
const updated = await store.getTask(task.id);
|
||||
|
||||
Reference in New Issue
Block a user