Skip to content

Per-backend log filtering#1312

Draft
danielholanda wants to merge 4 commits intomainfrom
dholanda/logs
Draft

Per-backend log filtering#1312
danielholanda wants to merge 4 commits intomainfrom
dholanda/logs

Conversation

@danielholanda
Copy link
Copy Markdown
Contributor

@danielholanda danielholanda commented Mar 6, 2026

Description

Backend subprocess logs are now tagged with their source name (llama-server, whisper-server, etc.) instead of a generic Process tag

Details

  • New ?source= query param on /logs/stream lets you filter the SSE stream to a single backend
  • New /logs/sources endpoint returns what backends are currently loaded
  • Log viewer UI gets a dropdown to pick "All Sources" or a specific backend
image

@danielholanda danielholanda self-assigned this Mar 6, 2026
@danielholanda danielholanda marked this pull request as ready for review March 6, 2026 17:55
@danielholanda
Copy link
Copy Markdown
Contributor Author

Waiting a few days to see if @jeremyfowers also wants to review this

Copy link
Copy Markdown
Member

@jeremyfowers jeremyfowers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please resolve conflicts and then yes I'd like to test drive it before merging

@danielholanda
Copy link
Copy Markdown
Contributor Author

Resolved conflicts. @jeremyfowers Please take a look.
There are clearly some tradeoffs here and I would like to know what you think.

@@ -1,4 +1,4 @@
import React, { useEffect, useRef, useState } from 'react';
import React, { useCallback, useEffect, useRef, useState } from 'react';
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

What's up with all the WebSocketServer::handleConnection() HTTP status: 400 error: Missing Sec-WebSocket-Key value? Never seen that before.

import React, { useEffect, useRef, useState } from 'react';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import { getAPIKey, getServerBaseUrl, onServerUrlChange, serverConfig } from './utils/serverConfig';
import {EventSource} from 'eventsource';
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't seem to work for Kokoro, SD, Whisper, or RyzenAI-Server?

Image Image

The KokoroServer logs are ending up under Lemonade Router not Kokoro Server.

@@ -7,6 +7,11 @@ interface LogsWindowProps {
height?: number;
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

Two instances of llama-server (under --max-loaded-models 2) share the same log view. Should it be clearly separated and labeled into llama-server[0] and [1]? Or better yet, filter by model name instead of process name?

Copy link
Copy Markdown
Member

@jeremyfowers jeremyfowers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry about the very long wait!

I like this PR conceptually @danielholanda but there seems to be a few bugs. The overall design is sound and I'd like this to be an app feature.

@danielholanda
Copy link
Copy Markdown
Contributor Author

Awesome! Thanks for the review. Will take a second stab at it in the next few days

@jeremyfowers jeremyfowers marked this pull request as draft March 23, 2026 14:04
@jeremyfowers
Copy link
Copy Markdown
Member

Setting to draft until the requested changes are made.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants