transport: take the writer's effective minor at construction #231
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
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis!231
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-176"
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?
FrameWriter::newdefaulted itseffective_minorto this build's ownPROTOCOL_MINOR, so the plain public constructorplus
send()authorized every addition this build knows even though no peer had agreed to any of them — the send gatewas only as strong as the value a forgotten
.at_minorcall left behind. The minor is now anewparameter, so no sendpath can inherit the ceiling by omission. A carrier whose preface has not run takes
FrameWriter::baseline(base schemaonly); a harness that is both peers takes
FrameWriter::at_build_minor, gated behind thetest-utilfeature so noproduction dependency compiles it.
Connection::from_halvesreads the minor off the writer it is handed instead oftaking a second copy that could disagree with it.
Pinned by
an_unnegotiated_writer_authorizes_only_the_base_schema(felis-transport): an unnegotiated writer refuses aminor-1 addition with
MinorTooOldand still sends a base-schemaHelloon the same writer. The mandatory-parameterhalf is pinned by the type system — every call site now states its minor.
docs/reference/ipc.md"Versioning" recordsthe resulting fact. No wire, CLI, config or default changes, so no CHANGELOG entry.
Fixes #176