odysseus/static
Alexandre Teixeira 8eaf742b43 fix(email): replace html2pdf with Print / save PDF and harden EML export
SAN-157 removed the html2pdf client library. The PDF export code added
in the original PR commit referenced the deleted library and would fail
at runtime. Replace the html2pdf-based _downloadSelectedEmailPdf with a
browser Print / save PDF workflow using a sandboxed iframe and
window.print(), matching the established pattern in document.js and
compare/index.js.

Changes:
- Replace _loadEmailHtml2Pdf and _downloadSelectedEmailPdf with
  _printSelectedEmails using a sandboxed iframe + contentWindow.print()
- Update menu label from 'PDF' to 'Print / save PDF'
- Add 512 MiB total size cap to /messages-download-bulk to prevent
  unbounded memory growth when exporting many large messages
- Update test assertions to verify the browser print pattern and
  confirm html2pdf is not referenced
- Add regression tests for size cap, selection count validation,
  non-numeric UID rejection, and partial batch failure accounting
2026-10-20 10:14:55 +01:00
..
css fix(ci): restore dev pytest baseline (#6704) 2026-10-13 22:11:23 +01:00
fonts chore(publication): close pre-integration release blockers 2026-10-05 01:37:49 +01:00
icons fix(publication): restore project-origin branding and demo assets (#6561) 2026-10-07 02:08:34 +01:00
js fix(email): replace html2pdf with Print / save PDF and harden EML export 2026-10-20 10:14:55 +01:00
lib chore(publication): close pre-integration release blockers 2026-10-05 01:37:49 +01:00
test-fixtures Squash Odysseus development history 2026-09-11 06:04:19 +00:00
app.js merge: reconcile PR 40 with current lab 2026-10-01 05:03:58 +01:00
icon.ico feat(launcher): add portable windows launcher (#976) 2026-06-16 04:58:16 +01:00
index.html feat(settings): opt-in reasoning effort for utility model calls (#6572) 2026-10-13 21:02:16 +01:00
login.html fix(publication): restore project-origin branding and demo assets (#6561) 2026-10-07 02:08:34 +01:00
manifest.json fix(publication): restore project-origin branding and demo assets (#6561) 2026-10-07 02:08:34 +01:00
modal-control-variants.html Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00
research-ascii-variants.html Squash Odysseus development history 2026-09-11 06:04:19 +00:00
research-ascii-variants.js Squash Odysseus development history 2026-09-11 06:04:19 +00:00
sw.js refactor(notes): decompose Notes into feature-owned modules (#6713) 2026-10-15 09:29:41 +01:00
wave-variants.html Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00
whirlpool-variants.html Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00