Nuno Duque Nunes
087f735790
feat: --json output for group/rule/identity/net/activity
...
- cmd::group::_output_json: groups array with peer/blocked counts
- cmd::rule::_output_json: rules with extends array, is_base bool fix
- cmd::identity::_output_json: identities with types/rules as arrays
- cmd::net::_output_json: services with tags array and port count
- cmd::activity::_output_json: peers with nested services array
- all commands: command::mixin json_output registered in on_load
2026-05-27 00:36:30 +00:00
Nuno Duque Nunes
c3cf5bc572
feat: watch/logs endpoint annotation, shared row primitives
...
- ui::_render_endpoint_col: shared endpoint padding primitive
- ui::_build_dest: shared destination display primitive
- ui:⌚ :wg_row/fw_row: endpoint annotation (raw_ip → resolved)
- resolve::endpoint_parts: fresh resolution, no stale cache
- resolve::service_name: returns service name or empty (no raw fallback)
- monitor::live: pre-measure w_client from peer names
- watch: fixed w_endpoint=30 for consistent live alignment
- shell: add peer/hosts/identity/subnet/policy/activity to known commands
- shell: updated banner with new commands
- identity/rule help: updated with new features
2026-05-26 15:16:33 +00:00
Nuno Duque Nunes
cf71e9f51a
test: add tests for all new features, fix bugs found by tests
...
- integration: logs query flags, hosts command, peer command sections
- unit: fmt::bytes, config::dns_string, parse_since, ui::group::status
- destructive: duplicate rule validation, peer update-dns/tunnel
- fix: config::allowed_ips_for used $2 instead of $1
- fix: identity rule assign exit_code unbound variable
- fix: ctx::identity → ctx::identities in peers::get_identity
- fix: peers::get_identity restored (needed for rule assign duplicate check)
- rule assign: blocks if rule already in peer's identity via peers::get_identity
- identity rule assign: --migrate removes conflicting direct peer rules
2026-05-26 00:09:30 +00:00
Nuno Duque Nunes
794e75bc9b
feat: duplicate rule validation, peer command, fallback DNS
...
- rule assign: block if rule already in peer's identity
- identity rule assign: --migrate flag to remove conflicting direct peer rules
- commands/peer.command.sh: update-dns and update-tunnel subcommands
- config.sh: config::dns_fallback, config::dns_string
- peers.module.sh: peers::get_display_subnet extraction
- wgctl peer update-dns --all: retrofits existing peer configs with fallback DNS
- wgctl.conf: WG_DNS_FALLBACK support
2026-05-25 21:39:17 +00:00
Nuno Duque Nunes
57e08e88c4
feat: rule list tableless layout with inline extends and +all/-N indicators
2026-05-22 23:12:27 +00:00
Nuno Duque Nunes
4b2f2a846a
feat: identity, subnet, policy systems + tableless layouts
2026-05-22 03:42:40 +00:00
Nuno Duque Nunes
4ac25e283d
cleanup structure,bak files | change peers header to match fw in rule inspect
2026-05-19 01:17:20 +00:00
Nuno Duque Nunes
f32ca5c0a1
feat: complete wgctl v2 — net services, block system M:N, rule inheritance, service annotations, restricted status, 64 tests passing
2026-05-15 12:36:38 +00:00
Nuno Duque Nunes
9a3ac2ae47
feat: net command, service annotations, block::restore_rules_for, fw refactor, restricted status, block system cleanup
2026-05-15 08:04:06 +00:00
Nuno Duque Nunes
cf90ab22db
feat: block system JSON migration, M:N group tracking, block module, block::restore_all, color module, fw refactor
2026-05-15 04:44:53 +00:00
Nuno Duque Nunes
7b32dcfebc
feat: rule inheritance, rule groups, rule show/inspect redesign, rule add/update --extends --group, list filters
2026-05-14 02:10:50 +00:00
Nuno Duque Nunes
6ac1a7d3a2
feat: rule inheritance, rule groups, rule inspect, ui::center, fw dedup, activity metrics
2026-05-13 22:44:07 +00:00
Nuno Duque Nunes
51e3443357
refactor: rule::show new layout, assign fix, unblock helpers, test improvements
2026-05-12 04:27:47 +00:00
Nuno Duque Nunes
0efa6c3a9e
feat: date format config, batch optimizations, list refactor, fw:: rename, .wgctl data dir
2026-05-11 22:27:33 +00:00