Added
- Log rotation --
muximux.logis automatically rotated at 10 MB with up to 3 archived copies; no external tooling needed - Log persistence across restarts -- the
/logspage now shows entries from before the last restart by replaying the log file on startup - Icon cache cleanup -- expired dashboard and Lucide icon cache files are automatically pruned every 24 hours
- Centralized request logging -- API and page requests are logged at INFO with method, path, status, latency, bytes written, remote IP, and user agent (
source=http); static asset requests are logged at DEBUG only to avoid noise - Request ID correlation --
X-Request-IDheader on every response; incoming IDs from upstream proxies are honored - Context-aware logging -- all log entries within a request carry
request_idand authenticateduserfor correlation - Panic recovery middleware -- handler panics are caught, logged with stack trace, and return 500 with request ID
MUXIMUX_LOG_LEVELandMUXIMUX_LOG_FORMATenvironment variables for runtime log configurationserver.log_formatconfig option (textorjson; default:text)
Changed
- All HTTP error responses now log at appropriate severity (5xx at ERROR, 401/403 at WARN, 4xx at DEBUG)
- Simplified frontend API layer with shared request helper
Fixed
- Proxied apps with internal sub-iframes (e.g. qBittorrent search download dialog) no longer lose access to parent window state -- the proxy interceptor now distinguishes between internal frames and the Muximux host
- Proxy runtime interceptor now handles
URLobjects passed tofetch()andXMLHttpRequest-- previously only string URLs were rewritten - Proxy runtime interceptor now rewrites URLs in dynamically created
<iframe>,<link>,<a>, and<img srcset>elements -- previously only<img>,<script>,<source>,<video>were covered
Removed
- Unused error helper functions (internal cleanup, no user-facing impact)