32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
|
|
---
|
||
|
|
model: gpt-5.6-sol
|
||
|
|
service: opencode
|
||
|
|
timestamp: 2026-08-21T23:32:04Z
|
||
|
|
git_ref: 5d92595f
|
||
|
|
diff_cmd: git diff HEAD~1..HEAD
|
||
|
|
---
|
||
|
|
|
||
|
|
# Raw output - read WireGuard state through pyroute2
|
||
|
|
|
||
|
|
The human authorized the first incremental WireGuard Layer B change
|
||
|
|
as a stacked branch from tractor PR #505, with one atomic change and
|
||
|
|
a commit plan at the end of the turn.
|
||
|
|
|
||
|
|
> `git diff HEAD~1..HEAD -- pyproject.toml uv.lock tractor/discovery/__init__.py tractor/discovery/_tunnel.py tests/discovery/test_wg_inspection.py`
|
||
|
|
|
||
|
|
Added a Linux-only `wg` extra using pyroute2 0.9.6, plus
|
||
|
|
asynchronous public helpers for reading one interface's public key
|
||
|
|
and peer keys. The complete synchronous open/read/parse/close
|
||
|
|
sequence runs in a Trio worker thread because pyroute2 owns a private
|
||
|
|
asyncio loop internally.
|
||
|
|
|
||
|
|
Named namespace reads pass `flags=0` to override pyroute2's `O_CREAT`
|
||
|
|
default, ensuring inspection cannot create a missing namespace. Fake
|
||
|
|
netlink messages cover multipart dumps, key validation, stable peer
|
||
|
|
deduplication, worker-thread execution, netns selection and cleanup
|
||
|
|
on success/error.
|
||
|
|
|
||
|
|
Ruff and lock checks passed. Focused tunnel/multiaddr coverage passed
|
||
|
|
47 tests; the complete discovery suite passed 88 tests with 2
|
||
|
|
xpasses.
|