202 Commits

Author SHA1 Message Date
myron f122de483a feat: JARVIS Planner — tasks/appointments with voice intents, status bar badge, admin CRUD 2026-05-31 16:53:21 +00:00
myron 02d62cbe53 fix: remove double-brace syntax error breaking JS login 2026-05-31 16:44:31 +00:00
myron b0a6f2d2e9 feat: 17s active listen window after command — no prefix needed for follow-ups 2026-05-31 16:38:27 +00:00
myron ab624638a7 feat: two-phase voice — full wake phrase to activate, Jarvis prefix to command 2026-05-31 16:36:48 +00:00
myron 01c6cfe96b fix: mute mic during ElevenLabs TTS to prevent feedback loop; wire isSpeaking 2026-05-31 16:35:44 +00:00
myron aa622e97a5 fix: HA toggles — real-time ha_entities table, optimistic update, renderHATable extracted 2026-05-31 16:34:01 +00:00
myron 795411387c feat: wake word activation, mute toggle mic, silent auto-reload 2026-05-31 16:24:38 +00:00
myron a0661bba14 fix: add missing host-val element — renderSystem was crashing before services/processes render 2026-05-31 16:17:43 +00:00
myron 8d2c1948bb feat: Gmail IMAP email integration with voice intents
- email.php: IMAP reader for Gmail/Outlook/iCloud with 5-min cache
- api.php: add /api/email route
- chat.php: email voice intents — check count, read recent, filter by sender
- config.php: Gmail credentials (gitignored)
2026-05-31 06:20:15 +00:00
myron 18a3d864d3 refactor: merge LOCAL SYSTEM + DO SERVER into single JARVIS SERVER panel 2026-05-31 06:09:31 +00:00
myron 114842e8c5 fix: do_server.php SQL missing quotes on category=sites causing 500 2026-05-31 06:06:54 +00:00
myron 1f90d83073 fix: ha_list reads from ha_entities table (real-time agent data, not 5min cache) 2026-05-31 06:05:45 +00:00
myron a96f8a3f85 feat: ElevenLabs TTS George voice + fix HA toggle optimistic update 2026-05-31 05:58:22 +00:00
myron b080ecb4bd fix: HA admin panel — remove entity ID column, add toggle controls, filter unavailable 2026-05-31 05:51:30 +00:00
myron 0b42e21a1b fix: webhook require path — one level up not two (was causing 500 on all deliveries) 2026-05-31 05:18:41 +00:00
myron 132ac748eb fix: HA panel — table layout, filter unavailable, proper toggles
- Redesign HA list as 4-column table: icon | device name | state | control
- Filter out unavailable/unknown entities; they reappear automatically on next cache refresh
- Replace cluttered flex row with proper grid table — toggle no longer hidden
- Remove ASK button from rows (was eating width and hiding toggle)
- Scene rows get a ▶ RUN button instead of a toggle
- Domain shown as icon column only (no entity_id displayed)
2026-05-31 05:14:31 +00:00
myron 499adadc6d feat: HA smart home control improvements
- stats_cache: swap interesting domains to controllable-only (remove sensors/binary_sensors)
- stats_cache: filter pre-release/camera/HA-addon switches from entity list
- index.html: add visual toggle switch buttons per entity
- index.html: fix scene activation (was returning early; now calls scene/turn_on)
- index.html: remove 8-per-domain cap on entity display
- index.html: add domain icons and unavailable state handling
- index.html: alarm panel arm/disarm toggle logic
2026-05-31 05:05:44 +00:00
myron ca3ae31826 netscan: respect status field from probe payloads (offline phones now correctly marked offline) 2026-05-31 04:43:54 +00:00
myron 705ee4f5a7 netscan: store VoIP SIP registration status in kb_facts when phone probe provides it 2026-05-31 04:38:33 +00:00
myron f007786fe4 Fix services panel: correct services, live refresh loop, last-updated timestamp in footer 2026-05-30 06:46:26 +00:00
myron 4ab72e50b9 Remove username from chat status bar 2026-05-30 06:39:33 +00:00
myron d0f751372c Add Backups tab: daily cron + on-demand trigger + download, 7-day retention 2026-05-30 05:12:13 +00:00
myron 53b1c6b90a Fix agents_list: use JSON_EXTRACT on metric_data instead of non-existent columns 2026-05-30 05:05:02 +00:00
myron 20c91671da Fix agents render: move miniBar outside setTimeout scope, add Array.isArray guard 2026-05-30 05:02:03 +00:00
myron d38d66d147 Admin: progressive row reveal on all tables — scanShell + staggered render, no stuck LOADING state 2026-05-30 04:55:59 +00:00
myron f4eef862d1 Alerts tab: default to Active filter, order Active/All/Resolved 2026-05-30 04:49:33 +00:00
myron 772fc48d00 HA tab: add ALL / ON ONLY toggle filter 2026-05-30 04:46:29 +00:00
myron cbd63f1a1e Proxmox VMs: full resources from cluster API (both nodes), CPU/RAM/disk/uptime/network per VM 2026-05-30 04:40:34 +00:00
myron 0ac03a6bfe Fix scanNetwork: remove undefined userAddr causing ReferenceError 2026-05-30 03:59:23 +00:00
myron 785b0fa7ab Fix RUN NETWORK SCAN button: queue PVE1 probe, return real DB data, no fake scan from DO 2026-05-30 03:53:13 +00:00
myron e189a64ddd Fix network scan: return real DB data and queue PVE1 netscan instead of fabricating 2026-05-30 03:41:54 +00:00
myron 88dbefa831 HA tab: remove toggle buttons, read-only view only 2026-05-30 03:36:27 +00:00
myron 21af9a08e0 Fix Proxmox API: use DDNS hostname (port 8006 forwarded via FortiGate) 2026-05-30 03:35:07 +00:00
myron f73ce6cd57 Admin: add HA entities, News CRUD, Proxmox VMs tabs; news.php merges custom pinned entries 2026-05-30 03:31:50 +00:00
myron 50c06722bb Fix network panel: include netscan devices; fix Scan Now to queue agent command 2026-05-30 03:26:53 +00:00
myron e08b80a6c6 Fix agent detection: real client IP via CF header, tablet/iPad support, subnet fallback match 2026-05-30 03:23:12 +00:00
myron 62c7878615 Add netscan push endpoint: PVE1 nmap scan every 3min populates network devices 2026-05-30 03:20:06 +00:00
myron 2faeb5498a Auto-populate network devices via nmap scan from PVE1 every 3min 2026-05-30 03:11:14 +00:00
myron 07827651f5 Add /admin portal: full JARVIS management UI (agents, network, alerts, KB, sites, users) 2026-05-30 02:55:34 +00:00
myron 0d6f70661b Fix DO server offline: read /proc directly instead of SSH loopback 2026-05-30 02:46:50 +00:00
myron 5cbcae6055 Add idle reload: full page refresh after 5min inactivity 2026-05-30 01:47:59 +00:00
myron a1b4e49a9c Fix sites push: chown config files to JARVIS user; treat no-change as success 2026-05-29 19:45:05 +00:00
myron 0f7106a80d Fix SITES tab: check for modal before getElementById on missing pane 2026-05-29 19:34:52 +00:00
myron 0f82fb9e85 Sites Manager: replace small panel with full-screen modal overlay 2026-05-29 19:31:34 +00:00
myron 2c5459af82 Add Sites Manager to JARVIS — centralized email settings for all sites 2026-05-29 19:28:24 +00:00
myron 3bcd3dcb65 webhook: add parkerslingshot repo to deploy map 2026-05-25 18:31:46 +00:00
myron ecbc2e09a5 Fix 8 code-review findings: security + reliability
1. agent.py: shell allow-check reads cfg, not server payload (RCE fix)
2. webhook.php: move WEBHOOK_SECRET to gitignored config.php; rotate secret
3. agent.py: replace recursive main() with while loop (RecursionError fix)
4. jarvis-deploy.sh: push force-revert to GitHub on syntax fail (loop fix)
5. agent.py: self_update() verifies SHA-256 before exec (integrity fix)
6. agent.php: remove JARVIS_IP from browser-action bypass (auth fix)
7. jarvis-watchdog.sh: escape SQL vars in alert() to prevent injection
8. jarvis-deploy.sh: atomic mv instead of cat+truncate (TOCTOU fix)

Also: distribute jarvis-agent.py.sha256 alongside agent for integrity checks
2026-05-25 14:27:27 +00:00
myron 45fef11785 Autonomous systems: watchdog, smart deploy, site health, auto-heal, agent installer
- deploy/jarvis-watchdog.sh: self-healing watchdog (every 5 min)
  * monitors lsws/mysql/redis, restarts on failure
  * JARVIS HTTP self-check, restarts OLS on 5xx
  * disk/memory alerts inserted to DB
  * offline Proxmox VM agents restarted via qm guest exec
  * log rotation (1000 line cap)
- deploy/jarvis-deploy.sh: smart deploy with PHP validation
  * php8.3 syntax check on every changed .php file
  * auto-reverts git commit + inserts critical alert on syntax error
  * reloads OLS after JARVIS deploys
- api/endpoints/facts_collector.php: site health monitoring
  * curls all 7 managed sites every 3 min
  * stores up/down status in kb_facts
- api/endpoints/alerts.php: auto-heal + site alerts
  * dispatches restart_service commands when services down on agents
  * generates alerts from kb_facts site health data
- public_html/install-agent.sh: one-liner Linux agent installer
  * installs deps, downloads agent, registers with JARVIS, sets up systemd
- public_html/webhook.php: fixed infra deploy path to /opt/infra
2026-05-25 14:08:07 +00:00
myron 3e34b6d796 Add auto-deploy webhook handler
Handles GitHub push webhooks for all 8 repos.
Queues paths to /tmp/jarvis-deploy-queue.txt.
Root cron (/usr/local/bin/jarvis-deploy.sh) processes queue every minute.
2026-05-25 13:56:11 +00:00
myron d3156b98b3 Add DB schema, agent script, vhost config, deploy cron
- db/schema.sql: full jarvis_db schema (15 tables)
- agent/jarvis-agent.py: production agent script
- config/vhost/: OpenLiteSpeed vhost configuration
- deploy/jarvis-agent.service: systemd unit
- deploy/cron-jarvis.txt: JARVIS cron entries
- .gitignore: exclude system dirs and logs
2026-05-25 13:51:12 +00:00