Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
d1818f6
feat: create monorepo directory structure (apps/, packages/)
bryanstevensacosta Jan 28, 2026
1f814f4
feat: create hexagonal layer structure in apps/core/src
bryanstevensacosta Jan 28, 2026
0140c4b
feat: create test structure with short naming convention
bryanstevensacosta Jan 28, 2026
d0e9edf
feat: move Python configuration files to apps/core/
bryanstevensacosta Jan 28, 2026
c1410f0
feat: create property-based tests directory
bryanstevensacosta Jan 28, 2026
f7f3380
feat: update setup.py and remove CLI dependencies
bryanstevensacosta Jan 28, 2026
45d2d05
feat: update .gitignore for monorepo structure
bryanstevensacosta Jan 28, 2026
47ea734
feat: validate monorepo structure and fix qwen-tts version
bryanstevensacosta Jan 28, 2026
9c6e296
docs: fix domain models classification in task 2.1
bryanstevensacosta Jan 28, 2026
12df393
feat(domain): implement domain models (AudioSample, VoiceProfile)
bryanstevensacosta Jan 28, 2026
337569d
docs: mark task 2.1 (Domain Models) as complete
bryanstevensacosta Jan 28, 2026
c107d1a
feat(domain): implement domain ports (interfaces)
bryanstevensacosta Jan 28, 2026
ada80d8
chore: exclude .kiro directory from git tracking
bryanstevensacosta Jan 28, 2026
443b72e
feat(domain): implement domain services
bryanstevensacosta Jan 28, 2026
a1fd3ad
feat(domain): implement domain exceptions
bryanstevensacosta Jan 28, 2026
d29d504
feat(domain): implement domain tests and fix imports
bryanstevensacosta Jan 28, 2026
ffc6fd3
docs(domain): validate domain layer completion
bryanstevensacosta Jan 28, 2026
a367ca1
feat(infra): implement Qwen3 TTS engine adapter
bryanstevensacosta Jan 28, 2026
fad5a15
refactor: remove chunking logic and add engine capabilities
bryanstevensacosta Jan 28, 2026
64ca7e2
feat: add double validation for text length (defense in depth)
bryanstevensacosta Jan 28, 2026
b112c5d
docs: add UI integration guide for text length validation
bryanstevensacosta Jan 28, 2026
88d39a9
refactor: extract Qwen3 generation modes into separate classes
bryanstevensacosta Jan 28, 2026
3a9f67a
feat: implement audio processor adapter with librosa
bryanstevensacosta Jan 28, 2026
29048df
feat(infra): implement FileProfileRepository with JSON serialization
bryanstevensacosta Jan 28, 2026
8323b2f
feat(infra): implement config provider adapters (YAML and Env)
bryanstevensacosta Jan 28, 2026
b254120
test(infra): add comprehensive tests for FileProfileRepository
bryanstevensacosta Jan 28, 2026
1561c76
chore: validate infrastructure adapters (Task 3.6)
bryanstevensacosta Jan 28, 2026
4c672fc
test: complete infrastructure tests for Tasks 3.5 and 3.6
bryanstevensacosta Jan 28, 2026
c2ca6bd
feat: implement Task 4.1 - DTOs (Data Transfer Objects)
bryanstevensacosta Jan 28, 2026
3667222
feat: implement Task 4.2 - Use Cases
bryanstevensacosta Jan 28, 2026
844f1ad
feat: implement Task 4.4 - Application Tests
bryanstevensacosta Jan 28, 2026
eb0b084
docs: mark Task 4.5 Validation as completed
bryanstevensacosta Jan 28, 2026
817373d
refactor: rename test directories to match source structure (app/infra)
bryanstevensacosta Jan 29, 2026
b6ca012
feat(api): implement TTSStudio main API entry point
bryanstevensacosta Jan 29, 2026
d5bdf2b
refactor(tasks): defer Python-Tauri bridge decision to Phase 8.5
bryanstevensacosta Jan 29, 2026
b45752c
chore: remove CLI and Gradio, update README (Phase 6.1-6.3)
bryanstevensacosta Jan 29, 2026
88db6de
chore: add apps/core/data/ to .gitignore
bryanstevensacosta Jan 29, 2026
2931808
docs: clarify desktop-first model management strategy
bryanstevensacosta Jan 29, 2026
7deb5d5
docs: update tasks.md - mark .gitignore update complete
bryanstevensacosta Jan 29, 2026
10203ae
docs: update documentation for Python API and replace yourusername wi…
bryanstevensacosta Jan 29, 2026
9040f54
chore: complete Phase 6 - remove CLI/Gradio, update docs and tests
bryanstevensacosta Jan 29, 2026
8caf440
feat: add Phase 7.1 integration tests
bryanstevensacosta Jan 29, 2026
3c6432c
feat: add Phase 7.2 property-based tests
bryanstevensacosta Jan 29, 2026
1bbf8bd
docs: add Phase 7.3 documentation (MIGRATION.md, HEXAGONAL_ARCHITECTU…
bryanstevensacosta Jan 29, 2026
feed73a
chore: Phase 7.4 code quality - black, ruff, mypy, type fixes
bryanstevensacosta Jan 29, 2026
8bdfa24
fix(tests): correct constructor signatures and remove old src directory
bryanstevensacosta Jan 29, 2026
a554793
feat(ci): update CI/CD workflows for monorepo structure
bryanstevensacosta Jan 29, 2026
be07da5
docs(phase7): update Phase 7.6 validation status
bryanstevensacosta Jan 29, 2026
f585e1c
test: fix all failing tests - Phase 7.6 complete
bryanstevensacosta Jan 29, 2026
73bd02a
docs: update README for Phase 8.1 - reflect monorepo structure and pr…
bryanstevensacosta Jan 29, 2026
27ee9c7
docs(specs): clean project-rename-restructure spec - remove all Tauri…
bryanstevensacosta Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions .github/workflows/ci.yml → .github/workflows/ci-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,18 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
cd apps/core
pip install -e ".[dev]"

- name: Check code formatting with Black
run: black --check src/ tests/
run: |
cd apps/core
black --check src/ tests/

- name: Lint with Ruff
run: ruff check src/ tests/
run: |
cd apps/core
ruff check src/ tests/

type-check:
name: type-check
Expand All @@ -104,10 +109,13 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
cd apps/core
pip install -e ".[dev]"

- name: Type check with MyPy
run: mypy src/
run: |
cd apps/core
mypy src/

test:
name: test
Expand Down Expand Up @@ -137,15 +145,18 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
cd apps/core
pip install -e ".[dev]"

- name: Run tests with pytest
run: pytest tests/ --cov=voice_clone --cov-report=xml --cov-report=term-missing
run: |
cd apps/core
pytest tests/ --cov=src --cov-report=xml --cov-report=term-missing

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
file: ./coverage.xml
file: ./apps/core/coverage.xml
fail_ci_if_error: false

# Job to notify when CI is waiting for approval
Expand Down
77 changes: 77 additions & 0 deletions .github/workflows/ci-rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: CI - Rust (Tauri Backend)

on:
push:
branches: [master, main, develop]
paths:
- 'apps/desktop/src-tauri/**'
- '.github/workflows/ci-rust.yml'
pull_request:
branches: [master, main, develop]
paths:
- 'apps/desktop/src-tauri/**'
- '.github/workflows/ci-rust.yml'

jobs:
lint:
name: Rust Lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
override: true

- name: Check formatting
run: |
cd apps/desktop/src-tauri
cargo fmt -- --check

- name: Clippy
run: |
cd apps/desktop/src-tauri
cargo clippy -- -D warnings

test:
name: Rust Test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

- name: Run tests
run: |
cd apps/desktop/src-tauri
cargo test

build:
name: Rust Build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

- name: Build
run: |
cd apps/desktop/src-tauri
cargo build --release

# Note: This workflow is a placeholder for Phase 8 (Tauri Desktop App Setup)
# It will be activated once apps/desktop/src-tauri/ is created
98 changes: 98 additions & 0 deletions .github/workflows/ci-typescript.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: CI - TypeScript (Tauri Frontend)

on:
push:
branches: [master, main, develop]
paths:
- 'apps/desktop/src/**'
- 'apps/desktop/package.json'
- 'apps/desktop/tsconfig.json'
- '.github/workflows/ci-typescript.yml'
pull_request:
branches: [master, main, develop]
paths:
- 'apps/desktop/src/**'
- 'apps/desktop/package.json'
- 'apps/desktop/tsconfig.json'
- '.github/workflows/ci-typescript.yml'

jobs:
lint:
name: TypeScript Lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: apps/desktop/package-lock.json

- name: Install dependencies
run: |
cd apps/desktop
npm ci

- name: Lint
run: |
cd apps/desktop
npm run lint

- name: Type check
run: |
cd apps/desktop
npm run type-check

test:
name: TypeScript Test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: apps/desktop/package-lock.json

- name: Install dependencies
run: |
cd apps/desktop
npm ci

- name: Run tests
run: |
cd apps/desktop
npm test

build:
name: TypeScript Build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: apps/desktop/package-lock.json

- name: Install dependencies
run: |
cd apps/desktop
npm ci

- name: Build
run: |
cd apps/desktop
npm run build

# Note: This workflow is a placeholder for Phase 8 (Tauri Desktop App Setup)
# It will be activated once apps/desktop/ is created with React + TypeScript + Vite
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,63 @@ venv/
env/
ENV/

# Monorepo - Python Core Library (apps/core/)
apps/core/build/
apps/core/dist/
apps/core/*.egg-info/
apps/core/.pytest_cache/
apps/core/.coverage
apps/core/htmlcov/
apps/core/.mypy_cache/
apps/core/.ruff_cache/
apps/core/.hypothesis/

# Monorepo - Desktop App (apps/desktop/)
apps/desktop/node_modules/
apps/desktop/dist/
apps/desktop/.next/
apps/desktop/.turbo/
apps/desktop/out/
apps/desktop/build/
apps/desktop/.DS_Store
apps/desktop/*.tsbuildinfo
apps/desktop/npm-debug.log*
apps/desktop/yarn-debug.log*
apps/desktop/yarn-error.log*

# Monorepo - Tauri (apps/desktop/src-tauri/)
apps/desktop/src-tauri/target/
apps/desktop/src-tauri/Cargo.lock

# Data (IMPORTANT: personal data)
data/samples/
data/outputs/
data/models/
data/cache/
data/profiles/

# Monorepo - Core Library Data (models, cache, outputs)
apps/core/data/

# Configuration (personal)
config/config.yaml
.env
.env.local
.env.*.local

# IDE
.vscode/
.idea/
*.swp
*.swo

# Kiro (specs and steering files)
.kiro/

# OS
.DS_Store
Thumbs.db
*.log

# Testing
.pytest_cache/
Expand All @@ -60,3 +97,9 @@ dmypy.json

# Private
recordings-from-iphone

# Temporary files
*.tmp
*.bak
*.swp
*~
Loading
Loading