feat(clients): add WireGuard state parsing and client listing
This commit is contained in:
@@ -262,7 +262,7 @@ Allowed status values: `NOT STARTED`, `IN PROGRESS`, `BLOCKED`, `DONE`.
|
||||
|---|---|---|
|
||||
| M0 | DONE | Test harness and safe project skeleton |
|
||||
| M1 | DONE | Runtime foundation, CLI shell, and config loading |
|
||||
| M2 | NOT STARTED | WireGuard parser, client model, `status`, and `list` |
|
||||
| M2 | DONE | WireGuard parser, client model, `status`, and `list` |
|
||||
| M3 | NOT STARTED | Locking, backups, atomic apply, and rollback engine |
|
||||
| M4 | NOT STARTED | Safe client creation |
|
||||
| M5 | NOT STARTED | Client detail, config export, and QR display |
|
||||
@@ -1579,6 +1579,20 @@ Use this template:
|
||||
- Suggested commit message: `feat(core): add validated configuration and CLI foundation`
|
||||
- Next milestone: M2
|
||||
|
||||
## 2026-10-12 — M2 — DONE
|
||||
|
||||
- Implemented: non-executing persistent WireGuard and runtime dump parsers, validated per-client metadata, exact public-key/address identity matching, normalized managed/legacy/unmanaged client records and activity states, read-only `status` and deterministic plain-text `list`, plus isolated IPv4/IPv6, malformed-input, stopped-runtime, secret-safety, and no-write fixtures and tests.
|
||||
- Coordinator: `gpt-5.6-sol` (`high`)
|
||||
- Subagents: `milestone_worker` / `milestone_repairer`, `gpt-5.6-luna` (`medium`)
|
||||
- Repair cycles: 4
|
||||
- Sol review: corrected the stable eight-field peer dump contract and `(none)` tokens; hardened metadata identity/path validation and managed-state classification; fixed singleton/repeatable field handling, parser structure, endpoint and `FwMark` validation, marker scoping between adjacent peers, IPv6 overlap coverage, unsafe metadata-name coverage, read-only proof, and missing-`wg` test isolation so no host networking command can be selected.
|
||||
- Verification: `bash -n wg-manager.sh`, `bash -n tests/*.sh`, `bash -n tests/mocks/bin/*`, `bash tests/run.sh parser`, `bash tests/run.sh status`, `bash tests/run.sh list`, `bash tests/run.sh`, `bash tests/run.sh list-redirected`, `LC_ALL=C bash tests/run.sh list-deterministic`, `git diff --check`, `git diff HEAD --check`, per-file `git diff --no-index --check /dev/null tests/fixtures/m2/*`, permission and worktree review.
|
||||
- Result: all required checks passed; the full suite passed 246 assertions, focused parser/status/list suites passed 11/2/2 assertions, redirected output passed 2 assertions, and deterministic ordering passed 1 assertion. Optional `shellcheck wg-manager.sh tests/*.sh tests/mocks/bin/*` was `SKIP` because ShellCheck is unavailable.
|
||||
- Decisions: none
|
||||
- Known limitations: real WireGuard, networking, systemd, firewall, route, sysctl, journal, and deployment-server checks were not run; M2 verification is fixture- and mock-based as required.
|
||||
- Suggested commit message: `feat(clients): add WireGuard state parsing and client listing`
|
||||
- Next milestone: M3
|
||||
|
||||
# 8. Final completion rule
|
||||
|
||||
The MVP is complete only when:
|
||||
|
||||
Reference in New Issue
Block a user