Skip to content

feat(mcp): lane_h_list + lane_h_fetch — devagentic-lane-h plugin (closes #58, G4 of devagentic#203)#65

Merged
PowerCreek merged 1 commit into
mainfrom
issue-58-mcp-lane-h
May 24, 2026
Merged

feat(mcp): lane_h_list + lane_h_fetch — devagentic-lane-h plugin (closes #58, G4 of devagentic#203)#65
PowerCreek merged 1 commit into
mainfrom
issue-58-mcp-lane-h

Conversation

@PowerCreek

Copy link
Copy Markdown

Closes #58. G4 of TechDevGroup/devagentic#203.

Depends on TechDevGroup/devagentic#207 (reasoningGraftCandidates GraphQL query). Merge that first.

Summary

  • New plugin plugins/devagentic-lane-h/ with the same shape as the other devagentic-adjacent plugins.
  • Two MCP tools registered via mcp_serve.py::_register_lane_h_tools:
    • lane_h_list(user_id?, limit?) — wraps reasoningGraftCandidates(userId, limit) GraphQL query
    • lane_h_fetch(graft_id) — wraps the existing searchDocs(query, k:1) retrieval pattern + validates the kind:reasoning-graft-candidate tag
  • 31 MCP tools registered total now.

Design — no request_reasoning_graft tool

The original G4 issue proposed a requestReasoningGraft(prompt, lift_model?) MCP tool. Investigation showed Lane H is event-driven, not request-response: the cycle_tick auto-emits kind:reasoning-graft-candidate docs when a confer-result clears the Lane H confidence threshold (api.py ~line 8139 + ~line 23990, both gated on _lane_h_auto_trigger_enabled()). There is no manual-request entry point.

The actual worker flow per NousResearch#174:

worker → confer_run → high-confidence result → cycle_tick auto-emits
                                                kind:reasoning-graft-candidate
                                              ↓
                                        worker reads via lane_h_list / lane_h_fetch

So G4 ships as a read surface only. The "request" side is implicit via confer_run (G2, already shipped). Documented in the plugin README + __init__.py.

Test plan

  • 12 client unit tests pass: user_id resolution + override, list happy/empty/zero-limit/network-error/graphql-error paths, fetch empty-id/happy/no-match/id-mismatch/wrong-kind paths.
  • create_mcp_server() smoke-import succeeds; lane_h_list + lane_h_fetch registered alongside existing tools (31 total).
  • Plugin is additive — no changes to existing modules — so no regression risk.

Notes

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.

G4: hermes-native requestReasoningGraft + fetchReasoningGraft MCP tools — Lane H worker read surface (parent: devagentic#203)

1 participant