chore: drop non-code junk (pi-mono-reference, runtime state, root duplicates)
Remove files that should never have been tracked: - pi-mono-reference/: 688-file copy of an upstream monorepo, zero imports, used only as offline human reference - build/electron-builder.runtime.json: environment-specific build artifact with hardcoded local paths - state/cancel-signal-state.json: runtime state written by the app - prompt.txt, logo.svg (root): exact duplicates of the canonical copies under .planning/archive/ and assets/ Add state/ to .gitignore so future runtime state stays out.
This commit is contained in:
1 parent
34ca5b77f1
commit
1f7230fe87
691 files changed
+3
-190434
No files matched your search
@@ -1,88 +0,0 @@
|
||||
import * as fs from "node:fs";
|
||||
import * as os from "node:os";
|
||||
import * as path from "node:path";
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { ENV_AGENT_DIR } from "../src/config.js";
|
||||
import { KeybindingsManager } from "../src/core/keybindings.js";
|
||||
import { runMigrations } from "../src/migrations.js";
|
||||
|
||||
describe("keybindings migration", () => {
|
||||
const tempDirs: string[] = [];
|
||||
|
||||
afterEach(() => {
|
||||
for (const dir of tempDirs.splice(0)) {
|
||||
fs.rmSync(dir, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
|
||||
function createAgentDir(config: Record<string, unknown>): string {
|
||||
const agentDir = fs.mkdtempSync(path.join(os.tmpdir(), "pi-keybindings-test-"));
|
||||
tempDirs.push(agentDir);
|
||||
fs.writeFileSync(path.join(agentDir, "keybindings.json"), `${JSON.stringify(config, null, 2)}\n`, "utf-8");
|
||||
return agentDir;
|
||||
}
|
||||
|
||||
it("rewrites old key names to namespaced ids", () => {
|
||||
const agentDir = createAgentDir({
|
||||
cursorUp: ["up", "ctrl+p"],
|
||||
expandTools: "ctrl+x",
|
||||
});
|
||||
const previousAgentDir = process.env[ENV_AGENT_DIR];
|
||||
process.env[ENV_AGENT_DIR] = agentDir;
|
||||
runMigrations(agentDir);
|
||||
if (previousAgentDir === undefined) {
|
||||
delete process.env[ENV_AGENT_DIR];
|
||||
} else {
|
||||
process.env[ENV_AGENT_DIR] = previousAgentDir;
|
||||
}
|
||||
|
||||
const migrated = JSON.parse(fs.readFileSync(path.join(agentDir, "keybindings.json"), "utf-8")) as Record<
|
||||
string,
|
||||
unknown
|
||||
>;
|
||||
expect(migrated).toEqual({
|
||||
"tui.editor.cursorUp": ["up", "ctrl+p"],
|
||||
"app.tools.expand": "ctrl+x",
|
||||
});
|
||||
});
|
||||
|
||||
it("keeps the namespaced value when old and new names both exist", () => {
|
||||
const agentDir = createAgentDir({
|
||||
expandTools: "ctrl+x",
|
||||
"app.tools.expand": "ctrl+y",
|
||||
});
|
||||
const previousAgentDir = process.env[ENV_AGENT_DIR];
|
||||
process.env[ENV_AGENT_DIR] = agentDir;
|
||||
runMigrations(agentDir);
|
||||
if (previousAgentDir === undefined) {
|
||||
delete process.env[ENV_AGENT_DIR];
|
||||
} else {
|
||||
process.env[ENV_AGENT_DIR] = previousAgentDir;
|
||||
}
|
||||
|
||||
const migrated = JSON.parse(fs.readFileSync(path.join(agentDir, "keybindings.json"), "utf-8")) as Record<
|
||||
string,
|
||||
unknown
|
||||
>;
|
||||
expect(migrated).toEqual({
|
||||
"app.tools.expand": "ctrl+y",
|
||||
});
|
||||
});
|
||||
|
||||
it("loads old key names in memory before the file is rewritten", () => {
|
||||
const agentDir = createAgentDir({
|
||||
selectConfirm: "enter",
|
||||
interrupt: "ctrl+x",
|
||||
});
|
||||
|
||||
const keybindings = KeybindingsManager.create(agentDir);
|
||||
|
||||
expect(keybindings.getUserBindings()).toEqual({
|
||||
"tui.select.confirm": "enter",
|
||||
"app.interrupt": "ctrl+x",
|
||||
});
|
||||
const effective = keybindings.getEffectiveConfig();
|
||||
expect(effective["tui.select.confirm"]).toBe("enter");
|
||||
expect(effective["app.interrupt"]).toBe("ctrl+x");
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user