aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* i18n(email): update email translationssaturneric2026-09-139-4860/+10044
| | | | | | | - refresh message locations across email components - add strings for account management, IMAP, and TLS flows - add message security, attachment, and sending prompts - remove obsolete email interface strings
* style(email): standardize UI message punctuationsaturneric2026-09-138-34/+36
| | | | | | | - replace double-hyphen separators with natural punctuation - simplify labels and descriptions for clearer readability - use consistent spacing and separators across email views - replace typographic ellipses with three-dot action labels
* test(email): cover fuzzing and view layout rulessaturneric2026-09-133-1/+238
| | | | | | | - replay public and golden corpora through the email fuzz harness - exercise degenerate inputs and truncated messages - test details sizing, tab selection, action density, and security refresh - add email secret tests and required production sources to the build
* feat(email): redesign message details viewsaturneric2026-09-136-115/+635
| | | | | | | | | - move message inspection into a dedicated details dialog - add Message and Raw Source display modes with keyboard shortcuts - preserve details window size and selected tab across sessions - add responsive action compaction and security refresh handling - force vmime module options to ensure TLS configuration is applied - extract layout decisions into testable helper functions
* fix(email): harden mail delivery safeguardssaturneric2026-09-134-15/+72
| | | | | | | - refuse overwriting accounts from newer schema versions - preserve the resolved Sent folder in failure notifications - ignore stale or stopped Sent-copy connection callbacks - record certificate hostname validity and expiration details
* test(email): cover crypto boundary hardeningsaturneric2026-09-124-3/+443
| | | | | | | | - test rejection of oversized decrypted plaintext - test bounded signature verification and exact region bytes - test hostile MIME nesting, part counts, and boundaries - add lifecycle and wiping tests for EMailSecret - update network tests to use secure secret values
* fix(email): reject non-regular and oversized filessaturneric2026-09-121-0/+31
| | | | | | - prevent FIFOs, device nodes, and proc entries from blocking readAll() - recheck the opened file size to handle path races and size changes - keep oversized message files from being loaded on the GUI thread
* fix(email): secure password and probe cleanupsaturneric2026-09-122-12/+62
| | | | | | - wipe staged passwords through a shared cleanup helper - release probe credentials after starting connection tests - cancel and wait for running probe threads during destruction
* fix(email): register secret pointer metatypesaturneric2026-09-121-0/+4
| | | | | - register EMailSecretPtr for queued signal arguments - preserve password sharing without copying secret contents
* fix(email): bound parsing and verification worksaturneric2026-09-123-3/+52
| | | | | | - reject decrypted plaintext exceeding the parse size ceiling - limit signature verification to prevent excessive blocking GPG calls - use zero-copy views for nested message and signature regions
* fix(email): secure password lifetime handlingsaturneric2026-09-127-48/+58
| | | | | | | - pass credentials through shared EMailSecret pointers - erase secrets when the final holder is released - avoid wiping detached QString copies during authentication - use credential existence checks without loading secret contents
* feat(email): secure credential storagesaturneric2026-09-124-12/+199
| | | | | | | - replace QString passwords with wipeable EMailSecret objects - adopt and erase credentials returned by the secure cache - prevent accidental secret copies with move-only storage - support shared secret ownership across queued Qt connections
* chore(email): update vmime submodulesaturneric2026-09-121-0/+0
| | | | - update vmime to the latest referenced commit
* fix(email): bound MIME parser input and nestingsaturneric2026-09-122-1/+45
| | | | | | - reject oversized messages before vmime parsing to limit memory use - cap recursive MIME nesting to prevent stack exhaustion and excessive work - apply safeguards within the shared parsing helper for all input paths
* test(email): cover targeted request cancellationsaturneric2026-09-121-3/+39
| | | | | | | - target cancellation calls at specific operation identifiers - verify queued requests stop without affecting later operations - ensure idle cancellation does not cancel the next request - update SMTP cancellation tests to use explicit operation IDs
* 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-1216-148/+934
| | | | | | | - 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