Files
xiaoxia-saas/apps/api
xiaoxia 115b428cb3
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (push) Has been skipped
CI/CD Pipeline / Check push changed paths (push) Successful in 1s
CI/CD Pipeline / Frontend Lint (push) Has been skipped
CI/CD Pipeline / PR Build API Image (push) Has been skipped
CI/CD Pipeline / PR Build Worker Image (push) Has been skipped
CI/CD Pipeline / PR Build Web Image (push) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 58s
CI/CD Pipeline / Build Staging API Image (push) Successful in 1m0s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 1m29s
CI/CD Pipeline / Retag skipped Staging API Image (push) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (push) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m39s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m33s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m32s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m47s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m55s
CI/CD Pipeline / Validate - Style (push) Successful in 10m36s
CI/CD Pipeline / Integration Tests (push) Successful in 12m2s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 12m51s
CI/CD Pipeline / Unit Tests (push) Successful in 16m33s
CI/CD Pipeline / Validate - Security (push) Successful in 30m17s
CI/CD Pipeline / Build Production API Image (push) Has been skipped
CI/CD Pipeline / Build Production Web Image (push) Has been skipped
CI/CD Pipeline / Build Production Worker Image (push) Has been skipped
CI/CD Pipeline / CI Gate (push) Has been skipped
CI/CD Pipeline / Canary Release to Production (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
fix(lipsync): 修复 GET /jobs/{id} 轮询 500(naive/aware datetime 减法 TypeError)
Postgres TIMESTAMP WITHOUT TIMEZONE 返回 naive datetime,路由层
(_now - job.updated_at).total_seconds() 抛 TypeError: can't subtract
offset-naive and offset-aware datetimes,被全局异常 handler 吞为 500
INTERNAL_ERROR,前端持续轮询一直报错。

修复:比较前把 naive datetime 当作 UTC wall clock 补 tzinfo(与代码写入
default=datetime.now(UTC) 一致),补 2 个单测覆盖 naive stale/fresh 两个分支。
176 tests passed.
2026-09-16 23:24:26 +08:00
..
2026-06-15 15:17:40 +08:00
2026-07-11 16:29:07 +08:00
2026-06-15 15:17:40 +08:00

xiaoxia-saas API

结构

  • app/core/:配置与基础能力
  • app/api/:路由组织
  • app/schemas/:请求响应模型
  • app/dependencies.py:依赖注入入口
  • main.py:FastAPI 启动入口

当前可用接口

  • GET /api/health
  • GET /api/projects?workspace_id=...
  • POST /api/projects