StoneGate v2.0.3
🚀 v2.0.3 - Privacy Clean-Up, Bulletproof Focus Redirection, and Complete Obsidian Linter Compliance
We are pleased to release v2.0.3, focusing on resolving user experience focus issues when locked, protecting developer system privacy, and fixing all linter issues flagged by the Obsidian Review tool.
🛠️ Key Improvements & Fixes
- Capture-Phase Focus Lock: Implemented a global window capture-phase listener for
focusevents. Any attempt by background views, panes, or active leaves (like setting tabs) to steal focus is intercepted and redirected back to the lock screen password input. - Modal Trap Mitigation: Active
.modal-containerelements are dynamically hidden (display: none;) while the lock screen is visible to disable their focus traps, and are restored seamlessly on successful unlock. - Recovery Bypass Modal Enter Fix: Resolved an issue where pressing Enter did not trigger the recovery code verification.
- Auto-Clear Password Input on Fail: Input values inside settings modals (
PasswordModalandConfirmPasswordModal) now reset to""instantly upon verification failure.
🔒 Privacy Updates
- Removed all hardcoded absolute system paths from
esbuild.config.mjs, replacing them with an environment variable (OBSIDIAN_VAULT_PATH) to prevent leaking OS usernames in build scripts.
🤖 Obsidian Bot & Linter Compliance
- Bumped minimum app version in
manifest.jsonto 1.6.6. - Renamed the "General" settings header to "Core".
- Replaced direct calls to the deprecated
setWarning()with typed dynamic fallback bracket access["setWarning"]viaDestructiveButtoninterface. - Resolved all floating and misused Promise warnings by wrapping async callbacks in
voidIIFEs. - Removed regex control character warnings (
\u0000).