Add Linux Inspector and installer improvements#699
Conversation
Introduce a Linux inspector module to check/install desktop dependencies (system and Python packages) and register it in the installer routes. Add /apps endpoint to list AT-SPI visible apps. Switch blocking package checks/installs to asyncio.to_thread and run status checks outside the global install semaphore so they don't queue. Include node version in /status and add system_info dispatch support.
🔎 ZeuZ PR ReviewOpen the full report in ZeuZ: Review findings and apply suggestions
Agent breakdown→ General ReviewStatus: ✅ Completed Mostly solid PR: Linux support and the installer/status routing look coherent, but I found one correctness risk in the new Alma/RHEL 9 path that can report success too early. → Security ReviewStatus: ✅ Completed No high-signal security findings in this PR diff. The new Linux inspector and installer paths follow the existing subprocess-based patterns, and I didn’t find a clear injection, authz, or secret-handling regression to flag. → Performance ReviewStatus: ✅ Completed Found one performance issue: the new status endpoint now shells out to Git on every request, which is avoidable overhead on a hot path. → Testing ReviewStatus: ✅ Completed The PR adds several new Linux- and installer-facing code paths, but I couldn’t find any corresponding tests in the repository. The main risk is regression in the new Linux Inspector flow and the new system-info/version endpoints going unnoticed.
|
Summary
linux_inspector.py) that checks and installs all system packages and Python libraries required for Linux desktop automation. Supportsapt,dnf, andpacmanpackage managers, including special handling for AlmaLinux/RHEL 9.Linux) inroute.pyso it appears in the installer UI alongside Android, Web, Windows, and macOS services._run_job→_execute_jobso thatstatusaction jobs skip the concurrency semaphore, preventing fast read-only status checks from queuing behind long-running installs.NATIVE_CATEGORIES = {"Linux", "Windows", "MacOS"}and included them inPATCH_CATEGORIESso node-side patch/forward logic covers desktop platform installers.GET /installer/system-infoendpoint andsystem_infojob action backed byget_formatted_system_info().server/linux.pywithLinuxAppInfomodel and supporting routes for exposing installed application metadata.Test plan
PACKAGES["apt"]andPIP_PACKAGESare installed.GET /installer/system-infoand verify a valid JSON response is returned.🤖 Generated with Claude Code