Build complete platform tar.gz bundles with production dependencies for 13
Linux architecture/libc targets, including ARMv6 glibc and musl. Share archive,
payload, runtime and dependency verification across online preparation and
manual offline installation while retaining the existing Node runtime.
Publish readiness only after an isolated backend starts successfully. Repair
verified dependency failures once with the frozen lockfile; offline repair
requires explicit opt-in. Preserve configured proxies and bound memory,
concurrency, process lifetimes and cleanup on small devices.
Verify the running build after explicit restart, restore prior application
files and dependencies on failure, and retain backups when the failed service
cannot stop. Complete cancellation recovery outside the aborted signal, reap
descendants as their supervisor exits, and keep operation-only upgrade
variables out of both Bash and CLI service startup environments.
Keep dialog/sidebar states consistent, hide completed notices, and retain
menu/user controls in narrow desktop viewports with long-name truncation.
Validation: 791 backend/frontend tests passed (8 platform skips), 294 CLI
tests passed (5 platform skips), backend/CLI type checks and standalone offline
installer build. On dev, 29 additional Linux fault regressions passed without
external networking, including real Node/PM2 SIGTERM rollback. Earlier full
bundle application and ARM1176/glibc prestart acceptance remain recorded.
Make the mirror notification timing regression respect Bash SECONDS integer
resolution: require two clock ticks and assert the logged retry threshold.
Validated with Node 20 full regression and 12 repeated boundary runs.
Download updates asynchronously with persistent progress and validate matching source and build artifacts before an explicit restart. Keep upgrade workers alive across service restarts, verify the new runtime, and recover the browser with a one-time success notice.
Publish immutable archive sizes and checksums for accurate download progress. Align the update dialog, hide unavailable actions during transfers, and show the sidebar notice only for active, ready or failed jobs. Constrain long account names with ellipsis while preserving avatar and collapse controls.
Translate UI, scheduler, validation, preload and maintenance messages dynamically, and propagate locale changes between workers. Harden update checks, downloads and terminal states, verify Debian pnpm, and ignore generated test artifacts.
Synchronize scheduler concurrency across API and gRPC processes and restore persisted limits during recovery.
Serialize subscription mutations and preserve shared storage while cleaning Shell and CLI namespaces, historical references, and filesystem-specific naming candidates.
Handle CLI text responses correctly and include script history in backups. Add regression coverage for concurrency, cleanup ownership, long URLs, Unicode paths, and history exports.
* feat(cli): add unified Commander CLI for QingLong 2.x
* fix(cli): publish via npm and address security review feedback
* ci(cli): package npm artifacts and remove evaluation collateral
* test(cli): use a fixed shell fixture for log retention
* refactor(cli): separate remote npm client from panel tools
* feat(cli): cover active panel OpenAPI resources
* docs(cli): unify authentication and skill guidance
* refactor(cli): isolate internal commands and generate Commander help
* refactor(cli): organize remote and internal modules by responsibility
* ci(cli): publish verified npm archives from master
* fix(cli): publish under the whyour npm scope
* ci: use npm trusted publishing for both packages
* docs: introduce the published CLI on the project homepage
* fix(cli): preserve server log truncation and correct login hints
* fix(cli): accept dashboard record request bodies
* fix(cli): preserve stdin for local task execution
* fix(cli): resolve task executables after changing directory
* fix(cli): preserve shell function tasks and sanitize test failures
* fix(cli): preserve shell hook state and resolve workdir after hooks
* fix(cli): preserve cleanup across shared shell task timeouts
* fix(cli): isolate shell control descriptors and reap timed-out descendants