Long transfers with no activity may get dropped by firewalls/NATs. There is no keep-alive message in the protocol.
Location
src/shared/protocol.h (NEED STATUS enum)
Suggested Fix
Add STATUS_KEEPALIVE to the NET_STATUS enum. Sender sends it periodically during long chunk transfers; receiver resets its timeout on receipt. Frequency should be configurable (default: every 30s of inactivity).
Severity
medium
Category
feature
Sub-Agent
feature-scout (FS-6)
This issue was automatically generated by the issue-creator agent.
## Description
Long transfers with no activity may get dropped by firewalls/NATs. There is no keep-alive message in the protocol.
## Location
src/shared/protocol.h (NEED STATUS enum)
## Suggested Fix
Add `STATUS_KEEPALIVE` to the `NET_STATUS` enum. Sender sends it periodically during long chunk transfers; receiver resets its timeout on receipt. Frequency should be configurable (default: every 30s of inactivity).
## Severity
medium
## Category
feature
## Sub-Agent
feature-scout (FS-6)
---
_This issue was automatically generated by the issue-creator agent._
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.
Description
Long transfers with no activity may get dropped by firewalls/NATs. There is no keep-alive message in the protocol.
Location
src/shared/protocol.h (NEED STATUS enum)
Suggested Fix
Add
STATUS_KEEPALIVEto theNET_STATUSenum. Sender sends it periodically during long chunk transfers; receiver resets its timeout on receipt. Frequency should be configurable (default: every 30s of inactivity).Severity
medium
Category
feature
Sub-Agent
feature-scout (FS-6)
This issue was automatically generated by the issue-creator agent.
Fixed in PR #148 — merged into main on 2026-07-29.