mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-09 05:24:49 +09:00
The agent reports a rich capability payload (sudo mode, runtime managers, detected runtimes, allowed paths, systemd JSON support) that the panel was discarding once the WebSocket disconnected. The Overview tab also gave no visibility into what the agent had discovered, which left users guessing why a feature tab was missing or a Docker call returned empty. Backend: - Server model gains seven nullable columns: cached_capabilities, cached_runtimes, cached_runtime_managers, cached_allowed_paths, cached_sudo, cached_systemd_json, capabilities_at. Migration 005 is idempotent (checks existing columns before adding) so it's safe on already-bootstrapped databases. - agent_registry.update_capabilities() now persists a snapshot to the Server row whenever the agent reports state. Wrapped in try/except so a DB hiccup doesn't drop the in-memory update. - /servers/<id> falls back to the cached snapshot when the agent is offline and exposes capabilities_stale + capabilities_at so the UI can badge stale data. Frontend: - New SystemStatusCard renders sudo mode, package manager, runtime managers, detected runtime versions, capability map (as colored chips), and file-access roots. "Stale" badge + relative timestamp + Refresh button (calls agent:recapabilities). - DockerTab now distinguishes "agent online but no docker daemon" from "no containers found", with concrete remediation hints. Load errors surface as a banner instead of being swallowed to console. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
React Dashboard Template
A modern React dashboard application boilerplate built with Vite, featuring routing, charts, and a sidebar layout for building data-driven web interfaces.
Features
- React 18 with functional components and hooks
- Vite for fast development and building
- React Router for client-side routing
- Recharts for data visualization
- Lucide React for icons
- ESLint for code linting
- Responsive sidebar layout
- Dashboard page with sample components
Getting Started
Prerequisites
- Node.js 16+ and npm
Installation
- Clone or download this template
- Install dependencies:
npm install
Development
Start the development server:
npm run dev
The app will be available at http://localhost:5173.
Building for Production
Build the app for deployment:
npm run build
The output will be in the dist/ directory.
Preview Production Build
npm run preview
Project Structure
src/
├── App.jsx # Main app with routing
├── main.jsx # Entry point
├── index.css # Global styles
├── components/
│ └── Sidebar.jsx # Navigation sidebar
├── layouts/
│ └── DashboardLayout.jsx # Main layout wrapper
└── pages/
└── Dashboard.jsx # Main dashboard page
Customization
- Modify components in
src/components/ - Add new pages in
src/pages/ - Update routes in
App.jsx - Customize styles in
index.cssor component files
Environment Variables
Create a .env file in the root for environment variables:
VITE_API_URL=https://api.example.com
Access them in code via import.meta.env.VITE_API_URL.
Contributing
See the documentation files for AI agent permissions and guidelines.