You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Warn instead of silently storing plaintext API keys; fix runtime-manager polling storm; add ManagedPythonWorker timeouts
- secrets-store: expose isEncryptionAvailable() and log a warning when
falling back to unencrypted storage (no OS credential store available).
Settings now shows a prominent plaintext-storage warning in that case
instead of the normal "encrypted at rest" note, and the README/docs
no longer claim unconditional encryption.
- RuntimeManager: stop re-running full Python environment inspection
(which can spawn nvidia-smi/rocminfo/wsl.exe and a Python interpreter
per family) on the same 2.5s interval as lightweight process-status
polling. Environment status now refreshes once on page entry and on
manual refresh instead.
- ManagedPythonWorker: add a per-request timeout so a hung-but-alive
worker can't leave a request pending forever, an output buffer cap to
bound memory from a runaway/non-responsive worker, and safe handling
of malformed response lines instead of an unguarded JSON.parse.
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -209,7 +209,7 @@ The `app` suite covers the store layer (atomic writes, corrupted-file recovery),
209
209
210
210
-**Process isolation**: `contextIsolation: true`, `nodeIntegration: false` — the renderer only ever talks to the main process through an explicit, typed preload bridge.
211
211
-**Content Security Policy** restricting plugins, frames, and form submissions; external links open in your default browser instead of an unmanaged Electron window.
212
-
-**API keys** are encrypted at rest via the OS credential store (`safeStorage`) and never leave the device.
212
+
-**API keys** are encrypted at rest via the OS credential store (`safeStorage`) and never leave the device. On the rare system with no OS credential store available (e.g. some keyring-less Linux setups), keys fall back to being stored in plain text on disk rather than being silently dropped — Settings shows a prominent warning in that case rather than the normal "encrypted" note.
213
213
-**Agent mode** tool calls are workspace-sandboxed (path-traversal rejected) and require explicit per-call approval — see [Agent mode](#agent-mode) above and [docs/AGENT_MODE.md](docs/AGENT_MODE.md) for the full detail.
214
214
- No telemetry, no analytics, no data sent anywhere except directly to whichever provider (Ollama, OpenAI, Anthropic) you've configured.
keysEncryptedNote: "Keys are encrypted at rest using your OS credential store and never leave this device.",
454
+
keysNotEncryptedWarning: "No OS credential store was found on this system, so keys are being saved in plain text on disk instead of encrypted. They still never leave this device, but anyone with file access to your user profile can read them.",
"Anahtarlar, işletim sistemi kimlik bilgisi deposu kullanılarak şifrelenir ve bu cihazdan çıkmaz.",
865
+
keysNotEncryptedWarning:
866
+
"Bu sistemde bir işletim sistemi kimlik bilgisi deposu bulunamadığı için anahtarlar şifrelenmeden düz metin olarak diske kaydediliyor. Yine de bu cihazdan çıkmazlar, ancak kullanıcı profilinize dosya erişimi olan herkes onları okuyabilir.",
0 commit comments