fix(core): a turn cut by shutdown keeps running_turn for recover
This commit is contained in:
@@ -496,6 +496,22 @@ async def test_recover_closes_open_tool_use_and_injects_interrupted(
|
||||
assert ScriptedClient.instances == []
|
||||
|
||||
|
||||
async def test_graceful_stop_keeps_running_turn_for_recover(world: World) -> None:
|
||||
conv = await world.conversations.create(kind="master", agent="a", origin="test")
|
||||
ScriptedClient.hold = asyncio.Event()
|
||||
await world.conversations.post(conv, "long")
|
||||
await asyncio.sleep(0.2)
|
||||
assert (await world.conversations.get(conv.external_id)).running_turn is not None
|
||||
await world.conversations.stop()
|
||||
row = await world.conversations.get(conv.external_id)
|
||||
assert row.running_turn is not None
|
||||
cut = await world.conversations.recover()
|
||||
assert [c.external_id for c in cut] == [conv.external_id]
|
||||
assert (await world.conversations.get(conv.external_id)).running_turn is None
|
||||
assert await world.statuses(conv) == [("user", "interrupted"), ("normal", "queued")]
|
||||
ScriptedClient.hold = None
|
||||
|
||||
|
||||
async def test_read_and_bindings(world: World) -> None:
|
||||
sid = str(uuid.uuid4())
|
||||
history = [
|
||||
|
||||
Reference in New Issue
Block a user