github nilsteampassnet/TeamPass 3.1.7.4

4 hours ago

What's Changed

New Features

BIP-39 Passphrase Generator

A passphrase generator is now available alongside the existing password generator in the item creation and edit forms. It uses BIP-39 word lists and supports 8 languages (English, French, Spanish, Italian, Czech, Portuguese, Japanese, Chinese) with automatic fallback to English. Options include word count (3–8), separator character, and capitalization. Word count minimum is driven by the folder's complexity requirement. Separator preference is persisted in localStorage across sessions. All generation is client-side using crypto.getRandomValues(); no server round-trip or external call at runtime.

Reveal Toggle for Masked Custom Fields

An eye icon button now appears next to the copy button on masked custom fields in the item detail view. Clicking it toggles between the asterisk placeholder and the actual field value, using the same fa-eye / fa-eye-slash pattern as the password reveal button.

Server-Side Smart Password Generation

A new PasswordGeneratorService class generates passwords server-side that meet a folder's minimum complexity requirement in a single call, replacing the previous client-side iterative AJAX loop.


Bug fixes

Custom Fields — Encryption Atomicity Gap (Security)

Custom field values are now encrypted before INSERT instead of after, eliminating the window where plaintext could be persisted if the subsequent UPDATE failed. All read paths (show_details, copy_item) now use decryptUserObjectKeyWithMigration(), enabling transparent phpseclib v1→v3 migration on read. During a personal→public folder move, non-encrypted fields are skipped and orphaned encrypted field rows (whose sharekey is missing) are deleted and logged rather than left permanently undecryptable.

"New Item" Button — "Please select a folder" Error After Login

itemsListFolderId was not updated when navigating the folder tree directly. On a fresh page load, if the user clicked "New" before the jstree state plugin fired select_node.jstree, both fallback values were false and the folder selection error appeared despite the tree showing a selected folder. Fixed by syncing itemsListFolderId with selectedFolder on every tree selection, and falling back to selectedFolder in the loaded.jstree handler.

Subfolders Not Shown on Page Load When Session Folder Is Restored

Subfolders were not displayed when a previously selected folder was restored from the session on page load.

Personal Folder — Sharekey Ownership Integrity

Fixed a bug in EnsurePersonalItemHasOnlyKeysForOwner() that could leave stale sharekeys for other users on personal items.


Maintenance

FontAwesome Upgraded to 7.2

The FontAwesome library has been upgraded to version 7.2, including a fix for the symbolic link path.

Full Changelog

3.1.7.3...3.1.7.4

Important

  • Requires at least PHP 8.1

Languages

Please join Teampass v3 translation project on Poeditor and translate it for your language.

Installation

Follow instructions from Documentation.

Upgrade

Follow instructions from Documentation.

Ideas and comments

Are welcome ... please use Discussions.

Download TeamPass

Don't miss a new TeamPass release

NewReleases is sending notifications on new releases.