mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-21 16:27:18 +02:00
Preserve worktree config during provisioning
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
6f30ab58df
commit
2cd85c7bed
2 files changed
+39
-6
No files matched your search
@@ -332,11 +332,15 @@ main().catch((error) => {
|
||||
EOF
|
||||
}
|
||||
|
||||
if paperclipai_command_available; then
|
||||
run_isolated_worktree_init
|
||||
if [[ -e "$worktree_config_path" && -e "$worktree_env_path" ]]; then
|
||||
echo "Reusing existing isolated Paperclip worktree config at $worktree_config_path" >&2
|
||||
else
|
||||
echo "paperclipai CLI not available in this workspace; writing isolated fallback config without DB seeding." >&2
|
||||
write_fallback_worktree_config
|
||||
if paperclipai_command_available; then
|
||||
run_isolated_worktree_init
|
||||
else
|
||||
echo "paperclipai CLI not available in this workspace; writing isolated fallback config without DB seeding." >&2
|
||||
write_fallback_worktree_config
|
||||
fi
|
||||
fi
|
||||
|
||||
list_base_node_modules_paths() {
|
||||
|
||||
@@ -897,7 +897,7 @@ describe("realizeExecutionWorkspace", () => {
|
||||
await runGit(repoRoot, ["commit", "-m", "Add worktree provision script"]);
|
||||
|
||||
try {
|
||||
const workspace = await realizeExecutionWorkspace({
|
||||
const workspaceInput = {
|
||||
base: {
|
||||
baseCwd: repoRoot,
|
||||
source: "project_primary",
|
||||
@@ -923,7 +923,8 @@ describe("realizeExecutionWorkspace", () => {
|
||||
name: "Codex Coder",
|
||||
companyId: "company-1",
|
||||
},
|
||||
});
|
||||
} satisfies Parameters<typeof realizeExecutionWorkspace>[0];
|
||||
const workspace = await realizeExecutionWorkspace(workspaceInput);
|
||||
|
||||
const configPath = path.join(workspace.cwd, ".paperclip", "config.json");
|
||||
const envPath = path.join(workspace.cwd, ".paperclip", ".env");
|
||||
@@ -954,6 +955,34 @@ describe("realizeExecutionWorkspace", () => {
|
||||
|
||||
process.chdir(workspace.cwd);
|
||||
expect(resolvePaperclipConfigPath()).toBe(configPath);
|
||||
|
||||
const preservedPort = 39999;
|
||||
await fs.writeFile(
|
||||
configPath,
|
||||
JSON.stringify(
|
||||
{
|
||||
...configContents,
|
||||
server: {
|
||||
...configContents.server,
|
||||
port: preservedPort,
|
||||
},
|
||||
},
|
||||
null,
|
||||
2,
|
||||
) + "\n",
|
||||
"utf8",
|
||||
);
|
||||
await fs.writeFile(envPath, `${envContents}PAPERCLIP_WORKTREE_COLOR="#112233"\n`, "utf8");
|
||||
|
||||
const reusedWorkspace = await realizeExecutionWorkspace(workspaceInput);
|
||||
const reusedConfigContents = JSON.parse(await fs.readFile(configPath, "utf8"));
|
||||
const reusedEnvContents = await fs.readFile(envPath, "utf8");
|
||||
|
||||
expect(reusedWorkspace.cwd).toBe(workspace.cwd);
|
||||
expect(reusedWorkspace.created).toBe(false);
|
||||
expect(reusedConfigContents.server.port).toBe(preservedPort);
|
||||
expect(reusedConfigContents.database.embeddedPostgresDataDir).toBe(path.join(expectedInstanceRoot, "db"));
|
||||
expect(reusedEnvContents).toContain('PAPERCLIP_WORKTREE_COLOR="#112233"');
|
||||
} finally {
|
||||
process.chdir(previousCwd);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user