• v2.1.6 fc91a2dc42

    v2.1.6 Stable

    kerem released this 2025-11-25 18:28:35 +03:00 | 7 commits to main since this release

    📅 Originally published on GitHub: Tue, 25 Nov 2025 15:35:31 GMT
    🏷️ Git tag created: Tue, 25 Nov 2025 15:28:35 GMT

    Release v2.1.6 - Bug fixes, username support, and validation improvements

    Added

    • Username Configuration - Support for specifying SSH usernames per node
      • Added username field to nodes.json configuration
      • Username prompts in all node configuration flows (manual entry, saved nodes, IP ranges, VMID ranges)
      • Default username is "root" with option to specify alternatives
      • Display format changed to username@ip throughout GUI
    • Dependency Checking - Runtime validation before remote execution
      • __check_remote_dependencies__() function checks for sshpass and jq
      • Helpful error messages with installation commands for all major distros
      • Notes that sshpass is not required when using SSH keys
    • Syntax Validation - Basic shell syntax checking added to validation suite
      • New Check 1a. in _RunChecks.sh runs bash -n on all .sh files
      • Catches structural errors and orphaned code blocks
      • Shows file names and line numbers for syntax errors
    • Enhanced Source Verification - Improved validation of shellcheck directives
      • VerifySourceCalls.py now validates shellcheck comments have matching source statements
      • Detects orphaned shellcheck directives within 5 lines
      • Prevents mismatched documentation and code

    Changed

    • Remote Execution UI - Scripts hidden in remote mode for better UX
      • GUI.sh and CCPVE.sh hidden from root menu when in remote execution mode
      • Prevents accidental execution of control scripts on remote nodes
      • Scripts still shown in local mode and subdirectories
    • README.md - Clarified dependency requirements
      • Updated installation command to include jq and sshpass
      • Documented that sshpass is only needed for password-based authentication
      • Separated build-time tools from runtime dependencies

    Fixed

    • Critical: Orphaned Error Handler - Fixed syntax error in Host/HostInfo.sh
      • Removed orphaned error handler code block (lines 34-36)
      • File had error message without matching source statement
      • Bug prevented script execution on remote nodes
    • Username Hardcoding - Removed hardcoded "root@" from all remote operations
      • Updated all SSH/SCP operations in RemoteExecutor.sh to use configured username
      • __ssh_exec__, __scp_exec__, __scp_exec_recursive__, __scp_download__ now accept username parameter
      • ConfigManager.sh tracks username per node in NODE_USERNAMES associative array
    • Missing Validation - Syntax check gap closed
      • _RunChecks.sh never validated basic syntax :C
      • Now catches structural errors that bash -n would detect
      • Prevents orphaned code and malformed control structures from entering repository

    Technical Details

    • nodes.json.template - Added username field with "root" default
    • Utilities/ConfigManager.sh - Added NODE_USERNAMES tracking and get_node_username() function
    • Utilities/RemoteExecutor.sh - All remote operations parameterized with username
    • GUI.sh - Dependency checking, username prompts, and script filtering
    • .check/VerifySourceCalls.py - Enhanced shellcheck directive validation
    • .check/_RunChecks.sh - Added Check 1a. for syntax validation

    Developer Notes

    The orphaned error handler bug existed because:

    • bash -n syntax check was not being run in validation suite
    • DeadCodeCheck.py only checks unused functions/variables, not code structure
    • VerifySourceCalls.py didn't validate orphaned error handlers
      The fix adds syntax validation to prevent similar issues...

    Commit: fc91a2dc42

    Downloads