mc_send()accepts alabelsargument (character vector of Gmail label names) and applies them to the resulting thread viamc_thread_modify()on both the draft and sent paths. Drafts get tagged so they're findable in Drafts under the project label and so the label rides through when the user sends from the Gmail UI (Gmail typically keeps the same thread). Unknown label names raise the existingmc_thread_modify()error listing available user labels (#31).mc_md_send()readslabels:from YAML frontmatter (character vector) and passes through tomc_send(). Project tags can live in the.mddraft alongsideto,subject,cc,thread_id, etc. (#31).mc_send()now returns the Gmail thread ID of the resulting draft or sent message invisibly (wasinvisible(NULL)). Lets callers chain follow-on operations likemc_thread_modify()cleanly (#31).
- Add
mc_thread_modify()— adds and/or removes labels on a Gmail thread in one call. Accepts user label names or Gmail system labels (INBOX, STARRED, UNREAD, IMPORTANT, TRASH, SPAM, SENT, DRAFT), so the same verb covers archive (remove = "INBOX"), star (add = "STARRED"), trash, mark-read, and project-label workflows (#28). - Bypasses a body-encoding bug in
gmailr::gm_modify_thread()(3.0.0) by POSTing directly tousers.threads.modify.httradded to Imports.
- Startup quote ritual:
library(mc)prints a random fact-checked quote from 25 voices on attach. Italic quote, grey attribution, clickable bluesourcehyperlink. Suppress viaoptions(mc.quote_show_source = FALSE). - 99 shipped entries from MLK, JFK, Bob Marley, Kurt Cobain, Chris Cornell, Robert Plant, James Hetfield, Tupac, Eminem, Ice-T, Ice Cube, RZA, ODB, Method Man, DJ Premier, Vince Staples, Logic, Mike Tyson, Jim Carrey, John Candy, Ronny Chieng, Jon Stewart, Stephen King, Quentin Tarantino, Paul Thomas Anderson.
- Curated via the soul
/quotes-enableskill: parallel research agents, independent fact-check pass, user review. cliadded to Imports for OSC 8 hyperlinks and styling inR/zzz.R.
mc_preview()now accepts a.mdpath in addition to an HTML string. When given a path, renders the frontmatter envelope (To / Cc / Subject / Thread / Attach) as a header above the body so recipient or subject mistakes are visible locally (#25).
- Add YAML frontmatter support for one-file email drafts (#23).
- Add
mc_md_meta()to read frontmatter as a named list. - Add
mc_md_send()to dispatch tomc_send()from frontmatter, with anoverridearg for call-time tweaks. - Add
mc_md_index()to scan a directory tree of drafts and return a searchable dataframe (path,date,to,cc,subject,thread_id,has_attachments).
mc_preview()now writes to a stable path undertools::R_user_dir("mc","cache")instead oftempfile()so the preview survives non-interactiveRscriptsessions.opennow defaults toTRUEandpathis configurable (#22).
- Add
mc_message_find()for message-level Gmail search. - Add
mc_thread_body_latest()— latest thread reply with quoted history stripped. - Add
mc_preview()— preview composed HTML in a browser before sending. - Add
after/beforedate filters tomc_thread_find().
- Add
draftsparameter tomc_thread_read()— includes draft messages with astatuscolumn ("sent"/"draft").
- Add
attachmentsparameter tomc_send()for file attachments. - Remove hardcoded fallback email from
default_from()— now errors ifoptions(mc.from)andMC_FROMenv var are both unset. - Update CLAUDE.md with latest soul conventions.
- First stable release: compose, draft, and send emails from markdown via Gmail API.
- Core functions:
mc_send(),mc_compose(),mc_md_render(),mc_scroll(),mc_sig(). - Thread support:
mc_thread_find(),mc_thread_read(). - Scheduled send with
send_atand macOScaffeinateintegration. - Test mode redirects to sender for safe previewing.