Commit Graph

8 Commits

Author SHA1 Message Date
ي
8000d21a05 Potential fix for code scanning alert no. 139: Uncontrolled data used in path expression
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-05-25 17:25:28 +05:30
ajaysi
9b3bec698b fix: credit tracking, voice clone TTL, avatar upload ui, asset serving fallback, OAuth encryption, free plan video renders, backlink outreach sprint 2026-05-25 17:07:35 +05:30
ajaysi
93a1985d9f fix(image-studio): add asset library saving + 402 subscription error handling
Backend:
- New POST /api/image-studio/save-to-library endpoint
  Saves generated base64 images to workspace disk and creates ContentAsset
  record for the unified asset library. Returns asset_id, file_url, filename.

Frontend:
- Added saveImageToLibrary() to useImageStudio hook
- CreateStudio auto-saves generated images to asset library after creation
- All 8 API operations now use _formatErrorMessage() helper
  for 402/429 subscription limit errors with upgrade prompts
  instead of generic error messages
2026-05-14 09:11:51 +05:30
ajaysi
4fdc7d3ea0 refactor(phase3-session-b4): remove legacy router, __init__.py creates router directly
- Deleted empty routers/image_studio_router.py (legacy file)
- __init__.py now creates APIRouter directly instead of re-exporting from legacy
- Same prefix, tags, and all 33 routes preserved
- app.py imports unchanged: from routers.image_studio import router as image_studio_router

Final package structure:
routers/image_studio/
  ├── __init__.py  ← creates router, includes 10 sub-routers
  ├── models.py    ← 40 Pydantic models
  ├── deps.py      ← shared dependencies
  ├── create.py edit.py face_swap.py upscale.py  ← endpoint groups
  ├── control.py social.py transform.py
  ├── compress.py convert.py health.py
2026-05-14 09:11:51 +05:30
ajaysi
85d6cc1d20 refactor(phase3-session-b3): extract create, transform, compress, convert into sub-routers
Extracted remaining 4 endpoint groups:
- create.py: 7 endpoints (create, 3xtemplates, providers, estimate-cost, platform-specs)
- transform.py: 4 endpoints (image-to-video, talking-avatar, estimate-cost, video serving)
- compress.py: 5 endpoints (compress, batch, estimate, formats, presets)
- convert.py: 4 endpoints (convert-format, batch, supported, recommendations)

Legacy router is now empty (only imports + empty router definition).
All 33 routes preserved. Package is fully modular.
2026-05-14 09:11:51 +05:30
ajaysi
0d20dcb801 refactor(phase3-session-b2): extract edit and face_swap into sub-routers
Extracted 2 endpoint groups into separate sub-router modules:
- edit.py: 4 endpoints (POST /edit/process, GET /edit/operations, GET /edit/models, POST /edit/recommend)
- face_swap.py: 3 endpoints (POST /face-swap/process, GET /face-swap/models, POST /face-swap/recommend)

All 33 routes preserved (10 extracted in B1, 7 extracted in B2, 16 remaining in legacy).
2026-05-14 09:11:51 +05:30
ajaysi
463cfdc5cf refactor(phase3-session-b1): extract upscale, control, social, health into sub-routers
Extracted 4 endpoint groups into separate sub-router modules:
- health.py: 1 endpoint (GET /health)
- upscale.py: 1 endpoint (POST /upscale)
- control.py: 2 endpoints (POST /control/process, GET /control/operations)
- social.py: 2 endpoints (POST /social/optimize, GET /social/platforms/{platform}/formats)

__init__.py now composes these sub-routers into the legacy router.
All 33 routes preserved. No functional changes.
2026-05-14 09:11:51 +05:30
ajaysi
19a5af9682 refactor(phase3-session-a): extract Image Studio models and deps into separate modules
- Created routers/image_studio/models.py with all 40 Pydantic models
- Created routers/image_studio/deps.py with get_studio_manager() and _require_user_id()
- Renamed old monolithic image_studio.py -> image_studio_router.py
- Updated __init__.py to re-export the router for backward compatibility
- Old file now imports models and deps from new modules (no inline definitions)

Backward compatibility: from routers.image_studio import router still works.
Route count unchanged: 33 routes, prefix /api/image-studio.
2026-05-14 09:11:51 +05:30