Commit Graph

77 Commits

Author SHA1 Message Date
myron 8bdea2ce2c Redesign network map: 4 clear zones, better spacing, outward labels, section headers
- Quadrant layout: Proxmox (top-left), Services (top-right), Agents (bottom-left), Devices (bottom-right)
- Dashed divider lines + subtle per-zone color gradient fill separates sections visually
- Zone watermark labels (PROXMOX CLUSTER, SERVICES, AGENTS, NETWORK DEVICES) with online/total count
- Nodes arranged in tidy grid within each zone — no more single crowded ring
- Labels positioned OUTWARD from hub center (atan2 to calculate angle) so they never overlap nodes
- Bezier lines bow outward away from hub center (control point pushed along hub→midpoint vector)
  so lines spread out and each is individually traceable
- IP shown only on hub and hovered nodes — reduces label clutter
- Overflow indicator: shows +N MORE when zone has too many nodes (max per zone: 6/6/8/10)
- Intra-zone cross-links for Proxmox cluster (green) and Services cluster (gold)
- RGB color system replaces old r/g/b object — cleaner rgba() template strings
2026-06-02 00:44:35 +00:00
myron 8c96ebbc42 Network topology overlay: voice/chat triggered full-screen viz with directional flow particles
- Voice: say show network map / network topology / show connections to open
- Voice: say close map / dismiss / close network to close
- Same commands work in chat text input
- Explode animation: overlay expands from top-left reactor position with clip-path wipe
- Collapse animation: folds back to reactor on close
- Visualization: live node graph with bezier curved edges, hub (JARVIS) at center
  - Inner ring: all registered agents (agents color-coded by type: proxmox=green, HA=gold, etc)
  - Outer ring: netscan-discovered devices
  - Rotating orbit rings on hub and agent nodes
  - Pulsing radial glow per node keyed to online status
  - Hub cross-hair targeting lines
- Directional particle flow:
  - CYAN particles: data/heartbeats flowing FROM agents TO JARVIS hub
  - ORANGE particles: commands flowing FROM JARVIS hub TO agents
  - All particles travel curved bezier paths, fade at endpoints, glow with shadows
- Mouse hover: node info card shows name/IP/status/type
- Stats bar: total nodes, online count, agent count
- Background: faint hex grid overlay for sci-fi depth
2026-06-02 00:38:08 +00:00
myron c8e002091e 10 more alive-feeling effects: HUD corners, data stream, topology, boot seq, vignette, EKG, audio ring, typewriter, static burst, color cycle
① HUD corner rings: animated scanning arcs in all 4 screen corners with tick marks, edge lines, moving dot
② Data stream columns: 22 subtle falling hex/glyph columns behind everything (Matrix-adjacent, very low opacity)
③ Network topology canvas: live node constellation above the network list with pulsing travel dots on connections
④ HUD boot sequence: topbar/panels slide in from edges with staggered timing on every login
⑤ Breathing vignette: screen edges slowly pulse + shifts to red when alerts are active
⑥ EKG heartbeat: scrolling ECG waveform in bottom bar (P-QRS-T complex, green glow)
⑦ Audio waveform ring: animated bar ring around the arc reactor during mic/TTS activity
⑧ Typewriter: JARVIS chat responses type out character by character with adaptive speed + cursor blink
⑨ Static noise burst: random panel gets 280ms noise overlay every 75-130 seconds
⑩ Ambient color cycle: --cyan slowly drifts between blue-cyan and green-cyan over 70s loop
2026-06-02 00:27:27 +00:00
myron c34d497e9d Fix camera/mic interference: detection runs during TTS, 12s exit threshold, require no recent commands
- Remove isSpeaking outer guard — detection loop now runs always so lastFaceSeen stays current
- While isSpeaking + no face detected: refresh lastFaceSeen to prevent exit timer ticking during TTS
- Raise no-face exit threshold from 3s to 12s — sporadic missed frames no longer kill the session
- Add noCommandMs guard: camera never exits voice mode within 12s of last spoken command
- Voice auto-trigger still respects isSpeaking (wont reactivate mid-response)
2026-06-02 00:15:47 +00:00
myron c91e5b8be7 Face tracking: reactor follows face position via camera
- Smooth lerp animation loop (rAF at 60fps) drives .tb-logo translateX/Y toward face center
- Face X flipped to match mirror (move right = reactor slides right toward you)
- Scan crosshair overlay appears on screen at detected face position with spinning ring
- Reactor glows brighter (drop-shadow) while face tracking is active
- Graceful: coasts back to center when face lost, snaps off cleanly on camera disable
- Video frame is 320x240 mapped to viewport coords for overlay positioning
2026-06-01 23:58:38 +00:00
myron b3a329e81a Add 6 more alive-feeling effects: parallax, sparklines, flash, glitch, alert pulse, hover rise
- Mouse parallax: panels tilt in 3D toward cursor + columns shift depth (perspective:1200px on layout)
- Sparklines: mini 25-point line charts under CPU/mem/disk bars (cyan/green/orange per metric)
- Panel flash: system panel border pulses bright cyan on each data refresh
- Glitch: JARVIS title text does chromatic aberration glitch every 35-60s (random interval)
- Alert pulse: red radial overlay slowly breathes when there are unresolved alerts
- Hover rise: panels lift extra 4px + brighter border on mouse hover
- Bonus: metric bar shimmer (animated light sweep through filled bars)
2026-06-01 23:44:57 +00:00
myron 3297c00a1c Add futuristic floating UI: particles, panel float, HUD corners, scanline sweep, arc reactor, parallel refresh, animated counters
- Ambient particle canvas: 65 nodes with dynamic connection lines (GPU-accelerated)
- Floating panels: translateY oscillation with staggered phases per panel (pure CSS)
- HUD corner brackets on every panel (4-corner L-brackets via CSS ::after gradients)
- Animated grid drift: background-position keyframes give moving-through-space effect
- Scanline sweep: bright horizontal band that slowly scans the full viewport
- Mini arc reactor in top bar: always-on spinning rings + pulsing core
- Parallel API fetches in refreshAll(): Promise.all cuts refresh latency ~3x
- Animated number counters: CPU/mem/disk roll smoothly to new values (ease-out cubic)
2026-06-01 23:39:25 +00:00
myron 02847d5de3 Fix intent placeholders, add alert/agent/deploy action intents, admin search+tester
- Restore {user_title} in ~200 intents where placeholder was stripped (comma-period, em-dash variants)
- Replace 20 hardcoded Mr. Blair with {user_title} token
- Remove duplicate pve_storage and tech_ssh intents
- Add action intents: alerts_show, alerts_count, alerts_clear, agents_offline, agents_all, agents_count, deploy_status, deploy_force, pbx_status, pbx_extension
- Admin KB Intents: add search/filter bar (name/pattern/response + type/status dropdowns)
- Admin KB Intents: add TEST PATTERN button — tests any phrase client-side against full intent list
2026-06-01 23:23:32 +00:00
myron cf95960e57 Add HIDE UNAVAIL toggle to KB Facts page; filter unavailable/empty fact values client-side 2026-06-01 15:18:56 +00:00
myron f0e42cbcbd Style count badges to match agents page (cyan, spaced, X ONLINE / Y TOTAL format) 2026-06-01 14:25:04 +00:00
myron 78c95a508d Add total count badges beside page titles in admin
- KB Facts: shows total fact count (sum across all categories)
- Network Devices: shows online/total count in title
- Home Assistant Entities: shows entity count in title
- Proxmox VMs: shows running/total VM count in title
- KB Intents already had this; no change needed
2026-06-01 14:22:36 +00:00
myron 82e0262a4f fix: escape apostrophe in TODAY'S SCHEDULE string literal — SyntaxError was killing entire main JS, no panels loaded 2026-06-01 10:28:28 +00:00
myron 14bff8e1af fix: remove planner mini panel from main JARVIS page — belongs in admin only 2026-06-01 10:14:19 +00:00
myron 6ba412a886 fix: remove var sessionToken/sessionUser from injected script — conflicted with main script let declarations, killing all JS including logout() 2026-06-01 10:09:14 +00:00
myron 7286b999ff fix: force loginScreen hidden + app visible at HTML level — no JS needed to show dashboard 2026-06-01 10:05:37 +00:00
myron e0fc31332c fix: inject token as JS global (no sessionStorage needed), skip bridge.php, direct login→app 2026-06-01 10:01:00 +00:00
myron 2af5c03f1a fix: use default PHP session (PHPSESSID) not custom name — must match what api.php expects 2026-06-01 09:57:02 +00:00
myron 06a5b92543 fix: PHP entry point with Cache-Control: no-transform — disables Rocket Loader; server-side auth redirect 2026-06-01 09:39:03 +00:00
myron f30f0fdfad revert: restore admin/index.php to pre-login-fix state 2026-06-01 09:30:57 +00:00
myron d4a6d8359e revert: restore index.html to pre-login-fix state, remove all added login files 2026-06-01 09:30:47 +00:00
myron 50452753dc fix: index.php entry point — server-side 302 to login.php, no JS required; _app.html is the actual app 2026-06-01 09:28:39 +00:00
myron 69673685d9 fix: pure PHP login — login.php POSTs to PHP, bridge.php writes token to sessionStorage, zero JS dependency for auth 2026-06-01 09:22:24 +00:00
myron dbe945080d fix: auth guard in <head> — redirect to /login.html before Rocket Loader can defer anything 2026-06-01 09:17:39 +00:00
myron fee412386d fix: login.html — XHR instead of fetch, addEventListener not onclick, no inline handlers Rocket Loader can intercept 2026-06-01 03:59:25 +00:00
myron 389f0fd45e fix: new standalone login.html — script in <head> bypasses all Rocket Loader issues; index.html redirects to login.html when unauthenticated 2026-06-01 03:55:52 +00:00
myron a06b57ea7f fix: convert login form submit listener to named onclick doLogin() — prevents Rocket Loader race condition on form submit 2026-06-01 03:47:23 +00:00
myron c115ed4bb8 fix: bypass Rocket Loader on index.html scripts — form submit listener deferred, login silently reloaded page 2026-06-01 03:42:46 +00:00
myron 85e23f618f fix: bypass Cloudflare Rocket Loader on admin script — doLogin was undefined at click time
data-cfasync=false prevents Rocket Loader from deferring the main script block.
Also added try/catch + button feedback to doLogin so errors show visibly.
2026-06-01 03:26:15 +00:00
myron 5d5eb2fdac feat: complete calendar integration + planner widget + 298 new KB intents
- Add calendar sync route to api.php (/api/calendar → calendar_sync.php)
- Add CALENDAR SYNC tab to admin with feed CRUD (add/edit/delete Google/ICS feeds)
- Add cal_sync_now action to admin for on-demand iCloud/Google sync
- Add cron: calendar_sync.php every 15 min (iCloud CalDAV + ICS feeds)
- Add PLANNER mini panel to index.html (left panel, shows today tasks + appointments)
- Update loadPlannerSummary() to render tasks/appts with priority dots and times
- Seed 298 new KB intents across 37 categories: science, history, tech, geography,
  math, health, food, space, philosophy, psychology, sports, music, film, travel,
  language, literature, finance, productivity, nature, facts, home automation,
  architecture, geopolitics, and more — 543 total intents
2026-05-31 22:47:35 +00:00
myron cfdbd57bce fix: task/appt voice creation — non-greedy trigger strip, bare-date extraction, noon/midnight, book trigger, 900ms TTS mic gap 2026-05-31 19:47:41 +00:00
myron 5b599b1617 fix: voice — any speech = command when awake (no prefix lock), open window on wake, transcript preview in input 2026-05-31 19:39:51 +00:00
myron 2ddce52c9a fix: voice engine rewrite — continuous=false restart-per-utterance, _scheduleRecStart, 12s heartbeat, clean TTS handoff 2026-05-31 19:34:00 +00:00
myron af11d80216 fix: voice mic race condition — onend blocks restart during TTS, clean abort+restart after speech, stuck isSpeaking watchdog 2026-05-31 19:30:42 +00:00
myron 7c1cfda588 feat: email intelligence — action item detection, task/appt creation, admin EMAIL tab, full voice intents 2026-05-31 18:57:47 +00:00
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 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