Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions app/src/lib/i18n/chunks/de-5.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,31 @@ const de5: TranslationMap = {
'settings.developerMenu.composioRouting.title': 'Composio Routing (Direktmodus)',
'settings.developerMenu.composioRouting.desc':
'Bring deinen eigenen Composio API-Schlüssel mit und leite Anrufe direkt an backend.composio.dev weiter',
'settings.developerMenu.mcpServer.title': 'MCP Server',
'settings.developerMenu.mcpServer.desc':
'Konfiguriere externe MCP-Clients für die Verbindung mit OpenHuman',
'settings.developerMenu.integrationTriggers.title': 'Integrationsauslöser',
'settings.developerMenu.integrationTriggers.desc':
'Konfiguriere KI-Triage-Einstellungen für Composio-Integrationsauslöser',
'settings.mcpServer.title': 'MCP-Server',
'settings.mcpServer.toolsSectionTitle': 'Verfügbare Werkzeuge',
'settings.mcpServer.toolsSectionDesc':
'Werkzeuge, die über den MCP-Stdio-Server beim Ausführen von openhuman-core mcp bereitgestellt werden',
'settings.mcpServer.configSectionTitle': 'Client-Konfiguration',
'settings.mcpServer.configSectionDesc':
'Wähle deinen MCP-Client aus, um das richtige Konfigurations-Snippet zu generieren',
'settings.mcpServer.copySnippet': 'In die Zwischenablage kopieren',
'settings.mcpServer.copied': 'Kopiert!',
'settings.mcpServer.openConfigFile': 'Konfigurationsdatei öffnen',
'settings.mcpServer.binaryPathNotFound':
'OpenHuman-Binärdatei nicht gefunden. Wenn du aus dem Quellcode arbeitest, baue sie mit: cargo build --bin openhuman-core',
'settings.mcpServer.openConfigError': 'Konfigurationsdatei konnte nicht geöffnet werden',
'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
'settings.mcpServer.clientCursor': 'Cursor',
'settings.mcpServer.clientCodex': 'Codex',
'settings.mcpServer.clientZed': 'Zed',
'settings.mcpServer.configFilePath': 'Konfigurationsdatei',
'settings.mcpServer.clientSelectorAriaLabel': 'MCP-Client-Auswahl',
'settings.appearance.menuDesc': 'Wähle hell, dunkel oder passend zu deinem Systemthema',
'settings.mascot.active': 'Aktiv',
'settings.mascot.characterDesc': 'Charakterbeschreibung',
Expand Down
4 changes: 4 additions & 0 deletions src/openhuman/composio/providers/catalogs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,8 @@ pub use super::catalogs_microsoft::{EXCEL_CURATED, ONE_DRIVE_CURATED};
pub use super::catalogs_productivity::{
ASANA_CURATED, DROPBOX_CURATED, JIRA_CURATED, OUTLOOK_CURATED, TODOIST_CURATED, TRELLO_CURATED,
};
// `LINEAR_CURATED` moved into `super::linear::LINEAR_CURATED` alongside
// the native LinearProvider impl. `catalog_for_toolkit("linear")` now
// routes there directly. Removing the re-export keeps a single source
// of truth and matches how `gmail` / `notion` / `clickup` are wired.
pub use super::catalogs_social_media::{SPOTIFY_CURATED, TWITTER_CURATED, YOUTUBE_CURATED};
8 changes: 8 additions & 0 deletions src/openhuman/composio/providers/catalogs_productivity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,14 @@ pub const OUTLOOK_CURATED: &[CuratedTool] = &[
},
];

// ── linear ──────────────────────────────────────────────────────────
//
// `LINEAR_CURATED` lives in `super::linear::tools` alongside the native
// `LinearProvider` impl (per-issue #2400). `catalog_for_toolkit("linear")`
// in `super::mod` routes through that constant directly. Removing the
// catalog-only declaration here keeps a single source of truth and
// matches how `gmail` / `notion` / `clickup` are wired.

// ── jira ────────────────────────────────────────────────────────────
pub const JIRA_CURATED: &[CuratedTool] = &[
CuratedTool {
Expand Down
5 changes: 4 additions & 1 deletion src/openhuman/composio/providers/descriptions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ pub fn toolkit_description(slug: &str) -> &'static str {
"google_sheets" => "Read, write, and manage Google Sheets spreadsheets",
"outlook" => "Send, read, and manage emails in Microsoft Outlook",
"microsoft_teams" => "Send messages and manage channels in Microsoft Teams",
"linear" => "Create and manage issues, projects, and cycles in Linear; sync assigned issues into Memory Tree",
"linear" => {
"Create, read, and manage issues, projects, and cycles in Linear; sync \
assigned issues into Memory Tree"
}
"jira" => "Create and manage issues, projects, and sprints in Jira",
"trello" => "Create and manage cards, lists, and boards in Trello",
"asana" => "Create and manage tasks, projects, and sections in Asana",
Expand Down
17 changes: 8 additions & 9 deletions src/openhuman/composio/providers/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ pub fn catalog_for_toolkit(toolkit: &str) -> Option<&'static [CuratedTool]> {
"gmail" => Some(gmail::GMAIL_CURATED),
"notion" => Some(notion::NOTION_CURATED),
"github" => Some(github::GITHUB_CURATED),
"linear" => Some(linear::LINEAR_CURATED),
// Catalog-only toolkits
"slack" => Some(catalogs::SLACK_CURATED),
"discord" => Some(catalogs::DISCORD_CURATED),
Expand All @@ -197,7 +198,6 @@ pub fn catalog_for_toolkit(toolkit: &str) -> Option<&'static [CuratedTool]> {
"outlook" => Some(catalogs::OUTLOOK_CURATED),
// MICROSOFT_TEAMS_* slugs extract to "microsoft" via toolkit_from_slug.
"microsoft" | "microsoft_teams" => Some(catalogs::MICROSOFT_TEAMS_CURATED),
"linear" => Some(linear::LINEAR_CURATED),
"jira" => Some(catalogs::JIRA_CURATED),
"trello" => Some(catalogs::TRELLO_CURATED),
"asana" => Some(catalogs::ASANA_CURATED),
Expand Down Expand Up @@ -473,15 +473,14 @@ mod tests {

#[test]
fn capability_matrix_includes_linear_as_native_memory_provider() {
// Locks in the per-issue #2400 registration: a Linear row must
// appear in the capability matrix with the same native-provider
// flags Gmail/Notion/Slack/ClickUp already carry (`memory_ingest`,
// `periodic_sync`, non-zero `sync_interval_secs`). If a future
// change drops one of the four registration touchpoints
// Per-issue #2400 registration: a Linear row must appear in
// the capability matrix as a native memory-ingest provider,
// matching gmail / notion / slack / clickup. If a future
// change drops one of the five registration touchpoints
// (CAPABILITY_TOOLKITS, has_native_provider,
// native_provider_sync_interval, catalog_for_toolkit) this test
// fails loud rather than silently degrading the provider to
// catalog-only status.
// native_provider_sync_interval, catalog_for_toolkit,
// toolkit_description) this test fails loud rather than
// silently degrading the provider to catalog-only status.
let matrix = capability_matrix();
let linear = matrix
.iter()
Expand Down
Loading