You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[core-shrink] integrations: move composio contract tables and payload types into tinyconnectors #7413
integrations/ is 35.5k lines, and only tinyconnectors-bus is used today. integrations/composio/contract/ (4k non-test) is pure tables, pure functions and payload types: generic connector vocabulary.
Scope
Move integrations/composio/contract/ into vendor/tinyconnectors (and into tinyconnectors-bus for the wire types).
Delete integrations/composio/providers/mod.rs (a re-export).
Code-organization refactor in the core-shrink series (parent #7390): move integrations/composio/contract/ tables, pure functions, and payload types into vendor/tinyconnectors / tinyconnectors-bus, delete the providers/mod.rs re-export, and decide on integrations/task_sources/, keeping the host adapter in place. No user-facing breakage; acceptance criteria require unchanged action-tool names/schemas and working recorded-tool resume, plus contract tests and CI verification. Sibling core-shrink issues (#7412, #7414, #7416, #7417, #7396) cover different subsystems, so none is a duplicate.
Contract 1.14 implements four compiled operations: GetVocabulary, EvaluateActions, NormalizeIdentities and PrepareTaskFilter. The minimal bus carries owned wire shapes. Catalogs, aliases, classifiers, matching metadata, identity normalization/rendering and query-cap preparation stay inside the module.
The real-bus regression first failed with UnknownMethod/GetVocabulary (exit 101), then passed. Native dynamic-loader verification checks exact manifest methods and all four operations against original-host catalog/description goldens, both explicit classifier profiles, malformed profile rejection, directional alias matching, durable identity/prompt output and task caps. Owner tests pass (core361/bus63/provider62 plus examples/doctests), as do format, Clippy, all-target/all-feature build, rustdoc and the existing per-source-file90% coverage gate. Existing Execute persisted-preference/schema regressions still pass.
Scope decision: portable task envelopes/query vocabulary move upstream; product enrichment/objective text, urgency clock, source settings, dedup storage, routing and scheduling stay in OpenHuman. Current task fetching is intentionally unavailable after ADR0002 removed Sync. This adds no fake fetch operation. Classifier differences are explicit profiles; display metadata cannot bypass the independent Execute policy. Catalog-ready metadata remains distinct from provider capability.
This child is not complete. Owner landing and a published compiled-module release are required before host adoption. Remaining work: pin that release, remove the local contract in favor of module operations and bus types, retain mechanical module_client/action_tool/cache adapters, coordinate providers shim deletion with #7408, and prove action names/schemas plus native recorded-tool resume. Then run affected native tests, layout, feature forwarding, root/desktop checks and existing RPC E2E (scripts/test-rust-e2e.sh; the issue's scripts/e2e-core.sh is absent). No unpublished gitlink, merge or release is promoted.
Update: canonical TinyConnectors PR #50 landed during this work. #51 now preserve-merges it, retains RoutedRead and the four vocabulary methods, and advances the additive contract to 1.15 (head de3e29870f937a0d7e10c05b896f3e62e8a6530e). The branch is mergeable.
Review identified an inherited ClickUp ready-list omission. A new regression first failed because ClickUp has a compiled catalog but no ready-list entry, then passed after adding it; every extracted catalog alias is checked against the ready catalogs. The native loader now verifies 31 ready entries. Full merged-workspace tests pass (core 369 / bus 68 / provider registry 62), along with native artifact, format, Clippy, build, rustdoc and per-source coverage. Review threads have replies; re-review and latest hosted checks are pending. The host/released-module boundary described above still applies, and #7413 remains incomplete.
Test-ownership audit (#8089): move integrations/composio/contract_gate_tests.rs (463) with contract_gate.rs (args_satisfy_contract, json_value_matches_type, format_contract), and the classification cases of ops_direct_mode_and_error_classification_tests.rs (~200) with ops/error_utils.rs (tinyconnectors already has error/ and execute/classify.rs). humanize_composio_action/canonicalize_toolkit_slug overlap tinyconnectors-bus canonical_action_slug. The four composio raw_coverage files are deleted as padding in senamakel#224.
Mostly done: the curated catalogs and contract tables now come from the connector module (ListCuratedCatalog, GetVocabulary). What remains is filed as fork leaves under the reworked #7390: senamakel/tinyconnectors#5 (direct-key breaker, credential constructor), senamakel/tinyconnectors#6 (VocabularySnapshot, contract-gate helpers) → senamakel#373, and the shim deletions in senamakel#333. Closing.
Activity
tinysweeper commentedon Oct 11, 2026
Code-organization refactor in the core-shrink series (parent #7390): move integrations/composio/contract/ tables, pure functions, and payload types into vendor/tinyconnectors / tinyconnectors-bus, delete the providers/mod.rs re-export, and decide on integrations/task_sources/, keeping the host adapter in place. No user-facing breakage; acceptance criteria require unchanged action-tool names/schemas and working recorded-tool resume, plus contract tests and CI verification. Sibling core-shrink issues (#7412, #7414, #7416, #7417, #7396) cover different subsystems, so none is a duplicate.
Labelled
priority: p3.senamakel commentedon Oct 11, 2026
Owner prerequisite is ready: tinyhumansai/tinyconnectors#51 (head 442918c212a880a82e25522da0ab392fa95b209c).
Contract 1.14 implements four compiled operations: GetVocabulary, EvaluateActions, NormalizeIdentities and PrepareTaskFilter. The minimal bus carries owned wire shapes. Catalogs, aliases, classifiers, matching metadata, identity normalization/rendering and query-cap preparation stay inside the module.
The real-bus regression first failed with UnknownMethod/GetVocabulary (exit 101), then passed. Native dynamic-loader verification checks exact manifest methods and all four operations against original-host catalog/description goldens, both explicit classifier profiles, malformed profile rejection, directional alias matching, durable identity/prompt output and task caps. Owner tests pass (core361/bus63/provider62 plus examples/doctests), as do format, Clippy, all-target/all-feature build, rustdoc and the existing per-source-file90% coverage gate. Existing Execute persisted-preference/schema regressions still pass.
Scope decision: portable task envelopes/query vocabulary move upstream; product enrichment/objective text, urgency clock, source settings, dedup storage, routing and scheduling stay in OpenHuman. Current task fetching is intentionally unavailable after ADR0002 removed Sync. This adds no fake fetch operation. Classifier differences are explicit profiles; display metadata cannot bypass the independent Execute policy. Catalog-ready metadata remains distinct from provider capability.
This child is not complete. Owner landing and a published compiled-module release are required before host adoption. Remaining work: pin that release, remove the local contract in favor of module operations and bus types, retain mechanical module_client/action_tool/cache adapters, coordinate providers shim deletion with #7408, and prove action names/schemas plus native recorded-tool resume. Then run affected native tests, layout, feature forwarding, root/desktop checks and existing RPC E2E (scripts/test-rust-e2e.sh; the issue's scripts/e2e-core.sh is absent). No unpublished gitlink, merge or release is promoted.
senamakel commentedon Oct 11, 2026
Update: canonical TinyConnectors PR #50 landed during this work. #51 now preserve-merges it, retains RoutedRead and the four vocabulary methods, and advances the additive contract to 1.15 (head de3e29870f937a0d7e10c05b896f3e62e8a6530e). The branch is mergeable.
Review identified an inherited ClickUp ready-list omission. A new regression first failed because ClickUp has a compiled catalog but no ready-list entry, then passed after adding it; every extracted catalog alias is checked against the ready catalogs. The native loader now verifies 31 ready entries. Full merged-workspace tests pass (core 369 / bus 68 / provider registry 62), along with native artifact, format, Clippy, build, rustdoc and per-source coverage. Review threads have replies; re-review and latest hosted checks are pending. The host/released-module boundary described above still applies, and #7413 remains incomplete.
senamakel commentedon Oct 18, 2026
Test-ownership audit (#8089): move
integrations/composio/contract_gate_tests.rs(463) withcontract_gate.rs(args_satisfy_contract,json_value_matches_type,format_contract), and the classification cases ofops_direct_mode_and_error_classification_tests.rs(~200) withops/error_utils.rs(tinyconnectors already haserror/andexecute/classify.rs).humanize_composio_action/canonicalize_toolkit_slugoverlap tinyconnectors-buscanonical_action_slug. The four composio raw_coverage files are deleted as padding in senamakel#224.senamakel commentedon Oct 18, 2026
Mostly done: the curated catalogs and contract tables now come from the connector module (
ListCuratedCatalog,GetVocabulary). What remains is filed as fork leaves under the reworked #7390: senamakel/tinyconnectors#5 (direct-key breaker, credential constructor), senamakel/tinyconnectors#6 (VocabularySnapshot, contract-gate helpers) → senamakel#373, and the shim deletions in senamakel#333. Closing.