fix(backend): restart idle Pi sessions on resume
This commit is contained in:
@@ -100,10 +100,14 @@ export function sessionRoutes(
|
||||
});
|
||||
app.post("/sessions/:id/resume", async (req, reply) => {
|
||||
const id = (req.params as any).id;
|
||||
if (d.mgr.get(id)) {
|
||||
// Idempotent resume: reattach the browser to the existing Pi runtime.
|
||||
// Do not respawn it (which would discard a pending reviewer widget).
|
||||
return reply.code(200).send({ id, alreadyActive: true });
|
||||
const existing = d.mgr.get(id);
|
||||
if (existing) {
|
||||
const state = existing.bridge.turnState();
|
||||
if (state === "running" || state === "waiting") {
|
||||
return reply.code(200).send({ id, alreadyActive: true });
|
||||
}
|
||||
d.mgr.teardown(id);
|
||||
d.hub.clear(id);
|
||||
}
|
||||
const manifest = (await d.tht.sessionShow(id, d.getSettings().workspace)) as { status?: string; archived?: boolean } | null;
|
||||
if (manifest?.status === "finalized" || manifest?.archived) {
|
||||
|
||||
Reference in New Issue
Block a user