fix(daemon): Ensure robust process shutdown and improve logs/subscriber diagnostics
This commit is contained in:
@@ -293,7 +293,8 @@ export class TspmDaemon {
|
||||
this.ipcServer.onMessage(
|
||||
'getLogs',
|
||||
async (request: RequestForMethod<'getLogs'>) => {
|
||||
const logs = await this.tspmInstance.getLogs(toProcessId(request.id));
|
||||
const id = toProcessId(request.id);
|
||||
const logs = await this.tspmInstance.getLogs(id, request.lines);
|
||||
return { logs };
|
||||
},
|
||||
);
|
||||
@@ -346,6 +347,26 @@ export class TspmDaemon {
|
||||
},
|
||||
);
|
||||
|
||||
// Inspect subscribers for a process log topic
|
||||
this.ipcServer.onMessage(
|
||||
'logs:subscribers',
|
||||
async (
|
||||
request: RequestForMethod<'logs:subscribers'>,
|
||||
clientId: string,
|
||||
) => {
|
||||
const id = toProcessId(request.id);
|
||||
const topic = `logs.${id}`;
|
||||
try {
|
||||
const topicIndex = (this.ipcServer as any).topicIndex as Map<string, Set<string>> | undefined;
|
||||
const subs = Array.from(topicIndex?.get(topic) || []);
|
||||
// Also include the requesting clientId if it has a local handler without subscription
|
||||
return { topic, subscribers: subs, count: subs.length } as any;
|
||||
} catch (err: any) {
|
||||
return { topic, subscribers: [], count: 0 } as any;
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// Resolve target (id:n | name:foo | numeric string) to ProcessId
|
||||
this.ipcServer.onMessage(
|
||||
'resolveTarget',
|
||||
|
Reference in New Issue
Block a user