Skip to content

fix: recheck PTY bytes after completion and release v0.18.3 - #339

Merged
guan4tou2 merged 1 commit into
mainfrom
fix/macos-completion-drain
Oct 16, 2026
Merged

guan4tou2 merged 1 commit into
mainfrom
fix/macos-completion-drain

Conversation

@guan4tou2

@guan4tou2 guan4tou2 commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Fix a remaining macOS output-loss race in the Zsh recorder: after an empty readiness poll, the recorder could be descheduled while the command wrote its final bytes and completed. Releasing the retained slave descriptors using that stale poll flushed unread PTY data on Darwin.

After observing completion, poll readiness again before releasing the descriptors and continue draining queued bytes. The production correction is five lines. A deterministic native-PTY test holds an empty poll until the command has written stdout/stderr and completed: RED loses both bodies; GREEN preserves exact bodies and byte counts. Fast handover, transient EOF/EIO, retirement, terminal control and the 100-command recording checks remain.

Prepare v0.18.3 metadata and release notes. Existing tags are preserved; v0.18.2 is retained as a prerelease with its known recording limitation.

Validation:

  • All five ordered local gates and build PASS: 3,613 PASS / 24 explicit SKIP, including five native PTY boundary cases.
  • Three-platform CI: macOS 3,620 PASS / 21 SKIP; Linux 3,616 / 21; Windows 3,298 / 343. Electron journeys 132 PASS / 6 explicit SKIP.
  • Windows initially hit the unchanged export-mask async fixture race. Its raw failure was retained and only the failed job retried; test: remove obsolete checks and consolidate test entry points #338 subsequently repairs that fixture without weakening its assertions.
  • Installed Linux DEB: 6 PASS. Installed Windows NSIS: 1 PASS. Both strict reports contain no skipped/not-exercised result.

Merged into main and included with #338 in the stable v0.18.3 release. All four actual public binary downloads match their checksums and Windows updater metadata matches the actual installer. The public Mac DMG passes strict codesign verification, reports 0.18.3 / isPackaged=true and passes all three installed journeys, including 100 ordinary Zsh commands with stdout/stderr/failure boundaries. Full manual Kali/first-install timing, native WSL, and Mac quarantine/Dock/Developer ID/notarization are still explicitly unverified.

@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 479bcd71-1a27-4fb6-b65d-6de11b00fa1e
  • 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.

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