Goal
v1.0 wire alignment — the foundation. The largest milestone, split into 10 sub-PRs so reviewers can land them incrementally.
Sub-PRs
- 1A: New
Envelope (8 fields per §5.1) + manual Codable for type discriminator
- 1B:
Message enum + v1.0 message types: session.hello/welcome/bye/error, job.submit/accepted/event/result/error/cancel
- 1C: 2-step session handshake (hello/welcome) +
ResumeToken rotation in ARCPRuntime
- 1D:
event_seq session-scoped monotonic counter; replay keyed on last_event_seq
- 1E: Unified
job.event envelope; JobEventBody enum for 8 v1.0 kinds
- 1F: Lease model rewrite: immutable
Lease value type, Capability enum with xVendor(String), Pattern glob compiler, LeaseEvaluator.authorize
- 1G: Error code overhaul: 12-case v1.0
ARCPError. Drop gRPC-style codes
- 1H: Delegation (event-kind, not envelope-type):
delegate body, parent-trace inheritance, LEASE_SUBSET_VIOLATION on subset failure
- 1I: Strip dead surfaces: HITL,
Artifacts.swift, Streaming.swift, etc. Move JWT auth to opt-in ARCPAuthJWT target. Drop SQLite from default
- 1J: Target split per
04-architecture.md §1: rewrite Package.swift, move files into Sources/ARCP{Core,Client,Runtime}/. Add ARCPWebSocketClient shell
Definition of done
A submit-and-stream example compiles and round-trips through MemoryTransport against v1.0 spec-shaped envelopes, with no v1.1 features.
Spec §
§5.1, §6, §7.1–§7.4, §8.1, §8.2, §9.1–§9.4, §10, §12, §14
Goal
v1.0 wire alignment — the foundation. The largest milestone, split into 10 sub-PRs so reviewers can land them incrementally.
Sub-PRs
Envelope(8 fields per §5.1) + manualCodablefortypediscriminatorMessageenum + v1.0 message types:session.hello/welcome/bye/error,job.submit/accepted/event/result/error/cancelResumeTokenrotation inARCPRuntimeevent_seqsession-scoped monotonic counter; replay keyed onlast_event_seqjob.eventenvelope;JobEventBodyenum for 8 v1.0 kindsLeasevalue type,Capabilityenum withxVendor(String),Patternglob compiler,LeaseEvaluator.authorizeARCPError. Drop gRPC-style codesdelegatebody, parent-trace inheritance,LEASE_SUBSET_VIOLATIONon subset failureArtifacts.swift,Streaming.swift, etc. Move JWT auth to opt-inARCPAuthJWTtarget. Drop SQLite from default04-architecture.md§1: rewritePackage.swift, move files intoSources/ARCP{Core,Client,Runtime}/. AddARCPWebSocketClientshellDefinition of done
A
submit-and-streamexample compiles and round-trips throughMemoryTransportagainst v1.0 spec-shaped envelopes, with no v1.1 features.Spec §
§5.1, §6, §7.1–§7.4, §8.1, §8.2, §9.1–§9.4, §10, §12, §14