Ants Projects Hub
← Rolodex

Changelog

Rolodex

Every release, newest first — 4 in total.

v1.3.0

1.3.0 — TOTP 2FA codes, password health checkup, and keyboard shortcuts

Added

  • Generate TOTP 2FA codes from stored authenticator secrets. (ROLO-0006) Store an otpauth:// URI or a 2FA-labelled base32 setup key and Rolodex renders the rotating RFC 6238 code inline with a countdown ring and one-click copy. Pure-stdlib TOTP — no new dependency.

  • Password health checkup: flag weak and reused secrets (ROLO-0008) A new "Password health..." menu item opens a read-only report that scores every stored secret on length and character-class variety (Weak/Fair/Good/Strong) and flags any secret reused across entries, worst first. All analysis runs in-process over the decrypted vault — nothing leaves the app.

  • GitHub Actions CI: ruff lint + pytest on every push/PR (ROLO-0020) New .github/workflows/ci.yml runs ruff and the pytest suite on push and PR to main, installing the system GTK stack from apt so import rolodex resolves. Pinned actions/checkout@v7.

  • Keyboard shortcuts for common actions (ROLO-0007) Ctrl+F focuses search, Ctrl+N adds an entry, Ctrl+Shift+C copies the selected entry's password/secret (plain Ctrl+C still copies selected text), Ctrl+L locks the vault, Escape clears the search box, and Ctrl+? opens a keyboard-shortcuts reference.

  • Unsaved-changes guard (ROLO-0022) — closing the add/edit dialog with edits in flight now confirms before discarding them.

  • Duplicate-name warning (ROLO-0023) — saving an entry whose name matches another (case-insensitive) now asks for confirmation first.

  • Show/hide (eye) toggle on sensitive fields in the add/edit editor (ROLO-0021) — peek at a masked value while editing, view-only so it never changes whether the field is stored as a secret.

Changed

  • Extract shared helpers: single 0600 file-write, container-clear, dialog scaffold (ROLO-0019) Internal refactor, no behaviour change. The owner-only (0600) write now lives in one write_private_file() used by both the vault save and the plaintext export; a clear_container() replaces three hand-rolled "remove all rows" loops; and make_dialog_scaffold() collapses the ToolbarView+HeaderBar+Clamp boilerplate repeated across all six dialogs. Net 53 fewer lines.

  • Debounced sidebar search (ROLO-0018) — the list rebuilds once typing pauses (~150ms) instead of on every keystroke.

v1.2.0

Added

  • Prebuilt Windows binary (rolodex-windows-x86_64.exe) is now available (ROLO-0031) — the GTK-bundling issue that withheld it from v1.1.0 is resolved, so all three platforms now ship self-contained single-file binaries.

  • Built-in password generator (ROLO-0004) — a button on sensitive fields in the add/edit editor opens a popover to generate a strong random password, with length and character-class options. Uses Python's secrets module and guarantees at least one character from each selected class.

Changed

  • New application icon — a glossy Rolodex card-file design (rolodex.png), replacing the flat rolodex.svg. Corners are transparent (rounded-square silhouette), so the icon renders cleanly on any desktop background. rolodex.desktop, the README, and the file-naming doc now reference the PNG.

Security

  • Automatic clipboard clearing (ROLO-0003) — a copied secret is wiped from the clipboard a few seconds later, but only if you haven't copied something else in the meantime. Delay is configurable via clipboard_clear_seconds in .rolodex.conf (default 20s; 0 disables).

  • Automatic vault lock on idle (ROLO-0002) — after a period of inactivity the vault re-locks, wiping the decrypted data and master password from memory. Adds a Lock button (Ctrl+L) for locking on demand. Idle timeout is configurable via idle_lock_seconds in .rolodex.conf (default 300s; 0 disables).

v1.1.0

Rolodex v1.1.0

First public release of Rolodex — a minimal, encrypted credential manager for the Linux desktop (GTK4/libadwaita).

Downloads (self-contained — nothing else to install)

  • Linux (x86-64): rolodex-linux-x86_64chmod +x rolodex-linux-x86_64 && ./rolodex-linux-x86_64. Built on Ubuntu 24.04 (needs a reasonably recent glibc).
  • macOS (Apple Silicon): rolodex-macos-arm64 — unsigned, so the first time right-click → Open to get past Gatekeeper, then confirm.

Each binary bundles Python, GTK4/libadwaita, and all dependencies, and passes a self-test on its own OS in CI before publishing. Your vault is stored in a per-user data directory (~/.local/share/Rolodex, ~/Library/Application Support/Rolodex).

Windows

A Windows build isn't ready yet — the GTK bundle builds but doesn't load at runtime. Tracked as ROLO-0031. Run from source in the meantime (see the README).

Highlights since the pre-open-source baseline

  • Full open-source docs (README, SECURITY, CONTRIBUTING, DESIGN, feature specs, standards).
  • Bug fixes: file-descriptor double-close on write errors, a sensitive-field cleartext leak in the editor, and count-label pluralisation.
  • Seed test suite.

See CHANGELOG.md for the full list.

1.0.0

Initial versioned release of the app as it existed before open-sourcing. (This version predates the public repository, so no v1.0.0 git tag exists yet; the date reflects when the app reached this state, not a tagged release.)

Added

  • Encrypted vault: PBKDF2-HMAC-SHA256 (600k iterations) + Fernet, 0600 file permissions.
  • GTK 4 / libadwaita UI: unlock/create flow, searchable sidebar, detail pane.
  • Categories with collapse/expand, drag-and-drop between categories, and management dialog.
  • Sensitive-field masking with auto-detection, per-entry reveal, and colour-coded field types.
  • One-click clipboard copy (wl-copy / xclip / xsel).
  • Text-file import with preview and duplicate detection.
  • Encrypted backup & restore, plaintext export, and master-password change.
  • Vault schema migration (v1 → v2) applied on load.