Skip to content

feat: SidecarProcess.onStderr for live adapter log forwarding#118

Closed
abcxff wants to merge 2 commits into
mainfrom
abc/fixes-1
Closed

feat: SidecarProcess.onStderr for live adapter log forwarding#118
abcxff wants to merge 2 commits into
mainfrom
abc/fixes-1

Conversation

@abcxff

@abcxff abcxff commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Paired with agent-os abc/fixes-1.

Adds SidecarProcess.onStderr(handler) so embedders can stream the sidecar's stderr live — the sidecar re-emits the in-VM agent adapter's stderr on this channel (tagged ACP adapter stderr), but it was previously only buffered and surfaced on process exit. Delegates to the protocol client's already-public child stderr; coexists with the internal exit-diagnostics buffering.

(Also contains the http2 default-port coercion commit, whose content already landed on main via #117; this PR's net new change is onStderr.)

abcxff and others added 2 commits June 23, 2026 19:33
http2.connect() with no explicit port (e.g. "https://host") shipped
port: "" to the sidecar, because WHATWG URL.port is the empty string for
protocol-default ports and ?? only falls back on null/undefined. The
sidecar then failed to deserialize "" into Option<u16>:

  ERR_AGENTOS_NODE_SYNC_RPC: net.http2_session_connect payload must be
  valid JSON: invalid type: string "", expected u16

Coerce the raw port to a number, mapping ""/undefined/null to undefined
so the field is omitted. The sidecar already defaults an absent port via
url.port()/80, so no Rust change is required.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The sidecar re-emits the in-VM agent adapter's stderr on its own stderr
(tagged "ACP adapter stderr"), but it was only buffered and surfaced on
process exit — embedders had no way to stream it live. Add
SidecarProcess.onStderr(), delegating to the protocol client's already-public
child stderr, so callers can route adapter logs to their own logger. Coexists
with the internal exit-diagnostics buffering.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@railway-app
railway-app Bot temporarily deployed to secure-exec / secure-exec-pr-118 June 23, 2026 23:21 Destroyed
@railway-app
railway-app Bot temporarily deployed to rivet-frontend / secure-exec-pr-118 June 23, 2026 23:22 Destroyed
@railway-app

railway-app Bot commented Jun 23, 2026

Copy link
Copy Markdown

🚅 Deployed to the secure-exec-pr-118 environment in rivet-frontend

Service Status Web Updated (UTC)
secure-exec 😴 Sleeping (View Logs) Jun 23, 2026 at 11:30 pm

🚅 Deployed to the secure-exec-pr-118 environment in secure-exec

Service Status Web Updated (UTC)
secure-exec 😴 Sleeping (View Logs) Web Jun 23, 2026 at 11:28 pm

@NathanFlurry

Copy link
Copy Markdown
Member

Closing for now — holding the SidecarProcess.onStderr forwarding work; not landing this on main at this time.

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.

2 participants