Skip to content

R1: Define supported connector lifecycle and reusable STDIO seams #1560

Open

Description

@jlouvel

Follow-up to R0 PR #1556. Share Restlet connectors/resources, not protocol contracts. Protocol.STDIO exists; reusable process/stream mechanics do not. R0 uses official MCP STDIO subprocess transports only and does not prove the proposed core extraction.

Acceptance: protocol-neutral supported access without extension imports of engine internals; bounded non-JSON byte I/O, stderr draining, process/stream ownership and shutdown while input is blocked; explicit helper selection and no implicit global stdout redirection/closure of borrowed standard streams. MCP framing/correlation/revision handling remains in its extension.

For HTTP SDK integrations, define only measured gaps: idle-disconnect notification when no application I/O occurs, cancellation registration races, finite readiness/byte-budget behavior, and a decision on resolved address versus HTTP/TLS authority and pooled connection control. R0 fixes header-before-body delivery and headers-only stream completion; it does not establish physical-connection GOAWAY/PING/keepalive or global resource pooling. Require independent connector regressions before accepting further core changes.

Activity

  1. jlouvel commented on Oct 22, 2026

    @jlouvel
    CollaboratorAuthor

    R1 is implemented in stacked PR #1562 (base: the unmerged R0 branch in #1556), commit d22b6eb. The supported public StreamTransport seam, bounded non-JSON process/stream mechanics, explicit/unique helper selection, HTTP idle-disconnect signal and pre-registration cancellation regression coverage are delivered. README records independent SDK ownership/finite-limit decisions and URI-origin routing: no speculative physical-connection API or default MCP helper. Final live SDK + R1 + HTTP/TLS/HTTP3/SSE/upgrade selector: 134 passed, none skipped. Full core: 2257 tests with one existing shutdown timing failure also reproduced on unchanged R0; the five-case shutdown class passed separately on R1. Borrowed uncancellable I/O reports timeout explicitly. MCP framing/helpers remain #1558; SDK readiness/connection conformance remains #1561. Keep this issue open until the stacked changes reach the release branch.

  2. jlouvel commented on Oct 22, 2026

    @jlouvel
    CollaboratorAuthor

    R1 implementation and verification are complete in ready-for-review PR #1562, final head afe0801. The expanded live selector passes 145 tests, including exact queue limits, named-module examples, process/borrowed-stream ownership, HTTP idle/cancellation lifecycle, deterministic terminal-publication ordering and empty-error/authorization regressions. Strict Javadoc passes. Published repository build/test/Javadoc and both SonarCloud checks are green; quality gate OK with zero unresolved new-code issues. The earlier local baseline shutdown timing limitation remains documented, with no relaxed assertion. Keep open pending review/merge of the R0/R1 stack. Next delivery phase is R2 MCP (#1558); no production RPC adapter or physical-connection API is claimed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions