fix(assets): keep remote catalog identity on Tools source picks - #235
Closed
cursor[bot] wants to merge 1 commit into
Closed
fix(assets): keep remote catalog identity on Tools source picks#235cursor[bot] wants to merge 1 commit into
cursor[bot] wants to merge 1 commit into
Conversation
Remote explorer confirm no longer depends on the 100-item Tools cache. Picks past that window (or before the cache loads) kept asset_id and workspace_id from the catalog instead of being forced into __uploads__. Hollow reconstructed values without a URL cannot be reconfirmed. Co-authored-by: ignaciodelcano+dcl <ignaciodelcano+dcl@gmail.com>
25 tasks
Owner
|
Taken onto development as a follow-up after #230 mixed (C1 branch is merged). Typed |
3 tasks
Owner
|
Superseded after #230 merged; re-landed on development. |
25 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen ejecutivo
Qué cambia
Tools deja de tratar un asset de la librería remota como si viniera de Uploads cuando no está en la caché local de 100 ítems. El explorer remoto tampoco reconfirma un valor hueco (sin URL) al reabrir el diálogo.
Para qué sirve
El PR #230 permite elegir assets más allá de los primeros 100. Sin este arreglo, quitar fondo / upscale / revoice busca el archivo en
uploads/o pisa una ref de voz válida.Impacto para el usuario
Elegir un vídeo o imagen antiguo desde la librería de Tools usa el workspace correcto. Reabrir el picker de voz y pulsar Elegir ya no borra la muestra.
Riesgo
Estado
Summary
#230 pages the shared explorer against
/api/v1/assets. Tools still resolved the confirmedApiOutputthroughmatchCatalogByOutputon a 100-itemfetchAssetscache. A remote pick that is not in that cache (item 110, or any pick before the cache lands) droppedasset_idand forcedworkspaceto__uploads__.runToolthen looked in uploads for a workspace file — 404, or the wrong file if a homonym exists there.A second hole: remote
resolveExplorerSelectionkept a reconstructedselectedOutputwith an empty URL (Tools voice refs). Confirm stayed enabled andvoiceRefFromOutputrewrote a workingaudio/...path to a bare filename.Overview
resolveToolSourcetrustsitem.asset_id/item.workspace_idfrom the remote confirm when the local catalog miss happens. Device uploads without a catalog id still resolve under__uploads__.Remote confirm now requires a non-empty URL. Hollow reconstructed values are not treated as the current selection.
Stacked on
grok/agente1-c1-paginacion(#230). Merge this with or after that PR.Detailed changes
Backend
Unchanged. The Tools HTTP contract already accepts
asset_id+source_workspace; the client was sending the wrong pair.UI and Wizard
ui/src/lib/toolSource.ts—resolveToolSourceToolsPanel.applySourceuses that helperremoteCatalogselection/confirm ignores empty-URL reconstructionsData, provenance and compatibility
Workspace catalog picks keep
asset_idand the real workspace. Uploads without an id stay__uploads__.Files and ownership
ui/src/lib/toolSource.ts(new) — identity mappingui/src/components/Sidebar/ToolsPanel.tsx— applySourceui/src/features/asset-picker/remoteCatalog.ts— selection/confirm guardsui/tests/toolsPanel.test.tsx,ui/tests/remoteCatalog.test.ts— regression testsfileFromStudioOutput(uses URL), SceneAnimator (no workspaceId / still local)Validation
Date (UTC): 2026-09-07
Base SHA:
06d857063a073951085b3288b15f5c6258090b8a(grok/agente1-c1-paginacion)Head SHA:
78589f2115b5037a1ae05b2645ab4631fe8c32efValidation scope: focused
python scripts/verify_clean_repo.pypython -m compileall -q app/services app/launch.py scriptsFocused Python tests: N/A (UI-only)
cd ui && npm run i18n:checkUI tests:
npx tsx --tsconfig tsconfig.app.json --import ./tests/setupI18n.ts --test tests/remoteCatalog.test.ts tests/toolsPanel.test.tsx tests/assetExplorerRemote.test.tsx tests/assetPickerContract.test.ts— 34 passedcd ui && npm run lint -- --max-warnings=0on the touched files — passcd ui && npm run buildgit diff --check— cleanE2E/smoke checks: N/A (no live Tools job)
Code quality
main: pending CICI and review
CI of this HEAD: pending
Independent agent review of this HEAD: pending
Human merge click (operational, not code review): pending
Reviewed at current HEAD
Earlier review; HEAD has changed since (stale)
Pending
Unavailable
Do not merge until asked.
Coste de la tarea
Notes and limitations
No live remove-background / upscale / revoice job was run here. Coverage is the identity mapping and explorer confirm guards.
Follow-up work
#230 still owns paging itself. #232 (stale compositor layer binds) remains open.
Checklist