Skip to content

fix(hub): forward the engine child's stdout to the shard log — the telemetry's eyes open in production (#1808) - #1809

Merged
aarontrowbridge merged 1 commit into
live-test/stack-e2efrom
opencode/issue-1808-telemetry-sink
Oct 16, 2026
Merged

aarontrowbridge merged 1 commit into
live-test/stack-e2efrom
opencode/issue-1808-telemetry-sink

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Closes #1808.

Root cause, named: the service runner spawned the engine with stdio pipes consumed into a private in-memory buffer surfaced only on health-check failure or unexpected exit — EVERY engine console line (SSE-TICK, SSE-DROP, SELF-STALL, boot banners, self-shutdown) was swallowed in production. The Phase A telemetry was never broken; its transport was. The runner now forwards every engine-child stdout/stderr chunk to its own stdio as it arrives — the exact surface the systemd units append to the shard logs. Injectable engineOutput for tests; the diagnostics buffer kept.

Verified with real processes (scratch ports 9411-9415, scratch XDG, hub untouched): a branch-built engine's SSE-TICK lines land in the runner-captured stdout within one cadence window (quoted in the issue evidence), and the out-of-tree SELF-STALL watchdog's firing is greppable through the production wiring under the env-driven stall drill (AMICODE_SSE_TICK_STALL=1 — an ops-only rehearsal override, parks the tick mid-fiber, the #1798 wedge shape).

Director gates re-run: runner suite green (the forwarding test red→green), drift PASS, scoped engine trio 14/2 (the briefed environmental corpse pair), full-suite failure set byte-identical to HEAD.

Composes into the one idle-window deploy with P1a (PR #1807) — reaching the live shards requires the runner bundle rebuild + the engine build, both HITL ops.

…CK/SELF-STALL reach production (#1808)

The mute sink was never the telemetry module: the service runner spawns the
engine with piped stdio and consumed both pipes into a private engineLog
string surfaced only on boot failure, so the default console.log sink (engine
stdout) never reached the runner's stdout — the surface the systemd unit
appends to the shard log. Forward every chunk as it arrives (injectable
engineOutput for tests; the diagnostics buffer stays), and add the
AMICODE_SSE_TICK_STALL=1 drill override that parks the /event heartbeat tap
mid-fiber so the out-of-tree SELF-STALL watchdog can be rehearsed against the
production wiring end-to-end.
@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f7825fa7-1922-48c9-83f2-2ced829897bc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@aarontrowbridge
aarontrowbridge merged commit 39f3f6f into live-test/stack-e2e Oct 16, 2026
4 of 5 checks passed
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