Repository navigation
This release moves every secret my configuration reads in the background, in Emacs, mail sync and command-line tools alike, from pass to read-only 1Password service accounts. It also adds a cooldown for third-party packages: a dev profile now builds each third-party package at a commit that has been public for at least a week, rather than at upstream HEAD.
Breaking changes
- Emacs and the command-line tools read their secrets from the "Automation" vaults of three 1Password accounts (personal, Tlon and Epoch) through the
op-automationsbroker. Each account's service-account token must be in the macOS Keychain asop-service-account/ACCOUNT-automation.passis no longer an auth-source backend, and nothing falls back to it. - Org asks before following
elisp:links, and Emacs asks about unsafe file-local variables instead of silently ignoring them. The trusted ones are registered. activity-watch-modeandcirceare built from my forks. Thecircefix was declined upstream, so that fork stays.
Features
Emacs
- New package
auth-source-extras:auth-source-extras-op-getfetches Automation-vault items in parallel at startup, rejects inexact title matches, and names the item and account when a read fails, never the secret. It also provides an auth-source backend for generic lookups and can unlockgit-cryptrepositories from a key stored in 1Password. - GnuPG PIN and passphrase dialogs say which secret they want: the everyday YubiKey PIN, the admin PIN or the GPG passphrase.
activity-watch-moderecords the selected non-file buffer, such as an agent or Slack buffer, instead of whatever buffer is current when its timer fires.- The bibliography tools run PDF OCR before requesting an abstract, keep scan images during ordinary OCR, and date undated web pages by their earliest Wayback capture.
org-contactscompletion can no longer be interrupted halfway through visiting the contacts file, which used to break refiling.
Package builds
bin/elpaca-cooldownrecords the tip of every third-party remote once a day. Its plan builds my own packages at their tip, third-party packages at the newest tip first seen at least seven days ago, and packages pinned inconfig.orgat their pin.- The release workflow builds and smoke-tests a dev profile first, treats startup warnings as failures, and pins exactly the checkouts that passed. The smoke reporter closes its Emacs instance itself when the report is final.
- It also reports third-party packages that have not been loaded in 60 days, as candidates for removal.
AI-agent tooling
- Elisp test evidence is bound to file contents and enforced by Git hooks and an agent Stop hook, instead of being parsed from command text. The documentation and paired-config commit gates also moved into
pre-commit. - Agents can create 1Password share links restricted to named recipients. The secret guard now treats interpreter programs that name a 1Password broker as programs rather than shell text, and several false positives were removed.
dotfiles-publishinstalls its push guard behind the global hooks dispatcher.