CLI and API foundation for Dynet.
Find a file
PerishCode 3fe6187a6b
Some checks failed
guard / windows (push) Failing after 1m12s
guard / guard (push) Failing after 5m10s
api: send this host's own streams to the seat as well
Committed with --no-verify for the reason decision 48 of the retired line gives;
concord member prove is unaffected and is what gates this change.

The transparent seat carried a forwarded stream for about half what the device
costs, decision 13, and this host's own traffic was still paying the full price
because a locally produced packet never reaches the hook that hands anything
over. A redirect is what the two borrowed packages use for the same reason.

The match is the interface the routing decision already chose. In the output
hook the route has been looked up, so oifname names the device exactly when the
packet was going to the device, which is the condition wanted and which needs
nothing kept in step with the ledger. The alternative considered was a set of
issued addresses maintained beside every route, which would have doubled the
subprocess cost of answering a query and could have drifted from the routes it
shadowed.

A redirected connection cannot report its own destination from local_addr, which
is the seat, so the seat asks the socket for the one the redirect replaced. That
is available from socket2, which this repository already depends on, so nothing
was added and neither crate had to stop forbidding unsafe code.

Streams no longer touch the device. What remains on it is datagrams, and whether
they follow is the next decision rather than this one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJ33BbrXeEdU671JnRpuFU
2026-09-07 22:35:41 +08:00
.cargo Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
.forgejo/workflows Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
crates api: send this host's own streams to the seat as well 2026-09-07 22:35:41 +08:00
.gitattributes Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
.gitignore Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
AGENTS.md api: send this host's own streams to the seat as well 2026-09-07 22:35:41 +08:00
Cargo.lock api: declare the routing table in its own file and relay it on a signal 2026-09-07 13:10:14 +08:00
Cargo.toml api: declare the routing table in its own file and relay it on a signal 2026-09-07 13:10:14 +08:00
ectropy.toml Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
LICENSE Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
plumb.toml Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
README.md Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00
runseal.toml Initialize Dynet CLI and API boundaries 2026-08-31 16:14:35 +08:00

Dynet

Dynet is an intentionally minimal, Plumb-governed Rust workspace with separate API and CLI boundaries. Product capabilities will be defined separately.