Skip to content

wasi cli: passthrough had a consumer (polymorph-iroh EXAM_GUEST_LOGS); a chunk-sink option would restore it #285

Open

Description

@lannbot

PR #260 removed CliOptions.passthrough from @polyengine/wasi's cli() as "set by nobody". It had one consumer: polymorph-iroh's endpoint exam (host-polyengine/src/harness.ts) set it from the EXAM_GUEST_LOGS=1 knob to stream guest stdout/stderr to the console while the long-running scenarios execute — the only way to watch a hang in progress, since captured.stdoutText() is only readable after the fact.

polymorph-iroh#103 (the 0.6.3 adoption) deleted the knob rather than vendor a replacement, so nothing is blocked. Filing so the consumer record is accurate and the design question is on the table.

The removal rationale also called the old implementation buggy (newline-injecting console.log per chunk). If a live sink comes back, a chunk callback is the honest shape — no console formatting, the application decides:

cli({ stdout?: (chunk: Uint8Array) => void, stderr?: (chunk: Uint8Array) => void })

invoked alongside the capture push on both the 0.2 OutputStream and the 0.3 write-via-stream paths. Consumer: polymorph-iroh (EXAM_GUEST_LOGS). No urgency.

Activity

  1. added
    enhancementNew feature or request
    p2Minor bugs; desirable lower-priority features
    on Sep 5, 2026
  2. lannbot commented on Sep 12, 2026

    @lannbot
    CollaboratorAuthor

    Triage: retain p2 for the optional chunk-sink improvement, but the restoration premise is stale. #308 restored cli({ passthrough }) on both WASI tracks with regression coverage after identifying wosh as another consumer. Live guest-log mirroring is available again. The remaining choice is whether byte-preserving stdout/stderr callbacks should replace or supplement console-formatted passthrough; no currently blocked consumer is documented, so this stays behind behavior fixes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestp2Minor bugs; desirable lower-priority features

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions