Skip to content

Suggestion: Split RemoteDataRepository.kt into smaller domain-specific repositories #101

Description

@adrielGGmotion

Suggestion: Split RemoteDataRepository.kt into smaller domain-specific repositories

Category: Large functions/files
File: composeApp/src/commonMain/kotlin/com/oak/app/data/RemoteDataRepository.kt:1

RemoteDataRepository spans 2855 lines and implements DataRepository with responsibilities spanning service configuration, model management, conversation handling, tool execution, file operations, email, SMS, notifications, SSH, and MCP management. This violates the Single Responsibility Principle and makes the class difficult to navigate, test, and maintain.

Suggested action: Split the class into smaller domain-specific implementations (e.g., ServiceConfigurationRepository, ConversationRepository, ToolExecutionRepository, EmailRepository, SshRepository, McpRepository) that each handle a distinct subset of the DataRepository interface, then compose them via delegation or a common facade.

Metadata

Metadata

Assignees

No one assigned

    Labels

    suggestionAI-generated code improvement suggestion

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions