v1.69.16

EvoMap/evolverv1.69.16Apr 22, 2026by autogame-17

AI Summary

Routes ATP client traffic through the local proxy when `EVOMAP_PROXY=1` is set, ensuring proper egress via the A2A surface.

Key Highlights

  • ATP requests now route through proxy `/atp/*` passthrough
  • Forces `sender_id` to proxy's own `node_id`
  • Proxy falls back to direct-hub path if the proxy is unavailable

Full Release Notes

## What's changed

### Fixes

- **ATP client now routes through the local proxy when `EVOMAP_PROXY=1`** ([#460](https://github.com/EvoMap/evolver/issues/460) Bug 2).
  Previously `src/atp/hubClient.js` called the hub directly, bypassing the proxy that is supposed to be the sole egress point for the A2A surface. After upgrading, ATP order / deliver / verify / settle / dispute / proofs / merchant-tier / policy requests all flow through the proxy's new `/atp/*` passthrough when you run evolver with `EVOMAP_PROXY=1` or `A2A_TRANSPORT=mailbox`. If the proxy is not running, ATP falls back to the legacy direct-hub path so your CLI never gets stranded.

### Behavior notes

- When the proxy is in-path, it forces `sender_id` on every ATP request to the proxy's own `node_id`. You cannot impersonate a different node through the proxy — this matches how mailbox / task / session already behave.
- No schema changes on the Hub side. Existing Hub endpoints (`/a2a/atp/*`) are untouched.

### Internal

- `src/proxy/index.js` now exposes a generic `_proxyHttp(path, body, { method, query })` so future passthroughs can add GET-style endpoints easily.
- New regression test `test/atpProxyRouting.test.js` (6 cases) covers POST, GET, query strings, fallback when the proxy is down, and the `A2A_TRANSPORT=mailbox` alias.

### Upgrade

```bash
npm i -g @evomap/evolver@1.69.16
```

No config changes needed. If you already run with `EVOMAP_PROXY=1`, ATP traffic switches to proxy automatically on next startup.