fix(team-mode): gate tmux layout cleanup by config
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -86,7 +86,7 @@ export async function deleteTeam(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const removedLayout = tmuxMgr !== undefined && canVisualize()
|
const removedLayout = config.tmux_visualization && tmuxMgr !== undefined && canVisualize()
|
||||||
if (removedLayout) {
|
if (removedLayout) {
|
||||||
const memberPaneIds = runtimeState.members
|
const memberPaneIds = runtimeState.members
|
||||||
.filter((member) => member.agentType !== "leader" && member.tmuxPaneId)
|
.filter((member) => member.agentType !== "leader" && member.tmuxPaneId)
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ describe("team-runtime shutdown", () => {
|
|||||||
// when
|
// when
|
||||||
const result = await deleteTeam(
|
const result = await deleteTeam(
|
||||||
fixture.teamRunId,
|
fixture.teamRunId,
|
||||||
fixture.config,
|
{ ...fixture.config, tmux_visualization: true },
|
||||||
{ getServerUrl: () => "http://localhost" } as never,
|
{ getServerUrl: () => "http://localhost" } as never,
|
||||||
undefined,
|
undefined,
|
||||||
{ force: true },
|
{ force: true },
|
||||||
@@ -325,6 +325,29 @@ describe("team-runtime shutdown", () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("#given tmux manager but visualization disabled #when deleteTeam runs #then layout cleanup is skipped", async () => {
|
||||||
|
// given
|
||||||
|
const fixture = await createFixture()
|
||||||
|
temporaryDirectories.push(fixture.baseDir)
|
||||||
|
spyOn(layoutModule, "canVisualize").mockReturnValue(true)
|
||||||
|
const removeLayoutSpy = spyOn(layoutModule, "removeTeamLayout").mockResolvedValue(undefined)
|
||||||
|
await updateMemberStatuses(fixture.teamRunId, fixture.config, {
|
||||||
|
"member-a": "shutdown_approved",
|
||||||
|
"member-b": "completed",
|
||||||
|
})
|
||||||
|
|
||||||
|
// when
|
||||||
|
const result = await deleteTeam(
|
||||||
|
fixture.teamRunId,
|
||||||
|
{ ...fixture.config, tmux_visualization: false },
|
||||||
|
{ getServerUrl: () => "http://localhost" } as never,
|
||||||
|
)
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(result.removedLayout).toBe(false)
|
||||||
|
expect(removeLayoutSpy).not.toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
test("cancels team background tasks before deleting when force=true", async () => {
|
test("cancels team background tasks before deleting when force=true", async () => {
|
||||||
// given
|
// given
|
||||||
const fixture = await createFixture()
|
const fixture = await createFixture()
|
||||||
|
|||||||
Reference in New Issue
Block a user