personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

support: harden ticket detail loads

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+10 -6
+10 -6
apps/support/workspace.html
··· 701 701 detail.innerHTML = '<p>Loading...</p>'; 702 702 703 703 try { 704 - const resp = await fetch('/app/support/api/tickets/' + id); 705 - const t = await resp.json(); 704 + const t = await window.apiJson('/app/support/api/tickets/' + encodeURIComponent(id)); 706 705 const statusClass = 'support-status-' + (t.status || 'open').replace(/[^a-z-]/g, ''); 707 706 708 707 let html = ` ··· 929 928 attachOnlyBtn.disabled = false; 930 929 }); 931 930 } 932 - } catch (e) { 931 + } catch (err) { 932 + const serverMessage = err.serverMessage 933 + ? '<div class="support-empty-hint">' + esc(err.serverMessage) + '</div>' 934 + : ''; 933 935 detail.innerHTML = '<div class="support-empty">' + 934 936 '<div class="support-empty-icon">⚠️</div>' + 935 - '<div class="support-empty-heading">couldn\'t load this ticket</div>' + 936 - '<div class="support-empty-hint">try going back and selecting it again</div>' + 937 - '<button class="support-empty-action" id="error-back-btn">back to tickets</button>' + 937 + '<div class="support-empty-heading">Couldn\'t load ticket.</div>' + 938 + serverMessage + 939 + '<div class="support-empty-hint">Go back and select it again.</div>' + 940 + '<button class="support-empty-action" id="error-back-btn">Back to tickets</button>' + 938 941 '</div>'; 942 + window.logError(err, { context: 'support-open-ticket' }); 939 943 const errorBackBtn = document.getElementById('error-back-btn'); 940 944 if (errorBackBtn) errorBackBtn.addEventListener('click', () => { 941 945 detail.classList.remove('active');