Skip to content

feat(dictyon): control protocol types and map response parser - #3

Merged
forkwright merged 1 commit into
mainfrom
feat/map-response
Apr 12, 2026
Merged

feat(dictyon): control protocol types and map response parser#3
forkwright merged 1 commit into
mainfrom
feat/map-response

Conversation

@forkwright

Copy link
Copy Markdown
Owner

RegisterRequest/Response, MapResponse with delta peer updates, Hostinfo, Node, DnsConfig, DerpMap. ControlClient with register/map_request/apply_map_response. 1,108 LOC, 12 new tests (27 total).

Implement Milestone 2 of the dictyon Tailscale client:
- plegma-core/types.rs: RegisterRequest, RegisterResponse, MapRequest,
MapResponse, Node, DnsConfig, DerpMap, Hostinfo with serde PascalCase
field renaming to match Tailscale wire format
- dictyon/control.rs: ControlClient with register request building,
map response parsing (4B LE size + JSON framing), and netmap
maintenance with full/delta/keepalive application
- transport.rs: add ControlConnection::from_transport constructor
12 new tests covering serialization, deserialization, delta peer
updates, peer removal, keepalive handling, and frame parsing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@forkwright
forkwright merged commit 82e2f6f into mainApr 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⚠️Large PR detected — 8 files, 1108 lines changed.

Consider splitting into smaller PRs for easier review. Not a blocker, just a signal.

@forkwright
forkwright deleted the feat/map-response branch April 12, 2026 12:09
forkwright pushed a commit that referenced this pull request Apr 19, 2026
Remove the GitHub Actions workflow that enforced PR-title hygiene and Gate-Passed trailer presence on mirror PRs (G2 shim from 03f-f). With hamma forge-native per #1, trailer application and merge-commit discipline are handled structurally by kanon pr merge - the forge stamps Gate-Passed: kanon <version> on the merge commit and squash-only defaults keep main linear.
Non-G1/G2 workflows (release-please, codeql, stale, dependabot-auto-merge, ci.yml, rust.yml, nightly.yml, security.yml) stay on GitHub per the 03f-f execution-order decisions.
Per kanon's 05e PLAN: one workflow-file per PR for auditability.
projects/kanon/phases/05-forge-prs/subphases/05e-cutover/PLAN.md
PR 3 of 3. Completes the hamma cutover arc.
Gate-Passed: kanon 0.1.0
forkwright pushed a commit that referenced this pull request May 29, 2026
Remove the GitHub Actions workflow that enforced PR-title hygiene and Gate-Passed trailer presence on mirror PRs (G2 shim from 03f-f). With hamma forge-native per #1, trailer application and merge-commit discipline are handled structurally by kanon pr merge - the forge stamps Gate-Passed: kanon <version> on the merge commit and squash-only defaults keep main linear.
Non-G1/G2 workflows (release-please, codeql, stale, dependabot-auto-merge, ci.yml, rust.yml, nightly.yml, security.yml) stay on GitHub per the 03f-f execution-order decisions.
Per kanon's 05e PLAN: one workflow-file per PR for auditability.
projects/kanon/phases/05-forge-prs/subphases/05e-cutover/PLAN.md
PR 3 of 3. Completes the hamma cutover arc.
Gate-Passed: kanon 0.1.0
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@forkwright