Define the kvshare wire protocol #3

Merged
erik merged 7 commits from erik/task-d9bbd64e-wire-protocol into main 2026-07-17 06:01:46 -05:00 AGit
Owner

Documents protocol version 1 and adds matching dependency-free Rust and Swift codecs, shared fixtures, strict validation tests, and cross-language verification commands. Task: task-d9bbd64e

Documents protocol version 1 and adds matching dependency-free Rust and Swift codecs, shared fixtures, strict validation tests, and cross-language verification commands. Task: task-d9bbd64e
ci: verify Rust and Swift protocol code
Some checks failed
CI / build-lint-test (pull_request) Failing after 2s
61d35acf65
Task: #task-d9bbd64e
fix: resolve CI setup actions from GitHub
Some checks failed
CI / build-lint-test (pull_request) Failing after 9s
d7d9dcdbc0
Task: #task-d9bbd64e
ci: allow manual verification runs
Some checks failed
CI / build-lint-test (pull_request) Failing after 5m1s
21640824ba
Task: #task-d9bbd64e
ci: use isolated Rust and Swift containers
Some checks failed
CI / Rust build, lint, and test (pull_request) Failing after 1m2s
CI / Swift build, lint, and test (pull_request) Failing after 2m7s
d4fe6b48e4
Task: #task-d9bbd64e
fix: trust Forgejo CA in pull request CI
Some checks failed
CI / Rust build, lint, and test (pull_request) Failing after 4s
CI / Swift build, lint, and test (pull_request) Successful in 13s
df6be5b5f9
Task: #task-d9bbd64e
fix: install Rust CI quality components
All checks were successful
CI / Rust build, lint, and test (pull_request) Successful in 7s
CI / Swift build, lint, and test (pull_request) Successful in 13s
CI / Rust build, lint, and test (push) Successful in 5s
CI / Swift build, lint, and test (push) Successful in 13s
8460f048c4
Task: #task-d9bbd64e
Author
Owner

Review summary

The PR defines protocol version 1, adds matching dependency-free Rust and Swift codecs, validates shared fixtures and malformed input, and introduces passing Forgejo CI for both toolchains.

Acceptance criteria

  • The protocol format is documented — met — docs/PROTOCOL.md specifies framing, byte order, limits, message layouts, enum values, directions, and version behavior.
  • Swift and Rust encode and decode the same fixtures — met — both test suites decode and re-encode the eight canonical protocol/fixtures/*.hex frames byte-for-byte.
  • Invalid and unsupported messages are rejected safely — met — both codecs test short frames, invalid magic, unsupported versions, oversized and mismatched payloads, unknown message types, invalid enum values, and trailing data.

Blocking issues

  • None.

Warnings

  • None.

Verification

  • Local make check and make pre-pr: passed.
  • Forgejo CI run #6: Rust and Swift build, lint, and test jobs passed.

Verdict

Approved.

### Review summary The PR defines protocol version 1, adds matching dependency-free Rust and Swift codecs, validates shared fixtures and malformed input, and introduces passing Forgejo CI for both toolchains. ### Acceptance criteria - [x] **The protocol format is documented** — met — `docs/PROTOCOL.md` specifies framing, byte order, limits, message layouts, enum values, directions, and version behavior. - [x] **Swift and Rust encode and decode the same fixtures** — met — both test suites decode and re-encode the eight canonical `protocol/fixtures/*.hex` frames byte-for-byte. - [x] **Invalid and unsupported messages are rejected safely** — met — both codecs test short frames, invalid magic, unsupported versions, oversized and mismatched payloads, unknown message types, invalid enum values, and trailing data. ### Blocking issues - None. ### Warnings - None. ### Verification - Local `make check` and `make pre-pr`: passed. - Forgejo CI run #6: Rust and Swift build, lint, and test jobs passed. ### Verdict Approved.
erik merged commit 8460f048c4 into main 2026-07-17 06:01:46 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/kvshare!3
No description provided.