Bug Fixes
- Proxmox: Proxmox stats, journalctl, and tail WebSocket streams now cancel when the client connection closes, with bounded per-host HTTP capacity and request timeouts. (2291ce7)
- Health: Docker health monitoring now retries initialization and inspection failures instead of disabling monitoring, while route probes remain a fallback only when Docker health is unavailable. (c747de3, yusing/godoxy-webui@512eb17, #240 )
- Idlewatcher: Idlewatcher wake retries now refresh errored container state, preserve active progress, and keep shared wakes running after the initiating request is canceled. (a3c3cd3, 4e0dbe0)
- Idlewatcher: The default container wake timeout has increased from 30 seconds to 3 minutes. (524faf0)
- Config: Configuration-load diagnostics are now transactional: failed reload logs are discarded, successful batches are serialized, and persistent flush failures fall back to direct logging. (29d3d6e)
- API: API and local API handlers now register after authentication initialization, with registration conflicts and failures reported during startup. (975a89e, #241)
- WebUI/Config: The WebUI now retains unsaved configuration changes and the save indicator when persistence fails. (yusing/godoxy-webui@1681f07)
- Goutils/Errs: Wrapped and multiline errors now retain structured JSON serialization, with readable error text as a fallback for malformed or legacy marshalers. (yusing/goutils@45b7d97)
New Features
- Config: Proxy Protocol now supports disabled, mixed, and required modes with trusted IP/CIDR validation across HTTP, HTTPS SNI, and TCP listeners; the legacy toggle is deprecated and the WebUI exposes the new settings. (d48810e, yusing/goutils@64e7ee5, yusing/godoxy-webui@1a8f938, yusing/godoxy-webui@e5c8a28)
- Home: Homepage items now expose Proxmox node and VMID metadata and provide start, stop, and restart controls for Proxmox containers. (2ed37ee, yusing/godoxy-webui@504bc0f)
Improvements
- Config: Configuration transitions are now managed by RuntimeManager with serialized reloads, activation reports, context-scoped dependencies, and runtime health diagnostics. (2777535)
- Proxmox: Proxmox node discovery is now scoped to configuration state, ambiguous node names are reported as 409 conflicts, and LXC actions use improved polling, timeouts, and status validation. (6af20e9, yusing/godoxy-webui@9d6e8e7)
Security
- Auth: API username and password credentials are now required at startup unless OIDC is enabled or authentication is explicitly disabled; update existing deployments that rely on default credentials. (0e1dcfb, 8032207)
- Config: Startup diagnostics now emit allowlisted route and subsystem summaries without serializing credentials or unknown configuration values. (2c4c11f)
- Autocert: ACME External Account Binding HMAC values are redacted in JSON and YAML serialization while the original value remains available for registration. (cfe8773)
Full Changelog
- 760a9fd chore(deps): bump Go module dependencies
- 2291ce7 fix(proxmox): bound requests and cancel websocket streams
- 2777535 refactor(config): centralize runtime lifecycle management
- 8032207 fixup! security(auth): require explicit userpass credentials
- 524faf0 fix(idlewatcher): extend default container wake timeout
- 0e1dcfb security(auth): require explicit userpass credentials
- 29d3d6e fix(config): make load diagnostics transactional
- 2c4c11f fix(config): prevent secrets in startup diagnostics
- cfe8773 fix(autocert): redact EAB HMAC credentials
- 975a89e fix(api): register rule handlers after auth initialization
- edb2364 chore(deps): update webui submodule
- d48810e feat(config): support trusted Proxy Protocol modes
- c747de3 fix(health): make Docker health monitoring retryable
- 2ed37ee feat(home): support Proxmox container controls
- a3c3cd3 fix(idlewatcher): make wake retries and readiness signaling reliable
- 6af20e9 refactor(proxmox): scope node pools to configuration state
- 4e0dbe0 fix(idlewatcher): keep shared wakes alive across request cancellation
- 9fc922d chore(deps): bump Go module dependencies
- f9f510d refactor(events): route blocked events through request history
- b6e43b9 refactor(pool): route events through instance history
- 4a8d15b feat(events): add context helpers for event history
- 45b7d97 fix(errs): preserve JSON serialization for wrapped errors
- 64e7ee5 feat(server): add configurable PROXY protocol policies
- d077797 chore(deps): update wiki submodule
- 1681f07 fix(config): preserve unsaved state when saving fails
- a015575 chore(deps): update wiki submodule
- f2b5d4f chore(deps): update juststore-shadcn submodule
- 60c5d18 fix(config): bind Vite server to localhost
- a73644a chore(deps): update wiki submodule
- e5c8a28 fix(config): clean up proxy protocol mode subscription
- 1a8f938 feat(config): support trusted Proxy Protocol modes
- d3cc0d6 chore(deps): update wiki submodule
- 512eb17 fix(routes): clarify Docker health check fallback settings
- 504bc0f feat(home): support Proxmox container controls
- 9d6e8e7 docs(api): document ambiguous Proxmox node responses