   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.
  /
📎

00:00 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:01 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:02 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:03 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:04 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:05 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:06 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:07 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:08 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:09 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:10 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:11 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:12 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       lib/src/features/chat/data/repositories/chat_repository_impl.dart:65:46: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
                currentUserId: _authProvider.userId,
                                             ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:113:38: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
        currentUserId: _authProvider.userId,
                                     ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:154:81: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
      return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:172:81: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
      return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:192:81: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
      return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:202:82: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
       return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                 ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:237:26: Error: The method 'safeInt' isn't defined for the type 'ChatRepositoryImpl'.
 - 'ChatRepositoryImpl' is from 'package:x2chat/src/features/chat/data/repositories/chat_repository_impl.dart' ('lib/src/features/chat/data/repositories/chat_repository_impl.dart').
Try correcting the name to the name of an existing method, or defining a method named 'safeInt'.
        .where((data) => safeInt(data['chatId']) == chatId)
                         ^^^^^^^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:242:75: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
           return MessageMapper.fromMap(msg, currentUserId: _authProvider.userId);
                                                                          ^
lib/src/features/chat/data/repositories/chat_repository_impl.dart:249:26: Error: The method 'safeInt' isn't defined for the type 'ChatRepositoryImpl'.
 - 'ChatRepositoryImpl' is from 'package:x2chat/src/features/chat/data/repositories/chat_repository_impl.dart' ('lib/src/features/chat/data/repositories/chat_repository_impl.dart').
Try correcting the name to the name of an existing method, or defining a method named 'safeInt'.
        .where((data) => safeInt(data['chatId']) == chatId);
                         ^^^^^^^
lib/src/features/chat/presentation/widgets/chat_input_bar.dart:191:66: Error: The operator '[]' isn't defined for the type 'Message'.
 - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
Try correcting the operator to an existing operator, or defining a '[]' operator.
      await controller.editMessageText(controller.editingMessage!['id'], text);
                                                                 ^
lib/src/features/chat/presentation/widgets/chat_input_bar.dart:264:64: Error: The operator '[]' isn't defined for the type 'Message'.
 - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
Try correcting the operator to an existing operator, or defining a '[]' operator.
        replyToMessageId: safeInt(controller.replyingToMessage?['id']),
                                                               ^
lib/src/features/chat/presentation/widgets/chat_input_bar.dart:310:52: Error: The argument type 'Message' can't be assigned to the parameter type 'Map<String, dynamic>'.
 - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
 - 'Map' is from 'dart:core'.
                    context, ctrl.replyingToMessage!, ctrl.clearReply);
                                                   ^
lib/src/features/chat/presentation/widgets/chat_input_bar.dart:315:43: Error: The operator '[]' isn't defined for the type 'Message'.
 - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
Try correcting the operator to an existing operator, or defining a '[]' operator.
                      ctrl.editingMessage!['content'] ?? '';
                                          ^
lib/src/features/chat/presentation/widgets/chat_input_bar.dart:318:49: Error: The argument type 'Message' can't be assigned to the parameter type 'Map<String, dynamic>'.
 - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
 - 'Map' is from 'dart:core'.
                    context, ctrl.editingMessage!, ctrl.clearEditing);
                                                ^

00:13 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:14 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:15 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:16 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:17 +0: loading /opt/x2chat/apps/flutter/test/widget_test.dart                                                                                                                                       
00:17 +0 -1: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                                
  Failed to load "/opt/x2chat/apps/flutter/test/widget_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/widget_test.dart: lib/src/features/chat/data/repositories/chat_repository_impl.dart:65:46: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
                  currentUserId: _authProvider.userId,
                                               ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:113:38: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
          currentUserId: _authProvider.userId,
                                       ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:154:81: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
        return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                  ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:172:81: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
        return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                  ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:192:81: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
        return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                  ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:202:82: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
         return Right(MessageMapper.fromMap(response, currentUserId: _authProvider.userId));
                                                                                   ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:237:26: Error: The method 'safeInt' isn't defined for the type 'ChatRepositoryImpl'.
   - 'ChatRepositoryImpl' is from 'package:x2chat/src/features/chat/data/repositories/chat_repository_impl.dart' ('lib/src/features/chat/data/repositories/chat_repository_impl.dart').
  Try correcting the name to the name of an existing method, or defining a method named 'safeInt'.
          .where((data) => safeInt(data['chatId']) == chatId)
                           ^^^^^^^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:242:75: Error: The argument type 'String?' can't be assigned to the parameter type 'int?'.
             return MessageMapper.fromMap(msg, currentUserId: _authProvider.userId);
                                                                            ^
  lib/src/features/chat/data/repositories/chat_repository_impl.dart:249:26: Error: The method 'safeInt' isn't defined for the type 'ChatRepositoryImpl'.
   - 'ChatRepositoryImpl' is from 'package:x2chat/src/features/chat/data/repositories/chat_repository_impl.dart' ('lib/src/features/chat/data/repositories/chat_repository_impl.dart').
  Try correcting the name to the name of an existing method, or defining a method named 'safeInt'.
          .where((data) => safeInt(data['chatId']) == chatId);
                           ^^^^^^^
  lib/src/features/chat/presentation/widgets/chat_input_bar.dart:191:66: Error: The operator '[]' isn't defined for the type 'Message'.
   - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
  Try correcting the operator to an existing operator, or defining a '[]' operator.
        await controller.editMessageText(controller.editingMessage!['id'], text);
                                                                   ^
  lib/src/features/chat/presentation/widgets/chat_input_bar.dart:264:64: Error: The operator '[]' isn't defined for the type 'Message'.
   - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
  Try correcting the operator to an existing operator, or defining a '[]' operator.
          replyToMessageId: safeInt(controller.replyingToMessage?['id']),
                                                                 ^
  lib/src/features/chat/presentation/widgets/chat_input_bar.dart:310:52: Error: The argument type 'Message' can't be assigned to the parameter type 'Map<String, dynamic>'.
   - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
   - 'Map' is from 'dart:core'.
                      context, ctrl.replyingToMessage!, ctrl.clearReply);
                                                     ^
  lib/src/features/chat/presentation/widgets/chat_input_bar.dart:315:43: Error: The operator '[]' isn't defined for the type 'Message'.
   - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
  Try correcting the operator to an existing operator, or defining a '[]' operator.
                        ctrl.editingMessage!['content'] ?? '';
                                            ^
  lib/src/features/chat/presentation/widgets/chat_input_bar.dart:318:49: Error: The argument type 'Message' can't be assigned to the parameter type 'Map<String, dynamic>'.
   - 'Message' is from 'package:x2chat/src/features/chat/domain/entities/message.dart' ('lib/src/features/chat/domain/entities/message.dart').
   - 'Map' is from 'dart:core'.
                      context, ctrl.editingMessage!, ctrl.clearEditing);
                                                  ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/widget_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/widget_test.dart'
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  
test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
  ResultFuture<Message> editMessage(
                        ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
Change to a supertype of 'int', or, for a covariant parameter, a subtype.
    String newContent,
           ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
  ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
             ^
lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
  ResultVoid deleteMessage(int chatId, int messageId);
             ^
lib/src/features/chat/domain/usecases/edit_message.dart:28:41: Error: Too few positional arguments: 3 required, 2 given.
    return await _repository.editMessage(
                                        ^

00:29 +0 -2: loading /opt/x2chat/apps/flutter/test/unit/chat/edit_message_usecase_test.dart [E]                                                                                                        
  Failed to load "/opt/x2chat/apps/flutter/test/unit/chat/edit_message_usecase_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/unit/chat/edit_message_usecase_test.dart: test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
    ResultFuture<Message> editMessage(
                          ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
  Change to a supertype of 'int', or, for a covariant parameter, a subtype.
      String newContent,
             ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
    ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
               ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
    ResultVoid deleteMessage(int chatId, int messageId);
               ^
  lib/src/features/chat/domain/usecases/edit_message.dart:28:41: Error: Too few positional arguments: 3 required, 2 given.
      return await _repository.editMessage(
                                          ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/unit/chat/edit_message_usecase_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/unit/chat/edit_message_usecase_test.dart'

00:29 +0 -2: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                                
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  
lib/src/features/chat/domain/usecases/edit_message.dart:28:41: Error: Too few positional arguments: 3 required, 2 given.
    return await _repository.editMessage(
                                        ^
lib/src/features/chat/domain/usecases/delete_message.dart:24:43: Error: Too few positional arguments: 2 required, 1 given.
    return await _repository.deleteMessage(params.messageId);
                                          ^

00:41 +0 -3: loading /opt/x2chat/apps/flutter/test/unit/chat/chat_provider_test.dart [E]                                                                                                               
  Failed to load "/opt/x2chat/apps/flutter/test/unit/chat/chat_provider_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/unit/chat/chat_provider_test.dart: lib/src/features/chat/domain/usecases/edit_message.dart:28:41: Error: Too few positional arguments: 3 required, 2 given.
      return await _repository.editMessage(
                                          ^
  lib/src/features/chat/domain/usecases/delete_message.dart:24:43: Error: Too few positional arguments: 2 required, 1 given.
      return await _repository.deleteMessage(params.messageId);
                                            ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/unit/chat/chat_provider_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/unit/chat/chat_provider_test.dart'

00:41 +0 -3: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                                
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  
test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
  ResultFuture<Message> editMessage(
                        ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
Change to a supertype of 'int', or, for a covariant parameter, a subtype.
    String newContent,
           ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
  ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
             ^
lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
  ResultVoid deleteMessage(int chatId, int messageId);
             ^
lib/src/features/chat/domain/usecases/delete_message.dart:24:43: Error: Too few positional arguments: 2 required, 1 given.
    return await _repository.deleteMessage(params.messageId);
                                          ^

00:52 +0 -4: loading /opt/x2chat/apps/flutter/test/unit/chat/delete_message_usecase_test.dart [E]                                                                                                      
  Failed to load "/opt/x2chat/apps/flutter/test/unit/chat/delete_message_usecase_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/unit/chat/delete_message_usecase_test.dart: test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
    ResultFuture<Message> editMessage(
                          ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
  Change to a supertype of 'int', or, for a covariant parameter, a subtype.
      String newContent,
             ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
    ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
               ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
    ResultVoid deleteMessage(int chatId, int messageId);
               ^
  lib/src/features/chat/domain/usecases/delete_message.dart:24:43: Error: Too few positional arguments: 2 required, 1 given.
      return await _repository.deleteMessage(params.messageId);
                                            ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/unit/chat/delete_message_usecase_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/unit/chat/delete_message_usecase_test.dart'

00:52 +0 -4: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                                
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  
test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
  ResultFuture<Message> editMessage(
                        ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
Change to a supertype of 'int', or, for a covariant parameter, a subtype.
    String newContent,
           ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
  ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
             ^
lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
  ResultVoid deleteMessage(int chatId, int messageId);
             ^

01:07 +0 -4: loading /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart                                                                                                                  
01:07 +0 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Message entity basics initializes with provided values                                                                  
01:07 +1 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Message entity basics initializes with provided values                                                                  
01:07 +1 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Message entity basics isMyMessage returns true for current user                                                         
01:07 +2 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Message entity basics isMyMessage returns true for current user                                                         
01:08 +2 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Message entity basics copyWith updates selected fields only                                                             
01:08 +3 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Message entity basics copyWith updates selected fields only                                                             
01:08 +3 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Attachments & replies hasAttachments reflects actual attachment list                                                    
01:08 +4 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Attachments & replies hasAttachments reflects actual attachment list                                                    
01:08 +4 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Attachments & replies isReply is true when replyToId present                                                            
01:08 +5 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Attachments & replies isReply is true when replyToId present                                                            
01:08 +5 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: MessageType enum helpers displayName returns localized names                                                            
01:08 +6 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: MessageType enum helpers displayName returns localized names                                                            
01:08 +6 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: MessageType enum helpers isMedia reflects media types                                                                   
01:08 +7 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: MessageType enum helpers isMedia reflects media types                                                                   
01:08 +7 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Metadata and encryption flags metadata stored as map                                                                    
01:08 +8 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Metadata and encryption flags metadata stored as map                                                                    
01:08 +8 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Metadata and encryption flags isEncrypted flag persisted                                                                
01:08 +9 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Metadata and encryption flags isEncrypted flag persisted                                                                
01:09 +9 -4: /opt/x2chat/apps/flutter/test/unit/chat/message_entity_test.dart: Metadata and encryption flags isEncrypted flag persisted                                                                
01:09 +9 -5: loading /opt/x2chat/apps/flutter/test/unit/chat/send_message_usecase_test.dart [E]                                                                                                        
  Failed to load "/opt/x2chat/apps/flutter/test/unit/chat/send_message_usecase_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/unit/chat/send_message_usecase_test.dart: test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
    ResultFuture<Message> editMessage(
                          ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
  Change to a supertype of 'int', or, for a covariant parameter, a subtype.
      String newContent,
             ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
    ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
               ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
    ResultVoid deleteMessage(int chatId, int messageId);
               ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/unit/chat/send_message_usecase_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/unit/chat/send_message_usecase_test.dart'

01:09 +9 -5: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                                
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  
test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
  ResultFuture<Message> editMessage(
                        ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
Change to a supertype of 'int', or, for a covariant parameter, a subtype.
    String newContent,
           ^
lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
  ResultFuture<Message> editMessage(
                        ^
test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
  ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
             ^
lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
  ResultVoid deleteMessage(int chatId, int messageId);
             ^

01:18 +9 -6: loading /opt/x2chat/apps/flutter/test/unit/chat/get_messages_usecase_test.dart [E]                                                                                                        
  Failed to load "/opt/x2chat/apps/flutter/test/unit/chat/get_messages_usecase_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/unit/chat/get_messages_usecase_test.dart: test/mocks/mock_repositories.dart:46:25: Error: The method 'MockChatRepository.editMessage' has fewer positional arguments than those of overridden method 'ChatRepository.editMessage'.
    ResultFuture<Message> editMessage(
                          ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:48:12: Error: The parameter 'newContent' of the method 'MockChatRepository.editMessage' has type 'String', which does not match the corresponding type, 'int', in the overridden method, 'ChatRepository.editMessage'.
  Change to a supertype of 'int', or, for a covariant parameter, a subtype.
      String newContent,
             ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:123:25: Context: This is the overridden method ('editMessage').
    ResultFuture<Message> editMessage(
                          ^
  test/mocks/mock_repositories.dart:61:14: Error: The method 'MockChatRepository.deleteMessage' has fewer positional arguments than those of overridden method 'ChatRepository.deleteMessage'.
    ResultVoid deleteMessage(int messageId) => super.noSuchMethod(
               ^
  lib/src/features/chat/domain/repositories/chat_repository.dart:138:14: Context: This is the overridden method ('deleteMessage').
    ResultVoid deleteMessage(int chatId, int messageId);
               ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/unit/chat/get_messages_usecase_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/unit/chat/get_messages_usecase_test.dart'

01:18 +9 -6: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                                
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  

01:31 +9 -6: loading /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart                                                                                                             
01:31 +9 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (setUpAll)                                                                                        
01:32 +9 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (setUpAll)                                                                                        
01:32 +9 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager включает cryptor после получения ключа участника                                                  
01:32 +10 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager включает cryptor после получения ключа участника                                                 
01:32 +10 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager отключает cryptor при потере ключа                                                               
01:32 +11 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager отключает cryptor при потере ключа                                                               
01:32 +11 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager dispose вызывается для старого cryptor при повторной регистрации трека                           
01:32 +12 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager dispose вызывается для старого cryptor при повторной регистрации трека                           
01:32 +12 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager обновление participantId включает cryptor если ключ уже имеется                                  
01:32 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager обновление participantId включает cryptor если ключ уже имеется                                  
01:32 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:33 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:34 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:35 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:36 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:37 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:38 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:39 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:40 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:41 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:42 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:43 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:44 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:45 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:46 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:47 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:48 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:49 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:50 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:51 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:52 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:53 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:54 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:55 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:56 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:57 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:58 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
01:59 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:00 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:01 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:02 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:03 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:04 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:05 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/e2ee_state_manager_test.dart: E2EEStateManager (tearDownAll)                                                                                    
02:05 +13 -6: loading /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart                                                                                                             
02:05 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic activates remote stream when key arrives before timeout                            
02:05 +13 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic activates remote stream when key arrives before timeout                            
[LoggerService] ═══ ИНИЦИАЛИЗАЦИЯ (v2.0) ═══
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:03.957890] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:03.870 (+0:00:00.031151)
[LOG] [2025-12-06T20:17:03.976276] │ 20:17:03.870 (+0:00:00.031151)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:03.983414] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 ═══════════════════════════════════════
[LOG] [2025-12-06T20:17:03.994469] │ 💡 ═══════════════════════════════════════
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.001414] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.009636] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:04.005 (+0:00:00.165817)
[LOG] [2025-12-06T20:17:04.034119] │ 20:17:04.005 (+0:00:00.165817)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:04.049573] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 🚀 LoggerService READY (v2.0 - Buffered)
[LOG] [2025-12-06T20:17:04.061597] │ 💡 🚀 LoggerService READY (v2.0 - Buffered)
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.074382] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.089119] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:04.080 (+0:00:00.241176)
[LOG] [2025-12-06T20:17:04.094538] │ 20:17:04.080 (+0:00:00.241176)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:04.100718] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 📊 Max logs: 1000
[LOG] [2025-12-06T20:17:04.106131] │ 💡 📊 Max logs: 1000
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.111545] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.119559] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:04.115 (+0:00:00.276315)
[LOG] [2025-12-06T20:17:04.135544] │ 20:17:04.115 (+0:00:00.276315)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:04.143787] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 💾 Persist to storage: false
[LOG] [2025-12-06T20:17:04.152515] │ 💡 💾 Persist to storage: false
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.157185] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.163782] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:04.160 (+0:00:00.321345)
[LOG] [2025-12-06T20:17:04.168799] │ 20:17:04.160 (+0:00:00.321345)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:04.173715] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 ⏱️  Save interval: 5s
[LOG] [2025-12-06T20:17:04.178771] │ 💡 ⏱️  Save interval: 5s
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.183382] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.191956] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:04.186 (+0:00:00.346730)
[LOG] [2025-12-06T20:17:04.200353] │ 20:17:04.186 (+0:00:00.346730)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:04.204543] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 ═══════════════════════════════════════
[LOG] [2025-12-06T20:17:04.208949] │ 💡 ═══════════════════════════════════════
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.213519] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.226748] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:04.222 (+0:00:00.383313)
[LOG] [2025-12-06T20:17:04.231752] │ 20:17:04.222 (+0:00:00.383313)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:04.235791] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 🌐 API Base URL установлен: https://fake.api
[LOG] [2025-12-06T20:17:04.240570] │ 💡 🌐 API Base URL установлен: https://fake.api
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:04.244932] └───────────────────────────────────────────────────────────────────────────────
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:17:04.293 (+0:00:00.454386)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🔧 AuthProvider инициализирован (криптографический режим) [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🔧 AuthProvider инициализирован (криптографический режим) 
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:17:05.151 (+0:00:01.312296)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🧪 CallService: test mode detected, skipping call polling [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🧪 CallService: test mode detected, skipping call polling 
📞 CALL_LOG: 📺 Получен удаленный поток (track: track-1)
ℹ️ [INFO] CALL: 📺 Получен удаленный поток (track: track-1)
📞 CALL_LOG: 🎧 Remote audio tracks: 1, video: 0
ℹ️ [INFO] CALL: 🎧 Remote audio tracks: 1, video: 0
📞 CALL_LOG: 🎧 Remote audio: id=audio1, enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio: id=audio1, enabled=true, muted=false
📞 CALL_LOG: ⏳ Поток track-1 помещён в pending (participant=2)
ℹ️ [INFO] CALL: ⏳ Поток track-1 помещён в pending (participant=2)
📞 CALL_LOG: 🔑 Ключ готов для участника 2 — активируем pending tracks
ℹ️ [INFO] CALL: 🔑 Ключ готов для участника 2 — активируем pending tracks
📞 CALL_LOG: ✅ Поток track-1 участника 2 активирован (ключ готов)
ℹ️ [INFO] CALL: ✅ Поток track-1 участника 2 активирован (ключ готов)
📞 CALL_LOG: 🔐 Поток track-1 привязан к участнику 2 (pending)
ℹ️ [INFO] CALL: 🔐 Поток track-1 привязан к участнику 2 (pending)
📞 CALL_LOG: 🔁 Ключ для участника 2 уже известен — активируем pending
ℹ️ [INFO] CALL: 🔁 Ключ для участника 2 уже известен — активируем pending
📞 CALL_LOG: ℹ️ Нет pending tracks для участника 2, пропускаем активацию
ℹ️ [INFO] CALL: ℹ️ Нет pending tracks для участника 2, пропускаем активацию
📞 CALL_LOG: 🎧 Remote audio track state: enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio track state: enabled=true, muted=false
[38;5;196m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;196m│ #0   AppLogger.e (package:x2chat/src/utils/logger.dart:55:18)[0m
[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;196m│ 20:17:05.751 (+0:00:01.911778)[0m
[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;196m│ ⛔ ❌ BackgroundService: ошибка остановки: FlutterBackgroundService is currently supported for Android and iOS Platform only. [0m
[38;5;196m└───────────────────────────────────────────────────────────────────────────────[0m
❌ [ERROR] ❌ BackgroundService: ошибка остановки: FlutterBackgroundService is currently supported for Android and iOS Platform only. 

02:07 +14 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic activates remote stream when key arrives before timeout                            
02:07 +14 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic falls back to unencrypted playback if key is late                                  
02:07 +14 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic falls back to unencrypted playback if key is late                                  
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:05.971787] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:05.963 (+0:00:02.124371)
[LOG] [2025-12-06T20:17:05.984388] │ 20:17:05.963 (+0:00:02.124371)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:06.002375] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 🌐 API Base URL установлен: https://fake.api
[LOG] [2025-12-06T20:17:06.014801] │ 💡 🌐 API Base URL установлен: https://fake.api
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:06.031764] └───────────────────────────────────────────────────────────────────────────────
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:17:06.043 (+0:00:02.204589)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🔧 AuthProvider инициализирован (криптографический режим) [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🔧 AuthProvider инициализирован (криптографический режим) 
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:17:06.187 (+0:00:02.348488)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🧪 CallService: test mode detected, skipping call polling [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🧪 CallService: test mode detected, skipping call polling 
📞 CALL_LOG: 📺 Получен удаленный поток (track: track-2)
ℹ️ [INFO] CALL: 📺 Получен удаленный поток (track: track-2)
📞 CALL_LOG: 🎧 Remote audio tracks: 1, video: 0
ℹ️ [INFO] CALL: 🎧 Remote audio tracks: 1, video: 0
📞 CALL_LOG: 🎧 Remote audio: id=audio2, enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio: id=audio2, enabled=true, muted=false
📞 CALL_LOG: ⏳ Поток track-2 помещён в pending (participant=2)
ℹ️ [INFO] CALL: ⏳ Поток track-2 помещён в pending (participant=2)
📞 CALL_LOG: 🔐 Поток track-2 привязан к участнику 2 (pending)
ℹ️ [INFO] CALL: 🔐 Поток track-2 привязан к участнику 2 (pending)
📞 CALL_LOG: 🔑 Ключ для участника 2 не найден — запрашиваем ключи немедленно
ℹ️ [INFO] CALL: 🔑 Ключ для участника 2 не найден — запрашиваем ключи немедленно
📞 CALL_LOG: 🎧 Remote audio track state: enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio track state: enabled=true, muted=false
📞 CALL_LOG: ⚠️ Не получен ключ для участника 2 (track=track-2) — переходим в fallback без шифрования
ℹ️ [INFO] CALL: ⚠️ Не получен ключ для участника 2 (track=track-2) — переходим в fallback без шифрования
📞 CALL_LOG: 🟡 Поток track-2 участника 2 активирован в режиме fallback
ℹ️ [INFO] CALL: 🟡 Поток track-2 участника 2 активирован в режиме fallback
📞 CALL_LOG: 🔐 Получен ключ после fallback для участника 2 — возвращаем шифрование
ℹ️ [INFO] CALL: 🔐 Получен ключ после fallback для участника 2 — возвращаем шифрование
[38;5;196m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;196m│ #0   AppLogger.e (package:x2chat/src/utils/logger.dart:55:18)[0m
[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;196m│ 20:17:06.417 (+0:00:02.578393)[0m
[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;196m│ ⛔ ❌ BackgroundService: ошибка остановки: FlutterBackgroundService is currently supported for Android and iOS Platform only. [0m
[38;5;196m└───────────────────────────────────────────────────────────────────────────────[0m
❌ [ERROR] ❌ BackgroundService: ошибка остановки: FlutterBackgroundService is currently supported for Android and iOS Platform only. 

02:08 +15 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic falls back to unencrypted playback if key is late                                  
02:08 +15 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
02:08 +15 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:06.573477] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:17:06.568 (+0:00:02.729242)
[LOG] [2025-12-06T20:17:06.592242] │ 20:17:06.568 (+0:00:02.729242)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:17:06.617706] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 🌐 API Base URL установлен: https://fake.api
[LOG] [2025-12-06T20:17:06.634741] │ 💡 🌐 API Base URL установлен: https://fake.api
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:17:06.643979] └───────────────────────────────────────────────────────────────────────────────
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:17:06.648 (+0:00:02.808982)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🔧 AuthProvider инициализирован (криптографический режим) [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🔧 AuthProvider инициализирован (криптографический режим) 
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:17:06.739 (+0:00:02.900350)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🧪 CallService: test mode detected, skipping call polling [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🧪 CallService: test mode detected, skipping call polling 
📞 CALL_LOG: 📺 Получен удаленный поток (track: track-3)
ℹ️ [INFO] CALL: 📺 Получен удаленный поток (track: track-3)
📞 CALL_LOG: 🎧 Remote audio tracks: 1, video: 0
ℹ️ [INFO] CALL: 🎧 Remote audio tracks: 1, video: 0
📞 CALL_LOG: 🎧 Remote audio: id=audio3, enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio: id=audio3, enabled=true, muted=false
📞 CALL_LOG: ⏳ Поток track-3 помещён в pending (participant=2)
ℹ️ [INFO] CALL: ⏳ Поток track-3 помещён в pending (participant=2)
📞 CALL_LOG: 🔐 Поток track-3 привязан к участнику 2 (pending)
ℹ️ [INFO] CALL: 🔐 Поток track-3 привязан к участнику 2 (pending)
📞 CALL_LOG: 🔑 Ключ для участника 2 не найден — запрашиваем ключи немедленно
ℹ️ [INFO] CALL: 🔑 Ключ для участника 2 не найден — запрашиваем ключи немедленно
📞 CALL_LOG: 🎧 Remote audio track state: enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio track state: enabled=true, muted=false
📞 CALL_LOG: ⚠️ Не получен ключ для участника 2 (track=track-3) — переходим в fallback без шифрования
ℹ️ [INFO] CALL: ⚠️ Не получен ключ для участника 2 (track=track-3) — переходим в fallback без шифрования
📞 CALL_LOG: 🟡 Поток track-3 участника 2 активирован в режиме fallback
ℹ️ [INFO] CALL: 🟡 Поток track-3 участника 2 активирован в режиме fallback
[38;5;196m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;196m│ #0   AppLogger.e (package:x2chat/src/utils/logger.dart:55:18)[0m
[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;196m│ 20:17:06.928 (+0:00:03.089199)[0m
[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;196m│ ⛔ ❌ BackgroundService: ошибка остановки: FlutterBackgroundService is currently supported for Android and iOS Platform only. [0m
[38;5;196m└───────────────────────────────────────────────────────────────────────────────[0m
❌ [ERROR] ❌ BackgroundService: ошибка остановки: FlutterBackgroundService is currently supported for Android and iOS Platform only. 

02:08 +16 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
02:09 +16 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
02:10 +16 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
02:11 +16 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
02:12 +16 -6: /opt/x2chat/apps/flutter/test/unit/calls/call_service_keys_test.dart: CallService pending track logic fallback state persists when key never arrives                                     
02:13 +16 -6: loading /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart                                                                                                          
02:13 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:14 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:15 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:16 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:17 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:18 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:19 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:20 +16 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен показать индикатор загрузки при isLoading=true и пустом списке                        
02:20 +17 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:21 +17 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:21 +18 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:22 +18 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:23 +18 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:23 +19 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:24 +19 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:24 +20 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:24 +21 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:25 +21 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить текстовое сообщение                                                    
02:25 +22 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен передать isMyMessage=true для моих сообщений                                          
02:25 +23 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен выровнять мои сообщения справа                                                    
02:25 +24 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен передать isMyMessage=false для чужих сообщений                                        
02:26 +24 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен передать isMyMessage=false для чужих сообщений                                        
02:26 +25 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен выровнять чужие сообщения слева                                                   
02:26 +26 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен передать replyToMessage для ответов                                                   
02:27 +26 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен передать replyToMessage для ответов                                                   
02:27 +27 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить имя отправителя для чужих сообщений                                    
02:27 +28 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:27 +29 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:28 +29 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:28 +30 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:28 +31 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:29 +31 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:29 +32 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:29 +33 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:30 +34 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:30 +35 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:31 +35 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:31 +36 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен вызвать onReply при нажатии                                                           
02:31 +37 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен отобразить превью ответа                                                          
02:31 +38 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_list_widget_test.dart: MessageList Widget должен передать onEdit только для моих сообщений                                             
02:31 +39 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:32 +39 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:32 +40 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:32 +41 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:33 +41 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:33 +42 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:33 +43 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:34 +43 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:34 +44 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:35 +44 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:35 +45 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен вызвать onReply при нажатии                                                       
02:35 +45 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен показать меню при долгом нажатии                                                  
02:35 +46 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget должен показать меню при долгом нажатии                                                  
02:35 +46 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:36 +46 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:36 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:37 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:38 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:39 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:40 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:41 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:42 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_bubble_widget_test.dart: MessageBubble Widget не должен показывать "Редактировать" для чужих сообщений                                 
02:42 +47 -6: loading /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart                                                                                                         
02:42 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить поле ввода                                                               
02:43 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить поле ввода                                                               lib/src/features/chat/domain/usecases/edit_message.dart:28:41: Error: Too few positional arguments: 3 required, 2 given.
    return await _repository.editMessage(
                                        ^
lib/src/features/chat/domain/usecases/delete_message.dart:24:43: Error: Too few positional arguments: 2 required, 1 given.
    return await _repository.deleteMessage(params.messageId);
                                          ^

02:44 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить поле ввода                                                               
02:45 +47 -6: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить поле ввода                                                               
02:45 +47 -7: loading /opt/x2chat/apps/flutter/test/integration/chat_flow_test.dart [E]                                                                                                                
  Failed to load "/opt/x2chat/apps/flutter/test/integration/chat_flow_test.dart":
  Compilation failed for testPath=/opt/x2chat/apps/flutter/test/integration/chat_flow_test.dart: lib/src/features/chat/domain/usecases/edit_message.dart:28:41: Error: Too few positional arguments: 3 required, 2 given.
      return await _repository.editMessage(
                                          ^
  lib/src/features/chat/domain/usecases/delete_message.dart:24:43: Error: Too few positional arguments: 2 required, 1 given.
      return await _repository.deleteMessage(params.messageId);
                                            ^
  .

To run this test again: /opt/flutter/bin/cache/dart-sdk/bin/dart test /opt/x2chat/apps/flutter/test/integration/chat_flow_test.dart -p vm --plain-name 'loading /opt/x2chat/apps/flutter/test/integration/chat_flow_test.dart'

02:45 +47 -7: loading /opt/x2chat/apps/flutter/test/widget_test.dart [E]                                                                                                                               
  Error: The Dart compiler exited unexpectedly.
  package:flutter_tools/src/base/common.dart 34:3  throwToolExit
  package:flutter_tools/src/compile.dart 911:11    DefaultResidentCompiler._compile.<fn>
  dart:async/zone.dart 1538:47                     _rootRunUnary
  dart:async/zone.dart 1429:19                     _CustomZone.runUnary
  dart:async/future_impl.dart 948:45               Future._propagateToListeners.handleValueCallback
  dart:async/future_impl.dart 977:13               Future._propagateToListeners
  dart:async/future_impl.dart 862:9                Future._propagateToListeners
  dart:async/future_impl.dart 720:5                Future._completeWithValue
  dart:async/future_impl.dart 804:7                Future._asyncCompleteWithValue.<fn>
  dart:async/zone.dart 1525:13                     _rootRun
  dart:async/zone.dart 1422:19                     _CustomZone.run
  dart:async/zone.dart 1321:7                      _CustomZone.runGuarded
  dart:async/zone.dart 1362:23                     _CustomZone.bindCallbackGuarded.<fn>
  dart:async/schedule_microtask.dart 40:35         _microtaskLoop
  dart:async/schedule_microtask.dart 49:5          _startMicrotaskLoop
  dart:isolate-patch/isolate_patch.dart 127:13     _runPendingImmediateCallback
  dart:isolate-patch/isolate_patch.dart 194:5      _RawReceivePort._handleMessage
  

02:53 +48 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить поле ввода                                                               
02:53 +48 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку отправки при наличии текста                                         
02:54 +48 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку отправки при наличии текста                                         
02:55 +48 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку отправки при наличии текста                                         
02:56 +48 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку отправки при наличии текста                                         
02:57 +48 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку отправки при наличии текста                                         
02:57 +49 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку отправки при наличии текста                                         
02:57 +49 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку микрофона при пустом тексте                                         
02:57 +50 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку микрофона при пустом тексте                                         
02:57 +50 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onSend с текстом                                                            
02:58 +50 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onSend с текстом                                                            
02:59 +50 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onSend с текстом                                                            
03:00 +50 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onSend с текстом                                                            
03:00 +51 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onSend с текстом                                                            
03:00 +51 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget не должен отправлять пустое сообщение                                                      
03:01 +51 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget не должен отправлять пустое сообщение                                                      
03:01 +52 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget не должен отправлять пустое сообщение                                                      
03:01 +52 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onVoiceRecord                                                               
03:02 +52 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onVoiceRecord                                                               
03:02 +53 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onVoiceRecord                                                               
03:02 +53 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку прикрепления                                                        
03:03 +53 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку прикрепления                                                        
03:03 +54 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен показать кнопку прикрепления                                                        
03:03 +54 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onAttach                                                                    
03:04 +54 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onAttach                                                                    
03:04 +55 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onAttach                                                                    
03:04 +55 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить виджет ответа                                                            
03:04 +56 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отобразить виджет ответа                                                            
03:04 +56 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onCancelReply                                                               
03:05 +56 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onCancelReply                                                               
03:05 +57 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onCancelReply                                                               
03:05 +57 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отключить кнопки при enabled=false                                                  
03:06 +57 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отключить кнопки при enabled=false                                                  
03:06 +58 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен отключить кнопки при enabled=false                                                  
03:06 +58 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onTyping при вводе текста                                                   
03:07 +58 -7: /opt/x2chat/apps/flutter/test/widget/chat/message_input_widget_test.dart: MessageInput Widget должен вызвать onTyping при вводе текста                                                   
03:07 +58 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
[LoggerService] ═══ ИНИЦИАЛИЗАЦИЯ (v2.0) ═══
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.020742] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:05.913 (+0:00:00.026399)
[LOG] [2025-12-06T20:18:06.046629] │ 20:18:05.913 (+0:00:00.026399)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.055542] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 ═══════════════════════════════════════
[LOG] [2025-12-06T20:18:06.071540] │ 💡 ═══════════════════════════════════════
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.084619] └───────────────────────────────────────────────────────────────────────────────

03:07 +59 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
03:07 +59 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.101228] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:06.092 (+0:00:00.205649)
[LOG] [2025-12-06T20:18:06.112599] │ 20:18:06.092 (+0:00:00.205649)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.123634] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 🚀 LoggerService READY (v2.0 - Buffered)
[LOG] [2025-12-06T20:18:06.167683] │ 💡 🚀 LoggerService READY (v2.0 - Buffered)
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.180948] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.195063] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:06.191 (+0:00:00.304655)
[LOG] [2025-12-06T20:18:06.203930] │ 20:18:06.191 (+0:00:00.304655)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.213284] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 📊 Max logs: 1000
[LOG] [2025-12-06T20:18:06.221112] │ 💡 📊 Max logs: 1000
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.228687] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.239659] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:06.234 (+0:00:00.347393)
[LOG] [2025-12-06T20:18:06.247102] │ 20:18:06.234 (+0:00:00.347393)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.256098] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 💾 Persist to storage: false
[LOG] [2025-12-06T20:18:06.264105] │ 💡 💾 Persist to storage: false
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.272482] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.283719] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:06.278 (+0:00:00.391372)
[LOG] [2025-12-06T20:18:06.301110] │ 20:18:06.278 (+0:00:00.391372)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.313934] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 ⏱️  Save interval: 5s
[LOG] [2025-12-06T20:18:06.323511] │ 💡 ⏱️  Save interval: 5s
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.335684] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.347402] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:06.341 (+0:00:00.454490)
[LOG] [2025-12-06T20:18:06.358595] │ 20:18:06.341 (+0:00:00.454490)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.369973] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 ═══════════════════════════════════════
[LOG] [2025-12-06T20:18:06.380795] │ 💡 ═══════════════════════════════════════
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.397004] └───────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.418637] ┌───────────────────────────────────────────────────────────────────────────────
│ 20:18:06.410 (+0:00:00.523683)
[LOG] [2025-12-06T20:18:06.431801] │ 20:18:06.410 (+0:00:00.523683)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
[LOG] [2025-12-06T20:18:06.444850] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 💡 🌐 API Base URL установлен: https://fake.api
[LOG] [2025-12-06T20:18:06.452835] │ 💡 🌐 API Base URL установлен: https://fake.api
└───────────────────────────────────────────────────────────────────────────────
[LOG] [2025-12-06T20:18:06.460975] └───────────────────────────────────────────────────────────────────────────────

03:08 +60 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
03:08 +60 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:18:06.550 (+0:00:00.664115)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🔧 AuthProvider инициализирован (криптографический режим) [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🔧 AuthProvider инициализирован (криптографический режим) 
[38;5;12m┌───────────────────────────────────────────────────────────────────────────────[0m
[38;5;12m│ #0   AppLogger.i (package:x2chat/src/utils/logger.dart:43:18)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 20:18:07.512 (+0:00:01.625992)[0m
[38;5;12m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄[0m
[38;5;12m│ 💡 🧪 CallService: test mode detected, skipping call polling [0m
[38;5;12m└───────────────────────────────────────────────────────────────────────────────[0m
ℹ️ [INFO] 🧪 CallService: test mode detected, skipping call polling 

03:09 +61 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
03:09 +61 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
📞 CALL_LOG: 📺 Получен удаленный поток (track: track-alice)
ℹ️ [INFO] CALL: 📺 Получен удаленный поток (track: track-alice)
📞 CALL_LOG: 🎧 Remote audio tracks: 1, video: 0
ℹ️ [INFO] CALL: 🎧 Remote audio tracks: 1, video: 0
📞 CALL_LOG: 🎧 Remote audio: id=alice-audio, enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio: id=alice-audio, enabled=true, muted=false
📞 CALL_LOG: ⏳ Поток track-alice помещён в pending (participant=2)
ℹ️ [INFO] CALL: ⏳ Поток track-alice помещён в pending (participant=2)
📞 CALL_LOG: 🔑 Ключ готов для участника 2 — активируем pending tracks
ℹ️ [INFO] CALL: 🔑 Ключ готов для участника 2 — активируем pending tracks
📞 CALL_LOG: ✅ Поток track-alice участника 2 активирован (ключ готов)
ℹ️ [INFO] CALL: ✅ Поток track-alice участника 2 активирован (ключ готов)
📞 CALL_LOG: 🔐 Поток track-alice привязан к участнику 2 (pending)
ℹ️ [INFO] CALL: 🔐 Поток track-alice привязан к участнику 2 (pending)
📞 CALL_LOG: 🔁 Ключ для участника 2 уже известен — активируем pending
ℹ️ [INFO] CALL: 🔁 Ключ для участника 2 уже известен — активируем pending
📞 CALL_LOG: ℹ️ Нет pending tracks для участника 2, пропускаем активацию
ℹ️ [INFO] CALL: ℹ️ Нет pending tracks для участника 2, пропускаем активацию
📞 CALL_LOG: 🎧 Remote audio track state: enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio track state: enabled=true, muted=false
📞 CALL_LOG: 📺 Получен удаленный поток (track: track-bob)
ℹ️ [INFO] CALL: 📺 Получен удаленный поток (track: track-bob)
📞 CALL_LOG: 🎧 Remote audio tracks: 1, video: 0
ℹ️ [INFO] CALL: 🎧 Remote audio tracks: 1, video: 0
📞 CALL_LOG: 🎧 Remote audio: id=bob-audio, enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio: id=bob-audio, enabled=true, muted=false
📞 CALL_LOG: ⏳ Поток track-bob помещён в pending (participant=2)
ℹ️ [INFO] CALL: ⏳ Поток track-bob помещён в pending (participant=2)
📞 CALL_LOG: 🔐 Поток track-bob привязан к участнику 2 (pending)
ℹ️ [INFO] CALL: 🔐 Поток track-bob привязан к участнику 2 (pending)
📞 CALL_LOG: 🔑 Ключ для участника 2 не найден — запрашиваем ключи немедленно
ℹ️ [INFO] CALL: 🔑 Ключ для участника 2 не найден — запрашиваем ключи немедленно
📞 CALL_LOG: 🎧 Remote audio track state: enabled=true, muted=false
ℹ️ [INFO] CALL: 🎧 Remote audio track state: enabled=true, muted=false
📞 CALL_LOG: ⚠️ Не получен ключ для участника 2 (track=track-bob) — переходим в fallback без шифрования
ℹ️ [INFO] CALL: ⚠️ Не получен ключ для участника 2 (track=track-bob) — переходим в fallback без шифрования
📞 CALL_LOG: 🟡 Поток track-bob участника 2 активирован в режиме fallback
ℹ️ [INFO] CALL: 🟡 Поток track-bob участника 2 активирован в режиме fallback
📞 CALL_LOG: 🔐 Получен ключ после fallback для участника 2 — возвращаем шифрование
ℹ️ [INFO] CALL: 🔐 Получен ключ после fallback для участника 2 — возвращаем шифрование

03:09 +62 -7: /opt/x2chat/apps/flutter/test/integration/e2ee_call_flow_test.dart: E2EE call flow integration handles key handshake, pending queue and fallback transitions                             
03:09 +62 -7: Some tests failed.                                                                                                                                                                       
