By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
How to test?
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/fosrl/newt/pull/341
**Author:** [@oschwartz10612](https://github.com/oschwartz10612)
**Created:** 5/7/2026
**Status:** ❌ Closed
**Base:** `main` ← **Head:** `fix-stale-tunnel-deadlock`
---
### 📝 Commits (2)
- [`980a4f5`](https://github.com/fosrl/newt/commit/980a4f578bbcafb2b74c97f9f2e35b4729190963) fix(ping): decouple data-plane recovery trigger from backoff ramp
- [`7153cc8`](https://github.com/fosrl/newt/commit/7153cc8906c02e42591ce9d50096178fa98ecc1b) fix(websocket): retry SendMessageInterval until caller stops it
### 📊 Changes
**4 files changed** (+250 additions, -41 deletions)
<details>
<summary>View changed files</summary>
📝 `common.go` (+51 -28)
📝 `common_test.go` (+39 -0)
📝 `websocket/client.go` (+9 -13)
➕ `websocket/client_test.go` (+151 -0)
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Description
## How to test?
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/newt/pull/341
Author: @oschwartz10612
Created: 5/7/2026
Status: ❌ Closed
Base:
main← Head:fix-stale-tunnel-deadlock📝 Commits (2)
980a4f5fix(ping): decouple data-plane recovery trigger from backoff ramp7153cc8fix(websocket): retry SendMessageInterval until caller stops it📊 Changes
4 files changed (+250 additions, -41 deletions)
View changed files
📝
common.go(+51 -28)📝
common_test.go(+39 -0)📝
websocket/client.go(+9 -13)➕
websocket/client_test.go(+151 -0)📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
How to test?
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.