VS Code extension 1.17.2
A pull that hits a decryption failure or a truncated result now stops and writes nothing. Before, the literal text [DECRYPTION_FAILED] could end up in your .env.
Choosing "Skip" when linking a directory now really skips it: the directory is not stored, so nothing overwrites your existing file later. Removing a directory or losing access deletes only files whose contents still match what Envpilot wrote, and also removes synced secret files. A sync that was already in flight can no longer write secrets back after access was revoked.
Edits to a protected file are reverted immediately instead of waiting for you to dismiss the warning. Synced files are created with owner-only permissions (0600, read-only 0400).
Token refresh reads the stored session first, so two VS Code windows no longer sign each other out. A network blip during refresh is reported as a network error instead of "Session expired". Signing in, switching accounts and signing out all go through one path that clears cached permissions.
The commit guard now works on Windows, no longer blocks .env.example, .env.sample or .env.template, no longer blocks removing an already-committed .env from the index, and only installs into .git/hooks (repos that manage hooks with husky are left alone). Value cloaking covers export KEY= and indented lines.
Removed: the dashboard panel, the envpilot.syncInterval setting (it did nothing) and the Select Environments command (it was a placeholder).