Skip to content

Split config/types.rs into domain-specific config modules #1735

@bug-ops

Description

@bug-ops

Problem

crates/zeph-core/src/config/types.rs is 3331 lines — a monolithic file containing all config struct definitions. Each new feature adds more config sections, making this file increasingly hard to navigate and maintain.

Proposed Changes

Split by domain:

  • config/agent.rs — AgentConfig, CompressionConfig, RoutingConfig, LearningConfig
  • config/memory.rs — MemoryConfig, EmbeddingConfig, DocumentConfig, GraphConfig
  • config/security.rs — SecurityConfig, TrustConfig, ExfiltrationGuardConfig, SandboxConfig
  • config/providers.rs — ProviderConfig, OllamaConfig, ClaudeConfig, OpenAiConfig, GeminiConfig
  • config/features.rs — Feature-gated configs (ExperimentConfig, OrchestrationConfig, SchedulerConfig)
  • config/logging.rs — LoggingConfig, LogRotation
  • config/ui.rs — TuiConfig, SubAgentConfig

Re-export all types from config/mod.rs to preserve the public API.

Acceptance Criteria

  • No file in config/ exceeds 500 lines
  • All re-exports preserved in config/mod.rs
  • All tests pass unchanged
  • No change to serialized TOML format

Files

  • crates/zeph-core/src/config/types.rs (3331 lines)
  • crates/zeph-core/src/config/mod.rs

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorCode refactoring without functional changes

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions