aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* fix(email): scope cancellation to active requestssaturneric2026-09-123-8/+15
| | | | | | - use request-scoped cancellation for interactive stop actions - cancel all queued work when dialogs and workers are closing - prevent stop actions from affecting subsequent requests
* fix(email): scope cancellation to request sequencesaturneric2026-09-122-22/+107
| | | | | | | - associate cancellation state with each operation sequence - preserve queued stops until the targeted operation starts - prevent stale cancellation state from affecting later requests - reject cancelled IMAP and SMTP operations before network activity
* fix(email): preserve queued cancellation statesaturneric2026-09-123-4/+56
| | | | | | | - track cancellations by operation sequence number - retain stops issued before queued work begins - add teardown cancellation for all pending operations - add a dedicated cancelled mail error response
* test(email): cover ambiguous SMTP submission outcomessaturneric2026-09-123-1/+280
| | | | | | | | - add fake server modes for acceptance, disconnect, and stalled responses - verify cancellation after DATA is classified as ambiguous - verify cancellation before submission remains a clean stop - assert ambiguous outcomes are never marked retryable - cover ambiguity precedence across SMTP exception types
* fix(email): preserve ambiguous send outcomessaturneric2026-09-123-20/+109
| | | | | | | - classify all final-stage submission errors as ambiguous - add a Stop action that cancels without assuming delivery failed - prevent closing the dialog while submission status is unresolved - record abandoned in-flight submissions to warn against duplicate sends
* fix(email): preserve binary data across cryptosaturneric2026-09-1215-148/+918
| | | | | | | - use QByteArray for MIME, signing, encryption, and decryption data - call sized SDK APIs to preserve embedded NULs and non-UTF-8 bytes - hash and verify the exact serialized octets - add crypto boundary tests for binary data and output sizes
* chore(email): update vmime submodule referencesaturneric2026-09-121-0/+0
| | | | - update vmime to the latest referenced commit
* i18n(email): update email translation catalogsaturneric2026-09-129-940/+18320
| | | | | | - add translations for account, IMAP, sending, and editor interfaces - include security, encryption, signature, and attachment messages - refresh source locations and update changed email terminology
* test(email): expand coverage for search and account behaviorsaturneric2026-09-124-22/+264
| | | | | | | - enhance the fake IMAP server for multi-message fetch responses - verify batched searches return all matches in newest-first order - cover safe suggested email filenames and reserved device names - test account labels and pinned certificate persistence and normalization
* fix(email): sanitize suggested message filenamessaturneric2026-09-121-2/+21
| | | | | | - use sanitized subjects for imported tab titles and save names - prefill the save dialog with the message-derived filename - add EML and all-files filters with an untitled fallback
* feat(email): improve account settings UXsaturneric2026-09-122-65/+782
| | | | | | | | | | - add default account controls and an explicit empty state - preserve unreadable account data instead of overwriting it - stage removals and credentials until settings are applied - support cleartext loopback connections without silent conversion - add responsive scrolling, validation, theming, and certificate controls - run connection tests asynchronously with cancellation and guidance - improve status reporting with categorized errors and actionable advice
* feat(email): improve mailbox recovery and usabilitysaturneric2026-09-122-42/+255
| | | | | | | | | | - allow failed accounts to be retried through Refresh - avoid decrypting credentials when checking availability - add empty-folder messages and message-list context actions - add Refresh and Find shortcuts plus account and folder mnemonics - refresh theme-dependent colors when the dialog is restyled - report stopped operations and handle invalid account selection - keep TLS certificate warnings available for Settings-based fixes
* feat(email): add suggested save filename and filtersaturneric2026-09-122-0/+25
| | | | | | - derive the save filename from the current subject field - provide an EML file type filter for save dialogs - document the optional page/view save contract methods
* fix(email): clear cancellation after each requestsaturneric2026-09-121-38/+79
| | | | | | | - reset cancellation state when every IMAP operation completes - preserve cancellation handling when Connect replaces its timeout factory - batch search message retrieval into one server request - restore search results to the requested UID order
* fix(email): preserve unreadable account settingssaturneric2026-09-122-7/+50
| | | | | | - add load outcomes for unreadable and newer schemas - prevent callers from overwriting settings they cannot parse - retain writable empty results for absent account data
* feat(email): suggest safe filenames from subjectssaturneric2026-09-122-0/+36
| | | | | | - derive message filenames from trimmed subjects for clearer saving - sanitize separators, reserved names, and empty subjects safely - cap subject length and ensure the `.eml` extension is present
* test(email): cover safe attachment opening rulessaturneric2026-09-121-0/+81
| | | | | | | - verify ordinary document extensions are allowed - reject executables, archives, scripts, and unknown types - test sanitized filenames and final-extension handling - ensure sender-provided MIME types do not affect decisions
* feat(email): add part actions and empty statessaturneric2026-09-122-13/+167
| | | | | | | - add save, import, and clipboard actions to the part context menu - show notices when messages or parts are unavailable - centralize view color updates for theme changes - refresh tree styling and use semantic cell tones
* feat(email): enhance security view interactionssaturneric2026-09-122-51/+285
| | | | | | | | | - add contextual actions for copying values and fingerprints - support key import and repeated signature verification requests - add section navigation and empty-state notices - preserve themed colors and refresh them after style changes - distinguish unattempted verification from unsuccessful verification - mark missing-key rows for targeted context-menu actions
* feat(email): enhance message interaction and security UXsaturneric2026-09-122-121/+743
| | | | | | | | | | - add tab icons, keyboard shortcuts, focus handling, and theme updates - support attachment context menus, opening, key import, and safer removal - improve attachment sizing, save feedback, and batch error reporting - expose verification retry and distinguish unverified outcomes - show encryption key capability and HTML source rendering notices - add clearer failure dialogs for reply and forward operations - centralize view colors and improve layout spacing and accessibility
* feat(email): enhance header view controlssaturneric2026-09-122-16/+82
| | | | | | | | - add find and escape shortcuts for header filtering - replace empty tables with dedicated notice messages - preserve context-menu row selection for keyboard invocation - centralize theme color updates and tree styling - add support for displaying custom notices
* feat(email): track signed message verification statesaturneric2026-09-121-0/+16
| | | | | - distinguish unattempted verification from empty and successful results - enable accurate security status messaging and retry offers
* feat(email): restrict attachment opening to safe file typessaturneric2026-09-123-5/+302
| | | | | | | | - allow only recognized document, media, and text extensions - reject unknown, executable, script, archive, and extensionless files - add reusable busy cursor and empty-state UI helpers - support theme-aware recoloring for banners, rules, and tree cells - polish tree headers and preserve semantic cell tones across palette changes
* chore(email): update vmime submodule referencesaturneric2026-09-121-0/+0
| | | | - point the email module to the newer vmime revision
* test(email): add regression coverage for message handlingsaturneric2026-09-124-0/+111
| | | | | | | - cover preservation of raw UTF-8 bytes in signed entities - verify missing or invalid signature validity is not fully valid - ensure cancelled IMAP operations do not poison later requests - add an 8-bit signed email fixture and document its manifest entry
* fix(email): harden email operation error handlingsaturneric2026-09-1213-87/+262
| | | | | | | | | | | - validate GPG result pointers before dereferencing them - preserve UTF-8 bytes during signing, encryption, and verification - reset cancellation state after each IMAP operation - report unexpected worker exceptions instead of terminating threads - detach blocked threads safely during shutdown - prevent missing signatures from appearing fully valid - correct signature validity highlighting for problematic signatures - restore Qt translation extraction and preserve send dialogs on tab closure
* feat(email): show analysis cards for failed operationssaturneric2026-09-121-19/+131
| | | | | | | | - include structured descriptions and details in result card payloads - use Info analysis APIs for email verification, signing, and encryption - preserve failure analysis cards across email and plain-text workflows - add engine names and operation-specific detail titles to cards - fall back to plain-text results when no structured content exists
* fix(email): restrict forensic mode availabilitysaturneric2026-09-122-3/+23
| | | | | | | - disable the toggle for non-message views - disable it for signed or encrypted messages already protected - preserve forensic editing for plain received messages - remove the unused IsForensicMode accessor
* feat(email): preserve message identity before sendingsaturneric2026-09-124-19/+93
| | | | | | | | - prioritize configured account labels in sender completion - mint and retain Message-ID during compose field collection - remove the unverifiable delivery status from send results - preserve identities through protected message serialization - add tests for supplied and encrypted Message-ID handling
* feat(email): save sent messages to IMAP Sentsaturneric2026-09-127-70/+444
| | | | | | | | - append sent messages byte-for-byte through a writable folder - avoid duplicate copies when the server already filed the message - report unresolved, failed, and unverified save outcomes - update dialog status text to distinguish send and filing results - extend fake IMAP coverage for APPEND literals and save behavior
* test(email): cover outgoing message behaviorsaturneric2026-09-121-0/+189
| | | | | | | - test plausible and invalid recipient address handling - verify source-byte reuse rules for loaded and forensic messages - validate frozen confirmation summaries and attachment counts - cover encoded, folded, and header-scoped subject extraction
* fix(email): preserve draft state across document reloadssaturneric2026-09-121-3/+19
| | | | | | - detect byte-identical round trips from the host - retain original and received flags for unchanged documents - prevent drafts from being reclassified as received messages
* feat(email): redesign send dialog feedbacksaturneric2026-09-124-103/+677
| | | | | | | | | - keep message summary and send results visible on one surface - show subjects, attachment counts, recipients, and account readiness - add precise submission, Sent-folder, and delivery status reporting - preserve source bytes when required and extract message subjects safely - add plausible address and source-reuse decision helpers - provide progress feedback, expandable evidence, and auto-close behavior
* feat(email): improve compose field guidancesaturneric2026-09-122-75/+337
| | | | | | | | | - add keyring-backed address completion for sender and recipients - validate send requirements as fields change and explain blockers - keep unavailable message actions visible with helpful tooltips - distinguish received messages from locally serialized drafts - preserve original message bytes while rebuilding generated drafts - remove the body source-status notice from the toolbar
* feat(email): improve IMAP message detail workflowsaturneric2026-09-122-112/+236
| | | | | | | | | - redesign the detail pane with responsive card-based metadata - add elided Message-ID display with tooltip and copy action - combine date and size into a compact secondary summary - add visual empty-state and cached-message indicators - open downloaded messages immediately without confirmation - use Qt translation helpers throughout the controller
* feat(email): add themed view styling componentssaturneric2026-09-121-0/+191
| | | | | | | - add palette-aware colors, typography, and blending helpers - introduce bordered cards and tinted informational banners - add status state enums and themed status indicator dots - avoid stylesheets to preserve live host theme updates
* test(email): add transport and MIME regression coveragesaturneric2026-09-127-3/+1265
| | | | | | | | | - add fake IMAP and SMTP servers for wire-level worker tests - verify SMTP authentication, TLS handling, and credential rejection - cover IMAP read-only access, PEEK fetches, progress, and decoding - test removing nested OpenPGP signatures while preserving user attachments - validate legacy port and page-size settings are ignored - add SDK allocator and logging stubs for network test builds
* feat(email): harden message viewing and mailbox browsingsaturneric2026-09-127-284/+516
| | | | | | | | | | - show HTML bodies as plain source without rendering or network access - replace rich-text links and resource loading with safe text-only display - add paginated mailbox navigation with bounded memory usage - disable unusable accounts and explain authentication or connection failures - report message download progress and keep the mailbox open after fetching - improve locked-message banners, icons, field styling, and status notices - remove obsolete HTML preference and remote-content state handling
* feat(email): add fetch progress and safe re-signingsaturneric2026-09-125-5/+199
| | | | | | | - remove previous signatures and signer-added keys before re-signing - preserve user-attached OpenPGP keys during cleanup - emit incremental progress while fetching message bodies - document signature stripping and fetch progress behavior
* fix(email): decode IMAP header text for displaysaturneric2026-09-121-2/+69
| | | | | | | - decode encoded subjects through vmime typed values and UTF-8 - format sender headers with decoded display names and addresses - preserve wire-form extraction for Message-ID and Date - fall back to raw header text when typed parsing fails
* fix(email): improve IMAP controller menu actionsaturneric2026-09-121-3/+8
| | | | | | - rename the action to match neighboring controller entries - add the receive email icon for clearer menu recognition - update the tooltip to describe opening the controller dialog
* feat(email): redesign IMAP message browsersaturneric2026-09-122-123/+523
| | | | | | | | | | | - replace the table with a message list and metadata detail pane - connect automatically when opening or switching accounts - add cached account views for faster navigation between accounts - add refresh controls and delayed progress feedback for network requests - render server-provided message data as selectable plain text - disable opening oversized messages and explain the restriction inline - track pagination state independently from button state - preserve the selected folder and restore previous account views
* fix(email): enforce SMTP auth and certificate pinningsaturneric2026-09-124-24/+70
| | | | | | | | | - require SMTP authentication when credentials are configured - apply certificate pins to the presented leaf certificate - preserve certificate validity and hostname verification - correctly normalize vmime-provided SHA-256 fingerprints - pass protocol context to TLS policy setup - update connection test comments and formatting
* feat(email): enforce policy-driven mail portssaturneric2026-09-124-45/+52
| | | | | | | | - remove persisted and editable port overrides - show read-only port hints derived from security settings - ignore legacy port values when loading accounts - remove persisted message page-size configuration - retain sent-folder override as the sole account-specific option
* chore(email): bump module version to 2.0.0saturneric2026-09-121-1/+1
|
* fix(email): align crypto menu with message statesaturneric2026-09-121-24/+38
| | | | | | | - restrict verification and decryption to supported MIME structures - offer producing operations based on the current security state - preserve read-only behavior for forensic messages - handle malformed OpenPGP messages with diagnostic operations
* test(m_email): add security behavior coveragesaturneric2026-09-122-0/+460
| | | | | | | | - cover protected-layer unwrapping and byte preservation - verify nested signatures, encrypted parts, and malformed offsets - test raw header splitting, folding, duplicates, and malformed lines - validate security classification before decryption - verify composite status precedence and plain-message no-ops
* feat(email): add searchable header inspectorsaturneric2026-09-127-85/+198
| | | | | | | | | - replace header display modes with a searchable two-column tree - show decoded values alongside exact raw header bytes - support filtering, tooltips, and copying values or whole fields - preserve malformed and folded headers for forensic inspection - guard VMIME_STATIC definitions across module builds and tests - initialize result statuses and avoid aggregating failed operations
* feat(email): add protected message controlssaturneric2026-09-124-93/+1097
| | | | | | | | | | - add signature-layer removal while preserving original entity bytes - parse folded raw headers without losing malformed fields - lock signed and encrypted content against accidental edits - add decrypt panel and security actions to the message view - add raw-source unlock controls and crypto operation signals - expose content insertion and operation availability to the host - preserve pending unwrapped messages during source serialization
* fix(email): defer IMAP connections and release folderssaturneric2026-09-124-46/+139
| | | | | | | | | - add an explicit Connect action instead of connecting on dialog open - require stored passwords and direct users to Mail Account settings - reset browsing state when switching accounts - release listed and previously opened folders before reopening them - cache folder metadata without retaining vmime folder objects - move network import action from the workspace menu to Advanced