Skip to content

feat: server-side ExtensionConfig support, deprecate AgentContext loading fields#2860

Merged
csmith49 merged 1 commit intofeat/extension-config-modelfrom
feat/server-extension-config
Apr 16, 2026
Merged

feat: server-side ExtensionConfig support, deprecate AgentContext loading fields#2860
csmith49 merged 1 commit intofeat/extension-config-modelfrom
feat/server-extension-config

Conversation

@csmith49
Copy link
Copy Markdown
Collaborator

@csmith49 csmith49 commented Apr 16, 2026

Summary

Server-side integration of ExtensionConfig and deprecation of legacy AgentContext loading fields.

Changes

Server request model:

  • Add extension_config field to _StartConversationRequestBase
  • Flows through StoredConversation automatically via inheritance

Event service:

  • Forward extension_config from StoredConversation to LocalConversation

AgentContext deprecation:

  • load_user_skills, load_public_skills, marketplace_path deprecated (1.18.0 → 1.23.0)

Examples:

  • 03_activate_skill: move load_public_skills to ExtensionConfig
  • 01_loading_agentskills: remove redundant load_public_skills=False

Stack

Part of a gh stack — review bottom-up:

  1. ⬇️ feat: Extension installation module #2811 feat/installed-extensionsmain
  2. ⬇️ refactor: Centralize MCP utils in openhands.sdk.mcp #2848 refactor/mcp-merge-to-mcp-modulefeat/installed-extensions
  3. ⬇️ feat: ExtensionConfig — models, Conversation wiring, and server integration #2858 feat/extension-config-model
  4. ⬇️ feat: wire ExtensionConfig into Conversation for centralized extension loading #2859 feat/conversation-extension-config
  5. → This PR (feat: server-side ExtensionConfig support, deprecate AgentContext loading fields #2860) — top of stack

This PR was created by an AI assistant (OpenHands) on behalf of the user.

…ding fields

Server request model:
- Add extension_config field to _StartConversationRequestBase
- Flows through StoredConversation automatically via inheritance

Event service:
- Forward extension_config from StoredConversation to LocalConversation
- Legacy plugins/hook_config still passed for backward compat

AgentContext deprecation:
- load_user_skills, load_public_skills, marketplace_path now carry
  deprecated Field metadata (deprecated_in=1.18.0, removed_in=1.23.0)
- _load_auto_skills model_validator emits warn_deprecated() when
  these fields are set to non-default values
- Fields still function for backward compatibility during the
  deprecation window

Examples:
- 03_activate_skill: move load_public_skills to ExtensionConfig on
  Conversation
- 01_loading_agentskills: remove redundant load_public_skills=False

Tests:
- 3 new server tests: extension_config field exists, flows through
  StoredConversation, defaults to None

Co-authored-by: openhands <openhands@all-hands.dev>
@github-actions
Copy link
Copy Markdown
Contributor

Coverage

Coverage Report •
FileStmtsMissCoverMissing
openhands-agent-server/openhands/agent_server
   event_service.py3498974%56–57, 75–77, 86–90, 93–96, 116, 220, 237, 278, 288, 312–313, 317, 325, 328, 368–369, 385, 387, 391–393, 397, 406–407, 409, 413, 419, 421, 451–456, 600, 602–603, 607, 621–623, 625, 629–632, 636–639, 647–650, 670–671, 673–680, 682–683, 692–693, 695–696, 703–704, 706–707, 727, 733, 739, 748–749
openhands-sdk/openhands/sdk/context
   agent_context.py133695%316–318, 347, 370, 376
openhands-sdk/openhands/sdk/conversation
   request.py45197%61
TOTAL23077569075% 

Base automatically changed from feat/conversation-extension-config to feat/extension-config-model April 16, 2026 19:00
@csmith49 csmith49 merged commit 0b786bd into feat/extension-config-model Apr 16, 2026
26 checks passed
@csmith49 csmith49 deleted the feat/server-extension-config branch April 16, 2026 19:00
@csmith49
Copy link
Copy Markdown
Collaborator Author

This PR was auto-merged by GitHub because its commits were consolidated into #2858. Please review there instead.

This comment was posted by an AI assistant (OpenHands) on behalf of the user.

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.

1 participant