@@ -647,11 +647,18 @@ class SubsyncarrPlusClient {
647647 const icon = result . success ? '✓' : '✗' ;
648648 const className = result . success ? 'success' : 'error' ;
649649 const duration = ( result . duration / 1000 ) . toFixed ( 1 ) ;
650+ const error =
651+ ! result . success && result . message
652+ ? `<div class="engine-error-message">${ this . escapeHtml ( result . message ) } </div>`
653+ : '' ;
650654
651655 return `
652656 <div class="engine-result ${ className } ">
653- <span>${ icon } ${ name } </span>
654- <span class="duration">${ duration } s</span>
657+ <div class="engine-result-row">
658+ <span>${ icon } ${ name } </span>
659+ <span class="duration">${ duration } s</span>
660+ </div>
661+ ${ error }
655662 </div>
656663 ` ;
657664 } )
@@ -813,13 +820,45 @@ class SubsyncarrPlusClient {
813820 '<div class="file-list-empty">No files in this category</div>' ;
814821 } else {
815822 const html = files
816- . map ( ( file ) => `<div class="file-list-item">${ this . cleanFileName ( file . file_path ) } </div>` )
823+ . map ( ( file ) => {
824+ const name = this . cleanFileName ( file . file_path ) ;
825+ const errors = category === 'failed' ? this . renderFileErrors ( file ) : '' ;
826+ return `<div class="file-list-item">${ this . escapeHtml ( name ) } ${ errors } </div>` ;
827+ } )
817828 . join ( '' ) ;
818829 document . getElementById ( 'fileListContent' ) . innerHTML = html ;
819830 }
820831
821832 document . getElementById ( 'fileListModal' ) . classList . remove ( 'hidden' ) ;
822833 }
834+
835+ // Render the error messages for each engine that failed on a file
836+ renderFileErrors ( file ) {
837+ let engines ;
838+ try {
839+ engines = JSON . parse ( file . engines || '{}' ) ;
840+ } catch {
841+ return '' ;
842+ }
843+
844+ const failures = Object . entries ( engines ) . filter ( ( [ , result ] ) => result && result . success === false ) ;
845+
846+ if ( failures . length === 0 ) {
847+ return '' ;
848+ }
849+
850+ return `<div class="file-list-errors">${ failures
851+ . map ( ( [ name , result ] ) => {
852+ const message = result . message || 'Unknown error' ;
853+ const stderr = result . stderr ? `<pre class="file-error-detail">${ this . escapeHtml ( result . stderr ) } </pre>` : '' ;
854+ return `<div class="file-error">
855+ <span class="file-error-engine">${ this . escapeHtml ( name ) } </span>
856+ <span class="file-error-message">${ this . escapeHtml ( message ) } </span>
857+ ${ stderr }
858+ </div>` ;
859+ } )
860+ . join ( '' ) } </div>`;
861+ }
823862}
824863
825864// Initialize client when DOM is ready
0 commit comments