refactor: remove unused code

This commit is contained in:
cogwheel0
2025-10-01 00:35:56 +05:30
parent fc4430e8df
commit 03bb03446b
3 changed files with 85 additions and 124 deletions

View File

@@ -404,47 +404,18 @@ class SocketConnectionStream extends _$SocketConnectionStream {
} }
@Riverpod(keepAlive: true) @Riverpod(keepAlive: true)
class ConversationDeltaStream extends _$ConversationDeltaStream { Stream<ConversationDelta> conversationDeltaStream(
StreamController<ConversationDelta>? _controller; Ref ref,
ProviderSubscription<AsyncValue<SocketService?>>? _serviceSubscription; ConversationDeltaRequest request,
SocketEventSubscription? _socketSubscription; ) {
final controller = StreamController<ConversationDelta>.broadcast(sync: true);
@override ProviderSubscription<AsyncValue<SocketService?>>? serviceSubscription;
Stream<ConversationDelta> build(ConversationDeltaRequest request) { SocketEventSubscription? socketSubscription;
final controller = StreamController<ConversationDelta>.broadcast(
sync: true,
onCancel: _maybeTearDownSocket,
);
_controller = controller;
final initialService = ref void bindSocket(SocketService? service) {
.watch(socketServiceManagerProvider) socketSubscription?.dispose();
.maybeWhen(data: (service) => service, orElse: () => null); socketSubscription = null;
_bindSocket(initialService, request);
_serviceSubscription = ref.listen<AsyncValue<SocketService?>>(
socketServiceManagerProvider,
(_, next) => _bindSocket(
next.maybeWhen(data: (service) => service, orElse: () => null),
request,
),
);
ref.onDispose(() {
_serviceSubscription?.close();
_serviceSubscription = null;
_socketSubscription?.dispose();
_socketSubscription = null;
_controller?.close();
_controller = null;
});
return controller.stream;
}
void _bindSocket(SocketService? service, ConversationDeltaRequest request) {
_socketSubscription?.dispose();
_socketSubscription = null;
if (service == null) { if (service == null) {
return; return;
@@ -452,68 +423,65 @@ class ConversationDeltaStream extends _$ConversationDeltaStream {
switch (request.source) { switch (request.source) {
case ConversationDeltaSource.chat: case ConversationDeltaSource.chat:
_socketSubscription = service.addChatEventHandler( socketSubscription = service.addChatEventHandler(
conversationId: request.conversationId, conversationId: request.conversationId,
sessionId: request.sessionId, sessionId: request.sessionId,
requireFocus: request.requireFocus, requireFocus: request.requireFocus,
handler: (event, ack) { handler: (event, ack) {
_controller?.add( if (!controller.isClosed) {
ConversationDelta.fromSocketEvent( controller.add(
ConversationDeltaSource.chat, ConversationDelta.fromSocketEvent(
event, ConversationDeltaSource.chat,
ack, event,
), ack,
); ),
);
}
}, },
); );
break; break;
case ConversationDeltaSource.channel: case ConversationDeltaSource.channel:
_socketSubscription = service.addChannelEventHandler( socketSubscription = service.addChannelEventHandler(
conversationId: request.conversationId, conversationId: request.conversationId,
sessionId: request.sessionId, sessionId: request.sessionId,
requireFocus: request.requireFocus, requireFocus: request.requireFocus,
handler: (event, ack) { handler: (event, ack) {
_controller?.add( if (!controller.isClosed) {
ConversationDelta.fromSocketEvent( controller.add(
ConversationDeltaSource.channel, ConversationDelta.fromSocketEvent(
event, ConversationDeltaSource.channel,
ack, event,
), ack,
); ),
);
}
}, },
); );
break; break;
} }
} }
void _maybeTearDownSocket() { final initialService = ref
if (_controller?.hasListener == true) { .watch(socketServiceManagerProvider)
return; .maybeWhen(data: (service) => service, orElse: () => null);
} bindSocket(initialService);
_socketSubscription?.dispose();
_socketSubscription = null;
}
/// Provides direct access to the underlying stream. serviceSubscription = ref.listen<AsyncValue<SocketService?>>(
/// Note: This getter is necessary for compatibility with StreamProvider. socketServiceManagerProvider,
/// While Riverpod 3 discourages public getters on Notifiers, this is a (_, next) => bindSocket(
/// pragmatic exception for stream delegation patterns. next.maybeWhen(data: (service) => service, orElse: () => null),
// ignore: avoid_public_notifier_properties ),
Stream<ConversationDelta> get stream => );
_controller?.stream ?? const Stream<ConversationDelta>.empty();
ref.onDispose(() {
serviceSubscription?.close();
socketSubscription?.dispose();
controller.close();
});
return controller.stream;
} }
final conversationDeltaEventsProvider =
StreamProvider.family<ConversationDelta, ConversationDeltaRequest>((
ref,
request,
) {
final notifier = ref.watch(
conversationDeltaStreamProvider(request).notifier,
);
return notifier.stream;
});
// Attachment upload queue provider // Attachment upload queue provider
final attachmentUploadQueueProvider = Provider<AttachmentUploadQueue?>((ref) { final attachmentUploadQueueProvider = Provider<AttachmentUploadQueue?>((ref) {
final api = ref.watch(apiServiceProvider); final api = ref.watch(apiServiceProvider);

View File

@@ -1331,29 +1331,25 @@ Future<void> regenerateMessage(
}); });
} catch (_) {} } catch (_) {}
final chatEventsStream = ref final chatEventsStream = ref.read(
.read( conversationDeltaStreamProvider(
conversationDeltaStreamProvider( ConversationDeltaRequest.chat(
ConversationDeltaRequest.chat( conversationId: activeConversation.id,
conversationId: activeConversation.id, sessionId: effectiveSessionId,
sessionId: effectiveSessionId, requireFocus: false,
requireFocus: false, ),
), ),
).notifier, );
)
.stream;
final channelEventsStream = ref final channelEventsStream = ref.read(
.read( conversationDeltaStreamProvider(
conversationDeltaStreamProvider( ConversationDeltaRequest.channel(
ConversationDeltaRequest.channel( conversationId: activeConversation.id,
conversationId: activeConversation.id, sessionId: effectiveSessionId,
sessionId: effectiveSessionId, requireFocus: false,
requireFocus: false, ),
), ),
).notifier, );
)
.stream;
final activeStream = attachUnifiedChunkedStreaming( final activeStream = attachUnifiedChunkedStreaming(
stream: stream, stream: stream,
@@ -1901,29 +1897,25 @@ Future<void> _sendMessageInternal(
}); });
} catch (_) {} } catch (_) {}
final chatEventsStream = ref final chatEventsStream = ref.read(
.read( conversationDeltaStreamProvider(
conversationDeltaStreamProvider( ConversationDeltaRequest.chat(
ConversationDeltaRequest.chat( conversationId: activeConversation?.id,
conversationId: activeConversation?.id, sessionId: effectiveSessionId,
sessionId: effectiveSessionId, requireFocus: false,
requireFocus: false, ),
), ),
).notifier, );
)
.stream;
final channelEventsStream = ref final channelEventsStream = ref.read(
.read( conversationDeltaStreamProvider(
conversationDeltaStreamProvider( ConversationDeltaRequest.channel(
ConversationDeltaRequest.channel( conversationId: activeConversation?.id,
conversationId: activeConversation?.id, sessionId: effectiveSessionId,
sessionId: effectiveSessionId, requireFocus: false,
requireFocus: false, ),
), ),
).notifier, );
)
.stream;
final activeStream = attachUnifiedChunkedStreaming( final activeStream = attachUnifiedChunkedStreaming(
stream: stream, stream: stream,

1
tmp/flutter_ai_repo Submodule

Submodule tmp/flutter_ai_repo added at 79187cf7e3