feat(psylab): rename probe, Tuning tab, log tools, and safe log sanitization (#1027)

* feat(psylab): rename probe UI, add Tuning tab and log copy/export

PsyLab (Ctrl+Shift+D): cover backfill threads move to Tuning; logs gain
selectable text, toolbar copy/export, and a selection-only context menu.

* fix(logging): redact secrets and mask remote hosts in runtime logs

Sanitize lines at append time (buffer, CLI tail, export) and in PsyLab:
Subsonic/auth query params, bearer tokens, password fields, URL userinfo;
remote hostnames partially starred, LAN/localhost left readable.

* fix(logging): UTF-8-safe log sanitization — unbreak playback on em dash

Byte-indexed URL scanning panicked on multi-byte chars (e.g. "—" in stream
logs), killing tokio workers and aborting playback. Iterate by char boundary;
add infallible wrapper on the append hot path.

* docs(changelog): PsyLab UI and safe log sanitization (PR #1027)
This commit is contained in:
cucadmuh
2026-06-08 02:29:23 +03:00
committed by GitHub
parent 32832246c0
commit 086c7e43b4
16 changed files with 875 additions and 17 deletions
+30
View File
@@ -219,12 +219,27 @@
font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
font-size: 11.5px;
line-height: 1.5;
user-select: text;
-webkit-user-select: text;
cursor: text;
}
.perf-logs__line {
white-space: pre-wrap;
word-break: break-word;
color: var(--text-primary);
user-select: text;
-webkit-user-select: text;
}
.perf-tuning {
display: flex;
flex-direction: column;
gap: 12px;
}
.perf-tuning__hint {
margin: 0;
}
.perf-logs__line--marker {
@@ -265,6 +280,21 @@
background: color-mix(in srgb, var(--accent) 14%, transparent);
}
.perf-logs__context-menu {
position: fixed;
z-index: 10050;
min-width: 140px;
}
.perf-logs__context-item {
width: 100%;
border: none;
background: transparent;
font: inherit;
color: inherit;
text-align: left;
}
.perf-monitor-empty {
display: flex;
flex-direction: column;