Skip to content

Session close uses 'session.bye' instead of 'session.close'/'session.closed' (§6.7) #41

@nficano

Description

@nficano

Category: spec-conformance Severity: major
Location: src/Arcp.Core/Messages/MessageTypeNames.cs:19-20
Spec: ARCP v1.1 §6.7

What

Spec §6.7 defines a client-sent session.close acknowledged by a runtime-sent session.closed. The implementation defines neither; it uses a single session.bye in both directions (SessionState.CloseAsync emits it at SessionState.cs:112, DispatchAsync handles inbound session.bye at SessionState.Dispatch.cs:77). A spec-compliant peer that sends session.close hits the default 'Unhandled inbound type' branch and is never closed gracefully, and this runtime's session.bye is not recognizable as session.closed.

Evidence

    /// <summary>Gets the session bye.</summary>
    public const string SessionBye = "session.bye";

Proposed fix

Rename to the spec wire types: accept inbound session.close and emit session.closed as the acknowledgement (keep session.bye only as a deprecated alias if back-compat is needed).

Acceptance criteria

  • The runtime accepts session.close and replies session.closed; the strings session.close/session.closed appear in MessageTypeNames and the registry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions