Skip to content

v0.1.7 — LustLess (parity audit, real-model proof, spool fallback)

Choose a tag to compare

@HenryGetz HenryGetz released this 14 Oct 09:23
· 13 commits to main since this release

Linux accountability client (Covenant Eyes-compatible, clean-room reimplementation).

Install

curl -fsSL https://github.com/HenryGetz/LustLess/releases/latest/download/install.sh | sudo bash

Detects your distro, downloads the matching package, installs it with the
native tool, starts the agent — and the sign-in window opens. Log in there.
Other ways:

Distro File Command
Debian / Ubuntu / Zorin / Mint lustless_0.1.7_amd64.deb sudo apt install ./lustless_0.1.7_amd64.deb
Fedora lustless-0.1.7-1.x86_64.rpm sudo dnf install ./lustless-0.1.7-1.x86_64.rpm
Bazzite / immutable Fedora lustless-0.1.7-1.x86_64.rpm sudo rpm-ostree install ./lustless-0.1.7-1.x86_64.rpm && reboot
Arch / EndeavourOS / SteamOS lustless-0.1.7-1-x86_64.pkg.tar.zst sudo pacman -U ./lustless-0.1.7-1-x86_64.pkg.tar.zst
Alpine lustless-0.1.7-r0.apk sudo apk add --allow-untrusted ./lustless-0.1.7-r0.apk

Uninstall: sudo apt purge lustless (or the dnf/rpm-ostree/pacman/apk
equivalent) — restores the DNS, browser-policy and polkit state exactly as
found.

What's new

Parity work, driven by a subsystem-by-subsystem audit now recorded in
docs/impl/PARITY.md (Windows surface → Linux status → evidence → gaps).

  • The spool consumer survives a missing inotify instance. Previously the
    classifier exited (Too many open files) on a machine at the per-user
    inotify limit; it now falls back to polling with the same semantics — only
    newly-ready folders, and renames still reported as Renamed (matched by
    folder inode). All 28 capture tests pass, including the ones the host limit
    was breaking.
  • The real CE classifier bundle is proven end to end: decrypt → load
    (threshold 0.467 from the calibration artifact) → score a 640×480 capture →
    {"app":"firefox","score":0.0,"flagged":false,"scored_windows":1}.
  • Wayland capture is characterised, not hand-waved: the portal backend is
    implemented but cannot ship on this baseline — the pipewire crate's spa
    bindings need libspa newer than Ubuntu 22.04 / Zorin 17 provides, and a
    binary linked against a newer libspa would not load on the target. Named as
    gap 0 with the work required (dlopen-style bindings or a crate pin).

Everything from 0.1.6 (branded sign-in window, Zorin Lite verification), 0.1.5
(DNS that stays alive) and 0.1.4 (agent main loop) is unchanged.