refactor: finish companion rename migration

Complete the remaining pi-to-companion rename across companion-os, web, vm-orchestrator, docker, and archived fixtures.

Verification:
- semantic rg sweeps for Pi/piConfig/getPi/.pi runtime references
- npm run check in apps/companion-os (fails in this worktree: biome not found)

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Harivansh Rathi 2026-03-10 07:39:32 -05:00
parent e8fe3d54af
commit 536241053c
303 changed files with 3603 additions and 3602 deletions

View file

@ -14,7 +14,7 @@ describe("SettingsManager", () => {
rmSync(testDir, { recursive: true });
}
mkdirSync(agentDir, { recursive: true });
mkdirSync(join(projectDir, ".pi"), { recursive: true });
mkdirSync(join(projectDir, ".companion"), { recursive: true });
});
afterEach(() => {
@ -35,7 +35,7 @@ describe("SettingsManager", () => {
}),
);
// Create SettingsManager (simulates pi starting up)
// Create SettingsManager (simulates companion starting up)
const manager = SettingsManager.create(projectDir, agentDir);
// Simulate user editing settings.json externally to add enabledModels
@ -205,7 +205,7 @@ describe("SettingsManager", () => {
describe("error tracking", () => {
it("should collect and clear load errors via drainErrors", () => {
const globalSettingsPath = join(agentDir, "settings.json");
const projectSettingsPath = join(projectDir, ".pi", "settings.json");
const projectSettingsPath = join(projectDir, ".companion", "settings.json");
writeFileSync(globalSettingsPath, "{ invalid global json");
writeFileSync(projectSettingsPath, "{ invalid project json");
@ -219,46 +219,46 @@ describe("SettingsManager", () => {
});
describe("project settings directory creation", () => {
it("should not create .pi folder when only reading project settings", () => {
// Create agent dir with global settings, but NO .pi folder in project
it("should not create .companion folder when only reading project settings", () => {
// Create agent dir with global settings, but NO .companion folder in project
const settingsPath = join(agentDir, "settings.json");
writeFileSync(settingsPath, JSON.stringify({ theme: "dark" }));
// Delete the .pi folder that beforeEach created
rmSync(join(projectDir, ".pi"), { recursive: true });
// Delete the .companion folder that beforeEach created
rmSync(join(projectDir, ".companion"), { recursive: true });
// Create SettingsManager (reads both global and project settings)
const manager = SettingsManager.create(projectDir, agentDir);
// .pi folder should NOT have been created just from reading
expect(existsSync(join(projectDir, ".pi"))).toBe(false);
// .companion folder should NOT have been created just from reading
expect(existsSync(join(projectDir, ".companion"))).toBe(false);
// Settings should still be loaded from global
expect(manager.getTheme()).toBe("dark");
});
it("should create .pi folder when writing project settings", async () => {
// Create agent dir with global settings, but NO .pi folder in project
it("should create .companion folder when writing project settings", async () => {
// Create agent dir with global settings, but NO .companion folder in project
const settingsPath = join(agentDir, "settings.json");
writeFileSync(settingsPath, JSON.stringify({ theme: "dark" }));
// Delete the .pi folder that beforeEach created
rmSync(join(projectDir, ".pi"), { recursive: true });
// Delete the .companion folder that beforeEach created
rmSync(join(projectDir, ".companion"), { recursive: true });
const manager = SettingsManager.create(projectDir, agentDir);
// .pi folder should NOT exist yet
expect(existsSync(join(projectDir, ".pi"))).toBe(false);
// .companion folder should NOT exist yet
expect(existsSync(join(projectDir, ".companion"))).toBe(false);
// Write a project-specific setting
manager.setProjectPackages([{ source: "npm:test-pkg" }]);
await manager.flush();
// Now .pi folder should exist
expect(existsSync(join(projectDir, ".pi"))).toBe(true);
// Now .companion folder should exist
expect(existsSync(join(projectDir, ".companion"))).toBe(true);
// And settings file should be created
expect(existsSync(join(projectDir, ".pi", "settings.json"))).toBe(true);
expect(existsSync(join(projectDir, ".companion", "settings.json"))).toBe(true);
});
});