start method

Future<void> start()

Start the client (enables auto-retrieval if configured)

Implementation

Future<void> start() async {
  if (_isStarted) {
    _logger.warning('Client already started');
    return;
  }

  _logger.info('Starting S&F client');
  _logger.info('Peer ID: ${host.id}');
  _logger.info('Preferred servers: ${config.preferredServers.length}');

  // Register private mailbox notification handler (direct P2P stream)
  registerPrivateNotificationHandler();

  // Initialize presence tracker if PubSub is available
  if (pubsub != null) {
    _presenceTracker = PresenceTracker(
      pubsub: pubsub!,
      localPeerId: host.id,
    );
    print('[SFClient] ✅ DIAG: PresenceTracker created with PubSub (${pubsub.runtimeType})');
  } else {
    print('[SFClient] ⚠️ DIAG: PubSub is NULL — PresenceTracker NOT created');
  }

  if (config.enableAutoRetrieval) {
    startAutoRetrieval();
  }

  _isStarted = true;
}