You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 15, 2026. It is now read-only.
The whole app is hx-boosted, so same-origin anchor clicks are intercepted by HTMX and swapped into #main-content. A boosted click on a link whose response is a raw binary (served by handleMedia, GET /media/{id}/{path...} in internal/web/media.go) would fail to swap and read as "nothing happens." Prime suspect — verify whether the anchor needs hx-boost="false" / hx-disable (or target="_blank") to bypass boosting, and whether handleMedia sets a Content-Disposition: attachment header.
Also confirm mediaURL resolves correctly for the Files tab (images on the same page work, so the path helper itself is likely fine).
Proposed solution / Acceptance criteria
Clicking a file on the Files tab reliably downloads (or opens) it in both browser and desktop-webview modes.
Fix works for infinite-scroll continuation pages (handleGalleryItems → gallery_files_page).
Non-stat-able / missing files still render without breaking the click for valid ones.
Context / Problem
On the Media page's Files tab, clicking a file attachment does nothing — it neither opens nor downloads the file.
Steps to reproduce
Expected vs actual
Investigation notes (verified)
templates/gallery.htmlgallery_files_pageuses<a class="media-file-name" href="{{mediaURL .ConversationID .RelPath}}" download="{{.OriginalName}}">(thedownloadattribute was added for issue Media/attachment UX: don't navigate the webview to raw files; styled error pages joestump/msgbrowse#161).hx-boosted, so same-origin anchor clicks are intercepted by HTMX and swapped into#main-content. A boosted click on a link whose response is a raw binary (served byhandleMedia,GET /media/{id}/{path...}ininternal/web/media.go) would fail to swap and read as "nothing happens." Prime suspect — verify whether the anchor needshx-boost="false"/hx-disable(ortarget="_blank") to bypass boosting, and whetherhandleMediasets aContent-Disposition: attachmentheader.mediaURLresolves correctly for the Files tab (images on the same page work, so the path helper itself is likely fine).Proposed solution / Acceptance criteria
handleGalleryItems→gallery_files_page).Relevant code
internal/web/templates/gallery.html(gallery_files_page)internal/web/media.go(handleMedia,/media/{id}/{path...})internal/web/gallery.go(decorateFiles,handleGalleryItems)