Goal
Message-class rename to v1.0 wire shape. The 58 existing wire-type literals collapse into the v1.0 ~16-envelope set.
Scope
session.open/accepted/authenticate/challenge/rejected/refresh/unauthenticated → session.hello/welcome/error
session.close/evicted → session.bye
job.started/completed/failed/cancelled/heartbeat/progress → job.submit/accepted/event/result/error
- Unify
log, metric, event.emit, trace.span, tool.invoke/result/error/invocations, stream.* into job.event { kind, body } with Arcp::Job::Event::Kind constants
cancel/cancel.accepted/cancel.refused → job.cancel
subscribe/subscribe.event/subscribe.accepted/subscribe.closed/unsubscribe retained as placeholder
- Retire
Arcp::MessageTypeRegistry; replace with frozen Arcp::MESSAGE_TYPES constants
- Delete RFC-0001-only files:
lib/arcp/messages/{artifacts,human,permissions,streaming,subscriptions}.rb; lib/arcp/runtime/{artifact_store,stream_manager}.rb
- RBS for
Arcp::Session::*, Arcp::Job::*, Arcp::Job::Event::*
- Regenerate
spec/unit/messages_spec.rb for renamed classes
MessageCatalogContractSpec against spec/fixtures/spec-message-types.json + bin/extract-spec-messages.rb
Spec §
§6.1–§6.7, §7.1–§7.4, §8.1–§8.2
Gate
Integration suite (spec/integration/) passes against MemoryTransport.pair; WS loopback (async-websocket) passes the handshake → submit → event → cancel scenario; Steep clean.
Goal
Message-class rename to v1.0 wire shape. The 58 existing wire-type literals collapse into the v1.0 ~16-envelope set.
Scope
session.open/accepted/authenticate/challenge/rejected/refresh/unauthenticated→session.hello/welcome/errorsession.close/evicted→session.byejob.started/completed/failed/cancelled/heartbeat/progress→job.submit/accepted/event/result/errorlog,metric,event.emit,trace.span,tool.invoke/result/error/invocations,stream.*intojob.event { kind, body }withArcp::Job::Event::Kindconstantscancel/cancel.accepted/cancel.refused→job.cancelsubscribe/subscribe.event/subscribe.accepted/subscribe.closed/unsubscriberetained as placeholderArcp::MessageTypeRegistry; replace with frozenArcp::MESSAGE_TYPESconstantslib/arcp/messages/{artifacts,human,permissions,streaming,subscriptions}.rb;lib/arcp/runtime/{artifact_store,stream_manager}.rbArcp::Session::*,Arcp::Job::*,Arcp::Job::Event::*spec/unit/messages_spec.rbfor renamed classesMessageCatalogContractSpecagainstspec/fixtures/spec-message-types.json+bin/extract-spec-messages.rbSpec §
§6.1–§6.7, §7.1–§7.4, §8.1–§8.2
Gate
Integration suite (
spec/integration/) passes againstMemoryTransport.pair; WS loopback (async-websocket) passes the handshake → submit → event → cancel scenario; Steep clean.