release: v0.3.2#34
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Bug-fix release covering two real shipping-user issues in v0.3.0:
Fixed
PAM control keyword:
success=end→success=doneacross all 9 sites.pam.conf(5)documents exactlyignore | bad | die | ok | done | reset | N.endis not in that list — libpam logged a warning and treated it asignore, droppingpam_visage.so'sPAM_SUCCESSand falling through to the next rule..debupgrade (postinst runspam-auth-update --package visage). Arch and NixOS users get the fix from this install/rebuild.visagedSIGTERM handler +TimeoutStopSec=10son the unit.tokio::signal::ctrl_c()is SIGINT-only; systemd'ssystemctl stop|restartsends SIGTERM, which the daemon ignored — systemd waited the defaultTimeoutStopSec=90sand finally SIGKILL'd.systemctl restart visaged.serviceafter hibernate, whenvisage-resume.servicefires automatically.systemctl restartafter hibernate due to stale camera fd #26 (reported by @SomeCodecat).systemctl restartbounded from ~90s → ~10s.Release artifacts
This PR is structured so the squash-commit subject is
release: v0.3.2, which triggers.github/workflows/ci.yml'sreleasejob on push to main. The workflow:.debviacargo-debCargo.toml(now0.3.2)v0.3.2with the.debattached,body_path: CHANGELOG.md,prerelease: trueVersion bump sweep
5 files touched:
Cargo.toml(workspace.package.version)0.3.0→0.3.2Cargo.lock(6 workspace crate versions)0.3.0→0.3.2packaging/aur/PKGBUILD(pkgver+ sha256sum TODO comment)0.3.0→0.3.2packaging/nix/default.nix(derivation version)0.3.0→0.3.2CHANGELOG.md## Unreleasedrenamed to## v0.3.2 — 2026-05-28; new empty## Unreleasedre-added at topVerified no other
0.3.0references 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
testjob (fmt, clippy, build, test) green on the squash commitbuild-debproducesvisage_0.3.2_amd64.debreleasejob (gated onrelease:prefix) fires and creates the GH releasegh release view v0.3.2shows the tagged release with.debattachedvisage-binAUR maintainer can pull the new.debdirectly🤖 Generated with Claude Code