The flagged links are a default local AI server address and SillyTavern's own internal API paths. These are exactly what you would expect in an extension that supports multiple AI backends, and none of them send data to an unexpected external location.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
The flagged line is just normal code that reads streaming responses from an AI service. The scanner mistook the standard text prefix used in streaming data for a suspicious link. This is entirely normal for an extension that talks to AI endpoints.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged line 543, which is an SSE stream-parsing guard: `if (!trimmed || !trimmed.startsWith('data:')) continue;`. The `data:` literal is the standard Server-Sent Events field prefix used by OpenAI-compatible streaming endpoints, not a hyperlink or external destination. The surrounding code reads a fetch response body, splits on newlines, and parses JSON deltas — exactly the streaming behavior described in the project's stated purpose for its OpenAI-compatible backend. No outbound data flow to an unexpected destination is present.
This extension summarizes chat conversations by sending text to an AI model and saving the summaries. It also has a repair feature that uses SillyTavern's built-in commands to unhide messages. The scanner flagged these two features because one involves network calls and the other involves running commands, but they are separate features that don't feed into each other. The AI's responses are stored and displayed as plain text, never run as code. The commands use simple message index numbers, not anything that could be manipulated.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: The scanner correlates network retrieval with a code execution sink within the same file range. In the supplied code, the network retrieval is the LLM summarizer call (callSummarizer) which sends chat text to the configured model API and receives summary text back. The summary text is stored as plain strings in the layer store and injected as text via setExtensionPrompt — it is never evaluated as code. The execution-like sink is executeSlashCommandsWithOptions used in the repair handler, but it is invoked with a numeric loop index in a fixed slash command template, not with network-derived or attacker-controlled data. These two capabilities serve independent legitimate purposes (summarization and message repair) and do not form a download-to-execution chain. jQuery .html() calls in the UI builders use numeric values and escapeHtml-escaped snippet text, which is appropriate for the data shown.