Version 1.1.1 closes the persistent-command startup gap from Issue #1. The launcher now creates the managed vps command on the first interactive root run while retaining explicit install, opt-out, non-interactive, and collision-safe behavior.
- Rebuilt
vps.sharound real repository modules with local-file and remote download paths - Added temporary-file isolation, syntax checks, download fallbacks, and confirmation for third-party commands
- Added responsive terminal widths, CJK-aware alignment, compact narrow-screen rows, and shared UI helpers
- Added persistent
vpscommand installation and a legacy-onlyvps_scripts.shcompatibility handoff - Added idempotent automatic
vpscommand installation for first interactive root launches without overwriting unrelated commands - Removed the synchronous third-party usage-counter request from launcher startup
- Added Hysteria2, WP Panel, Caddy, Portainer, Komari, acme.sh, tmux, oh-my-zsh, Uptime Kuma, Tailscale, FRP, cloudflared, FileBrowser, and additional community diagnostics
- Added
scripts/other_tools/modern_cli.shfor btop, ripgrep, fd, bat, fzf, jq, ncdu, and restic - Added
--status,--install, and--helpto the modern CLI toolkit - Kept the toolkit on configured distribution repositories without adding remote installer pipelines
- Enabled
set -euo pipefailacross all 21 service installers and all network/performance scripts - Replaced predictable temporary paths with
mktempin the affected maintained scripts - Removed first-party
curl | shpatterns from the hardened service installers - Fixed installer quoting, input validation, cleanup, package-manager, strict-mode, and build concurrency defects
- Moved PostgreSQL WAL archives outside the primary data directory
- Added shared
die()and build-from-source helpers - Hardened the Nezha agent installer with input validation, isolated archive verification, systemd escaping, and unit verification
- Replaced first-party remote shell pipelines in LDNMP, dependency installation, Jenkins build tooling, and bandwidth testing with validated temporary scripts
- Routed third-party project installer entries through launcher confirmation, isolated download, syntax validation, and execution
- Made the LDNMP compatibility installer validate requested PHP/database choices, protect generated credentials, and require explicit demo-site opt-in
- Separated non-interactive system-update confirmation from reboots, which now require explicit
--rebootopt-in
- 39 repository validation scripts now cover paths, categories, UI, strict mode, installers, release metadata, privacy, execution safety, and upgrade-hardening policy
- Release metadata validation keeps the version, date, changelog, README, version policy, config, and launcher synchronized
- ShellCheck error findings now fail CI instead of being ignored
- Fixed
validate_update_scripts_legacy.shto match the removed legacy directory - Launcher path, core asset, menu coverage, and line-ending policies remain enforced
- Updated
version.json, config, launcher, README badge, and version policy to 1.1.1 - Updated
CHANGELOG.md,TASKS.md,PROGRESS.md,PRIVACY.md, and development guidance - Recorded the next safety round around the four first-party
other_toolsscripts
- Split the LDNMP compatibility facade into calls to focused maintained installers
- Add mocked behavioral tests for package managers, systemd, downloads, and destructive cleanup paths
- Add non-interactive dry-run/status modes to additional state-changing utilities
- Review project-owned installer archives for checksum or signature validation where upstream publishes verifiable metadata
- No first-party utility overwrites a whole shared system configuration file
- All destructive utility actions offer a clear preview, confirmation, and rollback path
- Third-party installers use architecture-aware, temporary-file wrappers where practical
- Behavioral tests supplement the existing syntax and pattern validation