When proxyLinks is empty (no explicit .gves→hires linkage), now also process unlinked high-res proxy blocks that have:
- IsProxy: true
- FilePath: null
- Title metadata (e.g. 'File 1', 'File 2')
Uses fallback lookup to find matching files in hiresMediaFolder by Title, then injects FilePath into the XML Media block. This handles the case where FramelightX creates proxies but doesn't establish explicit linkages.
When searching for high-res files by Title metadata, now looks for files that CONTAIN the Title rather than requiring exact match. This handles cases like:
- Title: 'File 1' → matches 'ZacIsCool--File 1.mp4'
- Title: 'File 2' → matches 'ZacIsCool--File 2.mp4'
Makes the fallback lookup more flexible and practical for real-world filename patterns.
- Added hiresMediaFolder setting to configuration UI
- Implement findHighResFileForGves() to search for missing high-res media files
- When .prproj has unlinked proxy media (FramelightX didn't populate paths), search configured folder for matches
- Modified remapPrproj() to accept options with hiresMediaFolder path
- Uses file Title metadata and video/audio extension matching as fallback
- Server passes hiresMediaFolder setting when calling remapper
Added debug output to analyzePrproj() to show:
- All media blocks found in the project (uid, filePath, isGves, isProxy, title)
- Complete proxy linkage map (which .gves UIDs link to which high-res UIDs)
- Raw media blocks in analysis response (_debug_mediaBlocks)
- Proxy links in analysis response (_debug_proxyLinks)
Also added console.log output for all media blocks and proxy links
to help diagnose why high-res blocks aren't being found/linked.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>