fix: use configured connectIp for tunnel chain diagnosis

- Pass connectIp through resolveChainProbeTarget in diagnosis stream start items
- Pass connectIp in appendChainHopDiagnosis for full chain probes
- Reconstruct tunnel state with connectIp field preserved
- Fix forward service config when bindIP already contains port
- Add contract tests for connectIp diagnosis scenarios
- Add unit test for bindIP with port in buildForwardServiceConfigs
- Update AGENTS.md with plan document rules

Entire-Checkpoint: 35a2e61c2431
This commit is contained in:
sagitchu
2026-03-03 14:17:36 +08:00
parent e38335973d
commit 1c10347357
7 changed files with 295 additions and 5 deletions
+15
View File
@@ -0,0 +1,15 @@
# 001 Fix 211 ConnectIP Full Chain
## Checklist
- [x] Analyze connectIp/inIp full chain across diagnosis/runtime/redeploy paths.
- [x] Fix diagnosis target resolution to honor selected `connectIp` for chain hops.
- [x] Fix tunnel state reconstruction to preserve `connectIp` on chain/out nodes.
- [x] Add contract regression tests for normal + stream diagnosis target IP behavior.
- [x] Add handler regression test for redeploy state reconstruction preserving `connectIp`.
- [x] Run backend handler and contract test suites.
## Notes
- Diagnosis now uses `chain_tunnel.connect_ip` for both stream start preview and runtime probing.
- Redeploy/batch-redeploy no longer drops `connectIp` during `reconstructTunnelState`.