You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(046): persist LauncherWaitTimeout to BBolt + regenerate OAS (#454)
* fix(046): persist LauncherWaitTimeout to BBolt + regenerate OAS
- Add LauncherWaitTimeout to UpstreamRecord so launcher servers added via
the REST upstream_servers API retain the timeout across restarts. Wired
through SaveUpstreamServer / GetUpstreamServer / ListUpstreamServers,
matching the ReconnectOnUse precedent from spec 354.
- Whitelist LauncherWaitTimeout in TestSaveServerSyncFieldCoverage so the
ServerConfig field-coverage guard accepts the new field.
- Regenerate oas/swagger.yaml + oas/docs.go so the Verify OpenAPI
Artifacts CI step stops complaining about drift.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(046): drain launcher log pumps before cmd.Wait() to stop CI flake
reap() called cmd.Wait() before pumpWG.Wait(). Per exec.Cmd docs, Wait
closes the parent-side stdout/stderr pipes as part of its cleanup — so
if Wait ran before both pump goroutines reached EOF, the pump scanners
could race against that close and observe EOF with buffered child
output still in the kernel pipe, silently dropping it.
CI repro: TestSpawn_LogSinkCaptured on Linux runners (Unit Tests amd64
and Build Binaries linux-arm64) saw the sink contain only the startup
banner, no [launcher stdout]/[launcher stderr] lines. Locally the test
passed because timing happened to favor pumps. 20x -race iterations
green after flipping the order.
Pumps naturally hit EOF when the child exits and the kernel propagates
the close — calling Wait() is not what unblocks them.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(046): switch TestWaitForURL_InfersDefaultPort host to TEST-NET-1
Windows GitHub runners have something bound on 127.0.0.1:80 (IIS/WinNAT
default), so the test's "should be unreachable" assertion failed: the
dial succeeded and WaitForURL returned nil where the test expected a
"not reachable" error.
Switched the host to 192.0.2.1 (TEST-NET-1, RFC 5737) — reserved for
documentation and guaranteed non-routable, so the dial fails
consistently on every OS while still exercising default-port inference
from the URL scheme.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Code <noreply@anthropic.com>
ReconnectOnUsebool`json:"reconnect_on_use,omitempty"`// Attempt reconnection on tool call
87
+
LauncherWaitTimeout config.Duration`json:"launcher_wait_timeout,omitempty"`// Spec 046: max wait for locally-launched HTTP/SSE upstream URL to become reachable
0 commit comments