5 Commits

Author SHA1 Message Date
81bcdcd696 feat: add admin panel at /admin for full dashboard configuration
- Backend: ConfigManager write methods (atomic YAML save), admin CRUD
  router for settings (display/odoo/refresh) and nodes, WS broadcast
  on config changes, fix nmap scan blocking event loop with to_thread
- Frontend: admin UI with tab navigation, overview dashboard, node
  CRUD table with modal form, Odoo/display/refresh settings pages,
  typed API wrappers, active views filtering, config_changed WS handler
- Infra: nginx no-cache headers for HTML, cache-forever for hashed assets
- Fixes: WebSocket reconnect loop (ref pattern), rotation index OOB
  when views shrink, mutable node list cache

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 02:34:05 +00:00
5e3d8d45de fix: update Odoo client for v19 compatibility
- Use persistent httpx client to maintain session cookies
- Update endpoint path to /web/dataset/call_kw/{model}/{method}
- Handle auth response as dict (uid extraction)
- Remove kanban_state field (doesn't exist in Odoo 19)
- Add close() method for graceful shutdown

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:10:36 +00:00
e6f6dbbab6 feat: wire WebSocket router and add background refresh loop
Register ws router in main.py and add periodic ping/odoo refresh
that broadcasts updates to connected WebSocket clients.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:06:34 +00:00
0fbfe7e89d feat: add API routers for network, tasks, calendar, and services
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:05:38 +00:00
f1c20c0461 feat: scaffold backend with FastAPI, config files, and health endpoint
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:04:13 +00:00