Skip to content

release: v0.3.2#34

Merged
ccross2 merged 1 commit into
mainfrom
release/v0.3.2
May 28, 2026
Merged

release: v0.3.2#34
ccross2 merged 1 commit into
mainfrom
release/v0.3.2

Conversation

@ccross2

@ccross2 ccross2 commented May 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Bug-fix release covering two real shipping-user issues in v0.3.0:

Fixed

  1. PAM control keyword: success=endsuccess=done across all 9 sites.

    • pam.conf(5) documents exactly ignore | bad | die | ok | done | reset | N. end is not in that list — libpam logged a warning and treated it as ignore, dropping pam_visage.so's PAM_SUCCESS and falling through to the next rule.
    • In practice: face auth has been working as if Visage weren't installed since v0.1.0 on the documented setup paths. Users got the password prompt every time, on top of the (silently-discarded) face match.
    • Landed via fix(pam): correct success=end → success=done across all 9 sites #31. Reported-by @SelfRef in docs: update Arch Linux installation instructions in README #27.
    • User upgrade impact: Debian/Ubuntu users auto-recover on next .deb upgrade (postinst runs pam-auth-update --package visage). Arch and NixOS users get the fix from this install/rebuild.
  2. visaged SIGTERM handler + TimeoutStopSec=10s on the unit.

Release artifacts

This PR is structured so the squash-commit subject is release: v0.3.2, which triggers .github/workflows/ci.yml's release job on push to main. The workflow:

  • Builds the workspace + the .deb via cargo-deb
  • Reads the version from Cargo.toml (now 0.3.2)
  • Creates a GitHub Release tagged v0.3.2 with the .deb attached, body_path: CHANGELOG.md, prerelease: true

Version bump sweep

5 files touched:

File Bump
Cargo.toml (workspace.package.version) 0.3.00.3.2
Cargo.lock (6 workspace crate versions) 0.3.00.3.2
packaging/aur/PKGBUILD (pkgver + sha256sum TODO comment) 0.3.00.3.2
packaging/nix/default.nix (derivation version) 0.3.00.3.2
CHANGELOG.md ## Unreleased renamed to ## v0.3.2 — 2026-05-28; new empty ## Unreleased re-added at top

Verified no other 0.3.0 references in workspace files (only legit historical CHANGELOG entry + unrelated transitive deps).

Skipping v0.3.1

v0.3.1 was reserved for the dependency-bump cohort (tokio, image, uuid, nix, GitHub Actions) plus the community fork PRs (#25 Arch LTO fix, #29 X1 Carbon quirk). All five are still queued — the deps already merged to main but the two community PRs are blocked on maintainer workflow approval. Once they land, v0.3.3 picks up that cohort.

Cutting v0.3.2 first prioritizes the two real shipping-user bugs over the cosmetic bumps.

Test plan

  • CI: test job (fmt, clippy, build, test) green on the squash commit
  • CI: build-deb produces visage_0.3.2_amd64.deb
  • CI: release job (gated on release: prefix) fires and creates the GH release
  • Post-release: gh release view v0.3.2 shows the tagged release with .deb attached
  • Manual (downstream): visage-bin AUR maintainer can pull the new .deb directly

🤖 Generated with Claude Code

Bug-fix release covering two real shipping-user issues in v0.3.0:

- **PAM control keyword corrected.** `success=end` was not a valid
  `pam.conf(5)` value-keyword — libpam treated it as `ignore` and dropped
  Visage's authentication result, so face auth was silently falling through
  to the password prompt since v0.1.0. Swept across all 9 affected sites
  (README, docs, NixOS module, Debian pam-auth-update profile, research
  docs). Reported-by @SelfRef in #27. Debian/Ubuntu users auto-recover on
  next `.deb` upgrade via `postinst`'s `pam-auth-update --package` call;
  Arch and NixOS users get the fix from the new install.

- **`visaged` SIGTERM handler.** The shutdown signal was using
  `tokio::signal::ctrl_c()`, which is SIGINT-only on Unix. `systemctl
  stop|restart` and `visage-resume.service` post-hibernate send SIGTERM,
  which the daemon ignored — systemd then waited the default
  `TimeoutStopSec=90s` before SIGKILL. Fixes #26. Daemon now handles both
  SIGINT and SIGTERM via `tokio::signal::unix::signal` and `tokio::select!`,
  matching the pattern used elsewhere in our daemons.
  `visaged.service` adds `TimeoutStopSec=10s` as defense in depth.

Workspace version bumped 0.3.0 → 0.3.2 across `Cargo.toml`, `Cargo.lock`,
`packaging/aur/PKGBUILD`, and `packaging/nix/default.nix`. CHANGELOG
section renamed from `[Unreleased]` and dated.

Skipping v0.3.1 — that number was reserved for the dependency-bump
cohort (image, nix, tokio, uuid, GitHub Actions) plus the
community fork PRs (#25 Arch LTO fix, #29 X1 Carbon quirk). Those are
still blocked on fork-PR CI approval and will land as v0.3.3 once
unblocked.
@ccross2 ccross2 merged commit 2360515 into main May 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

visaged: blocks for 90s on systemctl restart after hibernate due to stale camera fd

1 participant