Skip to content

Uses session.bye instead of session.close/session.closed (§6.7) #133

@nficano

Description

@nficano

Category: spec-conformance Severity: blocker
Location: messages/types.go:7-15
Spec: ARCP v1.1 §6.7

What

Spec §6.7 mandates the client send session.close and the runtime acknowledge with session.closed. The Go SDK ships only session.bye and the server never sends a closed acknowledgement (dispatch for TypeSessionBye just sets gracefulBye and cancels). A spec-conformant peer that sends session.close will be answered with 'unknown envelope type' instead of session.closed.

Evidence

TypeSessionHello    = "session.hello"
TypeSessionWelcome  = "session.welcome"
TypeSessionError    = "session.error"
TypeSessionBye      = "session.bye"
TypeSessionPing     = "session.ping"
TypeSessionPong     = "session.pong"
TypeSessionAck      = "session.ack"
TypeSessionListJobs = "session.list_jobs"
TypeSessionJobs     = "session.jobs"

Proposed fix

Rename TypeSessionBye to TypeSessionClose ("session.close") and add TypeSessionClosed ("session.closed"); have the server emit a session.closed envelope back to the client on receipt before cancelling.

Acceptance criteria

  • A peer that sends a session.close envelope receives a session.closed envelope before the transport drops; the literal session.bye is removed from the wire.

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