Sleep timer (queue footer): tokio monotonic deadline + 1Hz countdown that fires core().pause() at expiry; presets + custom minutes via a popover. Stop after this song: 4 QbzCore passthroughs + playback consume-before-advance seam and the load-bearing gapless-prefetch gate, plus the queue marker/menu so the Queue persists when playback halts. qbz-log crate: TeeLogger wrapping env_logger (stderr + 5000-line ring + ~/.local/share/qbz/logs/qbz.log) with write-time secret redaction (regex + live-secret registry) and a diagnostics bundle builder. Dev panel logs: in-app viewer that shows content the moment it opens, advanced controls behind a discreet [+], "Copy all" as the sole footer button, a copy button on the upload URL, and a redacted public paste upload. Diagnostics: qbz-app::diagnostics (extracted, src-tauri untouched) feeding a 7-section panel with the live active output device + sample rate/format (pactl) and a complete redacted report for the upload. Report an Issue: wires the header menu item to a 1:1 Tauri modal that opens the GitHub bug-report template. Appearance persistence: 6 toggles that were live-only now persist via ui_prefs + handler arm + startup seed (window-title-show, show-volume-steppers, sidebar-playlist-collage, local-library-track-artwork, in-app-toasts, theme-filter). Recommendations cache (per-tab only): TTL select 24/36/48/72h + Refresh now in ExternalRecoView; no change to the other Discover tabs. Bump workspace version 0.1.0 -> 1.2.15 so app_version is correct in the diagnostics report and the QConnect About string. i18n es/de/fr/pt for all new strings. cc
15 lines
417 B
TOML
15 lines
417 B
TOML
[package]
|
|
name = "qbz-log"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
description = "Frontend-agnostic logging core for qbz: TeeLogger (stderr+ring+file), write-time secret redaction, and a GitHub-ready diagnostics bundle."
|
|
|
|
[dependencies]
|
|
log = { workspace = true }
|
|
regex = { workspace = true }
|
|
chrono = { workspace = true }
|
|
env_logger = "0.11"
|
|
dirs = "5"
|