4d1787f484
* fix: harden agentctl bind, git clone args, and powershell sound escaping Three LOW-severity defense-in-depth hardening fixes with PoC + regression tests: - notifications: escapePowerShell now neutralizes backtick and `$` in addition to `"`, defusing `$(...)` sub-expression and `$var` injection through an operator-supplied SoundFile path interpolated into the powershell `-c` script. - office/skills: git clone for git-sourced skills now passes a `--` end-of-options separator before the source locator (matching configloader), so a `-`-prefixed locator can never be parsed as a git flag. - agentctl: new Config.ListenHost() binds the control server and per-instance listeners to loopback only when no AuthToken is configured (auth disabled), so the unauthenticated command/shell/process routes are never reachable beyond localhost. The normal nonce-handshake flow (incl. Docker) always has a token and keeps binding all interfaces. * test: make PoC tests flip and drop indexOf coupling Address review feedback on the security-hardening PoCs: - system_provider PoC now demonstrates the PowerShell sub-expression injection against a legacyEscapePowerShell copy of the unfixed function and asserts the current escaper defuses it, so the PoC genuinely flips instead of passing trivially against fixed code (a substring match on `$(` matched the escaped form too). - materialization PoC + regression test use stdlib slices.Index instead of a custom indexOf defined in the PoC file, removing the coupling where deleting the PoC file would break the regression test. --------- Co-authored-by: Kandev Agent <agent@kandev.dev>