protocol, transport, daemon: version the relay carrier payload #338
No reviewers
Labels
No labels
priority/P0
priority/P1
priority/P2
release/v0.1.0
status/blocked
status/planned
type/bug
type/design
type/test-gap
type/tracker
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis!338
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-332"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #332.
The relay carrier payload now starts with a
u16format version; the 8-byteFRLY | u32 lengthheader is unchanged. Version 1 is today's entry encoding under the frozen caps; version 0 is malformed; an unknown version is skipped by length with a warning and the connection continues toFLISwith no carrier, so a future payload change skews safely against any released v1 daemon. Migration against a pre-version-word daemon fails fast in both directions (the old entry-count cap catches the version word; the new reader sees version 0), andCHANGELOG.mdstates the one restart that upgrade needs.Decision: the last comment on #332 (six rounds of design review; the original widened-header proposal was rejected there because an old daemon would read the new bytes as a length and hang). Code review: pi luna (one blocker on the reference's skew claim) then pi sol (three rounds: a six-line comment, a missing truncated-header test, the same skew claim in the explanation; PASS).
Docs:
ipc.mdreference + explanation (decision record with rejected alternatives and a Revisit trigger),spec.mdREQ-104c,CHANGELOG.md.