test: remove unimplemented worktree archival tests and unused code

This commit is contained in:
Mohamed Boudra
2026-03-13 13:44:03 +07:00
parent 049edbfcaf
commit a194a901b4
4 changed files with 5 additions and 181 deletions
@@ -858,122 +858,5 @@ describe("daemon E2E", () => {
60000
);
test(
"archives the worktree when the last agent in it is archived",
async () => {
const repoRoot = tmpCwd();
const { execSync } = await import("child_process");
execSync("git init -b main", { cwd: repoRoot, stdio: "pipe" });
execSync("git config user.email 'test@test.com'", {
cwd: repoRoot,
stdio: "pipe",
});
execSync("git config user.name 'Test'", { cwd: repoRoot, stdio: "pipe" });
writeFileSync(path.join(repoRoot, "file.txt"), "hello\n");
execSync("git add .", { cwd: repoRoot, stdio: "pipe" });
execSync("git -c commit.gpgsign=false commit -m 'initial'", {
cwd: repoRoot,
stdio: "pipe",
});
execSync("git branch -M main", { cwd: repoRoot, stdio: "pipe" });
const agent = await ctx.client.createAgent({
provider: "codex",
model: CODEX_TEST_MODEL,
thinkingOptionId: CODEX_TEST_THINKING_OPTION_ID,
cwd: repoRoot,
title: "Archive Last Agent Cleanup Test",
git: {
createWorktree: true,
createNewBranch: true,
baseBranch: "main",
newBranchName: "archive-last-agent",
worktreeSlug: "archive-last-agent",
},
});
expect(existsSync(agent.cwd)).toBe(true);
const result = await ctx.client.archiveAgent(agent.id);
expect(result.archivedAt).toBeTruthy();
await waitForPathRemoved({
targetPath: agent.cwd,
timeoutMs: 10000,
label: "archived worktree",
});
rmSync(repoRoot, { recursive: true, force: true });
},
60000
);
test(
"does not archive the worktree until all agents in it are archived",
async () => {
const repoRoot = tmpCwd();
const { execSync } = await import("child_process");
execSync("git init -b main", { cwd: repoRoot, stdio: "pipe" });
execSync("git config user.email 'test@test.com'", {
cwd: repoRoot,
stdio: "pipe",
});
execSync("git config user.name 'Test'", { cwd: repoRoot, stdio: "pipe" });
writeFileSync(path.join(repoRoot, "file.txt"), "hello\n");
execSync("git add .", { cwd: repoRoot, stdio: "pipe" });
execSync("git -c commit.gpgsign=false commit -m 'initial'", {
cwd: repoRoot,
stdio: "pipe",
});
execSync("git branch -M main", { cwd: repoRoot, stdio: "pipe" });
const firstAgent = await ctx.client.createAgent({
provider: "codex",
model: CODEX_TEST_MODEL,
thinkingOptionId: CODEX_TEST_THINKING_OPTION_ID,
cwd: repoRoot,
title: "Archive Multi-Agent Test 1",
git: {
createWorktree: true,
createNewBranch: true,
baseBranch: "main",
newBranchName: "archive-multi-agent",
worktreeSlug: "archive-multi-agent",
},
});
const secondAgent = await ctx.client.createAgent({
provider: "codex",
model: CODEX_TEST_MODEL,
thinkingOptionId: CODEX_TEST_THINKING_OPTION_ID,
cwd: firstAgent.cwd,
title: "Archive Multi-Agent Test 2",
});
expect(existsSync(firstAgent.cwd)).toBe(true);
await ctx.client.archiveAgent(firstAgent.id);
await new Promise((resolve) => setTimeout(resolve, 300));
expect(existsSync(firstAgent.cwd)).toBe(true);
await ctx.client.archiveAgent(secondAgent.id);
await waitForPathRemoved({
targetPath: firstAgent.cwd,
timeoutMs: 10000,
label: "worktree after final agent archive",
});
rmSync(repoRoot, { recursive: true, force: true });
},
60000
);
});
});
+1 -49
View File
@@ -1789,7 +1789,7 @@ export class Session {
private async handleArchiveAgentRequest(agentId: string, requestId: string): Promise<void> {
this.sessionLogger.info({ agentId }, `Archiving agent ${agentId}`)
const { archivedAt, archivedRecord } = await this.archiveAgentState(agentId)
const { archivedAt } = await this.archiveAgentState(agentId)
this.emit({
type: 'agent_archived',
@@ -1799,8 +1799,6 @@ export class Session {
requestId,
},
})
await this.maybeArchivePaseoWorktreeAfterAgentArchive(archivedRecord, requestId)
}
private async archiveAgentState(agentId: string): Promise<{
@@ -1874,52 +1872,6 @@ export class Session {
await this.unarchiveAgentState(matched.id)
}
private async maybeArchivePaseoWorktreeAfterAgentArchive(
archivedRecord: StoredAgentRecord,
requestId: string
): Promise<void> {
const ownership = await isPaseoOwnedWorktreeCwd(archivedRecord.cwd, {
paseoHome: this.paseoHome,
})
if (!ownership.allowed || !ownership.repoRoot || !ownership.worktreePath) {
return
}
const activeAgentIds = await this.listUnarchivedAgentIdsWithinRoot(ownership.worktreePath)
if (activeAgentIds.size > 0) {
return
}
await this.archivePaseoWorktree({
targetPath: ownership.worktreePath,
repoRoot: ownership.repoRoot,
requestId,
})
}
private async listUnarchivedAgentIdsWithinRoot(rootPath: string): Promise<Set<string>> {
const storedRecords = await this.agentStorage.list()
const archivedIds = new Set(
storedRecords
.filter((record) => this.isPathWithinRoot(rootPath, record.cwd) && Boolean(record.archivedAt))
.map((record) => record.id)
)
const activeIds = new Set(
storedRecords
.filter((record) => this.isPathWithinRoot(rootPath, record.cwd) && !record.archivedAt)
.map((record) => record.id)
)
for (const agent of this.agentManager.listAgents()) {
if (!this.isPathWithinRoot(rootPath, agent.cwd) || archivedIds.has(agent.id)) {
continue
}
activeIds.add(agent.id)
}
return activeIds
}
private async handleUpdateAgentRequest(
agentId: string,
name: string | undefined,
+3 -14
View File
@@ -3,20 +3,9 @@ import { defineConfig } from "vitest/config";
export default defineConfig({
resolve: {
alias: [
{
find: /^@getpaseo\/relay\/e2ee$/,
replacement: path.resolve(__dirname, "../relay/src/e2ee.ts"),
},
{
find: /^@getpaseo\/relay$/,
replacement: path.resolve(__dirname, "../relay/src/index.ts"),
},
{
find: "@server",
replacement: path.resolve(__dirname, "./src"),
},
],
alias: {
"@server": path.resolve(__dirname, "./src"),
},
},
test: {
testTimeout: 30000,