v1.80.2

EvoMap/evolverv1.80.2May 7, 2026by autogame-17

AI Summary

Fixes a stale `node_secret` authentication loop in proxy mode that occurred during cold starts and restarts.

Key Highlights

  • Resolved infinite `heartbeat 403 -> rotate_secret` cycle that persisted across restarts.
  • `LifecycleManager` now prioritizes the fresh `A2A_NODE_SECRET` in `.env` over stale data in the store.
  • Added handling for `node_id_already_claimed` to force retry without an Authorization header.

Full Release Notes

## v1.80.2

### Fixes

- **proxy: break stale `node_secret` auth loop in proxy mode** (#529).

  Proxy users hitting an infinite `heartbeat 403 -> rotate_secret hello -> node_id_already_claimed -> 30-min backoff` cycle would previously stay stuck across restarts because `LifecycleManager` preferred the persisted secret in `~/.evomap/mailbox/state.json` over a freshly minted `A2A_NODE_SECRET` in `.env`.

  - `nodeSecret` now reconciles env vs store on conflict: a valid hex64 env value wins and the store is rewritten, with a one-shot warning so operators know to clean up stale state.
  - `reAuthenticate` recognises `node_id_already_claimed`, drops the cached secret, and retries `hello` without an `Authorization` header. If the second rotate is still rejected, a high-priority `manual_secret_reset_required` system event is delivered to the mailbox pointing operators at `https://evomap.ai/account` instead of churning forever.
  - 5 new regression tests in `test/lifecycleStaleNodeSecret.test.js`.

### Internal

- `evolve` pipeline Stage 7 (dispatch / solidify / bridge) extracted into `src/evolve/pipeline/dispatch.js`. No behaviour change; covered by 5 new unit tests.