Skip to content

Hanging Server - #19

Merged
gabe-l-hart merged 3 commits into
mainfrom
HangingServer
Jul 25, 2026
Merged

Hanging Server#19
gabe-l-hart merged 3 commits into
mainfrom
HangingServer

Conversation

@gabe-l-hart

Copy link
Copy Markdown
Member

Description

This PR fixes two bugs related to client buffer queuing:

  1. Client websocket connection objects were never correctly reused since clientID was not sent from client to server and was not parsed during websocket connection. This caused orphaned connection objects that would queue output indefinitely.
  2. Individual client objects would queue output indefinitely and re-serialize the entire buffer on Send. This caused any orphaned client objects to become both compute and memory leaks.

AI Usage

This was fully developed using Claude Code with Sonnet 5. Commits were reviewed and created by me.

git-ai-stats
╔══════════════════════════════════════════════════════════╗
║           GIT AI USAGE ANALYSIS                          ║
╚══════════════════════════════════════════════════════════╝

📊 COMMITS BY AGENT

--- Aggregate ---
Commits                        |      Count
---------------------------------------------
Claude + Sonnet 5              |          2
Claude + Sonet 5               |          1
---------------------------------------------
TOTAL                          |          3

📊 COMMITS BY USAGE TYPE

--- Aggregate ---
Commits                        |      Count
---------------------------------------------
none                           |          0
draft                          |          0
full                           |          3
---------------------------------------------
TOTAL                          |          3

📈 LINES OF CODE BY AGENT

--- Aggregate ---
Agent                     |    Commits |  Additions |  Deletions
------------------------------------------------------------
Claude + Sonnet 5         |          2 |        219 |         47
Claude + Sonet 5          |          1 |        179 |          0
------------------------------------------------------------
TOTAL                     |          3 |        398 |         47

📈 LINES OF CODE BY USAGE TYPE

--- Aggregate ---
Usage Type           |    Commits |  Additions |  Deletions
-------------------------------------------------------
none                 |          0 |          0 |          0
draft                |          0 |          0 |          0
full                 |          3 |        398 |         47
-------------------------------------------------------
TOTAL                |          3 |        398 |         47

This allows websocket reconnects to attach to the same client object as the
initial HTTP connection. It also allows reconnecting clients to reuse the
existing server-side client object after a connection disruption.

Branch: HangingServer
AI-usage: full (Claude + Sonnet 5)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Also fix the client send lock logic so clients can send in parallel once
payload is fully determined in the lock.

Branch: HangingServer
AI-usage: full (Claude + Sonnet 5)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Branch: HangingServer
AI-usage: full (Claude + Sonet 5)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
@gabe-l-hart
gabe-l-hart merged commit 7f535f8 into main Jul 25, 2026
2 checks passed
@gabe-l-hart
gabe-l-hart deleted the HangingServer branch July 25, 2026 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant