Type
Bug
Severity
High
Modules
Evidence
spawn-docker-jdk/src/main/java/build/spawn/docker/jdk/command/AttachContainer.java:62-64
- The attach request is created with
stdin=false.
AttachContainer.java:75-91 leaves stdin as TODO and returns NullWriter.get() from getInputWriter().
Why this matters
- The returned type is a
Terminal, which strongly suggests interactive attach support.
- In practice the attach session is read-only and cannot send input to the container.
Expected behavior
- Either stdin should be wired through correctly, or the API should not expose a writable terminal contract.
Actual behavior
- Consumers receive a terminal whose input writer is a no-op.
- Docker attach is limited to stdout/stderr streaming even though the abstraction suggests interactivity.
Suggested reproduction
- Attach to a container running an interactive shell.
- Write to
terminal.getInputWriter().
- Observe that the container never receives the input.
Suggested fix
- Change the attach request to enable stdin when appropriate.
- Connect a real writer to the Docker attach stream.
- If full interactivity is not supported yet, document that clearly or expose a read-only abstraction instead.
Suggested tests
- Add an integration test that attaches to an interactive container and verifies stdin round-tripping.
Issue body ready to paste
AttachContainer returns a Terminal, but it explicitly sends stdin=false in the Docker request and returns NullWriter from getInputWriter(). That makes interactive attach impossible while still advertising a writable terminal abstraction.`
Type
Bug
Severity
High
Modules
Evidence
spawn-docker-jdk/src/main/java/build/spawn/docker/jdk/command/AttachContainer.java:62-64stdin=false.AttachContainer.java:75-91leaves stdin as TODO and returnsNullWriter.get()fromgetInputWriter().Why this matters
Terminal, which strongly suggests interactive attach support.Expected behavior
Actual behavior
Suggested reproduction
terminal.getInputWriter().Suggested fix
Suggested tests
Issue body ready to paste
AttachContainerreturns aTerminal, but it explicitly sendsstdin=falsein the Docker request and returnsNullWriterfromgetInputWriter(). That makes interactive attach impossible while still advertising a writable terminal abstraction.`