feat: 重构 memory 系统,支持 user memory 和 work memory 分离

This commit is contained in:
qzl
2026-03-23 14:25:47 +08:00
parent 3aacc756db
commit 6be616f108
70 changed files with 7031 additions and 431 deletions
+13
View File
@@ -98,6 +98,19 @@ class ApiClient implements IApiClient {
}
}
@override
Future<Response<T>> put<T>(
String path, {
dynamic data,
Options? options,
}) async {
try {
return await _dio.put<T>(path, data: data, options: options);
} on DioException catch (e) {
throw ApiException.fromDioError(e);
}
}
@override
Future<Response<T>> delete<T>(
String path, {
+1
View File
@@ -3,6 +3,7 @@ import 'package:dio/dio.dart';
abstract class IApiClient {
Future<Response<T>> get<T>(String path, {Options? options});
Future<Response<T>> post<T>(String path, {dynamic data, Options? options});
Future<Response<T>> put<T>(String path, {dynamic data, Options? options});
Future<Response<T>> patch<T>(String path, {dynamic data, Options? options});
Future<Response<T>> delete<T>(String path, {dynamic data, Options? options});
Future<Stream<String>> getSseLines(
+4
View File
@@ -26,6 +26,7 @@ import '../../features/messages/data/inbox_api.dart';
import '../../features/settings/data/settings_api.dart';
import '../../features/settings/data/services/settings_user_cache.dart';
import '../../features/settings/data/services/user_profile_cache_repository.dart';
import '../../features/settings/data/services/memory_service.dart';
import '../../features/users/data/users_api.dart';
import '../../features/todo/data/todo_api.dart';
import '../../features/todo/data/todo_repository.dart';
@@ -111,6 +112,9 @@ Future<void> configureDependencies() async {
final settingsApi = SettingsApi(apiClient);
sl.registerSingleton<SettingsApi>(settingsApi);
final memoryService = MemoryService(apiClient);
sl.registerSingleton<MemoryService>(memoryService);
sl.registerSingleton<SettingsUserCache>(
SettingsUserCache(userProfileCacheRepository),
);
+12
View File
@@ -24,6 +24,8 @@ import '../../features/todo/ui/screens/todo_edit_screen.dart';
import '../../features/settings/ui/screens/settings_screen.dart';
import '../../features/settings/ui/screens/features_screen.dart';
import '../../features/settings/ui/screens/memory_screen.dart';
import '../../features/settings/ui/screens/user_memory_detail_screen.dart';
import '../../features/settings/ui/screens/work_memory_detail_screen.dart';
import '../../features/settings/ui/screens/edit_profile_screen.dart';
final _homeSecondLevelRoutes = [
@@ -41,6 +43,8 @@ final _protectedRoutes = [
'/calendar/events',
AppRoutes.settingsFeatures,
AppRoutes.settingsMemory,
AppRoutes.settingsMemoryUser,
AppRoutes.settingsMemoryWork,
AppRoutes.settingsEditProfile,
AppRoutes.messageInviteList,
];
@@ -176,6 +180,14 @@ GoRouter createAppRouter(AuthBloc authBloc) {
path: AppRoutes.settingsMemory,
builder: (context, state) => const MemoryScreen(),
),
GoRoute(
path: AppRoutes.settingsMemoryUser,
builder: (context, state) => const UserMemoryDetailScreen(),
),
GoRoute(
path: AppRoutes.settingsMemoryWork,
builder: (context, state) => const WorkMemoryDetailScreen(),
),
GoRoute(
path: AppRoutes.settingsEditProfile,
builder: (context, state) => const EditProfileScreen(),
+2
View File
@@ -30,5 +30,7 @@ class AppRoutes {
static const settingsMain = '/settings';
static const settingsFeatures = '/settings/features';
static const settingsMemory = '/settings/memory';
static const settingsMemoryUser = '/settings/memory/user';
static const settingsMemoryWork = '/settings/memory/work';
static const settingsEditProfile = '/edit-profile';
}