fix(graph): keep SystemGraphView data sticky across tab toggles#49
Merged
simonCatBot merged 5 commits intosimonCatBot:masterfrom Apr 26, 2026
Merged
Conversation
… toggles Use CSS hidden instead of conditional rendering so the component stays mounted and continues polling. Toggling the graph tab off and back on now preserves all collected data points. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change connection tab from defaultActive: true to false so fresh loads show exactly agents + system metrics + system graph view. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix blank screen when deselecting exclusive tabs (return defaults instead of []) - Keep System/Tokens tabs mounted via CSS hidden to preserve state - Add dismissable error banner with Escape key support - Fix settings-store crash on corrupt/empty JSON (graceful fallback) - Fix mergeROCclawPatch dropping gatewayAutoStart and avatarSources fields - Fix adapter stop() hang during CONNECTING state (settle startPromise) - Fix TasksDashboard drag-over highlighting (useRef → useState) - Fix per-job runBusy tracking (boolean → string | null) - Add error feedback to TasksDashboard handlers - Remove unused useRef import from TasksDashboard - Security: remove stack traces from API error responses - Security: whitelist cron-add request body fields - Security: fix info leak in gateway-info/metrics (hide bootstrap details) - Add runtime="nodejs" to usage, gateway-info, gateway-metrics routes - Fix usage route messageCount double-counting across models - Accessibility: TabBar role="tablist" → role="toolbar" with aria-pressed - Accessibility: TasksDashboard modals get role="dialog", aria-modal, Escape key - Accessibility: connection overlay gets role="dialog", aria-modal, Escape key - Update tests for new TabBar ARIA pattern, settings fallback, patch merge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
E2E tests used getByRole("tab") which no longer matches after
the TabBar was changed from role="tablist" to role="toolbar"
with toggle buttons. Updated to getByRole("button", { name }).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The SettingsPanel theme picker was writing to a localStorage key
("rocclaw-ui-settings") that nothing read, while the working
theme system (ColorSchemeToggle) used a different key ("theme").
- SettingsPanel now applies theme changes immediately to the DOM
using the same "theme" localStorage key as ColorSchemeToggle
- Added "system" theme support (follows OS preference)
- Compact mode applies immediately via CSS class toggle
- Removed Save button (UI settings now apply instantly)
- Added cross-component sync via "rocclaw-theme-change" event
so footer toggle and settings panel stay in sync
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
simonCatBot
added a commit
that referenced
this pull request
May 4, 2026
* fix: usability improvements, accessibility, and comprehensive UI tests (#46) * AI - updates * fix: resolve usability bugs, improve UX and accessibility across dashboard Fix 6 bugs: connection panel backdrop click, tasks tab toggle-off, shared copy status, settings save deception, token usage silent fallback, footer version spacing. Add 10 high-priority UX improvements: loading skeletons for system metrics and token usage, error retry buttons, WAI-ARIA tablist keyboard navigation, modal focus trapping and escape key support, empty state guidance for fleet sidebar, gateway URL inline validation, semantic header with skip navigation, connection-loss banners in chat, and send button disabled-state tooltips. Add 14 medium-priority improvements: agent search/filter in sidebar, tab state persistence to localStorage, semantic landmarks (main, nav, aside), ARIA tab roles on connection page tabs, auto-retry status messaging, DnD screen reader announcements, escape key for dropdown menus, and menu semantics (role=menu/menuitem, aria-expanded, aria-haspopup). Add 12 accessibility fixes: chat composer focus indicator, reduced motion media query, aria-labels on all icon buttons, role=log on chat transcript, footer landmark label, increased touch targets to 32px, and password toggle aria-label. Update all documentation (README, CLAUDE.md, ARCHITECTURE, CONTRIBUTING, CHANGELOG, permissions-sandboxing) to reflect current codebase state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address review findings from post-implementation audit - Make FleetSidebar filter/onFilterChange props optional (were required but unused, causing dead code in parent) - Add scrollbar-hide CSS utility (was referenced but undefined) - Validate tab IDs from localStorage against VALID_TAB_IDS set to prevent stale/invalid tab IDs from accumulating - Update CHANGELOG.md with all new features and bug fixes from this session (search filter, tab persistence, accessibility improvements, loading skeletons, error retry, ARIA attributes, etc.) - Update README.md and CLAUDE.md to mention agent search/filter Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: add unit tests for UI components (TabBar, FleetSidebar, modals, toggles, footer, header) Add 133 new tests across 11 test files covering accessibility features, keyboard navigation, ARIA attributes, search filtering, and component rendering for all UI components modified in the usability improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(e2e): update selectors for ARIA role changes in TabBar, ConnectionPage, and AvatarModeToggle TabBar tabs changed from role="button" to role="tab", ConnectionPage tabs added role="tab", AvatarModeToggle dropdown items changed from role="button" to role="menuitem", and FleetSidebar empty state text changed from "No agents available." to "No agents yet". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(graph): keep SystemGraphView data sticky across tab toggles (#49) * fix(graph): keep SystemGraphView mounted so history data survives tab toggles Use CSS hidden instead of conditional rendering so the component stays mounted and continues polling. Toggling the graph tab off and back on now preserves all collected data points. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(tabs): default to agents, system, and graph on first load Change connection tab from defaultActive: true to false so fresh loads show exactly agents + system metrics + system graph view. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: comprehensive bug fixes, security hardening, and accessibility - Fix blank screen when deselecting exclusive tabs (return defaults instead of []) - Keep System/Tokens tabs mounted via CSS hidden to preserve state - Add dismissable error banner with Escape key support - Fix settings-store crash on corrupt/empty JSON (graceful fallback) - Fix mergeROCclawPatch dropping gatewayAutoStart and avatarSources fields - Fix adapter stop() hang during CONNECTING state (settle startPromise) - Fix TasksDashboard drag-over highlighting (useRef → useState) - Fix per-job runBusy tracking (boolean → string | null) - Add error feedback to TasksDashboard handlers - Remove unused useRef import from TasksDashboard - Security: remove stack traces from API error responses - Security: whitelist cron-add request body fields - Security: fix info leak in gateway-info/metrics (hide bootstrap details) - Add runtime="nodejs" to usage, gateway-info, gateway-metrics routes - Fix usage route messageCount double-counting across models - Accessibility: TabBar role="tablist" → role="toolbar" with aria-pressed - Accessibility: TasksDashboard modals get role="dialog", aria-modal, Escape key - Accessibility: connection overlay gets role="dialog", aria-modal, Escape key - Update tests for new TabBar ARIA pattern, settings fallback, patch merge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(e2e): update tab selectors for toolbar ARIA pattern E2E tests used getByRole("tab") which no longer matches after the TabBar was changed from role="tablist" to role="toolbar" with toggle buttons. Updated to getByRole("button", { name }). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(settings): wire theme picker to actual theme system The SettingsPanel theme picker was writing to a localStorage key ("rocclaw-ui-settings") that nothing read, while the working theme system (ColorSchemeToggle) used a different key ("theme"). - SettingsPanel now applies theme changes immediately to the DOM using the same "theme" localStorage key as ColorSchemeToggle - Added "system" theme support (follows OS preference) - Compact mode applies immediately via CSS class toggle - Removed Save button (UI settings now apply instantly) - Added cross-component sync via "rocclaw-theme-change" event so footer toggle and settings panel stay in sync Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * docs: Revamp README — value proposition and skills first (#51) * docs: revamp README to lead with value proposition and skills - Replace architecture-heavy intro with user-facing 'Why rocCLAW?' section - Add 'What You Can Do' workflow sections (Chat, Skills, Monitor, Autopilot, Configure, Remote, Security) - Highlight ClawHub skills marketplace with featured skills table - Move project structure, detailed tech stack, and architecture diagram to docs/ - Reframe personality files and permissions as benefits, not specs - Tighten Quick Start, Installation, and Troubleshooting sections * docs: second pass — tighten skills, fix tab count, reduce table bloat - Fix tab count (8 → 9, Skills tab was added) - Reorganize skills by category instead of flat table - Add clawhub.ai links to skills section - Reframe 'Why rocCLAW?' as an addition, not a fix - Replace personality files table with compact inline list - Compress permissions section into one paragraph + link - Remove editorializing from Quick Start * docs: add AMD disclaimer — not an official AMD product * docs: add acknowledgments — Ollama, Kimi K2, GLM 5.1, Claude * docs: add tested GPU configurations — Strix Halo, Strix Point, RDNA 3, fallback * docs: add tested OS configurations — Ubuntu 24.04, 22.04, generic Linux * docs: add hybrid local + cloud fleet section - Frame rocCLAW as fleet orchestrator for cost-efficient hybrid deployments - Local LLMs for routine work, cloud models for complex reasoning - Per-agent skills as workload tiering mechanism - Token dashboards for spend visibility * docs: restructure README for flow and readability - Move Quick Start above features (was buried after a wall of content) - Elevate Skills and Hybrid Fleet to top-level sections with emoji headers - Collapse Dashboard Overview to a single line (was a redundant table) - Merge Monitoring into its own concise section (was buried mid-list) - Fold Security into 'Stay in control' (was a separate wall) - Move Installation + Setup Guides after features (Quick Start links to them) - Fix footer ordering: links, then disclaimer, then acknowledgments - Net: -67 lines, same content, better hierarchy --------- Co-authored-by: Simon <simon@example.com> * Redesign ConnectionPage into single-page smart UI with install guide (#50) * feat(connection): redesign ConnectionPage into single-page smart UI with install guide Replace the 4-tab layout (Local/Client/Cloud/Remote) with a unified connection page featuring environment detection banners, a two-column layout (getting started guide + connection form), and a collapsible advanced setup section. Remove the separate ConnectionPanel overlay — the footer Plug button now toggles the Connection tab directly. Add comprehensive install guide (docs/INSTALL.md) for Ubuntu 24.04 covering prerequisites, setup, remote access, and troubleshooting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(e2e): update all E2E tests for new ConnectionPage selectors Update 6 E2E test files that referenced the old ConnectionPanel overlay (gateway-connection-overlay), old label selectors (Upstream URL/token), and the old "Save Settings" button. Tests now use the Connection tab toggle, #gateway-url/#gateway-token CSS selectors, and "Connect" button. Fix strict mode violations where "Disconnect" matched both banner and form buttons by using .first() selector. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(connection): restore 4-tab layout and fix startup scrolling Restore the Local/Client/Cloud/Remote tabs with their scenario-specific instructions while keeping the improvements from the redesign: environment detection banner, error/test result display, token chips (Stored / Auto-detected), single Connect/Disconnect button, CommandBlock helper. Fix scrolling in ConnectionSetupView (startup flow) by removing overflow-hidden from the outer container so content can scroll naturally when rendered in a full-page context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(connection): remove Tailscale from UI, expand docs, match app layout - Remove all Tailscale references from ConnectionPage tabs — Client, Cloud, and Remote tabs now show SSH-only instructions with autossh persistent tunnel guidance - Expand docs/INSTALL.md Remote Access section with detailed SSH (tunnels, autossh, systemd, key auth) and Tailscale (install, serve, ACLs, troubleshooting) documentation plus a comparison table - Restyle ConnectionSetupView to match the main dashboard layout: h-dvh fixed viewport, matching padding, panel wrapper with overflow-hidden, and a simplified footer with status dot, branding, and theme toggle - Fix startup scroll by removing overflow-hidden from ConnectionPage outer container (parent provides the constraint) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Simon <simoninmatrix@gmail.com> * docs: Rewrite README with hybrid fleet focus and built-in skills (#53) * docs(readme): pivot to hybrid local+cloud fleet as core value proposition Restructure README to lead with the cost-saving hybrid fleet story: - Hero tagline: "Run AI agents on your hardware. Use cloud only when you need it." - New "Local + Cloud Hybrid Fleet" section elevated to top position - New "Monitor Your Hardware" section connecting GPU metrics to the hybrid story - Features rewired to reference local-vs-cloud routing throughout - Skills section ties into workload routing (local ReAct, cloud Plan First) - Added table of contents, architecture diagram, screenshot placeholders - Trimmed skills catalog from 11-item list to category table - Removed hardcoded test counts that drift - Linked docs/INSTALL.md (was completely unlinked) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add use-case personas and agent-vs-chatbot framing Incorporate concepts from the OpenClaw use cases blog post: - Open "Why rocCLAW?" with tools-vs-agents distinction - Rewrite autopilot bullet with "works while you don't" angle, persistent memory, heartbeats, and sub-agent spawning - Add "Who Uses This" section with 5 persona-driven use cases: solo consultants, side projects, growing teams, content creators, and developers — each tied back to local/cloud hybrid routing - Weave agent memory and messaging integrations into hybrid fleet section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): rephrase use cases, add bot fleet and skills images - Rewrite "Why rocCLAW?" with concrete technical examples instead of blog-borrowed language (log monitoring, CI pipelines, health checks) - Replace persona-based "Who Uses This" with technical "Use Cases" section: DevOps, software dev, data pipelines, sysadmin, research - Each use case shows the local/cloud split with specific workloads - Add bot family hero image representing the hybrid agent fleet - Add before/after skills images in Skills section showing agent transformation from basic tools to rocket scientist Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): showcase 12 built-in skills, mention ClawHub for extras - Rename "Skills & ClawHub" to "Built-in Skills" — focus on what ships with rocCLAW rather than the external marketplace - List all 12 featured skills with descriptions (was 5-row summary) - Add Git Workflows skill that was previously missing - Mention ClawHub as one-click install for additional skills - Update dashboard tab description and hybrid fleet cross-references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): move bot fleet image to Why section, enlarge skills images - Relocate bot family image from hero to "Why rocCLAW?" section header - Increase skills before/after images from 300px to 420px Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add bot field guide image to Use Cases section Agent field guide visual shows each bot cataloged by role and specialization, reinforcing the use-case-driven fleet approach. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): apply full review fixes and polish - Swap Quick Start before Hybrid Fleet so users get running first - Remove duplicate token tracking from Monitor section (kept in Fleet) - Fold Agent Personality Files into Configure as collapsible details - Add consistent emoji to all section headers - Update architecture diagram label to "local GPU / cloud API" - Add light/dark theme to Settings tab description - Trim hybrid fleet repetition from What You Can Do bullets - Fix GLM 5.1 link (glm4 → glm-5.1) - Update all TOC anchors to match emoji-prefixed headings - Update internal cross-reference links Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): remove Discord link, standardize requirements section - Remove Discord link from footer (no Discord server exists) - Rename "Tested Configurations" to "Requirements & Compatibility" with standard Prerequisites, Supported Platforms, and GPU tables - Add Node.js, npm, and OpenClaw Gateway as explicit prerequisites - Add macOS and Windows WSL2 as expected-to-work platforms - Mark GPU monitoring as optional with clearer framing - Simplify GPU table (remove architecture codes, CU details) - Fix internal anchor link for GPU section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): simplify GPU table — remove architecture details Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add ROCm >= 7.2.1 as optional prerequisite for GPU monitoring Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): redesign footer with centered layout Consolidate disclaimer, acknowledgments, and license into a clean centered footer block. Remove the blockquote and bold label styling in favor of subtle <sub> text with dot separators. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): move Use Cases section after Built-in Skills Reorder so the flow is: features → hardware monitoring → skills → use cases (showing how skills + hybrid fleet come together). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): final polish — simplify sections and extract compatibility - Remove RDNA 3/3.5 specifics from Monitor section - Move Supported Platforms and GPU Monitoring tables to docs/COMPATIBILITY.md - Deduplicate Quick Start vs Installation (Quick Start now uses npm install) - Simplify "Stay in control" bullet to one concise line - Update footer: "Built by OpenClaw agents using Ollama and Claude" - Remove empty Notes column from Prerequisites table Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): fix button label, tighten hybrid section, robust TOC anchors - Fix "Save Settings" → "Connect" to match actual UI - Remove motivational re-statement from Hybrid Fleet opener (already in Why section) - Tighten cloud agents and token dashboard bullets - Fix "warm" → "utilized" for GPU description clarity - Improve architecture diagram alignment for narrow renderers - Add explicit HTML anchor IDs to all sections for robust TOC navigation - Remove emoji-prefix pattern from all internal cross-references - Replace npm ci with npm install for pre-built package instructions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Simon <simoninmatrix@gmail.com> Co-authored-by: Simon <simon@example.com>
3 tasks
kiritigowda
added a commit
to kiritigowda/rocclaw
that referenced
this pull request
May 5, 2026
* fix: usability improvements, accessibility, and comprehensive UI tests (simonCatBot#46) * AI - updates * fix: resolve usability bugs, improve UX and accessibility across dashboard Fix 6 bugs: connection panel backdrop click, tasks tab toggle-off, shared copy status, settings save deception, token usage silent fallback, footer version spacing. Add 10 high-priority UX improvements: loading skeletons for system metrics and token usage, error retry buttons, WAI-ARIA tablist keyboard navigation, modal focus trapping and escape key support, empty state guidance for fleet sidebar, gateway URL inline validation, semantic header with skip navigation, connection-loss banners in chat, and send button disabled-state tooltips. Add 14 medium-priority improvements: agent search/filter in sidebar, tab state persistence to localStorage, semantic landmarks (main, nav, aside), ARIA tab roles on connection page tabs, auto-retry status messaging, DnD screen reader announcements, escape key for dropdown menus, and menu semantics (role=menu/menuitem, aria-expanded, aria-haspopup). Add 12 accessibility fixes: chat composer focus indicator, reduced motion media query, aria-labels on all icon buttons, role=log on chat transcript, footer landmark label, increased touch targets to 32px, and password toggle aria-label. Update all documentation (README, CLAUDE.md, ARCHITECTURE, CONTRIBUTING, CHANGELOG, permissions-sandboxing) to reflect current codebase state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address review findings from post-implementation audit - Make FleetSidebar filter/onFilterChange props optional (were required but unused, causing dead code in parent) - Add scrollbar-hide CSS utility (was referenced but undefined) - Validate tab IDs from localStorage against VALID_TAB_IDS set to prevent stale/invalid tab IDs from accumulating - Update CHANGELOG.md with all new features and bug fixes from this session (search filter, tab persistence, accessibility improvements, loading skeletons, error retry, ARIA attributes, etc.) - Update README.md and CLAUDE.md to mention agent search/filter Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: add unit tests for UI components (TabBar, FleetSidebar, modals, toggles, footer, header) Add 133 new tests across 11 test files covering accessibility features, keyboard navigation, ARIA attributes, search filtering, and component rendering for all UI components modified in the usability improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(e2e): update selectors for ARIA role changes in TabBar, ConnectionPage, and AvatarModeToggle TabBar tabs changed from role="button" to role="tab", ConnectionPage tabs added role="tab", AvatarModeToggle dropdown items changed from role="button" to role="menuitem", and FleetSidebar empty state text changed from "No agents available." to "No agents yet". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(graph): keep SystemGraphView data sticky across tab toggles (simonCatBot#49) * fix(graph): keep SystemGraphView mounted so history data survives tab toggles Use CSS hidden instead of conditional rendering so the component stays mounted and continues polling. Toggling the graph tab off and back on now preserves all collected data points. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(tabs): default to agents, system, and graph on first load Change connection tab from defaultActive: true to false so fresh loads show exactly agents + system metrics + system graph view. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: comprehensive bug fixes, security hardening, and accessibility - Fix blank screen when deselecting exclusive tabs (return defaults instead of []) - Keep System/Tokens tabs mounted via CSS hidden to preserve state - Add dismissable error banner with Escape key support - Fix settings-store crash on corrupt/empty JSON (graceful fallback) - Fix mergeROCclawPatch dropping gatewayAutoStart and avatarSources fields - Fix adapter stop() hang during CONNECTING state (settle startPromise) - Fix TasksDashboard drag-over highlighting (useRef → useState) - Fix per-job runBusy tracking (boolean → string | null) - Add error feedback to TasksDashboard handlers - Remove unused useRef import from TasksDashboard - Security: remove stack traces from API error responses - Security: whitelist cron-add request body fields - Security: fix info leak in gateway-info/metrics (hide bootstrap details) - Add runtime="nodejs" to usage, gateway-info, gateway-metrics routes - Fix usage route messageCount double-counting across models - Accessibility: TabBar role="tablist" → role="toolbar" with aria-pressed - Accessibility: TasksDashboard modals get role="dialog", aria-modal, Escape key - Accessibility: connection overlay gets role="dialog", aria-modal, Escape key - Update tests for new TabBar ARIA pattern, settings fallback, patch merge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(e2e): update tab selectors for toolbar ARIA pattern E2E tests used getByRole("tab") which no longer matches after the TabBar was changed from role="tablist" to role="toolbar" with toggle buttons. Updated to getByRole("button", { name }). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(settings): wire theme picker to actual theme system The SettingsPanel theme picker was writing to a localStorage key ("rocclaw-ui-settings") that nothing read, while the working theme system (ColorSchemeToggle) used a different key ("theme"). - SettingsPanel now applies theme changes immediately to the DOM using the same "theme" localStorage key as ColorSchemeToggle - Added "system" theme support (follows OS preference) - Compact mode applies immediately via CSS class toggle - Removed Save button (UI settings now apply instantly) - Added cross-component sync via "rocclaw-theme-change" event so footer toggle and settings panel stay in sync Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * docs: Revamp README — value proposition and skills first (simonCatBot#51) * docs: revamp README to lead with value proposition and skills - Replace architecture-heavy intro with user-facing 'Why rocCLAW?' section - Add 'What You Can Do' workflow sections (Chat, Skills, Monitor, Autopilot, Configure, Remote, Security) - Highlight ClawHub skills marketplace with featured skills table - Move project structure, detailed tech stack, and architecture diagram to docs/ - Reframe personality files and permissions as benefits, not specs - Tighten Quick Start, Installation, and Troubleshooting sections * docs: second pass — tighten skills, fix tab count, reduce table bloat - Fix tab count (8 → 9, Skills tab was added) - Reorganize skills by category instead of flat table - Add clawhub.ai links to skills section - Reframe 'Why rocCLAW?' as an addition, not a fix - Replace personality files table with compact inline list - Compress permissions section into one paragraph + link - Remove editorializing from Quick Start * docs: add AMD disclaimer — not an official AMD product * docs: add acknowledgments — Ollama, Kimi K2, GLM 5.1, Claude * docs: add tested GPU configurations — Strix Halo, Strix Point, RDNA 3, fallback * docs: add tested OS configurations — Ubuntu 24.04, 22.04, generic Linux * docs: add hybrid local + cloud fleet section - Frame rocCLAW as fleet orchestrator for cost-efficient hybrid deployments - Local LLMs for routine work, cloud models for complex reasoning - Per-agent skills as workload tiering mechanism - Token dashboards for spend visibility * docs: restructure README for flow and readability - Move Quick Start above features (was buried after a wall of content) - Elevate Skills and Hybrid Fleet to top-level sections with emoji headers - Collapse Dashboard Overview to a single line (was a redundant table) - Merge Monitoring into its own concise section (was buried mid-list) - Fold Security into 'Stay in control' (was a separate wall) - Move Installation + Setup Guides after features (Quick Start links to them) - Fix footer ordering: links, then disclaimer, then acknowledgments - Net: -67 lines, same content, better hierarchy --------- Co-authored-by: Simon <simon@example.com> * Redesign ConnectionPage into single-page smart UI with install guide (simonCatBot#50) * feat(connection): redesign ConnectionPage into single-page smart UI with install guide Replace the 4-tab layout (Local/Client/Cloud/Remote) with a unified connection page featuring environment detection banners, a two-column layout (getting started guide + connection form), and a collapsible advanced setup section. Remove the separate ConnectionPanel overlay — the footer Plug button now toggles the Connection tab directly. Add comprehensive install guide (docs/INSTALL.md) for Ubuntu 24.04 covering prerequisites, setup, remote access, and troubleshooting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(e2e): update all E2E tests for new ConnectionPage selectors Update 6 E2E test files that referenced the old ConnectionPanel overlay (gateway-connection-overlay), old label selectors (Upstream URL/token), and the old "Save Settings" button. Tests now use the Connection tab toggle, #gateway-url/#gateway-token CSS selectors, and "Connect" button. Fix strict mode violations where "Disconnect" matched both banner and form buttons by using .first() selector. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(connection): restore 4-tab layout and fix startup scrolling Restore the Local/Client/Cloud/Remote tabs with their scenario-specific instructions while keeping the improvements from the redesign: environment detection banner, error/test result display, token chips (Stored / Auto-detected), single Connect/Disconnect button, CommandBlock helper. Fix scrolling in ConnectionSetupView (startup flow) by removing overflow-hidden from the outer container so content can scroll naturally when rendered in a full-page context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(connection): remove Tailscale from UI, expand docs, match app layout - Remove all Tailscale references from ConnectionPage tabs — Client, Cloud, and Remote tabs now show SSH-only instructions with autossh persistent tunnel guidance - Expand docs/INSTALL.md Remote Access section with detailed SSH (tunnels, autossh, systemd, key auth) and Tailscale (install, serve, ACLs, troubleshooting) documentation plus a comparison table - Restyle ConnectionSetupView to match the main dashboard layout: h-dvh fixed viewport, matching padding, panel wrapper with overflow-hidden, and a simplified footer with status dot, branding, and theme toggle - Fix startup scroll by removing overflow-hidden from ConnectionPage outer container (parent provides the constraint) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Simon <simoninmatrix@gmail.com> * docs: Rewrite README with hybrid fleet focus and built-in skills (simonCatBot#53) * docs(readme): pivot to hybrid local+cloud fleet as core value proposition Restructure README to lead with the cost-saving hybrid fleet story: - Hero tagline: "Run AI agents on your hardware. Use cloud only when you need it." - New "Local + Cloud Hybrid Fleet" section elevated to top position - New "Monitor Your Hardware" section connecting GPU metrics to the hybrid story - Features rewired to reference local-vs-cloud routing throughout - Skills section ties into workload routing (local ReAct, cloud Plan First) - Added table of contents, architecture diagram, screenshot placeholders - Trimmed skills catalog from 11-item list to category table - Removed hardcoded test counts that drift - Linked docs/INSTALL.md (was completely unlinked) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add use-case personas and agent-vs-chatbot framing Incorporate concepts from the OpenClaw use cases blog post: - Open "Why rocCLAW?" with tools-vs-agents distinction - Rewrite autopilot bullet with "works while you don't" angle, persistent memory, heartbeats, and sub-agent spawning - Add "Who Uses This" section with 5 persona-driven use cases: solo consultants, side projects, growing teams, content creators, and developers — each tied back to local/cloud hybrid routing - Weave agent memory and messaging integrations into hybrid fleet section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): rephrase use cases, add bot fleet and skills images - Rewrite "Why rocCLAW?" with concrete technical examples instead of blog-borrowed language (log monitoring, CI pipelines, health checks) - Replace persona-based "Who Uses This" with technical "Use Cases" section: DevOps, software dev, data pipelines, sysadmin, research - Each use case shows the local/cloud split with specific workloads - Add bot family hero image representing the hybrid agent fleet - Add before/after skills images in Skills section showing agent transformation from basic tools to rocket scientist Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): showcase 12 built-in skills, mention ClawHub for extras - Rename "Skills & ClawHub" to "Built-in Skills" — focus on what ships with rocCLAW rather than the external marketplace - List all 12 featured skills with descriptions (was 5-row summary) - Add Git Workflows skill that was previously missing - Mention ClawHub as one-click install for additional skills - Update dashboard tab description and hybrid fleet cross-references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): move bot fleet image to Why section, enlarge skills images - Relocate bot family image from hero to "Why rocCLAW?" section header - Increase skills before/after images from 300px to 420px Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add bot field guide image to Use Cases section Agent field guide visual shows each bot cataloged by role and specialization, reinforcing the use-case-driven fleet approach. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): apply full review fixes and polish - Swap Quick Start before Hybrid Fleet so users get running first - Remove duplicate token tracking from Monitor section (kept in Fleet) - Fold Agent Personality Files into Configure as collapsible details - Add consistent emoji to all section headers - Update architecture diagram label to "local GPU / cloud API" - Add light/dark theme to Settings tab description - Trim hybrid fleet repetition from What You Can Do bullets - Fix GLM 5.1 link (glm4 → glm-5.1) - Update all TOC anchors to match emoji-prefixed headings - Update internal cross-reference links Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): remove Discord link, standardize requirements section - Remove Discord link from footer (no Discord server exists) - Rename "Tested Configurations" to "Requirements & Compatibility" with standard Prerequisites, Supported Platforms, and GPU tables - Add Node.js, npm, and OpenClaw Gateway as explicit prerequisites - Add macOS and Windows WSL2 as expected-to-work platforms - Mark GPU monitoring as optional with clearer framing - Simplify GPU table (remove architecture codes, CU details) - Fix internal anchor link for GPU section Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): simplify GPU table — remove architecture details Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): add ROCm >= 7.2.1 as optional prerequisite for GPU monitoring Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): redesign footer with centered layout Consolidate disclaimer, acknowledgments, and license into a clean centered footer block. Remove the blockquote and bold label styling in favor of subtle <sub> text with dot separators. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): move Use Cases section after Built-in Skills Reorder so the flow is: features → hardware monitoring → skills → use cases (showing how skills + hybrid fleet come together). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): final polish — simplify sections and extract compatibility - Remove RDNA 3/3.5 specifics from Monitor section - Move Supported Platforms and GPU Monitoring tables to docs/COMPATIBILITY.md - Deduplicate Quick Start vs Installation (Quick Start now uses npm install) - Simplify "Stay in control" bullet to one concise line - Update footer: "Built by OpenClaw agents using Ollama and Claude" - Remove empty Notes column from Prerequisites table Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(readme): fix button label, tighten hybrid section, robust TOC anchors - Fix "Save Settings" → "Connect" to match actual UI - Remove motivational re-statement from Hybrid Fleet opener (already in Why section) - Tighten cloud agents and token dashboard bullets - Fix "warm" → "utilized" for GPU description clarity - Improve architecture diagram alignment for narrow renderers - Add explicit HTML anchor IDs to all sections for robust TOC navigation - Remove emoji-prefix pattern from all internal cross-references - Replace npm ci with npm install for pre-built package instructions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Simon <simoninmatrix@gmail.com> Co-authored-by: Simon <simon@example.com>
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
SystemGraphViewmounted when the graph tab is toggled off by using CSShiddeninstead of conditional rendering (? ... : null)Test plan
npm run typecheck— 0 errorsnpm run lint— 0 errorsnpm run test— 158 files, 1,283 tests passednpm run build— compiled successfully🤖 Generated with Claude Code