Xiaoxia AI
7803be3f11
feat: add GET task detail endpoint and use case
...
- GetTaskDetailUseCase for single task retrieval
- GET /api/v1/project-management/tasks/{task_id} endpoint
- Updated task detail page to use real API
- Added integration test for task detail retrieval
- Test passed: 1 new test green
2026-06-16 12:55:33 +08:00
Xiaoxia AI
c92cf78ea1
feat: add project management module (tasks, milestones, issues)
...
- Domain: Task, Milestone, TaskIssue entities with business logic
- Ports: TaskRepository, MilestoneRepository, TaskIssueRepository interfaces
- Adapters: In-Memory and SQLAlchemy implementations
- Application: Use cases for task/milestone/issue operations
- API: FastAPI routes for project management
- Database: Alembic migration 002 for new tables
- Tests: 7 integration tests all passing
2026-06-16 11:02:06 +08:00
Xiaoxia AI
5f0a280669
feat: add tag functionality to Asset
...
- domain: Asset.tags field with add_tag/remove_tag methods
- validation: no empty tags, auto deduplication
- tests: 5 integration tests (add/remove/duplicate/empty/idempotent)
- all 13 tests passing
2026-06-15 16:47:45 +08:00
Xiaoxia AI
a8177c1268
feat: add asset classification pipeline
...
- domain: ClassificationJob entity with AssetClassification enum (scenic, product, person, animal, food, tech, sport, music, other)
- ports: ClassificationJobRepository interface
- application: SubmitClassificationJobUseCase
- adapters: InMemoryClassificationJobRepository
- worker: classify_asset task with mock classification logic
- tests: full classification pipeline test
- all 8 integration tests passing
2026-06-15 15:39:28 +08:00
Xiaoxia AI
e4e2595e70
feat: add PostgreSQL persistence layer
...
- adapters: SQLAlchemy implementations for all 4 repositories (Project, AssetLibrary, Asset, IngestJob)
- models: SQLAlchemy ORM models with proper schema
- database: connection config and session management
- tests: SQLAlchemy repository integration test (in-memory SQLite)
- all 7 integration tests passing
2026-06-15 15:29:13 +08:00
Xiaoxia AI
d5504166ff
feat: add upload asset endpoint
...
- API: POST /api/upload endpoint (mock storage, real ingest pipeline trigger)
- schemas: UploadAssetRequest, UploadAssetResponse
- tests: full upload→ingest→asset pipeline test
- all 6 integration tests passing
2026-06-15 15:23:53 +08:00
Xiaoxia AI
43fd071e3b
feat: implement ingest asset worker task
...
- worker: real ingest_asset logic (metadata extraction mock, Asset creation, IngestJob status update)
- API: ingest_jobs route now enqueues async task via ingest_asset.delay()
- tests: full ingest pipeline test (submit -> process -> verify asset + job status)
- all 5 integration tests passing
2026-06-15 15:20:58 +08:00
Xiaoxia AI
b5a62ee9a3
feat: initial SaaS scaffold
...
- domain: User, Workspace, Project, AssetLibrary, Asset, IngestJob
- ports: repository interfaces
- application: use cases
- adapters: in-memory
- API: FastAPI 5 routes
- worker: Celery ingest_asset
- tests: 4 passing
2026-06-15 15:17:40 +08:00