Interface: LtpState
The reducer's immutable session state. Every ltpReduce call returns a new,
frozen LtpState; the previous one is never mutated.
Properties
expectedFrame
readonlyexpectedFrame:number
The next frame number the receiver expects (1 → … → 7 → 0 → …), meaningful in
transfer. A trusted frame carrying this number is accepted and appended; any
other number is a duplicate retransmit (idempotent re-ACK) or an out-of-sequence
frame (rejected with NAK), never silently bridged.
lastAcceptedFrame?
readonlyoptionallastAcceptedFrame?:number
The frame number of the last frame accepted into the current record, used to
recognise a duplicate retransmit; undefined before the first frame of a
transfer is accepted.
openRecord
readonlyopenRecord:Uint8Array
The bytes accumulated so far for the in-progress record: the concatenation of
the ETB frames accepted since the last ETX. Empty when no record is open.
These bytes are never delivered on their own: only an ETX completes a
record, at which point they (plus the final frame's text) become one entry in
LtpState.records. An EOT or an ENQ restart discards them unread.
phase
readonlyphase:LtpPhase
The current protocol phase.
recordOpen
readonlyrecordOpen:boolean
true when a record is mid-reassembly (an ETB frame was accepted, awaiting its ETX).
records
readonlyrecords: readonlyUint8Array<ArrayBufferLike>[]
The reassembled bytes of every complete record delivered so far in the
session (each closed by an ETX frame with a clean run). Concatenate these and
hand them to parseAstmRecords to get the message. Only trusted, in-sequence
frames contribute; a rejected or partial record never appears.