Bug Fixes
- Drive Sync: push badge now updates immediately after file edits — Previously the push count only refreshed on a timer interval (3+minutes). Now vault file changes (edit, create, delete, rename) trigger a debounced local-only count refresh without network access.
- Drive Sync: fix pull count mismatch with modal file list — The badge count and the pull confirmation dialog could show different numbers due to a race condition where both independently fetched metadata. The count is now derived directly from the file list.
- Drive Sync: include edit-delete conflicts in pull count — Files locally edited but remotely deleted were missing from the pull badge count.
Internal
- Large files split into focused modules for maintainability (45 files changed, net zero lines):
- plugin.ts (2,322 → ~1,190 lines) — extracted SelectionManager, EncryptionManager, DriveSyncUIManager, WorkflowManager
- SettingsTab.tsx (2,879 → 45 lines) — split into 10 settings section files + 5 modal files
- Chat.tsx (2,381 → ~1,950 lines) — extracted chatUtils, chatHistory
- Eliminated code duplication: unified isWorkflowNodeType(), normalizeValue(), accumulateUsage(), buildMessageParts(), formatError(), promptForPassword()
- accumulateUsage() now correctly tracks thinking tokens in all call sites (previously only 1 of 3)