No material or immediate-danger item was identified.
JavaScript analysis reported javascript.xray.unsafe-regex
Minor caution · medium confidence
A crafted input might briefly slow or freeze the local client, without showing broader security harm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.
Impact: low · Exploitability: plausible
Developer action: Bound the input length or replace the expression when practical.
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-regex
- File role
- production
- Source
- electron/main.cjs:2469
Contextual expected matches (26)
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line only arranges the buttons at the bottom of a small image-picking window inside the app. It is pure visual styling and cannot save anything, run anything, or change how the app or computer starts.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is a stylesheet declaration that lays out the action button row of the application's profile-image picker dialog. It sets only visual layout properties. Stylesheet rules in this project contain no scripting, storage access, network calls, or startup hooks, so no startup-persistence behavior is possible at this location. The scanner match is a category false positive on presentational markup.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15944
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This is a line of visual styling for a pop-up image-picker window. Stylesheet lines cannot run programs or change how your computer starts up, so this match is a false alarm.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is a CSS style-sheet declaration inside a modal dialog rule block, part of a stylesheet shipped with the renderer UI. It contains no executable code, no script, no persistence mechanism, and no capability to modify startup behavior or system state. The scanner rule targeting startup persistence modification has matched stylesheet text, which cannot perform any of the behaviors the rule is designed to detect.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15852
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The script checks two simple settings to decide how to display test results. It does not copy, save, or send any environment data anywhere, so there is no secret-leaking risk.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The flagged lines read two environment variables to decide whether test output should be interactive or redirected to a local log file. Environment values are only compared against fixed literal strings and a boolean flag; nothing is copied into a serialized payload, transmitted, or persisted beyond a temporary local log that is deleted afterward. This is ordinary test-runner configuration with no credential or data flow to any destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- tooling
- Source
- scripts/run-tests.mjs:21
JavaScript analysis reported javascript.xray.data-exfiltration
Expected behavior · high confidence
The script asks the computer where its temporary folder is so it can store test logs there, then cleans them up. Nothing is sent outside your machine, so this is not data theft.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.data-exfiltration
- File role
- tooling
- Source
- scripts/run-tests.mjs:3
JavaScript analysis reported javascript.xray.unsafe-import
Expected behavior · high confidence
The script looks up where the installed testing tools live on your machine and runs them. It only allows two specific testing tools that are part of the project, so there is no hidden or risky code loading here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-import. The match applies to this repository.
Contextual assessment: The flagged line resolves the local entrypoint file of one of two fixed test runners (vitest or playwright), both pinned devDependencies of this repository, and then spawns the project's own Node executable with that entrypoint. The module specifier comes from a hardcoded allow-listed map, not from user input, network data, or package metadata fetched at runtime. This is a standard, non-dynamic local test launcher with no supply-chain exposure demonstrated by the supplied code.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-import
- File role
- tooling
- Source
- scripts/run-tests.mjs:23
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line only sets the size of a pop-up window in the app's interface. It cannot run anything or persist on your system, so there is no security issue.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is the opening selector of a CSS rule that styles a dialog element's width and height. It is static presentation markup with no executable semantics, no file or registry access, and no startup or persistence capability. A stylesheet declaration cannot implement the persistence behavior the scanner rule targets.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15830
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner mistook a streaming-message keyword for a suspicious link. This file only prepares requests and read replies from the user's own model server; it never contacts any website or sends information anywhere.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line belongs to a server-sent-event parser that dispatches on a leading data-field prefix to accumulate streaming payload lines. The full module only shapes request bodies for the local LM Studio integration and parses streamed replies; it contains no URL construction, network client, or outbound data flow. The scanner signal is a keyword false positive on the SSE field prefix, with no destination, timing, or disclosure concern.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- electron/lmStudioChat.cjs:150
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line just controls how big the preview picture looks in a cropping window. It changes nothing except appearance and cannot affect anything outside that window.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line begins a rule that sizes and fits the preview image shown inside the profile-image crop dialog. It declares only display and sizing values. CSS declarations here have no executable capability, no data flow, and no persistence or startup mechanism, so the matched persistence rule does not correspond to any behavior in the supplied code.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15888
JavaScript analysis reported javascript.xray.data-exfiltration
Expected behavior · high confidence
The scanner reacted to a routine system-information import. The visible code communicates only with the model services the user sets up, which is the app's stated purpose; nothing sends your keys, stories, or machine details anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.data-exfiltration
- File role
- production
- Source
- electron/main.cjs:8
OpenGrep reported tavernkeeper.dynamic-execution.javascript-eval
Expected behavior · high confidence
A test runs the app's own bridge code in an isolated bubble with fake Electron parts to check that it behaves correctly. It only ever executes the project's own code during automated testing, so there is no way for an attacker or outside input to use it.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.dynamic-execution.javascript-eval. The match applies to this repository.
Contextual assessment: The flagged construct executes the project's own committed preload bridge script inside a VM context with stubbed Electron globals so unit tests can verify IPC cancellation and provider error propagation. The only code executed is first-party, file-resident source read from the repository itself; no untrusted, user-supplied, or remote input reaches the execution call, and the file is test scaffolding that does not ship in the application's runtime path.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.dynamic-execution.javascript-eval
- File role
- test
- Source
- electron/providerModelLists.test.ts:10-15
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line styles the box that holds a picture while the user crops it. It is ordinary appearance code with no power to run, save, or change anything on its own.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line begins a rule styling the container that holds the image in the profile-image crop dialog, setting only positioning and interaction hint properties. A stylesheet declaration cannot register startup execution, write persistent state, or originate any data flow, so no persistence exposure is demonstrated by this evidence.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15879
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This is more pop-up styling, deciding how an image area is laid out. Styles cannot start programs or persist, so this is a false positive.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is a CSS rule for a layout stage element inside the same character profile picker styling block. It declares grid layout, overflow, borders, and background colors. There is no code execution, no persistence, and no state modification of any kind; the scanner rule for startup persistence modification cannot be satisfied by stylesheet text.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15862
JavaScript analysis reported javascript.xray.unsafe-command
Expected behavior · high confidence
When you install the project, this helper tells git to use the project's own commit-check scripts. It runs two fixed, well-known git commands, changes nothing outside the project folder, and does nothing at all when git is absent. This is a common, harmless setup step.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-command. The match applies to this repository.
Contextual assessment: The flagged calls execute two fully hardcoded git commands: one read-only check for whether the current directory is a git work tree, and one local repository configuration change that points git at the tracked hooks directory inside the same repository. Neither command contains interpolation, user input, network access, or out-of-repo modification. The script runs as an npm prepare step, is guarded by a try/catch no-op outside a repository, and modifies only the local clone's git config. This is a widely used, disclosed pattern for installing committed git hooks and does not create system persistence or code execution beyond the developer's own checkout.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-command
- File role
- tooling
- Source
- scripts/setup-git-hooks.mjs:8-10
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line only changes the mouse pointer shape while you drag the cropping circle. It is cosmetic and cannot do anything beyond how the app looks.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is an interaction-state rule that changes the mouse pointer shown while the crop ring in the profile-image dialog is being dragged. It only sets a cursor appearance. There is no execution, persistence, network, or file activity possible in this declaration, so the persistence-category match reflects no actual behavior.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15918
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The script copies the program's settings list so it can hand them to the app it starts on your own computer. Nothing is sent anywhere else. This is a normal way to start the desktop app and does not expose any secrets.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The flagged line copies the current process environment into a plain object solely to remove one Electron-specific variable before spawning the local Electron binary as a child process. This is a standard launcher pattern: the environment is passed to the project's own child process and never serialized to disk, logged, or sent to any external destination. The spread copies the environment locally within the same machine and process tree; there is no exfiltration path or attacker-controlled data flow.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- tooling
- Source
- scripts/run-electron.mjs:7
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
A styling line that removes spacing around text in a pop-up header. It cannot do anything harmful.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is a CSS element selector that resets margins for headings and paragraphs inside a dialog header. It is inert presentation markup with no executable or persistent behavior; the startup-modification scanner rule is not applicable to stylesheet content.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15853
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line makes the cropping circle in the image picker look the way it does. It is styling only and has no ability to run or store anything.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line begins a rule that visually styles the draggable circular crop overlay in the profile-image dialog, defining borders, shape, shadow, and pointer hints. It is presentational only; a stylesheet declaration cannot perform startup modification or persistence, and the supplied context shows no executable code at or near this line.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15902
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line draws the faint dashed ring inside the cropping circle so the user can see the crop area. It is purely cosmetic.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line begins a rule drawing the dashed inner guide inside the crop ring of the profile-image dialog, setting only position, border, and pointer-pass-through values. No code execution, data flow, or persistence capability exists in this declaration, so the startup-persistence rule category does not match the actual content.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15922
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line styles the little round handle used to make the crop circle bigger or smaller. It only affects how that handle looks and feels.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line begins a rule styling the small resize knob on the crop overlay in the profile-image dialog, defining its placement, size, shape, colors, and resize pointer. It is purely presentational; no startup modification, storage, network, or execution path exists at this location in the supplied evidence.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15930
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
A line that colors and sizes a pop-up title. Harmless styling, not a startup change.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is a CSS heading selector setting text color and size in the profile picker dialog. It is static styling with no code, data flow, or persistence capability; the matched scanner rule describes executable startup modification, which stylesheet text cannot perform.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15857
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
A tiny fake image used in an automated test was mistaken for a suspicious link. It exists only inside the test and never leaves the developer's machine or affects app users.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged literals are inline placeholder image data URIs used as unit-test fixtures to verify multimodal request construction. They are never transmitted, the containing file is test scaffolding rather than shipped runtime code, and there is no network destination or credential involvement anywhere in the file.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- test
- Source
- electron/lmStudioChat.test.ts:69
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
Styling that dims the background behind a pop-up window inside the app. It only affects what you see on screen and cannot change anything on your system.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line opens a CSS rule for a full-screen backdrop behind a modal dialog, declaring fixed positioning, z-index, flex centering, and a translucent background. This positions an overlay within the app's web view only; it does not touch the operating system, autorun locations, or any persistence mechanism. The scanner's startup-persistence rule matched static stylesheet keywords, not executable behavior.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15819
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
Layout styling for a pop-up header. Purely visual, with no ability to run or persist anything.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line is a CSS rule laying out a dialog header with flexbox, gap, padding, and a bottom border. It is inert markup for visual presentation with no executable code or persistence behavior; the matched scanner rule cannot apply to stylesheet declarations.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15843
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged web addresses are the standard local addresses of the user's own model programs running on the same computer, which is exactly what this local-first desktop app is built to connect to. There is no hidden external destination.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The occurrences correspond to plain-HTTP default addresses for loopback model and image services, a local development-server address, and user-configurable base URLs, matching the project's documented local-first architecture. The ComfyUI URL handling explicitly restricts protocols, and destinations default to the user's own machine rather than any concealed external host. Non-TLS loopback defaults are normal for local inference servers, which typically do not terminate TLS.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- electron/main.cjs:50
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
More pop-up styling for the image area. It cannot run code or change startup behavior.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line opens a CSS rule for the image-stage element of the same picker dialog, containing grid and box styling only. As with the other candidates in this stylesheet block, there is no executable code, no data flow, and no persistence capability, so the startup-modification rule match is a textual false positive against presentation markup.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15868
OpenGrep reported tavernkeeper.persistence.startup-modification
Expected behavior · high confidence
This line slightly darkens the area around the cropping circle so the crop region stands out. It is a visual effect and nothing more.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.persistence.startup-modification. The match applies to this repository.
Contextual assessment: The flagged line begins a rule creating the dimming overlay behind the crop ring in the profile-image dialog, setting only positioning and a translucent background. A stylesheet declaration has no capability to persist state or modify startup behavior, so this scanner match does not correspond to any demonstrated exposure.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.persistence.startup-modification
- File role
- production
- Source
- src/styles.css:15895