Merge pull request #1423 from cliffhall/add-periodic-stderr-messages

Add periodic stderr messages and reduce frequency of generated notifcations.
This commit is contained in:
Ola Hungerford
2025-04-15 08:18:33 -07:00
committed by GitHub

View File

@@ -114,8 +114,9 @@ export const createServer = () => {
let subscriptions: Set<string> = new Set(); let subscriptions: Set<string> = new Set();
let subsUpdateInterval: NodeJS.Timeout | undefined; let subsUpdateInterval: NodeJS.Timeout | undefined;
// Set up update interval for subscribed resources let stdErrUpdateInterval: NodeJS.Timeout | undefined;
// Set up update interval for subscribed resources
subsUpdateInterval = setInterval(() => { subsUpdateInterval = setInterval(() => {
for (const uri of subscriptions) { for (const uri of subscriptions) {
server.notification({ server.notification({
@@ -123,7 +124,7 @@ export const createServer = () => {
params: { uri }, params: { uri },
}); });
} }
}, 5000); }, 10000);
let logLevel: LoggingLevel = "debug"; let logLevel: LoggingLevel = "debug";
let logsUpdateInterval: NodeJS.Timeout | undefined; let logsUpdateInterval: NodeJS.Timeout | undefined;
@@ -152,7 +153,21 @@ export const createServer = () => {
}; };
if (!isMessageIgnored(message.params.level as LoggingLevel)) if (!isMessageIgnored(message.params.level as LoggingLevel))
server.notification(message); server.notification(message);
}, 15000); }, 20000);
// Set up update interval for stderr messages
stdErrUpdateInterval = setInterval(() => {
const shortTimestamp = new Date().toLocaleTimeString([], {
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
server.notification({
method: "notifications/stderr",
params: { content: `${shortTimestamp}: A stderr message` },
});
}, 30000);
// Helper method to request sampling from client // Helper method to request sampling from client
const requestSampling = async ( const requestSampling = async (
@@ -676,6 +691,7 @@ export const createServer = () => {
const cleanup = async () => { const cleanup = async () => {
if (subsUpdateInterval) clearInterval(subsUpdateInterval); if (subsUpdateInterval) clearInterval(subsUpdateInterval);
if (logsUpdateInterval) clearInterval(logsUpdateInterval); if (logsUpdateInterval) clearInterval(logsUpdateInterval);
if (stdErrUpdateInterval) clearInterval(stdErrUpdateInterval);
}; };
return { server, cleanup }; return { server, cleanup };