- __init__.py: auto-install sshx in background thread on register() - plugin_api.py: startup event auto-installs sshx, defers dashboard restart via BackgroundTasks - plugin_api.py: _ensure_sshx returns (success, needs_restart) tuple - plugin_api.py: /status returns 'installing' state while auto-install runs - index.js: safeFetchJSON wraps fetch+JSON.parse with error handling - index.js: shows 'Installing sshx...' with polling when status=installing - index.js: checks install status before calling /start |
||
|---|---|---|
| dashboard | ||
| __init__.py | ||
| plugin.yaml | ||