Skip to content

v2.0.0: Bidirectional Sync & Real-time Integration

Choose a tag to compare

@jimmylegendary jimmylegendary released this 19 Jul 20:39
· 1 commit to master since this release

πŸš€ Major Release: Bidirectional Sync & Real-time Integration

πŸŽ‰ What's New in v2.0.0

πŸ“€ NEW: Outbound Sync (Obsidian β†’ Webhook)

  • ⚑ Real-time synchronization: Automatically detect and send file changes as they happen
  • πŸ”„ Complete change tracking: Monitor create, modify, delete, and rename operations
  • 🎯 Smart debouncing: Configurable delays (1-10s) to prevent webhook spam
  • πŸ“¦ Intelligent batching: Send multiple changes in optimized batches (1-50 items)
  • πŸ›‘οΈ Reliable delivery: Advanced queue management with automatic retries

πŸš€ NEW: Initial Sync (Bulk Export)

  • πŸ“‹ Export entire vault: Send all existing notes to your webhook endpoint in one operation
  • πŸ“Š Visual progress tracking: Real-time progress modal with file-by-file updates
  • βš™οΈ Configurable batching: Adjustable batch sizes (1-20 files) to prevent server overload
  • ⏹️ Cancellable process: Stop sync operation at any time
  • 🏷️ Special marking: Payloads include isInitialSync: true flag for easier handling

πŸ”§ Enhanced Configuration

  • πŸŽ›οΈ Comprehensive settings panel: Separate sections for inbound, outbound, and initial sync
  • πŸ“ Built-in documentation: Webhook payload examples directly in settings
  • ⚑ Real-time toggle: Quickly enable/disable outbound sync via command palette
  • πŸ”„ Improved UI: Better organized settings with clear descriptions

πŸ“‘ Rich Webhook Payloads

Outbound webhooks now include comprehensive metadata:

{
  "timestamp": "2024-01-01T12:00:00.000Z",
  "isInitialSync": false,
  "changes": [
    {
      "type": "create|modify|delete|rename",
      "filePath": "folder/note.md",
      "oldPath": "folder/old-name.md", // for renames
      "fileName": "note.md",
      "folder": "folder",
      "content": "Full markdown content...",
      "ctime": 1704110400000,
      "mtime": 1704110460000,
      "size": 1024
    }
  ]
}