Skip to content

Email Agent — capability completion tracker (live status vs. spec) #1691

Description

@itomek

Living status board for every capability defined in the Email Agent Capability & API Spec. One row per spec capability, with its real implementation/test state and the issue that owns the remaining work. Update the status cell as items land — this is the single place to answer "what's done?"

As of now: 15 of 17 numbered capabilities and 3 of 5 personalization features are implemented and testable. Status verified against hub/agents/python/email/ tools + the repo tests/ tree (not just the spec badges, which lag on personalization).

Legend — Status: ✅ implemented + testable · 🟡 partial · ⬜ planned / not started
📸 Verification evidence (live): #1691 (comment)

Legend — Per spec: ✅ built as specified · 🟡 gap vs spec (planned/partial — see remaining work)
Legend — Verified: ✅ real-world verified this pass (harness + Agent UI on Mac, photo on file) · 🟡 partial · ⬜ not yet verified this pass

Capabilities (17)

# Capability Status Verified Per spec Owner / remaining work
1 4-way triage (→ 5-bucket in schema 2.0) #1266 · taxonomy change tracked in #1615 · live Gmail triage via harness (Mac) 2026-06-16 · spec: Validated
2 Per-email summary #1267 · per-email summary rendered live in harness 2026-06-16 · spec: Validated
3 Draft reply #1269 · full draft via gaia email CLI (evidence) · spec: Validated
4 Phishing detection #1271 · ⚠ flagged on spoofed-bank sample (evidence) · spec: Validated
5 Inbox pre-scan #1265 · whole-inbox scan (evidence) · spec: Wired
6 Full-thread comprehension #1268 · spec: Wired · exercise 2026-06-17: full-thread summary verified live; multi-mailbox provenance bug
7 Send a reply via agent (confirm + token) #1264 · live send Gmail+Outlook + 403 token gate (evidence) · spec: Wired
8 Batch archive #1270 · tool path exercised; no promotional mail present to archive this pass · spec: Wired · exercise 2026-06-17: archive action verified; agent autonomous use hit multi-mailbox bug (triage-timeout was a 2k-mirror artifact) · revalidated 2026-06-18: multi-mailbox archive_message_batch routes by recorded provenance (succeeded 2/0, no "cannot determine") after #1707; ⚠ archive-undo for Outlook still broken → #1738
9 Quarantine + undo shipped (soft-delete / action log) · spec: Wired · exercise 2026-06-17: trash/untrash verified · revalidated 2026-06-18: undo now re-adds INBOX (#1709 merged)
10 Calendar — detect meeting request #1272 · agent scanned inbox; no datable invite present this pass · spec: Wired · exercise 2026-06-17: detect_meeting_request true-positive verified
11 Calendar — conflict detection #1273 · spec: Wired · exercise 2026-06-17: conflict logic verified vs Outlook calendar · revalidated 2026-06-18: conflict detection uses the Outlook calendar (#1708 merged)
12 Calendar — create event #1274 · Outlook Calendar scope connected; create unblocked once a dated invite exists · spec: Wired · exercise 2026-06-17: create verified via Outlook tool · revalidated 2026-06-18: create_event_from_email routes to the Outlook calendar (#1708 merged)
13 Search past email 🟡 🟡 🟡 #1604 · agent CLI search returned 5 live matches (tool works; still not on REST/MCP) · spec: Planned
14 Task extraction → task list 🟡 🟡 #1605 · email-side producer in PR #1917: REST triage persists action items to a local email_tasks store, linked to message_id + de-duped on re-triage; unified cross-agent store still #1521 · spec: Wired
15 Follow-up tracking 🟡 #1606 · spec: Planned
16 Proactive daily briefing 🟡 🟡 #1608 · scheduler + delivery in PR #1918: sidecar daily timer (env-configured, off by default) reuses pre_scan_inbox and serves the latest run on GET /v1/email/briefing; push delivery + calendar/tasks sections still on autonomy #555 · spec: Wired
17 Scheduled send + snooze 🟡 #1609 · implemented in PR #1919 (email-scoped one-shot scheduler + cancel handles; unit tests cover fire-once/at-after/cancel) · not yet exercised live · seam ready for #1371 dispatch (autonomy #555) · spec: Planned
--- --- --- --- --- ---

Personalization & memory (5)

# Feature Status Verified Owner / remaining work
P1 Behavioral sender prioritization 🟡 #1290 · needs multi-turn; faiss-cpu absent in test venv (vector memory off)
P2 Inbox profiling from memory 🟡 #1289 · same memory caveat
P3 Persistent preferences via memory 🟡 #1288 / #1114 · same memory caveat
P4 Attachment handling #1542 · schema 2.2 (PR #1921): read/triage exposes metadata; draft/send accept files, token-bound
P5 Voice / style-matched drafting #1607

Schema 2.0 (proposed · breaking)

Change Status Verified Owner
5-bucket taxonomy + suggested_action #1615 (merged #1690) · 5 buckets + suggested_action verified live 2026-06-16
context on request #1541 · draft PR #1696 · context biases summary (verified live)
usage on response #1540 · draft PR #1696 · tokens+TPS shown per card (verified)
ActionItem.type (text/link) #1538 · draft PR #1696 · typed link item (evidence)

  • Spec is the source of truth for behaviour/tiers; this issue is the source of truth for completion state.
  • Sequencing & rationale live in the execution-order tracker docs(email): Milestone 40 (v0.22.0) execution-order spec (sequencing + rationale) #1319 (complementary, not duplicate).
  • Spec personalization badges (P1–P4 "In flight") are stale — P1–P3 are actually done; worth a one-line spec fix.
  • Verified column (added 2026-06-16): real-world verification pass on Mac via the test harness + Agent UI, one capability at a time, each with a captured screenshot. Filled as each is proven.

Metadata

Metadata

Assignees

Labels

Type

Fields

No fields configured for Task.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions