feat: add streamer mode for privacy during streaming
CI / Lint & Test (pull_request) Failing after 5m40s
CI / Build Linux (pull_request) Has been skipped
CI / Build Windows (cross-compile) (pull_request) Has been skipped
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 49s

- Add quick toggle button in InputBar for easy access
- Mask API keys in settings when streamer mode active
- Optional path masking to hide usernames in file paths
- Visual LIVE indicator in both InputBar and StatusBar
- Keyboard shortcut Ctrl+Shift+S for quick toggle
- Privacy section in settings for additional options

Closes #35
This commit is contained in:
2026-01-25 18:15:47 -08:00
committed by Naomi Carrigan
parent 0ac52c8c8d
commit ff50b28641
7 changed files with 235 additions and 42 deletions
+8 -2
View File
@@ -6,6 +6,7 @@
import HighlightedText from "./HighlightedText.svelte";
import { searchState, searchQuery } from "$lib/stores/search";
import { clipboardStore } from "$lib/stores/clipboard";
import { shouldHidePaths, maskPaths } from "$lib/stores/config";
let terminalElement: HTMLDivElement;
let shouldAutoScroll = true;
@@ -18,6 +19,11 @@
currentSearchQuery = value;
});
let hidePaths = false;
shouldHidePaths.subscribe((value) => {
hidePaths = value;
});
claudeStore.terminalLines.subscribe((value) => {
lines = value;
});
@@ -188,9 +194,9 @@
<span class="terminal-tool-name mr-2">[{line.toolName}]</span>
{/if}
{#if line.type === "assistant"}
<Markdown content={line.content} searchQuery={currentSearchQuery} />
<Markdown content={maskPaths(line.content, hidePaths)} searchQuery={currentSearchQuery} />
{:else}
<HighlightedText content={line.content} searchQuery={currentSearchQuery} />
<HighlightedText content={maskPaths(line.content, hidePaths)} searchQuery={currentSearchQuery} />
{/if}
</div>
{/each}