fix(ci): make backend POSIX-clean for ShellCheck + executable smoke entrypoint
CI failed on two independent issues after the rebrand:
1. Differential ShellCheck (severity=error): the git mv podkop->netshift made
every lib file "new", surfacing pre-existing upstream dash-incompatibilities.
Fixed all severity=error defects so `shellcheck --shell=ash` is clean:
- SC2148: add `# shellcheck shell=ash` directive to the 7 sourced libs
(constants/helpers/logging/nft/rulesets/sing_box_config_manager/facade)
- SC3014: `[ x == y ]` -> `[ x = y ]` (bin/netshift + facade + logging)
- SC3010: `[[ ... ]]` / `[[ =~ ]]` -> POSIX (grep -Eq / case / `! cmd`)
in bin/netshift and helpers (is_ipv4, is_ipv4_cidr, is_domain, ...)
- SC3060: `${input//,/...}` -> `sed 's/,/","/g'`
- SC3028: `$RANDOM` in gen_id -> `/dev/urandom` (od-free, busybox-safe)
- SC3003: `$'\r'` -> `"$(printf '\r')"`
- SC3036: `echo -e` -> `printf '%b\n'` (logging.sh)
2. Smoke-test job: tests/entrypoint.sh lacked the executable bit (git mode
100644) -> "permission denied" in the container. Set mode 100755.
README: drop stale podkop.net docs badge.
Verified: shellcheck --severity=error --shell=ash clean (exit 0); smoke suite
44 passed / 0 failed; gen_id still yields 16-hex ids; behavior unchanged.