ci/woodpecker/push/woodpecker Pipeline was successfulDetails
Three failure modes fixed:
- Startup: purge all tunnel-* labels so container restarts don't leave
dead routes pointing to ports that no longer exist
- Reconnect: tear down old listener/port before registering new one for
the same domain, preventing port leaks
- Race: cleanupConnection skips label removal if a newer connection has
already taken over the tunnel key
Made-with: Cursor