style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
style: gofmt for CI
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
fix: dashboard CPU/memory/disk metrics units and sampling
- Memory and disk used/total now returned as bytes (frontend formatBytes)
- Clamp percents to 0–100; improve CPU sampling (200ms + fallback)
- Disk usage probes /, HOME, panel data dirs
- Dashboard: safer formatBytes and Progress clamping
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
fix: audit — persist login TG notify; repair share modal; sing-box guard
- Settings save now includes notify_on_login (was toggled but never sent)
- TelegramSettings TS type includes notify_on_login
- Users share modal: fix broken JSX, proper Sing-box link with ?/&
- Sing-box generator guards empty tag list before selector default
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete (3x-ui recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name
fix: audit — do not undo ApplyConfig rollback; hard-delete proxy users
- Startup soft-fail no longer re-writes a failed Mihomo candidate after
ApplyConfig already restored/removed the previous file
- SaveConfig treats missing config as first-boot (errors.Is NotExist)
- Proxy user / binding deletes are Unscoped so username+UUID unique
indexes can be reused after delete ( recreate parity)
- Subscription Content-Disposition no longer overwrites Profile-Title name