Skip to content

Releases: plugsightlabs/plugsight-public

Plugsight 1.1.1

Choose a tag to compare

@bondigoo-admin bondigoo-admin released this 15 Sep 09:17

A small correctness and polish release. Plugsight stays a local-only detector: it
observes and explains, and it does not block or claim to stop hardware attacks.

Fixed

  • The clamdSocketPath policy setting is now honored. It was accepted and stored
    but the scan engine discovery ignored it, so pointing Plugsight at a non-default
    clamd socket had no effect. Discovery now reads the configured socket at daemon
    startup; leaving it unset keeps the Homebrew default.

Changed

  • Swept stray dashes out of the daemon's runtime and log strings for punctuation
    consistency with the rest of the product.

Plugsight 1.1.0

Choose a tag to compare

@bondigoo-admin bondigoo-admin released this 05 Sep 10:46

An app-wide UX overhaul. The app now answers "is this device safe" directly
instead of showing raw telemetry. Plugsight stays a local-only detector: it
observes and explains, and it does not block or claim to stop hardware attacks.

Added

  • Devices home. The main window opens on your devices, each with a safety
    verdict (safe, needs attention, unsafe, or not checked), the reasons behind
    it, and one recommended action that actually performs what it names.
  • Real macOS notifications. A single notifications switch plus a separate
    new-device checkbox in Settings; unsafe verdicts and (optionally) new devices
    produce a system banner. If notification permission is denied, Settings says
    so and shows the steps to fix it.
  • Activity view. Replaces the Timeline tab: history on request, reachable
    from the Devices home, with working filters and humanized day headers.
  • Groundwork for holding new drives until they are scanned. It ships inactive in
    this release: Apple has granted the Endpoint Security entitlement, and the hold
    path will be switched on in a later release once it is verified on real
    hardware. Nothing in the app claims the capability before then.

Changed

  • Settings rebuilt: each permission row explains its state in plain words with
    step-by-step guidance that opens the exact System Settings pane, and the
    extension row reports its honest status instead of offering approvals that
    cannot succeed.
  • The menu-bar popover sizes itself to its content, never clips, and its
    Details action lands on the right device.

Fixed

  • Scan history is now filtered per device, with dates and failure reasons; one
    device's scans no longer appear under every device.
  • Times render in your own locale and time zone everywhere; no more UTC strings
    shown as if they were local.
  • Scans interrupted by a daemon restart are reconciled instead of showing as
    running forever, and internal-volume scan rows no longer clutter history.
  • The daemon reports its real installed version.

Plugsight 1.0.1

Choose a tag to compare

@bondigoo-admin bondigoo-admin released this 31 Aug 10:14

A fixes release for the menu-bar popover, the Settings extension row, and
scan-on-mount. Plugsight stays a local-only detector: it observes and explains,
and it does not block or claim to stop hardware attacks.

Fixed

  • Scan-on-mount no longer runs on the Mac's own internal storage. Disk
    Arbitration reports every mounted volume, so the boot volume and Apple's APFS
    system volumes (Preboot, VM, xarts, iSCPreboot, Hardware, Update, Data) were
    each scanned and, being unreadable, reported "Scan of ... failed (engine
    error)". Only drives you plug in are watched now; internal and network volumes
    are skipped, so that wall of errors is gone.
  • The menu-bar popover no longer clips its top. With a busy list the content
    could be sized taller than the popover and get centre-clipped, hiding the
    "Plugsight" title and the Open Plugsight button off the top of the box.

Changed

  • The Settings "Deeper device monitoring" row now reflects its real state.
    Instead of one generic "needs attention" look for every not-on case, it reads
    as On, Waiting for your approval, or Not set up, each with its own icon and a
    one-line next step. Its button opens the system approval prompt directly, so
    the extension is no longer a dead end that drops you on a pane with nothing
    highlighted.

Plugsight 0.1.0

Choose a tag to compare

@bondigoo-admin bondigoo-admin released this 29 Aug 14:16

First tagged build of Plugsight: a local-only macOS menu-bar app plus MCP server
that watches what plugs into your Mac and tells you, honestly, what it can and
cannot see. It observes and explains; it does not block, prevent, or claim to
stop hardware attacks.

Added

  • Menu-bar app (Plugsight.app). Nine surfaces (seven SwiftUI: menu-bar
    glyph, popover, event timeline, live device list, device inspector, onboarding,
    and settings; plus a macOS notification and the MCP face). View models are
    CI-testable independently of a live socket.
  • Daemon (plugsightd): local JSON-RPC-over-UDS API (apiVersion 1) behind
    a per-boot auth token, event fan-out, and a closed EventKindCatalog of 23
    event kinds surfaced via --print-catalog.
  • Device collection: IOKit / HID-timing / DiskArbitration sources composed
    behind the frozen CollectorEvent seam; PlugsightCore stays platform-neutral
    (guarded by ops/check-seam.sh).
  • Detection: mismatch rules, a behavioral HID-timing score with an explicit
    score-payload caveat, a shipped legit-composite allowlist, and trust tiers.
  • ClamAV integration. Optional on-device scanning: engine discovery, scan
    orchestration, quarantine + restore, and definitions-age reporting. ClamAV is
    installed by the user (Homebrew), guided from Settings.
  • Endpoint Security extension: a ruthlessly thin ES/XPC layer over a pure,
    CI-testable decision core (mount-hold, fail-open, XPC peer validation). Bundled
    only when the ES entitlement grant is present; the capability table says so
    when it is not.
  • MCP server (@plugsight/mcp): 19 tools as a thin stdio-MCP adapter over
    the daemon API, with a generated contract (mcp/contract/tools.json) and a
    round-trip test against a live seeded daemon.
  • Honesty drift gate: ops/check-drift.mjs fails CI if the README / docs
    claim more or fewer tools or event kinds than the software registers, or if a
    banned marketing claim appears outside a quoted negation.
  • Ship pipeline. ops/release.mjs: one command, seven fatal-on-failure
    steps (preflight, gates, build, sign+notarize+staple, npm publish, GitHub
    release, post-flight), with a --dry-run mode that runs preflight, gates, and
    the build for real and prints the release-time steps it would run.

Manual checks (hardware/human, outside CI)

These require real hardware or a human and are validated out of band, not in CI:

  • Real-hardware USB attach/detach probe.
  • EICAR vs. real ClamAV end-to-end.
  • SIP-relaxed ES activation + live AUTH_MOUNT hold/release.
  • Accessibility Inspector audit + final canon review of the app snapshots.
  • One real signed + notarized dmg opened on a second machine.