Problem
CoDA decodes each arbitrary PTY read independently with replacement enabled. When a multibyte UTF-8 character is split across reads, the partial sequences are permanently converted to replacement characters. Large Pi and OpenCode outputs make this readily observable through an Omnigent-attached host.
Acceptance criteria
- Decode PTY output incrementally across read boundaries.
- Flush decoder state when the stream closes.
- Ensure spawned terminal sessions use a UTF-8 locale.
- Add regression coverage for split multibyte characters.
- Verify a 200-line mixed-Unicode response through Omnigent attached to CoDA with zero replacement characters.
Problem
CoDA decodes each arbitrary PTY read independently with replacement enabled. When a multibyte UTF-8 character is split across reads, the partial sequences are permanently converted to replacement characters. Large Pi and OpenCode outputs make this readily observable through an Omnigent-attached host.
Acceptance criteria