Skip to content

SW-207 — Handle child stdout and stderr stream errors in the dev supervisor #389

Open

Description

@dDevAhmed

Summary

The supervisor subscribes to data/end events on child stdout/stderr but does not register stream error handlers. A stream read failure can become an unhandled error or leave the supervisor waiting for a process it can no longer observe. Convert stream failures into a bounded, sanitized subprocess failure and terminate siblings safely.

Workstream

  • Workstream: WS-PROCESS
  • Primary scope: src/dev/orchestrator.ts; tests/dev-orchestrator-startup-and-buffering.test.ts; tests/dev-supervisor-cleanup.test.ts
  • Protected surface: Yes — maintainer review required
  • Priority: P1
  • Difficulty: high
  • Proposed points: 200

Acceptance Criteria

  • Observe stdout and stderr errors independently.
  • A stream error rejects with a stable user-facing category.
  • Sibling processes are signalled for cleanup.
  • Raw stream errors and local paths are not printed.
  • Simultaneous errors/exits settle the supervisor only once.

Dependencies

None unless noted above.

Out of Scope

  • Unrelated architecture or public command-contract changes.
  • New runtime dependencies without maintainer approval.
  • Mainnet deployment or remote template execution.

Definition of Done

  • Acceptance criteria have deterministic regression coverage.
  • Security and compatibility boundaries remain intact.
  • Supported-platform CI passes.

Labels

  • Stellar Wave (do not apply until activation is explicitly authorized)
  • type: test
  • area: process
  • priority: P1
  • difficulty: high
  • points: 200
  • workstream: process

Sequencing and scope note

Sequencing: implement after SW-206 (#388) so stream errors settle through the established close/finalization path.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions