Obsidian 1.12 defers sidebar view initialization, so getLeavesOfType
returns a leaf with a placeholder stub instead of the actual InboxView.
The unsafe cast caused setRefreshing to throw, leaving the refreshing
guard stuck and blocking all subsequent fetches.
- sentence case for all UI text (enum values, labels, headings, buttons)
- await workspace.revealLeaf (was floating promise)
- activeWindow.setTimeout with block-body arrows (no-misused-promises)
- window -> activeWindow for popout window compatibility
- window.moment() -> obsidian module moment export
- bump minAppVersion to 1.7.2 (required by revealLeaf)
- add eslint-plugin-obsidianmd for local validation
- add void operator to all fire-and-forget async calls
- extract async event handler bodies to private methods
- return Promise.resolve() from onOpen/onClose instead of async
- remove unnecessary type assertion on checkbox createEl
- command names no longer include plugin name
- sentence case for UI text and descriptions
- remove all unused imports and variables