In-memory SessionMeta registry tracks active terminal sessions with paneId, sessionId, projectPath, title, createdAt, lastActivityAt. GET /api/term/sessions returns all active sessions as JSON array. Registry is updated on WS attach and cleaned up on disconnect.
19 lines
570 B
TypeScript
19 lines
570 B
TypeScript
import type { FastifyInstance } from 'fastify';
|
|
import { list } from '../pty/registry.js';
|
|
|
|
export function registerSessionRoutes(app: FastifyInstance): void {
|
|
app.get('/api/term/sessions', async (_req, reply) => {
|
|
const active = list();
|
|
return reply.code(200).send({
|
|
sessions: active.map((s) => ({
|
|
paneId: s.paneId,
|
|
sessionId: s.sessionId,
|
|
projectPath: s.projectPath,
|
|
title: s.title ?? null,
|
|
createdAt: s.createdAt.toISOString(),
|
|
lastActivityAt: s.lastActivityAt.toISOString(),
|
|
})),
|
|
});
|
|
});
|
|
}
|