Skip to content

Commit ebf6894

Browse files
bradgesslerclaude
andcommitted
Suppress connection error stack traces in client executables
Rescue connection errors (e.g. ConnectionResetError) inside the Async block to prevent Async's "unhandled exception" warning, and output clean error messages to stderr. Full backtraces are available via TERMINALWIRE_DEBUG=1. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5c277c7 commit ebf6894

3 files changed

Lines changed: 8 additions & 2 deletions

File tree

gem/terminalwire-client/lib/terminalwire/client.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ def self.websocket(url:, arguments: ARGV, &configuration)
3939
adapter = Terminalwire::Adapter::Socket.new(transport)
4040
Terminalwire::Client::Handler.new(adapter, arguments:, endpoint:, &configuration).connect
4141
end
42+
rescue Terminalwire::Error
43+
raise
44+
rescue => e
45+
raise Terminalwire::Error, "Connection failed: #{e.message}"
4246
end
4347
end
4448
end

gem/terminalwire/exe/terminalwire

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ require "terminalwire/client"
44
begin
55
Terminalwire::Client.websocket(url: "wss://terminalwire.com/terminal")
66
rescue Terminalwire::Error => e
7-
puts e.message
7+
$stderr.puts e.message
8+
$stderr.puts e.cause.full_message if ENV["TERMINALWIRE_DEBUG"] && e.cause
89
exit 1
910
end

gem/terminalwire/exe/terminalwire-exec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ begin
88
rescue Interrupt
99
exit 0
1010
rescue Terminalwire::Error => e
11-
puts e.message
11+
$stderr.puts e.message
12+
$stderr.puts e.cause.full_message if ENV["TERMINALWIRE_DEBUG"] && e.cause
1213
exit 1
1314
end

0 commit comments

Comments
 (0)