refactor(config): centralize configuration management in `project_config`
liumaolin
8f68d0a
- Move `config.py` from `core` to root-level `project_config.py`
- Update imports throughout the project to use the new module
- Adjust paths to use centralized constants like `DEFAULT_MODEL_DIR`
- Improve maintainability by unifying configuration for TTS, ASR, and pipelines
- Remove redundant configuration instances in submodules
feat(api): implement AsyncTrainingManager MVP with SQLite persistence
liumaolin
e43edbb
- Add api_server module with adapter pattern architecture
- Implement AsyncTrainingManager using asyncio.subprocess + SQLite
- Add TaskQueueAdapter abstract base class for future server mode
- Create domain models: Task, TaskStatus, ProgressInfo
- Add run_pipeline.py wrapper script for subprocess execution
- Create config module for centralized environment variables
- Add aiosqlite dependency to pyproject.toml
- Include test config files for pipeline validation
The AsyncTrainingManager provides:
- Async task queue with SQLite persistence
- Real-time progress tracking via stdout JSON parsing
- Task cancellation and status querying
- Progress subscription for SSE streaming
- Application restart recovery support