feat(channels): add channel schema, RPC controllers, and definition-driven UI#88
Merged
Merged
Conversation
… assertions - Renamed the test function to better reflect its purpose: checking that the native dispatcher returns protocol-only instructions. - Updated assertions to ensure the instructions contain the expected protocol information and do not inline tool names.
…agement - Added new `controllers` module for channel definitions, connection management, and RPC controllers. - Implemented channel connection logic, including connection status and credential management. - Updated existing functions to extend support for new channel schemas and definitions. - Enhanced documentation for channel-related functionalities, including descriptions for new RPC methods.
…efinitions and status management - Introduced backend-driven channel definitions and status retrieval in MessagingPanel. - Replaced hardcoded channel and auth mode definitions with dynamic data from the backend. - Improved error handling and loading states for channel connections. - Updated API service to support fetching channel definitions and connection statuses. - Refactored state management for better clarity and maintainability.
…ns in MessagingPanel - Added fallback definitions for Telegram and Discord channels to enhance messaging capabilities when backend is unreachable. - Updated MessagingPanel to utilize fallback definitions if backend data is unavailable, improving error handling and user experience. - Refactored API service methods to return results directly, streamlining data retrieval for channel definitions and statuses.
- Introduced a new 'web' channel definition in MessagingPanel, allowing chat via the built-in web UI. - Updated channel connection state management to include the web channel, ensuring proper handling of connections. - Enhanced routing logic to support fallback mechanisms across all defined channels, improving resilience in connection handling. - Refactored channel type definitions to accommodate the new web channel, ensuring consistency across the application.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
channelsnamespace:list,describe,connect,disconnect,status,testKey design decisions
auth_actionfield: OAuth/managed auth modes return a descriptor (e.g."discord_oauth","telegram_managed_dm") so the frontend knows which auth flow to initiatechannel:{id}:{mode}restart_required: true: Credential-based connections require a service restart to activate the channel listener (hot-reload can come later)New files
src/openhuman/channels/controllers/mod.rssrc/openhuman/channels/controllers/definitions.rssrc/openhuman/channels/controllers/ops.rssrc/openhuman/channels/controllers/schemas.rsTest plan
cargo check— zero warningscargo test --lib channels::controllers— 21 tests passyarn typecheck— cleanyarn lint— cleanyarn format:check— clean🤖 Generated with Claude Code