feat(gui): make all operations fully GUI-driven — no CLI required#1
Closed
feat(gui): make all operations fully GUI-driven — no CLI required#1
Conversation
Signed-off-by: Vincent Koc <vincentkoc@ieee.org>
Signed-off-by: Vincent Koc <vincentkoc@ieee.org>
Signed-off-by: Vincent Koc <vincentkoc@ieee.org>
Installs Node.js (via nvm), Ollama (with GPU detection and version checking), and NemoClaw, then runs onboard. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- fix-coredns.sh: read nameserver from container /etc/resolv.conf instead of docker bridge gateway IP (172.17.0.1 doesn't serve DNS in Colima) - onboard.js: run CoreDNS fix on all macOS, not just when Colima socket detected (Docker Desktop has same issue), dedupe sandbox allocated spam Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
k3s-inside-Docker has broken DNS everywhere, including DGX Spark (Linux). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Instead of hardcoding "nemoclaw", read the default sandbox from ~/.nemoclaw/sandboxes.json. Falls back to openshell sandbox list, then "nemoclaw" as last resort. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add install.sh for automated NemoClaw setup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ence-setup Skip inference verification in setup flows
- detectGpu() now returns type (nvidia/apple), name, core count - Apple Silicon reports unified memory, marked nimCapable: false - Onboard shows Apple GPU info but notes NIM requires NVIDIA - --gpu flag only passed to openshell for NVIDIA GPUs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Old syntax `nemoclaw connect` no longer exists. The rearchitected CLI uses `nemoclaw <sandbox-name> connect`. Updated README, quickstart, commands reference, and all other docs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ensureApiKey() now runs before any other step so the key is always available when creating the provider - sandboxConnect() restarts the 18789 port forward if it died Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The API key is injected by openshell via the provider config, not
needed as an env var inside the sandbox. The ${NVIDIA_API_KEY} literal
caused a noisy warning on every openclaw command.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prevents silent exit under set -euo pipefail. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
add docs contributing guide
…scanning Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add uninstall script for NemoClaw and OpenShell cleanup
openshell policy set requires version field. The fallback paths in applyPreset() generated YAML without it when policy get returned empty or had no network_policies section. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Node built-in test runner, zero dependencies, runs in ~1s. Covers CRUD, schema validation, preset loading, GPU detection, CLI dispatch exit codes. Run with: npm test Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Auto-select vLLM or Ollama if already running (no prompt needed) - Show Ollama as option in wizard for all platforms - Offer to install Ollama via Homebrew on macOS - Create ollama-local provider pointing at host.docker.internal:11434 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add persistent config file (~/.config/nemoclaw/ports.json) with loadConfig/saveConfig/resetConfig/getPortSources helpers - Update port resolution order: env var → config file → default - Add server CRUD endpoints: PUT /api/ports, POST /api/ports/reset, POST /api/ports/auto-resolve - Rewrite PortManager.tsx with inline editing, validation, source badges, save/reset/auto-resolve actions, and restart reminders - Add CSS for port editing UI (inputs, badges, banners, actions) - Update API client with new types and methods - Add comprehensive tests (36 unit + 12 component) - Update README with GUI port management documentation
The loadPortsModule() function used a broken cache clearing mechanism (loadPortsModule._cache?.[]) that never actually busted Node's require cache. Fixed to use the standard require.cache[resolvedPath] deletion.
The frontend sends 'endpointUrl' and 'credentialEnv' but the backend was destructuring 'endpoint' and 'apiKeyEnv', causing the values to be silently dropped.
- Added dedicated Google Gemini provider (AI Studio endpoint) - Added gemini-3-flash to both Gemini and OpenRouter provider model lists - Includes gemini-2.5-pro, gemini-2.5-flash, gemini-2.0-flash variants
- Extract shared PROVIDERS array into gui/src/data/providers.ts - OnboardWizard step 3 now shows all 6 providers: NVIDIA Cloud, Ollama, OpenRouter, Google Gemini, vLLM, and NIM Local - Each provider shows relevant config fields (API key, endpoint URL, model selector) based on its definition - InferenceConfig.tsx imports from shared module (no duplication) - Added tests verifying all providers are visible in wizard - Updated README to document Gemini and expanded onboard wizard
…- Backend: add gateway start/stop, sandbox destroy, onboard execute (SSE),\n policy apply/remove, and chat message proxy API endpoints\n- PolicyEditor: sandbox selector + Apply/Remove toggle buttons per preset\n- OnboardWizard: Deploy Sandbox button with real-time SSE progress\n- SandboxManager: Destroy button with confirmation dialog\n- ChatInterface: real agent proxy via sandbox exec\n- DashboardPage: gateway Start/Stop toggle in stats row\n- api/client.ts: all new typed API methods\n- Tests: 75/75 pass — verify new features and absence of CLI references\n- README: updated dashboard features table
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make all NemoClaw management operations fully GUI-driven — no CLI commands required.
Backend API Endpoints
POST /api/gateway/start/POST /api/gateway/stop— Gateway lifecycle controlPOST /api/sandboxes/:name/destroy— Full sandbox teardown (NIM containers, sandbox, registry)POST /api/onboard/execute— SSE-based onboard pipeline with real-time progress eventsGET /api/policies/presets/POST /api/policies/apply/POST /api/policies/remove— Policy managementPOST /api/chat/message— Agent chat proxy via sandbox execFrontend Components
nemoclaw onboardCLI text)Tests
Notes