feat(ai-scribe): Fix the English locale file `(intl_en.arb)` is missing all three AI Scribe keys

feat(ai-scribe): Fix async function declared without proper return type annotation.

feat(ai-scribe): Fix Async operations not properly awaited.

feat(ai-scribe): Fix inconsistent capitalization between button labels.

feat(ai-scribe): Fix GenerateAITextFailure check will never match.

feat(ai-scribe): Fix consider validating text input for predefined actions.

feat(ai-scribe): Using a subshell for directory isolation.

feat(ai-scribe): Fix verify the mock usage or document intent.

feat(ai-scribe): Using a more conventional import for Offset.

feat(ai-scribe): Adding error handling for consistency

feat(ai-scribe): Remove `fromJson` and `toJson` of AIResponse

feat(ai-scribe): Using constants for role values.

feat(ai-scribe): Using a more specific import.

feat(ai-scribe): Using Timer for cleaner lifecycle management

feat(ai-scribe): Adding error handling to fromMap() for consistency.

feat(ai-scribe): Disposing the ValueNotifier

feat(ai-scribe): Redundant null check after assignment

feat(ai-scribe): Fix calling `registerSelectionChangeListener` multiple times may be inefficient.

feat(ai-scribe): Safer type handling for JavaScript callback args

feat(ai-scribe): Fix async callbacks not awaited in switch statement.

feat(ai-scribe): Fix binding lifecycle mismatch for GetAIScribeConfigInteractor

feat(ai-scribe): Fix ai prompts

feat(ai-scribe): Fix unawaited async call to `_setupSelectionListener`

feat(ai-scribe): Fix switch cases use top-origin coordinates while `PositionedDirectional(bottom:)`` expects bottom-origin coordinates.

feat(ai-scribe): Adding error handling for selection listener setup.
This commit is contained in:
dab246
2025-12-19 15:09:56 +07:00
committed by Dat H. Pham
parent 6e56a50713
commit 6e09d853fd
20 changed files with 142 additions and 101 deletions
@@ -25,7 +25,6 @@ import 'package:model/email/email_action_type.dart';
import 'package:model/extensions/session_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:rich_text_composer/rich_text_composer.dart';
import 'package:scribe/scribe/ai/domain/usecases/generate_ai_text_interactor.dart';
import 'package:tmail_ui_user/features/base/before_reconnect_manager.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/composer/domain/repository/composer_repository.dart';
@@ -147,7 +146,7 @@ class MockMailboxDashBoardController extends Mock implements MailboxDashBoardCon
RxBool get isPopupMenuOpened => false.obs;
@override
Rx<AIScribeConfig> get cachedAIScribeConfig => Rx<AIScribeConfig>(AIScribeConfig.initial());
Rx<AIScribeConfig> get cachedAIScribeConfig => AIScribeConfig.initial().obs;
}
@GenerateNiceMocks([
@@ -183,7 +182,6 @@ class MockMailboxDashBoardController extends Mock implements MailboxDashBoardCon
MockSpec<PrintEmailInteractor>(),
MockSpec<ComposerRepository>(),
MockSpec<SaveTemplateEmailInteractor>(),
MockSpec<GenerateAITextInteractor>(),
// Additional Getx dependencies mock specs
MockSpec<NetworkConnectionController>(fallbackGenerators: fallbackGenerators),