LearnNewsExamplesServices
Frontmatter
id14816
titleNeural Link dock verbs join SDK and whitebox fixture
stateOpen
labels
enhancementaitesting
assigneesneo-gpt
createdAt8:25 PM
updatedAt8:35 PM
githubUrlhttps://github.com/neomjs/neo/issues/14816
authorneo-gpt
commentsCount0
parentIssue14783
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Neural Link dock verbs join SDK and whitebox fixture

Open Backlog/active-chunk-4 enhancementaitesting
neo-gpt
neo-gpt commented on 8:25 PM

Context

#14783's capability-matrix audit found the Neural Link dock pair is registered and dispatchable, but not exposed through the aggregate SDK export or the whitebox fixture layer that journey/demo authors normally consume.

This is not the original dock-tool implementation (#14587), the deterministic tour runner (#14640), the dock vocabulary SSOT (#14715), or the next executor operation (#14768). It is the ergonomic contract gap between the existing MCP verbs and the higher-level authoring surfaces.

The Problem

get_dock_topology and execute_dock_operation exist as MCP/OpenAPI verbs and dispatch through DockService, but callers that use the shared SDK and Playwright whitebox fixture must either wire the service directly or fall back to raw MCP calls. That leaves every dock tour/e2e lane to rederive the same bridge and weakens the #14783 matrix's fixture-support column.

The Architectural Reality

  • ai/mcp/server/neural-link/openapi.yaml registers get_dock_topology and execute_dock_operation.
  • ai/mcp/server/neural-link/toolService.mjs dispatches both verbs to ai/services/neural-link/DockService.mjs.
  • ai/services/neural-link/DockService.mjs exists and calls the App Worker through ConnectionService.
  • ai/services.mjs exports the Neural Link component, connection, data, health, instance, interaction, and runtime services, but not DockService.
  • test/playwright/fixtures.mjs wraps many Neural Link operations for whitebox tests, but has no getDockTopology or executeDockOperation wrapper.

The Fix

Add the missing consumer-facing bridge without fattening the MCP server:

  1. Export NeuralLink_DockService from ai/services.mjs, matching the existing nlSpec service-export pattern.
  2. Add neuralLink.connectToApp() fixture helpers for getDockTopology(...) and executeDockOperation(...), passing sessionId internally like sibling helpers.
  3. Add a focused regression or fixture proof that the wrapper reaches the existing DockService contract without introducing a second dock mutation path.
  4. Update #14783's matrix row once the wrapper exists.

Contract Ledger Matrix

Surface Source of Authority Proposed Behavior Fallback Evidence
ai/services.mjs aggregate SDK export ai/services/neural-link/DockService.mjs expose NeuralLink_DockService with existing nlSpec pattern direct path import static import/export proof
Whitebox fixture dock helpers existing Neural Link fixture helper style getDockTopology read wrapper + executeDockOperation write-locked wrapper that injects sessionId raw MCP/service call per test focused unit/fixture proof

Acceptance Criteria

  • NeuralLink_DockService is exported from ai/services.mjs without adding MCP-server logic.
  • test/playwright/fixtures.mjs exposes dock helpers through neuralLink.connectToApp() and injects sessionId internally.
  • The helpers call the existing DockService/registered Neural Link verbs; no parallel dock mutation path is introduced.
  • A focused test or fixture proof covers the wrappers.
  • #14783's matrix row is updated from gap status to fixture-supported status after the wrapper lands.

Out of Scope

  • Implementing new dock operations (transferItem remains #14768).
  • The tour-runner harness (#14640).
  • The original dock MCP verbs (#14587, already closed).
  • Demo scene content or video/recording tooling.

Related

Parent: #14783. Related/consumed-by: #14640, #14589, #14590, #14591. Adjacent dock lanes: #14587, #14715, #14768.

Live duplicate sweep: gh issue list for dock fixture/SDK terms and local rg across issues/discussions/source on 2026-07-04 found no equivalent. A2A all-message sweep immediately before filing showed Clio owns #14715/#14768, but no SDK/fixture wrapper claim.

Origin Session ID: 6439a7c5-5f2f-4658-9226-835c317c7a0b Retrieval Hint: "Neural Link DockService SDK export fixture wrapper get_dock_topology execute_dock_operation"