Repository navigation
Conversation
…ph write backends Both providers and the confirmation preview now build from the same frozen message, so what a person approves cannot differ from what goes out. The offline fixture mailbox drafts and sends in memory. Refs amd#6107
…n every surface The guides, connector pages, integrator docs and triage skill all said the flagship could only read. They now describe the sixteen tools, the gmail.modify consent and what Full access does to a send. Refs amd#6107
…after one consent The flagship could only read mail. It now does the rest of the writing verbs on Gmail and Outlook, behind the existing confirmation. Each send shows its exact text; a decline, timeout or failure sends nothing and nothing retries. Where no person can answer, even pre-approved, a send is refused. New Google consents declare gmail.modify. A gmail.readonly connection keeps reading and gets a reconnect error on writes. Refs amd#6107
…ments The prompt shows the message that will go out and has no line about left-out attachments. Refs amd#6107
…oves The prompt was cut to the terminal's height while y still approved, so a person could send mail they could not see. Mail prompts now scroll, and y only works once the last line has been on screen. Other tools are unchanged.
…at is sent Disguised subjects, addresses and display names are refused before the prompt on both providers, and replies go to bare addresses. Body text keeps its characters, because Arabic and Hebrew mail needs them, but the prompt shows hidden controls as [U+XXXX]. International domains go out and show in ASCII. A send that may have gone out returns sent: "unknown", and its retry prompt warns. Changing a saved draft now asks and shows old and new. Multipart Gmail drafts show and compare their HTML. A forward with no recipients is refused, and forwards name the attachments they leave out.
An English address in the Arabic UI sat against the far edge of the approval preview, away from where a reader looks for it.
|
Verdict: Request changes (one small fix; the design itself is sound) The PR lets GAIA draft, reply, forward and send Gmail and Outlook mail. Every send waits for a person to approve it, offers no "always" option, and is refused when nobody is there to ask. The safeguards are careful: GAIA builds the message once, the prompt shows that exact message, and that same message is what gets sent. If a draft changes after it was shown, the send stops. Blocking issue
Worth knowing before merge
Real-world evidenceN/A: no evidence bundle was produced for this run. The PR description embeds before/after screenshots of the approval prompt in English and Arabic, and says one draft and one approved send were tried on a real Gmail account. The verdict on the Outlook path and the TUI prompt rests on reading the code alone. I couldn't run the unit suite here because the runner has no Python environment, so the blocking finding comes from reading the code and should be confirmed by CI. 🔍 Technical details🟡 Important 🟡 Self-contradicting assertion ( 🟢 Minor 🟢 Prepared messages from declined prompts stay in memory ( 🟢 A full-mailbox Google connection reads as read-only ( Dependency licence: Strengths
|
Main added forget_everything, so the flagship now has 110 tools and 19 need approval. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ail prompt An email prompt now opens with the account the mail goes out from, and a send stops if the connected mailbox changed while the prompt waited. A declined or unanswered prompt leaves nothing behind that a later call could send, and a yes to a reroute question no longer stands in for the exact-email prompt. Resolves main's conflicts: tool counts are 113 (CORE 27 + 29 bundles), the changelog entries move to Unreleased, and the TUI and Agent UI keep both sides.
|
Thanks @tylerbea, this is the piece that lets us retire the standalone email package. I merged main in and closed three gaps in the approval flow:
The bot's blocking test finding was already fixed in your branch. The 🔍 Technical details
|
GAIA could read Gmail but not act on it. Asked to send an email, it said it had no way to. Now it can draft, reply, forward and send through the same Google sign-in, and it shows you the exact email and waits for your approval before anything goes out. Outlook gets the same tools through the same code, but only Gmail was tried on a real account.
Before
After (the address is hidden here; the prompt shows it)
Arabic, before and after: each line of the email now takes its own direction, so an English address and an Arabic body both read correctly.
Small models don't get this yet. Gemma 4 keeps email turned off, because it fails the email tests. That work is tracked separately in #6478.
This does not finish #6107. That issue also needs
gaia_emailandgaia_tool_selectionrun on the Strix Halo pool, with the comparison posted, and neither has been run for this branch. A maintainer with pool access needs to start them, or they can run at the next RC.Refs #6107
Test plan
python -m pytest tests/unit -k emailcd src/gaia/apps/webui && npm run test:rtlgaia connectors connect google --grant-agent installed:gaia, ask GAIA to send an email to yourself, check that it waits for approval, then confirm the email arrives🔍 Technical details
GAIA_FEATURE_TIER=full.test_skills_package_ships_in_the_wheel, caused by a localnode_modules.