mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-15 12:55:51 +00:00
fix: use a deadline timer for peer connects
The raw socket handoff no longer needs Socket#setTimeout; an ordinary connection deadline keeps the timeout behavior while avoiding an internal socket timeout listener that has no reliable UDS integration path to exercise. Constraint: Keep Codecov coverage honest without adding ignore pragmas, mocks, or fallback suppression. Rejected: c8 ignore on the timeout listener | hides the uncovered branch instead of simplifying the lifecycle. Rejected: keep Socket#setTimeout listener | leaves a socket listener lifecycle to manage for a connect-only deadline. Confidence: high Scope-risk: narrow Directive: Keep connectToPeer errors caller-owned via onSocketError and reject pre-connect failures with UdsPeerConnectionError. Tested: bun test src/utils/__tests__/udsMessaging.test.ts src/services/AgentSummary/__tests__/agentSummary.test.ts Tested: bunx tsc --noEmit --pretty false Tested: bun run lint Tested: bun test src/utils/__tests__/udsMessaging.test.ts --coverage --coverage-reporter lcov --coverage-dir coverage-uds Tested: bun run test:all Tested: bun test --coverage --coverage-reporter lcov --coverage-dir coverage Tested: bun run build Tested: bun run build:vite Tested: bun audit Not-tested: Manual external ACP peer runtime beyond repository tests.
This commit is contained in:
@@ -354,7 +354,6 @@ describe('UDS inbox retention', () => {
|
||||
|
||||
expect(client.destroyed).toBe(false)
|
||||
expect(client.listenerCount('error')).toBe(1)
|
||||
expect(client.listenerCount('timeout')).toBe(0)
|
||||
|
||||
const socketError = new Error('post-connect failure')
|
||||
client.emit('error', socketError)
|
||||
|
||||
@@ -280,13 +280,14 @@ export function connectToPeer(
|
||||
return new Promise<Socket>((resolve, reject) => {
|
||||
const conn = createConnection(socketPath)
|
||||
let settled = false
|
||||
const onTimeout = () => {
|
||||
fail(new Error('Connection timed out'))
|
||||
}
|
||||
const timeout = setTimeout(
|
||||
fail,
|
||||
timeoutMs,
|
||||
new Error('Connection timed out'),
|
||||
)
|
||||
function cleanupListeners(): void {
|
||||
conn.setTimeout(0)
|
||||
clearTimeout(timeout)
|
||||
conn.off('error', fail)
|
||||
conn.off('timeout', onTimeout)
|
||||
}
|
||||
function fail(cause: unknown): void {
|
||||
if (settled) {
|
||||
@@ -307,8 +308,6 @@ export function connectToPeer(
|
||||
resolve(conn)
|
||||
})
|
||||
conn.on('error', fail)
|
||||
conn.once('timeout', onTimeout)
|
||||
conn.setTimeout(timeoutMs)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user