16 Commits

Author SHA256 Message Date
ec1a37d18f Fix env_check_apply_fixes under partial fix needs
The function used a chain of `(( NEED_X == 1 )) && { ... }` statements.
When the last flag is 0 the trailing arithmetic evaluates to false and
bash returns 1 from the function. Under the main script's `set -e` that
propagates up to bootstrap which exits with the misleading "line 60"
ERR trap right after the installer announces it is going to create the
state directory.

Rewrite the body as plain `if` blocks and return 0 explicitly. Add two
regression assertions that exercise the "only some flags set" and
"nothing to do" paths so the class of bug is caught in CI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 14:11:53 +08:00
26fbcf3584 Mark runnable scripts executable in git
The repo was committed from WSL with core.filemode=false, so the exec
bit was never recorded. After actions/checkout the entry script comes
down as 100644 and tests/test_cli.sh fails with Permission denied.

Set mode 100755 on every script that is invoked directly (entry,
installer, test suite, mock binaries). Sourced helpers under lib/
keep 100644 per convention.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 13:58:42 +08:00
8813cffd12 Surface runtime health in menu 2026-04-17 12:27:17 +08:00
818c52c10d Align rule table display widths 2026-04-17 12:17:00 +08:00
87ee5283c8 Fix FORWARD-drop reply handling 2026-04-17 12:10:11 +08:00
479c416b2f Protect install target and add tests 2026-04-17 11:58:18 +08:00
bd6dc0279e Add end-to-end forwarding integration test 2026-04-17 11:51:59 +08:00
4c431584eb Harden rule health checks 2026-04-17 11:21:54 +08:00
7b854c7a96 Add interactive menu regression 2026-04-17 11:09:25 +08:00
b5ae4a5668 Harden IPv6 validation 2026-04-17 10:38:23 +08:00
014dc88a33 Sync CLI help and README 2026-04-17 10:26:27 +08:00
eb8c76492c Serialize rule writes and add tests 2026-04-17 10:21:37 +08:00
66c25b06a7 test persist rollback recovery 2026-04-17 10:05:52 +08:00
6aecbe41cc test persist reload integration 2026-04-17 10:02:15 +08:00
67a743a02b Polish CLI help behavior 2026-04-17 09:41:45 +08:00
28960eee03 Implement iptables forward manager core 2026-04-17 09:36:40 +08:00