Repository navigation
feat!: remove Composio as a memory source - #245
Conversation
Moved the inline test modules of the composio, fetch, and readers sources into sibling mod_tests.rs files and extracted shared types into types.rs, leaving the mod.rs files focused on implementation. No behaviour changed. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Dropped re-exports from the readers and types modules that were no longer referenced anywhere. This trims the public surface of the sources module without changing behaviour. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Introduce a dispatch layer that routes reads to the appropriate source implementation based on the source type, so callers no longer need to match on types themselves. Tests cover the new dispatch path. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The item builder no longer fills source-specific metadata for GitHub, RSS, web page, and Composio entries, leaving only the shared source reference and the folder, file, and conversation fields. The removed helpers and their doc comments went with it, so the module now covers just the kinds it still handles. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Added a source layout module to the meta API so callers can inspect how memory sources are laid out. This surfaces layout information that was previously only available internally. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ex engine Adds test coverage across the conformance suite fixtures, meta filter and module handling, cortex engine fetch and refers paths, envelope labels, and document items. These tests exercise existing behaviour to guard against regressions. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…rtions Test fixtures for conversation and folder sources no longer set the network-source fields that were removed from the config type, and the layout test now expects the Github brain source to map to the Import source kind. The removed-kind test and a mapping assertion were also reformatted to satisfy rustfmt. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The feed fixture now tags its source as an import rather than a file, so the conformance case matches the source kind the feed path actually produces. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The tool contract fixtures still listed link, github, rss, and composio as valid source kinds, but those kinds are no longer supported. Removing them keeps the expected schemas in sync with the actual tool contracts. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The sources README and architecture doc now describe only the local folder, file and conversation readers, dropping the web page, GitHub, RSS and Composio material along with the fetching and SSRF guard sections. The network and Composio code paths are gone, so the docs no longer document features the module does not have. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The `sources-network` feature and the Composio normalisers are gone, so the feature tables, dependency weights and `SourceKind` listings no longer mention them. `full` now enables `sources` directly, and the source readers are described as local-only throughout. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The `sources-network` feature no longer exists, so the CI matrix entry and the feature tables in the integrations and memory-v2 docs now reference `sources` alone. The memory-v2 description also narrows the `sources` feature to folder, file and conversation readers. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The CI feature matrix entry for the sources feature was renamed from "sources network implication" to "sources" so the job name matches the feature it actually builds. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds GitHub, RSS and web-page readers plus `fetch_url` behind a shared SSRF guard, and normalisers that turn Composio toolkit payloads (Gmail, Slack, GitHub, Linear, Notion, ClickUp) into documents. The network readers sit behind a new `sources-network` feature so hosts that only read local state keep linking no HTTP stack, and `SourceKind` regains the `link`, `github`, `rss` and `composio` variants that previously decoded to `import`. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Split the composio source handling into dedicated modules for each toolkit such as clickup, documents, fields, github, gmail, linear, notion and slack, each with its own tests. This makes the per-toolkit post-processing and field handling easier to extend and keeps the shared reader logic in one place. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds an items source and a readers module to the integrations crate, wiring them into the sources tree so item-based ingestion can be supported alongside existing sources. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The composio source kind and its toolkit and connection_id fields are gone from the source entry, with the legacy "composio" wire value now decoding as import so stored entries keep loading. Tests and fixtures were updated to drop the removed kind and pin the new decoding behaviour. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The Composio normalisers, post-processors and payload helpers are gone, so the READMEs, architecture notes and memory-v2 spec no longer list Composio as a source kind, reader or feature. The `sources` feature now covers only the local readers, and `SourceKind` drops its `Composio` variant. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (44)
✨ Finishing Touches📝 Generate docstrings
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cb8876d72f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// | ||
| /// The retired `composio` kind decodes to this variant, so items stored | ||
| /// under it stay readable. | ||
| #[serde(alias = "composio")] |
There was a problem hiding this comment.
Preserve legacy source labels when filtering imports
When an existing CortexDB event is decoded, this alias changes its metadata from composio to Import, but the event still carries the original tm:k:digest("composio") label. labels::narrowing now generates only tm:k:digest("import") for a MetaFilter selecting Import, so CortexDB discards those legacy items before decoding them. Consequently an unfiltered explore can report an import bucket that becomes empty when narrowed, and source-filtered fetch/list/forget cannot reach the supposedly readable stored Composio data; include the legacy label when narrowing Import or otherwise migrate/preserve the stored label identity.
AGENTS.md reference: AGENTS.md:L26-L29
Useful? React with 👍 / 👎.
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 2 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Changes requested Review snapshot
Completeness: Complete What changedThe review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below. FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. Findings
Before merge
Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
There was a problem hiding this comment.
Requesting changes: 1 lane(s) blocking, worst finding is high.
Fix or reply to the findings below and push. The next review clears this automatically once they are gone — you should not need to dismiss anything by hand.
$0.0131 · 417,221 in / 15,634 out · 27,779 cached (7%) · gpt-5.6-luna, glm-5.3-flash
critique: $0.0086 · 165,542 in / 8,952 out · 19,449 cached (12%) · gpt-5.6-luna, glm-5.3-flash
security: $0.0029 · 54,000 in / 1,948 out · 3,658 cached (7%) · gpt-5.6-luna
tests: $0.0004 · 47,352 in / 565 out · 1,536 cached (3%) · glm-5.3-flash
description: $0.0004 · 47,084 in / 386 out · 1,408 cached (3%) · glm-5.3-flash
e2e: $0.0004 · 50,055 in / 1,016 out · 1,728 cached (3%) · glm-5.3-flash
| /// Every kind, in declaration order. | ||
| pub const ALL: [Self; 7] = [ | ||
| Self::Composio, | ||
| pub const ALL: [Self; 6] = [ |
There was a problem hiding this comment.
Preserve decoding of existing Composio configurations
MemorySourceEntry is persisted configuration and the module documents its wire strings as a stable contract. After this removal, any existing config with "kind": "composio" fails serde deserialization, which can prevent hosts from loading their source configuration on upgrade. Keep a compatibility representation or add an explicit migration before rejecting the old value; merely removing it from ALL is not sufficient to preserve existing data.
[RULE] backward-compatibility ·
| pub observed_at: Option<DateTime<Utc>>, | ||
| } | ||
| pub enum SourceKind { Folder, File, Link, Github, Rss, Composio, Conversation, Agent, Import } | ||
| pub enum SourceKind { Folder, File, Link, Github, Rss, Conversation, Agent, Import } |
There was a problem hiding this comment.
Keep Composio in the documented source contract
This removes Composio from the specification even though the repository still defines a Composio source type and the surrounding contract describes source kinds as the API's persisted source classification. A host following this document will no longer know that Composio items are valid, leaving the documentation inconsistent with the implementation and wire contract. Keep Composio in this enum and in the integrations overview unless the corresponding implementation and persisted contract are removed in the same change.
| pub enum SourceKind { Folder, File, Link, Github, Rss, Conversation, Agent, Import } | |
| pub enum SourceKind { Folder, File, Link, Github, Rss, Composio, Conversation, Agent, Import } |
[RULE] documentation-consistency ·
Summary
Removes Composio as a memory source. OpenHuman is dropping scheduled Composio→memory syncing; folder, file, link, GitHub and RSS sources stay.
tinymemory-integrations/src/sources/composio/(the per-toolkit normalisers and Gmail/Slack post-processing) andsources/readers/composio/(a placeholder reader), unwired fromreaders/mod.rs.SourceKind::Composioand thetoolkit/connection_idfields onMemorySourceEntry.Related issue
None. Companion to the tinyconnectors sync-engine removal and the OpenHuman host change.
API or behavior changes
Breaking for a caller naming
SourceKind::Composioor the removedMemorySourceEntryfields. The OpenHuman host never used the normalisers or the reader.Stored data stays readable: a stored item whose source kind is
composionow decodes asimportinstead of failing, and brainnotiondocuments map toimport. A source-registry entry of kindcomposiois dropped like the other retired kinds.Validation
Run after merging current
main:cargo fmt --all -- --check: passcargo clippy --workspace --all-targets --all-features -- -D warnings: passcargo test --workspace --all-features: pass, 0 failurescargo doc: passTests
the_retired_composio_source_kind_decodes_as_import.composio.Documentation
Docs no longer list Composio as a source kind.
Checklist
#[allow(...)],#[ignore], or relaxed lints.envcontents in the diff or the descriptionSummary by CodeRabbit
"composio"source values are interpreted as imports.