Skip to content

fix(assets): land orphan Labs and Tools voice-ref fixes on development - #222

Merged
IAnMove merged 2 commits into
developmentfrom
fix/land-orphan-picker-fixes
Sep 7, 2026
Merged

fix(assets): land orphan Labs and Tools voice-ref fixes on development#222
IAnMove merged 2 commits into
developmentfrom
fix/land-orphan-picker-fixes

Conversation

@IAnMove

@IAnMove IAnMove commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

Cherry-picks two Cursor fixes that were merged into already-merged feature branches, so they never reached development:

Both cherry-picks applied cleanly on current origin/development (5b4e6334, includes #217).

Do not merge until asked. After this lands, #221 can be closed as duplicate.

Test plan

  • tests/labsImagePick.test.mjs — 2 passed
  • tests/assetPickerContract.test.ts — 18 passed (includes voice-ref path)
  • GitHub CI (full UI/e2e not run locally)

Older stacked PRs

Coste de la tarea

  • Tests simulados: 0 tokens externos
  • Generaciones: 0

Note

Medium Risk
Touches generation post-processing path resolution and shared Labs upload plumbing; changes are scoped but affect voice clone and Character Creator/Series import flows.

Overview
Fixes two asset-picker gaps that broke voice clone / revoice and Labs image picks when paths did not match what the server expects.

Voice references: Post-processing and Tools now store server-relative paths via voiceRefFromOutput (e.g. audio/9f2.wav for uploads under uploads/audio/, workspace filenames unchanged). Generation resolves voice_clone_refs through new resolve_voice_ref_paths, which confines paths to uploads/workspace, accepts audio/video, and drops invalid or missing refs so stale picks do not abort SeedVC.

Labs / Series images: ensureUploadsPath always fetches the asset and POSTs to /api/v1/upload, returning the API’s absolute path. The previous shortcut for items already under /api/v1/uploads/ produced relative paths like uploads/hero.png that downstream describe/import logic resolved incorrectly (e.g. uploads/uploads/... and 400s).

Tests cover upload subdir resolution, voice-ref filtering, and the updated upload-copy behavior in unit and Series picker flows.

Reviewed by Cursor Bugbot for commit c7cd378. Configure here.

cursoragent and others added 2 commits September 7, 2026 17:31
…resolve refs

ensureUploadsPath returned uploads/${name} for already-uploaded images.
Auto-describe resolves relative names under the uploads root, so that
path became uploads/uploads/${name} and the default empty-prompt orbit
flow 400'd. Always copy through /api/v1/upload and keep the absolute
path the upload API already returns.

Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
AssetInput stores the upload filename, but /api/v1/upload-audio writes
into uploads/audio/. Revoice 404'd and SeedVC silently skipped the clone.
Keep the audio/ prefix via getServerMediaReference and resolve clone refs
before applying them.

Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_fca6a3f3-4c5a-4cbc-94c1-bcab5d419b26)

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

PR Review — Loreframe Studio

Risk: low
Scope: 11 file(s); +218/-16; React UI, backend services

Automated review from scripts/analyze_pr.py. This is a heuristic pass (no LLM) so humans still own the merge decision.

Findings

  • low — UI changed — rebuild before merge
    Run cd ui && npm run build (CI already does this). Pinokio Update rebuilds for end users; keep ui/dist untracked.

Changed files

  • modified: app/_launch_runtime.py, app/services/media_paths.py, tests/test_media_path_security.py, ui/src/components/Sidebar/PostProcessing.tsx, ui/src/components/Sidebar/ToolsPanel.tsx, ui/src/features/asset-picker/adapters.ts, ui/src/features/asset-picker/index.ts, ui/src/lib/labsImagePick.ts, ui/tests/assetPickerContract.test.ts, ui/tests/labsImagePick.test.mjs, ui/tests/seriesLabsPicker.test.tsx

CONTRIBUTING checklist

  • python scripts/verify_clean_repo.py
  • python -m compileall -q app/services app/launch.py scripts
  • cd ui && npm run build if the UI changed
  • No weights, CivitAI sidecars, or generated guides
  • Stays local-first (no required accounts / telemetry)

Posted by the repo PR review workflow. Re-runs on each push to the PR.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Code health

Quality score: 54.2/100

Higher is better. The score is a trend dashboard; the independent ratchet below remains the CI gate.

Component Weight Current Change
Cyclomatic health 45% 54.3 +0.0
File concentration 25% 60.8 +0.0
Oversized-file debt 20% 36.3 +0.0
Modularity 10% 72.9 +0.0

Change vs PR base: +0.0 points.

Metric Value
Production LOC 261,856
Production files 670
Test LOC 90,552
Functions measured 16,788
Functions complexity ≥ 15 824
Maximum complexity 670
Policy code-health-policy-v1
HEAD 295a45c8efd15cf660209663afa2059fb81c4ea5
Base 5b4e6334a8352c95f3706b51afc0eeaf68681e3e
UI measurement complete

Markdown, JSON catalogs and tests are out of this table. Only app/ runtime + ui/src TS/JS count.

Most complex functions

Complexity Where
670 app/wgp.py:7164 generate_video
376 ui/src/stores/useStore.ts:4029 Async method 'startGeneration'
355 app/_launch_runtime.py:23505 _run_generation
308 app/wgp.py:12298 generate_video_tab
271 ui/src/stores/useStore.ts:8572 Async method 'loadSettingsFromOutput'
258 app/services/director/planners/short_film.py:3433 ShortFilmPlanner._plan_story_driven
257 ui/src/components/Sidebar/SceneAnimatorPanel.tsx:478 Function 'SceneAnimatorPanel'
248 app/services/director_pipeline.py:13607 _run_video_generation
245 app/services/director_pipeline.py:7712 _run_pipeline
244 ui/src/features/agent/agentActions.ts:1145 Function 'parseAction'
226 app/services/director_pipeline.py:6541 update_comic_preview
225 ui/src/features/agent/agentActions.ts:2892 Async function 'executeAgentActions'

Trend vs baseline

Metric Δ
Production LOC +45
Test LOC +157
Functions ≥ 15 +0
Maximum complexity +0

Warnings

  • production LOC increased by +45
  • hotspot app/_launch_runtime.py increased by +4 lines

Ratchet passed.

@IAnMove
IAnMove merged commit c9efbd6 into development Sep 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants