git.lucas.co / cce-mail
mail client (IMAP/SMTP)
git clone https://git.lucas.co/cce-mail.git

DateMessageAuthor
2026-09-24Spacing: the ladder, not literals — and the compose dialog as a popover plateLucas Galante
2026-09-24Repin workspace dependencies to their published revsLucas Galante
2026-09-24Repin workspace dependencies to their published revsLucas Galante
2026-09-24Root plate: the toolkit's standard spec, and the edge inset that goes with itLucas Galante
2026-09-24Repin workspace dependencies to their published revsLucas Galante
2026-09-24Control socket: drive and query the window over `cce-mail ctl`Lucas Galante
2026-09-24Gaps: the window edge inset is the bare padding, like every other gapLucas Galante
2026-09-24Repin workspace dependencies to their published revsLucas Galante
2026-09-24fix: fit the detail pane's subject and metadata lines to the plateLucas Galante
2026-09-24Repin workspace dependencies to their published revsLucas Galante
2026-09-22Repin workspace dependencies to their published revsLucas Galante
2026-09-22fix: context menu rows through row_at, the lit-plate paint, and a live text-box menuLucas Galante
2026-09-22Repin workspace dependencies to their published revsLucas Galante
2026-09-22Repin workspace dependencies to their published revsLucas Galante
2026-09-22Repin workspace dependencies to their published revsLucas Galante
2026-09-22Repin workspace dependencies to their published revsLucas Galante
2026-09-21Repin workspace dependencies to their published revsLucas Galante
2026-09-21Repin workspace dependencies to their published revsLucas Galante
2026-09-21Pin workspace dependencies to GitHub, the crates' originLucas Galante
2026-09-21Repin workspace dependencies to their published revsLucas Galante
2026-09-21Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Repin workspace dependencies to their published revsLucas Galante
2026-09-20Control faces and inset plates take a Material (cce-ui RFC material, step 2c)Lucas Galante
2026-09-20Google OAuth client comes only from google_client.jsonLucas Galante
2026-09-20Sync: one pass at a time, and no deleting mail a pass never sawLucas Galante
2026-09-19Depend on cce-ui through git.lucas.co, so this crate builds aloneLucas Galante
2026-09-19Bar items: the flat stance, and the trims it makes unnecessaryLucas Galante
2026-09-19Gaps: the bar's top edge lands where the panes' sides doLucas Galante
2026-09-19Gaps: trim each edge treatment's optical biteLucas Galante
2026-09-19The rendered message belongs to a renderer, not to the processLucas Galante
2026-09-19Bar items are plates, faced with the panes' materialLucas Galante
2026-09-19One gap everywhere, the window's rolled rim includedLucas Galante
2026-09-19Both bars: behind a frosted plate, fading to the foreLucas Galante
2026-09-18List scrollbar: out of sight at rest, not showing throughLucas Galante
2026-09-18List scrollbar: down the plate's centre lineLucas Galante
2026-09-18Detail pane: one padding inside the plate tooLucas Galante
2026-09-18Panes: one uniform gutter, from the DE's own spacingLucas Galante
2026-09-18Split: no separator line, just the gap between the platesLucas Galante
2026-09-18Detail pane: a plate too, matching the listLucas Galante
2026-09-18List: a rounded plate, at the DE's list radiusLucas Galante
2026-09-18Scrollbars: the toolkit's pills, and the standard track insetLucas Galante
2026-09-18Bar: flush with the plate, not recessedLucas Galante
2026-09-18Mail menu: cce-icons mail glyph instead of the text dropdownLucas Galante
2026-09-18fix: context menu labels in the menu fontLucas Galante
2026-09-11Expire info toasts on a deadline, not a dt countdownLucas Galante
2026-09-04scroll: glide and coast the detail body through cce-ui's ScrollMotionLucas Galante
2026-09-01scrollbars: designer raise/sink treatment on both panesLucas Galante
2026-09-01perf: open links and attachments via gio, not xdg-openLucas Galante
2026-09-01fix: partially clipped message cards render cut, not culledLucas Galante
2026-08-31fix: adopt an unflagged folder named Archive into the archive slotLucas Galante
2026-08-31fix: stop guessing Gmail mailbox names for every accountLucas Galante
2026-08-31feat: cid: inline images render in the HTML viewLucas Galante
2026-08-31fix: don't dial out with no password from the background IMAP opsLucas Galante
2026-08-31fix: say why the HTML fetch fell back to text, and don't dial out with no passwordLucas Galante
2026-08-31feat: HTML mail rendering via embedded WPE WebKitLucas Galante
2026-08-30fix: the open bar dropdowns and the context menu take the keyboardLucas Galante
2026-08-23feat: browse the account's own foldersLucas Galante
2026-08-22feat: delete is permanent in Trash and All MailLucas Galante
2026-08-22feat: arrow keys move the selection, Delete removes and advancesLucas Galante
2026-08-22feat: sync Gmail's All Mail as an Archive folderLucas Galante
2026-08-22feat: incremental sync by UID — the cache accumulates instead of cappingLucas Galante
2026-08-22fix: re-read the keyring before a sync, and retry until it opensLucas Galante
2026-08-22fix: Escape closes the search band, not just the queryLucas Galante
2026-08-22feat: search is a band opened with "/"; the compose button goesLucas Galante
2026-08-22feat: drafts get Edit/Delete in the card menuLucas Galante
2026-08-22feat: per-message actions move to a card context menuLucas Galante
2026-08-22feat: retire the detail-pane action barLucas Galante
2026-08-21feat: resize cursor over the split separatorLucas Galante
2026-08-21feat: draggable list/detail splitLucas Galante
2026-08-21feat: errors are sticky red toasts; everything mirrors to stderrLucas Galante
2026-08-21docs: drop the Accounts half of a stale label commentLucas Galante
2026-08-21refactor: the whole bar is Dropdowns — MenuBar retiredLucas Galante
2026-08-21feat: account switcher is a real Dropdown; the Accounts page retiresLucas Galante
2026-08-16feat: list and open attachments on fetched mailLucas Galante
2026-08-16feat: Cc/Bcc, attachments, a Drafts folder, and a send path that cannot lose mailLucas Galante
2026-08-16feat: handle mailto: URLs, and ship a desktop entry claiming the schemeLucas Galante
2026-08-15rename: cce-email is now cce-mailLucas Galante
2026-08-14fix: a scrollbar press no longer also clicks the row behind itLucas Galante
2026-08-14fix: unregister the outgoing email-row buttons before reallocatingLucas Galante
2026-08-13deps: drop glyphon, use cce-ui's cosmic-text re-exportLucas Galante
2026-08-13build: drop the unused raw-window-handle and pollster declarationsLucas Galante
2026-08-13build: drop the wgpu and bytemuck declarations this crate never usedLucas Galante
2026-08-13build: install via ccebuild instead of hand-listing binariesLucas Galante
2026-08-13fix: spawn cce-system-interface, not the old cce-system-settings nameLucas Galante
2026-08-10Adapt to cce-ui KeyEvent gaining the alt field (synthetic events: alt false)Lucas Galante
2026-08-06fix: pump ui_context.tick — dropdown menus' close animation froze fully openLucas Galante
2026-07-27feat: sidebar dissolves into the menubarLucas Galante
2026-07-27feat: menubar — Mail / Message / ViewLucas Galante
2026-07-27feat: account passwords live in the Secret Service keyringLucas Galante
2026-07-27feat: Sent folder sync + recipient-first sent rowsLucas Galante
2026-07-27feat: push read state to the server (\Seen by UID)Lucas Galante
2026-07-27feat: server-side deletes — UID plumbing + shared session openerLucas Galante
2026-07-27feat: sync on start and folder switch, remember last accountLucas Galante
2026-07-27fix: list rows survive real Gmail data — CRLF snippets + wide datesLucas Galante
2026-07-27fix: live Mark Read/Unread label + badge and compose-button placementLucas Galante
2026-07-27fix: compose polish — Reply title + wrapped body quoteLucas Galante
2026-07-23refactor: account management moves to cce-system-settingsLucas Galante
2026-07-23feat: BODYSTRUCTURE-aware fetch — attachments never come down the wireLucas Galante
2026-07-23feat: wire list keyboard scrolling + scrollbar above rowsLucas Galante
2026-07-23feat: body scrollbar thumb dragLucas Galante
2026-07-23feat: detail-pane body scrolling (wheel + keys + scrollbar)Lucas Galante
2026-07-23feat: real MIME parsing (mail-parser) + 50-message fetch with server read-stateLucas Galante
2026-07-23fix: char-safe truncation (UTF-8 panic) + word-wrapped detail bodyLucas Galante
2026-07-23feat: widget chrome via the paint walk (paint_root_into) — visible chrome everywhereLucas Galante
2026-07-23fix: register rebuilt list-row buttons immediately + tokio reactor for sync threadsLucas Galante
2026-07-16feat: resolve shortcuts through input.kdl's cce-email domainLucas Galante
2026-07-13refactor: dispatch roots go by WidgetId (cce-ui plumbing retype)Lucas Galante
2026-07-12refactor: cce-email on routed events (6bd shrink — direct dispatch retired)Lucas Galante
2026-07-12refactor: Element -> WidgetHost (cce-ui 6bd flip)Lucas Galante
2026-07-12refactor: base() Option handling dropped (cce-ui flip part 1)Lucas Galante
2026-07-11refactor: email list scroll frame dissolved — List -> app-owned ScrollRegion (Phase 6as)Lucas Galante
2026-07-11refactor: widget text via the paint walk, not the text_labels getters (Phase 6ao)Lucas Galante
2026-07-10feat: whole frame via display_list (Phase 6ai) — off legacy path; FIXES invisible list/detail textLucas Galante
2026-07-09chore: Paginator -> Adapted<Paginator> (cce-ui Phase 5r migration)Lucas Galante
2026-07-09chore: TextBox -> Adapted<TextBox> (cce-ui Phase 5q migration)Lucas Galante
2026-07-08refactor: adapt Button fields to the cce-ui Phase 5 migrationLucas Galante
2026-07-07refactor: create FontSystem via cce_ui::create_font_system_with_system_fontsLucas Galante
2026-07-07refactor: route hardcoded config/font paths through cce_ui XDG helpersLucas Galante
2026-07-02Refactor ScrollingList to List and fix window decoration blur and stylingLucas Galante
2026-07-02sec: upgrade Google login flow to dynamic PKCELucas Galante
2026-06-25Fix target directory path in install commandLucas Galante
2026-06-24Implement ui_context for Application to support default draggable windowLucas Galante
2026-06-21Use cce-ui Paginator widget instead of MenuBar vertical page switcherLucas Galante
2026-06-21Remove Paginator widget and tab margin spinboxesLucas Galante
2026-06-18refactor: update dependencies and rename clear-ui to cce-uiLucas Galante
2026-06-09Refactor and adapt widgets to use UiContext and scale factorLucas Galante
2026-06-06Update clear-email-interface to adapt to Element trait refactoring (modified: src/main.rs)Lucas Galante
2026-06-05refactor: dynamically position layout components using paginator sidebar widthLucas Galante
2026-06-04Proactively generate google_client.json template on application startupLucas Galante
2026-06-04Support loading Google OAuth client credentials dynamically from ~/.config/ccec/google_client.jsonLucas Galante
2026-06-04Implement guided iCloud Login helper button inside Add Account dialog modalLucas Galante
2026-06-04Restrict accounts directory permissions to 0700 and accounts.json permissions to 0600 on Unix systemsLucas Galante
2026-06-04Implement click to login in browser for OAuth accounts on Accounts page and update in-place logicLucas Galante
2026-06-04Implement browser-based OAuth2 login with local redirection server and automatic token refreshingLucas Galante
2026-06-04Implement Gmail, iCloud, and custom IMAP/SMTP network support with per-account caching and smart domain autofill modalLucas Galante
2026-06-04feat: add Accounts page to paginator and implement account settings viewLucas Galante
2026-06-04style: remove emojis from paginator tabs and adjust unread badge positionLucas Galante
2026-06-04feat: enable vertical rotated tabs on paginator and narrow sidebar to 56pxLucas Galante
2026-06-04Refactor: Use Paginator widget for sidebar folders navigationLucas Galante
2026-06-04Initial commit: Clear Email Client using clear-uiLucas Galante