Skip to content

ADFA-6279 | Show connected capabilities as tags under chat input - #117

Merged
jatezzz merged 5 commits into
mainfrom
feat/ADFA-6279-agent-capability-tags
Oct 6, 2026
Merged

jatezzz merged 5 commits into
mainfrom
feat/ADFA-6279-agent-capability-tags

Conversation

@jatezzz

@jatezzz jatezzz commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Description

This PR introduces a live-updating row of capability tags under the chat input, replacing the static backend label. These tags provide users with immediate visibility into the agent's connected backend (including the active model name), web access status, and available tool sources (such as MCP servers and plugin tools). It also implements health probing across the MCP and OpenAI plugins, allowing the tags to reflect degraded states (e.g., unreachable servers or invalid API keys) in real-time, and resolves them automatically when the connection recovers.

Details

  • UI Updates: Added capability_tag_scroll and capability_tag_group to fragment_chat.xml. Implemented CapabilityTagRowController to manage rendering, tapping (for details/settings), and long-pressing (for tooltips) of the tags.
  • Core capabilities: Added CapabilityMonitor and CapabilityReaders in AI-Core to manage the live state of backends and tool registries.
  • Backend & Tool Plugins: Updated Gemini, Local LLM, OpenAI, and MCP plugins to implement ActiveModelReportingBackend and/or StatusReportingBackend. Introduced ServerHealth and McpServerHealth to track and broadcast connectivity status.
  • Lifecycle simplification: Migrated backend plugins to use LlmBackendRegistration rather than manually managing AI Core lifecycle listeners.
  • Compatibility: Bumped plugin.min_ide_version to 26.41 across all affected plugins to support the new capability tag contracts.
Screen_Recording_20261002_172542_Code.on.the.Go.mp4
Screen_Recording_20261002_172715_Code.on.the.Go.mp4

Ticket

ADFA-6279

Observation

The tag row operates reactively using Flow collection, meaning it updates automatically when network connectivity changes, a server goes down, or a backend is switched. The individual plugins handle their own background polling (like the PROBE_INTERVAL_MS for MCP servers) to report degraded states without blocking the UI thread.

@jatezzz
jatezzz requested review from a team, Daniel-ADFA and itsaky-adfa October 2, 2026 22:41

@Daniel-ADFA Daniel-ADFA left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at fd1e8fa.

CRITICAL

  • GeminiPlugin.kt:5 - the new plugin-api contract is not in libs/plugin-api.jar, so the PR does not compile

IMPORTANT

  • McpPlugin.kt:240 - servers that refused the token are re-probed every 20s
  • OpenAiBackend.kt:334 - the health recheck polls every 30s forever, even when OpenAI is not selected

addons has no written approve/request-changes rule (checked CLAUDE.md), so the default rule applied.

Live backend, web and per-MCP-server tags with health, via CapabilityStatus, ActiveModelReportingBackend and the shared LlmBackendRegistration.

Refs: ADFA-6279
@jatezzz
jatezzz force-pushed the feat/ADFA-6279-agent-capability-tags branch from fd1e8fa to 0cd4b27 Compare October 5, 2026 13:46
@jatezzz
jatezzz requested a review from Daniel-ADFA October 5, 2026 14:24
@jatezzz
jatezzz merged commit 22e056f into main Oct 6, 2026
1 check passed
@jatezzz
jatezzz deleted the feat/ADFA-6279-agent-capability-tags branch October 6, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants