版本历史记录
omoifly
RetroMail 0.1.22
2026.09.17

- Add light, dark and system appearance options on desktop and mobile, saved on the current device. - Improve message and interface contrast in dark mode, preserve images and readable brand colors, and remove dense stripes from desktop confirmation dialogs. - Add basic rich-text composition with formatting, links and lists, plus a plain-text mode. - Show recipients as address tokens for easier editing, removal and draft recovery. - Improve rendering of HTML emails, complex tables and calendar invitations, and remember image-display choices for each message. - Smooth mobile page and back transitions, and refine classic mailbox navigation and Aqua interface details.

omoifly
RetroMail 0.1.13
2026.09.09

- Speed up mail lists and the unified inbox with fewer redundant refreshes. Show read and unread changes immediately while confirming them in the background. - Fix messages still appearing unread after opening a notification and returning to the list. Improve read-state and unread-count consistency across windows and after reconnection. - Remove the brief body-unavailable message when opening mail for the first time, and improve body loading, cache reuse, and navigation between messages. - Autosave unfinished recipient text so editing can continue after reopening a draft. Check invalid and duplicate recipients before sending. - Refine recipient suggestions with Aqua styling and mobile layouts. Fix clipped dropdowns and awkward scrolling, and improve keyboard selection, pasted addresses, separators, and deduplication. - Enlarge the desktop compose window and remember resized dimensions while adapting to smaller screens and mobile layouts. - Strengthen draft autosave, attachment operations, and editing across devices to protect recent changes from older requests. Improve recovery after interrupted sending and prompt users to check uncertain outcomes before resending. - Improve horizontal reading of mail tables, unread filtering, and search on mobile. Preserve the reading position when returning to the list. - Reduce initial app downloads, offer retries when mail lists, drafts, or the interface fail to load, and improve recovery from browser resource-loading failures. - Include draft attachments and integrity checks in backups, preserve existing data during restores, and strengthen protection for drafts and attachments. - Add performance diagnostics that exclude message content and addresses, improve diagnostic statistics refreshes, and retain automatic log rotation and cleanup.

omoifly
RetroMail 0.1.6
2026.09.01

- Improves mobile message zooming, panning, text selection, and copying. - Improves compatibility with complex HTML and Outlook messages; affected bodies can fall back safely without blocking later synchronization. - Clarifies message delivery states, outcome verification, and history cleanup. - Supports direct LazyCat sign-in, access from multiple devices, and data isolation between users. - Strengthens automatic synchronization recovery and diagnostics, with daily reminders for persistent account problems.

omoifly
RetroMail 0.1.1
2026.08.17

# RetroMail 0.1.1 - Improves two-finger zooming and navigation after zooming in mobile message bodies for a smoother, more reliable reading experience. - Improves text selection and copying on mobile, making it easier to select message content with a long press without interfering with zoom or drag gestures. # RetroMail 0.0.23 - Fixes legacy HTML `background` attributes creating duplicate style attributes when they precede `style`, which dropped authored repeat, position, size, and border declarations. Background resources still load only through the RetroMail proxy after reader approval. - Promotes only whitespace-only `span` wrappers whose direct content is tables to block structure, removing anonymous line boxes and baseline gaps that stretched fixed-height background slices while preserving text, link, and ordinary inline semantics. - Advances sanitized body caches to version 8 so affected historical messages lazily refetch and repair on their next open without clearing or fully resynchronizing the mailbox, with attribute-order, semantic-boundary, and real-Chromium geometry regressions. # RetroMail 0.0.22 - Trusts only the outer content area and real device viewport when sizing the mobile message host. A zero-width first WebView layout can no longer fall back to a sender-authored 660px canvas and expand the conversation card, remote-image notice, or document. - Adds cancellable momentum to one-finger dragging using the host page's monotonic clock and the same two-axis pan owner. A new touch, wheel input, or double-click stops momentum immediately, while movement below the long-press threshold still leaves scrolling unchanged. - Turns a zoomed message into an independent reading viewport that fills the mobile content area and places Quick Reply after it. Momentum stops at message boundaries instead of moving the outer page after release; a deliberate drag beyond the boundary can still continue through the conversation. - Adds regressions for zero-width initialization, momentum lifecycle, zoom boundaries, Quick Reply placement, and real 390px CMB geometry. All 132 unit, 23 behavior, and five cross-device visual suites pass. # RetroMail 0.0.21 - Renders mobile HTML mail as one browser-composited surface: the sandboxed iframe renders once and the complete iframe is transformed as a unit, instead of reflowing backgrounds, tables, images, and positioned content through `body zoom`. - Adds a same-context gesture surface above the iframe for physical pinch, long-press, and two-axis drag input, avoiding Android WebView gesture arbitration and second-touch loss across iframe boundaries. A zoomed message can pan horizontally or vertically immediately. - Maps surface taps back to iframe links while preserving RetroMail's external-link confirmation. Double-tapping non-link content restores the default scale, rotation responds only to the stable host width, and enlarged content cannot expand the viewport itself. - Promotes unexpectedly wide responsive mail to a complete logical surface during initial measurement, keeping the iframe free of nested scrolling. Physical link-tap, pinch, jitter, two-axis pan, reset, rotation, overflow, 129 unit, 23 behavior, and five cross-device visual regressions pass. # RetroMail 0.0.17 - Recognizes fixed background sections nested under neutral single-child wrappers such as `fixBand`, preventing mobile clients from compressing their width while retaining unscaled authored heights. The complete canvas now fits as one unit so backgrounds, content, and section geometry remain aligned. - Adds a mobile viewer only for non-reflowable fixed canvases, with Fit Width, Actual Size, stepped and pinch zoom, plus horizontal and vertical panning while zoomed. Double-clicking, rotating the device, or changing the body viewport safely returns to fit width. - Leaves ordinary responsive mail and desktop rendering on their existing paths, with real-Chromium coverage for 390px fitting, 100% actual size, two-axis scrolling, 430px rotation reflow, controlled background loading, and isolated asset failure. # RetroMail 0.0.16 - Avoids restoring an Outlook VML button when a nearby ordinary web button uses `mso-hide: all` without an explicit `!mso` conditional, returning messages such as Duolingo to one call to action. - Scales multi-section fixed background canvases such as CMB mail as one unit on mobile so widths, heights, backgrounds, and iframe height stay aligned. Desktop keeps the authored pixel canvas, and an individual failed background remains isolated. - Advances sanitized body caches to version 6 so affected messages repair lazily without clearing or fully resynchronizing the mailbox, with MSO branch and real desktop/mobile Chromium geometry regressions. # RetroMail 0.0.15 - Preserves allowlisted `class`, `id`, language, ARIA, and ordinary `data-*` attributes on links and images after safe URL rewriting so sender rules such as `.cta` and `.hero` keep matching. - Deduplicates remote assets by URL, removes orphaned entries after final body generation, compacts indexes, and limits reader-approved proxy loading to eight concurrent requests. - Adds static email-CSS budgets that reject animation, transitions, filters, sender variables, extreme dimensions, and extreme transforms while protecting the document root from being hidden and retaining common layout and color declarations. - Caps inline SVG at 32 items and 1 MiB per message with readable title fallbacks, and recognizes harmless ESP comments between paired MSO and web branches without rendering duplicates. - Adds HTML/CSS fuzz invariants, Race coverage, attribute-fidelity, asset-compaction, SVG-budget, MSO-comment, and remote-image-concurrency tests. Sanitized body caches advance to version 5 and lazily refresh historical messages on their next open. # RetroMail 0.0.14 - Fixes mobile clients reusing an SVG Worker response cached under the previous CSP, which left the three Burry check icons missing even though desktop clients rendered them. The Worker protocol and Service Worker cache are versioned forward, and Worker requests now use network-first revalidation with an offline cache fallback. - Adds a 390x844 mobile message-body regression alongside the desktop test, verifying that all three 16x16 Burry SVGs are safely rasterized to PNG without clearing mail or resynchronizing. - Fixes legacy HTML `background` attributes losing their element binding after being registered as controlled assets, so layered marketing messages such as CMB restore backgrounds through the server proxy after reader confirmation while an individual failed asset remains inert. - Safely lowers static VML backgrounds, text containers, and rounded buttons from MSO conditional comments only when no adjacent standard web branch is available; scripts, ActiveX, direct client fetches, and iframe privileges remain blocked. - Advances sanitized body caches to version 4 so historical messages lazily refetch and apply the fix on their next open without clearing the database or resynchronizing the mailbox. # RetroMail 0.0.13 - Fixes the production CSP blocking `resvg-wasm` compilation in the isolated Worker, which prevented safe embedded SVG icons in Substack and similar messages from being rasterized. This adds only `wasm-unsafe-eval`, without enabling JavaScript `unsafe-eval`, external scripts, or message-iframe scripts. - Adds a real-Chromium regression using the exact 16x16 Lucide check SVG from the Burry message and verifies that all three icons become PNGs without CSP violations. # RetroMail 0.0.12 - Fixes stable remote-image indexes being dropped by the final HTML policy and causing every historical image to resolve to transparent asset zero; version-2 caches recover from their manifest without a reset and lazily advance to body-cache version 3. # RetroMail 0.0.11 - Prefers raw MIME for Microsoft message bodies and shares a recursive MIME normalizer with QQ and Exchange for `multipart/alternative`, `multipart/related`, CID, `Content-Location`, charsets, and truncated-message fallback. - Adds a safety-bounded compatibility layer for Outlook conditional comments, common static VML, legacy table attributes, controlled backgrounds, `picture/srcset`, video posters, and malformed CSS declarations. - Normalizes remote message resources into an unforgeable stable manifest; nothing is fetched by default, and reader-approved resources still load only through the authenticated server proxy. - Sanitizes embedded SVG with a dedicated allowlist and rasterizes it to PNG with resvg in an isolated Worker without relaxing the message iframe sandbox or CSP. - Advances the body-cache pipeline to version 2 so stale bodies refetch only when needed while new messages and repeated opens avoid extra provider requests. - Expands desktop, mobile, malicious-input, real-browser geometry, visual-regression, and LPK-content release gates. # RetroMail 0.0.10 - Versions sanitized HTML body caches so an older message is lazily refetched from its provider and passed through the current compatibility layer when next opened. - Retains the older safe cache as a fallback when the provider is temporarily unavailable and retries the refresh on a later open. # RetroMail 0.0.9 - Replaces the email CSS property allowlist with AST-based capability isolation, restoring safe pseudo-elements, modern layout, and message colors. - Neutralizes remote CSS resources, escaping positions, and iframe height loops while retaining controlled server-proxied images. - Adds a DOMPurify browser-side structure check and separates iframe document, event, height, and remote-image lifecycle modules. - Keeps the iframe sandbox and CSP unchanged when the reader explicitly allows proxied images for a message. # RetroMail 0.0.8 - Adds staged SMTP diagnostics, request identifiers, and sanitized provider error details. - Adds fast-sync checks, throttling, provider latency, and Gmail quota metrics. - Improves remote-image caching, mobile layout for complex HTML mail, and backfill notices. - Documents the classic Apple design system and the Docker Hub-to-LazyCat LPK release workflow. # RetroMail 0.0.3 Initial release of RetroMail on the LazyCat App Store. - Supports Gmail, Microsoft 365, Outlook/Hotmail, QQ/Foxmail, standard IMAP/SMTP, and Exchange Server. - Provides a unified inbox, conversation threads, local search, drafts, attachments, calendar invitations, and common mail actions. - Integrates with LazyCat OIDC and keeps mailboxes, credentials, drafts, sessions, search data, and notifications isolated between users. - Supports new-mail notifications through LazyCat clients, with controls for target devices and message previews. - Supports selecting attachments from LazyCat Drive and saving received attachments back to LazyCat Drive. - Provides Simplified Chinese and English interfaces for desktop and mobile devices.

omoifly
RetroMail 0.0.23
2026.08.14