Antivirus/gui/src-tauri/tauri.conf.json
johnmcafee a7871b5e27 Engine seam (ScanEngine trait) + Tauri GUI
ClamAV is a temporary dependency. Everything ClamAV-specific moves
behind a 4-method trait in crates/houndd/src/engine.rs:

    trait ScanEngine { name; probe; scan; update }
    struct ClamAvEngine   // today
    const ENGINE          // one-line flip when the native engine lands

- parse_clamscan() is now a pure fn with unit tests (OK/FOUND/INCOMPLETE,
  dedup, malformed lines)
- main.rs drops all clamscan/clamd/freshclam knowledge; Status reports
  engine='clamav' via the trait
- README documents the seam and the wire contract that stays stable

GUI (gui/, Tauri 2, standalone workspace, vanilla JS premium-dark shell):
- system-tray sentinel on the 4-state dog-head ladder (green/amber/red/gray)
  with tooltips; clicks open the window / scan / update
- window: protection hero, path + recursive scan, progress bar, results
  table, signature update log; state mirrored to the tray
- compiles clean (cargo build, 0 warnings) on Mint 22.3 + webkit2gtk-4.1

All 11 workspace tests pass, incl. the E2E EICAR scan over the real
Unix-socket daemon (clamscan finds the planted EICAR).
2026-08-20 17:55:40 -05:00

43 lines
1 KiB
JSON

{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Hound Antivirus",
"version": "0.1.0",
"identifier": "com.joelovestech.hound",
"build": {
"frontendDist": "../dist",
"devUrl": "http://localhost:1420",
"beforeDevCommand": "",
"beforeBuildCommand": ""
},
"app": {
"windows": [
{
"title": "Hound Antivirus",
"width": 940,
"height": 640,
"minWidth": 760,
"minHeight": 520,
"resizable": true,
"center": true,
"fullscreen": false,
"decorations": true
}
],
"security": {
"csp": null
},
"trayIcon": {
"iconPath": "icons/state-protected-22.png",
"iconAsTemplate": false
}
},
"bundle": {
"active": true,
"targets": ["app", "deb"],
"icon": [
"icons/hound-48.png",
"icons/state-protected-32.png"
],
"resources": ["icons/state-protected-22.png", "icons/state-scanning-22.png", "icons/state-threat-22.png", "icons/state-paused-22.png"]
}
}