Commit Graph

15 Commits

Author SHA1 Message Date
Luca Sacchi Ricciardi f60781bd7f feat: add multi-server control panel and host-aware sync 2026-04-25 15:40:20 +02:00
Luca Sacchi Ricciardi 3ba6a9a41c Translate UI to English and add PWA support 2026-04-25 15:32:10 +02:00
Luca Sacchi Ricciardi 229115ae87 Harden Tailwind Docker build and add deploy verification 2026-04-25 15:08:57 +02:00
Luca Sacchi Ricciardi eea6e2a80e Fix model details modal interactions and scrolling 2026-04-25 14:05:11 +02:00
Luca Sacchi Ricciardi 87ebd35ad5 Fix model details modal and make running models primary page 2026-04-25 13:31:04 +02:00
Luca Sacchi Ricciardi 1aee51b0d6 Add dedicated page for running Ollama models 2026-04-25 11:36:05 +02:00
Luca Sacchi Ricciardi 2f591e55ce feat: open model details modal on hover and refine cards layout
- Add on-hover modal opening for model cards with debounce
- Keep click-to-open behavior as fallback
- Prevent accidental hover triggers while moving inside same card
- Convert models list to responsive grid layout
- Improve card visual feedback and helper text for interaction
2026-04-24 20:15:19 +02:00
Luca Sacchi Ricciardi e05df7ce2b feat: show model details in modal with close controls
- Replace inline details panel with centered modal overlay
- Add close button (X) in top-right of modal
- Add close on backdrop click
- Add close on Escape key
- Lock body scroll while modal is open
2026-04-24 20:10:37 +02:00
Luca Sacchi Ricciardi f19c03b7bd fix: restore dashboard styling by tracking compiled Tailwind CSS
- Generate and add app/web/static/css/output.css
- Stop ignoring output.css in .gitignore
- Ensure UI has styles without requiring local Tailwind build step
2026-04-24 20:06:16 +02:00
Luca Sacchi Ricciardi 0789e5b8e9 fix: make model-card click reliable and remove Tailwind CDN warning
- Use encoded model key in data attribute to avoid lookup mismatch
- Decode key on click before resolving showByModel data
- Guard localStorage writes with try/catch to avoid silent UI failures
- Scroll details section into view when a card is clicked
- Remove tailwindcdn script from template (use compiled CSS only)
2026-04-24 20:04:06 +02:00
Luca Sacchi Ricciardi 57663400ce feat: load and cache Ollama show data per model with clickable model details
- Add GET /api/v1/models/{model_name}/show endpoint (proxy to Ollama /api/show)
- Worker now fetches show data for each model during model list sync
- Persist show details in localStorage under llm_monitor_models.showByModel
- Make model cards clickable to display cached show details in a dedicated panel
- Keep UI updates incremental without full page reload
- Add tests for show endpoint and OpenAPI path
- Update README and PRD with show-flow and click-card behavior
2026-04-24 19:41:46 +02:00
Luca Sacchi Ricciardi 32b1130632 feat: add favicon.ico and gate model write APIs by env flag
- Generate and serve real /favicon.ico from static assets
- Update HTML to use /favicon.ico
- Add ENABLE_MODEL_RW_API setting (default: false)
- Disable POST/DELETE model endpoints by default
- Hide write endpoints from OpenAPI when disabled
- Return 404 for write endpoints when disabled
- Update env.example with ENABLE_MODEL_RW_API documentation
- Update README and PRD with R/W API policy and remote compose notes
- Add tests to verify write endpoints are disabled by default
2026-04-24 19:35:24 +02:00
Luca Sacchi Ricciardi 893376dc14 fix: resolve console errors (localStorage in Worker, favicon, Tailwind CDN)
Issues fixed:
1. Web Worker localStorage error - Remove localStorage calls from worker
   - Worker cannot access localStorage (browser context only)
   - Worker now sends data to main thread via postMessage
   - Main thread handles all localStorage operations

2. Add favicon to avoid 404 error
   - Use inline SVG favicon (llama emoji)
   - No external file request

3. Optimize Tailwind CSS for production
   - Add tailwind.config.js for content scanning
   - Add app/web/static/css/input.css (Tailwind directives)
   - Update package.json with tailwind build commands
   - Update Dockerfile multi-stage build:
     * Stage 1: Node.js - compile Tailwind CSS
     * Stage 2: Python - install dependencies
     * Stage 3: Runtime - use compiled CSS
   - Update index.html to use compiled output.css
   - Add fallback to CDN for development

4. Add DEVELOPMENT.md documentation
   - Setup instructions for local development
   - Tailwind CSS workflow (watch mode)
   - Docker build explanation
   - Development tips and best practices

Benefits:
- No more localStorage errors in console
- No more 404 favicon requests
- Optimized CSS for production (~30KB minified)
- Clear development workflow
- Multi-stage Docker build is efficient (~300MB image)
2026-04-24 19:30:53 +02:00
Luca Sacchi Ricciardi 9a6f835ddf feat: implement Web Worker architecture for efficient data sync
- Add data-sync.worker.js: separate thread for API calls (30s interval)
- Add app.js: main thread with DOM update logic and localStorage integration
- Update index.html: remove inline scripts, use external app.js
- Implement granular DOM updates (only update changed elements)
- Add localStorage persistence for health and models data
- Add Web Worker fallback for unsupported browsers
- Add WEB_WORKERS.md documentation with architecture details

Benefits:
- Main thread never blocked by network requests
- UI stays responsive at 60 FPS
- Offline support via localStorage
- Efficient DOM updates (no unnecessary re-renders)
- Better browser support and performance
2026-04-24 19:16:51 +02:00
Luca Sacchi Ricciardi 4b782ffdc8 docs: add comprehensive README and project scaffolding
- README completo con istruzioni di installazione, configurazione e utilizzo
- API Swagger/OpenAPI documentata
- File env.example con variabili di configurazione
- Dockerfile multi-stage ottimizzato
- Docker Compose con Ollama e LLM Monitor
- Struttura completa dell'app FastAPI (main.py, config, api routes)
- Servizio client Ollama reusabile
- Dashboard web HTML con TailwindCSS
- Test suite con pytest
- Makefile per comandi comuni
- CONTRIBUTING.md per i contributori
- LICENSE MIT
- .editorconfig e .dockerignore
- requirements.txt e requirements-dev.txt
2026-04-24 19:11:58 +02:00