Skip to content

Register native sync providers for Excel, Google Calendar, and Outlook #3903

Closed as not planned

Description

@sanil-23

Summary

Register native memory-sync providers for the connectable-but-unsynced toolkits — Excel, Google Calendar, Outlook — by implementing IncrementalSource primitives for each so they ride run_sync and inherit max_items + the sync_depth_days window for free. This is the "every future toolkit gets caps + window automatically" promise of #3333 made concrete.

Problem / Context

These toolkits can be connected, but they have no native sync provider, so a sync attempt hits "no native memory sync provider registered" at composio/mod.rs:149 and ingests nothing. With the orchestrator in place, adding a provider is implementing ~5 small primitives instead of a full sync loop.

Scope

In scope

  • Implement IncrementalSource (preamble, fetch_page, item_dedup_key, item_sort_ts, ingest, plus the relevant hooks) + a registry entry for excel, googlecalendar, outlook.
  • A cap/window e2e for at least one of them via the shared orchestrator path.

Out of scope / notes

  • Net-new orchestrator changes should not be required (use existing hooks); if one is, call it out.
  • The backend toolkitFromSlug splitting at the first _ is a known separate bug (tinyhumansai/backend) — flag it if it blocks any of these slugs (e.g. google_calendar).

Acceptance criteria

  • Excel — IncrementalSource impl + registry entry.
  • Google Calendar — IncrementalSource impl + registry entry.
  • Outlook — IncrementalSource impl + registry entry.
  • No more unregistered error — none of the three hit "no native memory sync provider registered" (composio/mod.rs:149).
  • Cap/window e2e — at least one of the three proves max_items + sync_depth_days via the shared path.
  • Diff coverage ≥ 80% — the implementing PR meets the changed-lines coverage gate.

Related

Activity

  1. added
    refactorStructural code change without a primary behavior change.
    on Jun 22, 2026
  2. sanil-23 commented on Jun 22, 2026

    @sanil-23
    CollaboratorAuthor

    Closing — descoped at the author's request; not part of this migration. (Issue deletion isn't available to me; closed as not planned and unlinked from #3333.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorStructural code change without a primary behavior change.

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions