Skip to content

fix(test): wait for rendered milestone fences#527

Merged
wan9chi merged 5 commits into
mainfrom
fix/conpty-milestone-ordering
Jul 9, 2026
Merged

fix(test): wait for rendered milestone fences#527
wan9chi merged 5 commits into
mainfrom
fix/conpty-milestone-ordering

Conversation

@wan9chi

@wan9chi wan9chi commented Jul 9, 2026

Copy link
Copy Markdown
Member

Motivation

On Windows Server 2022 build 20348, ConPTY can emit an OSC 8 milestone before printable text that the child wrote and flushed first. expect_milestone returned as soon as it decoded the control marker, so milestone screen assertions could observe an empty terminal.

What changed

  • Pair each milestone marker with its zero-width rendered anchor before returning screen contents.
  • Parse milestone protocol events incrementally across PTY read boundaries and preserve FIFO ordering when markers overtake their anchors.
  • Add deterministic coverage for delayed fences, split sequences, and multiple overtaken markers.
  • Temporarily stress the two milestone integration tests 100 times on the Namespace Windows Server 2022 runner.
  • Update anyhow, crossbeam-epoch, and memmap2 to releases that fix the advisories reported by Security Analysis.

wan9chi and others added 2 commits July 9, 2026 13:06
Co-authored-by: GPT-5.6 <codex@openai.com>
Co-authored-by: GPT-5.6 <codex@openai.com>

wan9chi commented Jul 9, 2026

Copy link
Copy Markdown
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@wan9chi wan9chi changed the title fix(pty): close master after child exit (#519) fix(test): wait for rendered milestone fences Jul 9, 2026
@wan9chi

wan9chi commented Jul 9, 2026

Copy link
Copy Markdown
Member Author

Namespace verification evidence:

  • Candidate fix: 4ef49d00a1bb1091e2ee5688d087e3e774538b6f
  • Runner: namespace-profile-windows-4c-8g, Windows Server 2022 10.0.20348 (build 20348)
  • Command: cargo-nextest nextest run --archive-file windows-tests.tar.zst --workspace-remap . --stress-count 100 -E 'package(=pty_terminal_test) & kind(=test) & binary(=milestone)'\n- Result: 100/100 stress iterations passed, covering 200 executions of the two milestone tests in 7.818 seconds\n- Job: https://github.com/voidzero-dev/vite-task/actions/runs/28995536226/job/86044312788

wan9chi and others added 2 commits July 9, 2026 13:12
Co-authored-by: GPT-5.6 <codex@openai.com>
Co-authored-by: GPT-5.6 <codex@openai.com>
@socket-security

socket-security Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedcargo/​anyhow@​1.0.101 ⏵ 1.0.10381 +110093100100
Updatedcargo/​memmap2@​0.9.9 ⏵ 0.9.1110010093100100

View full report

Co-authored-by: GPT-5.6 <codex@openai.com>
@wan9chi
wan9chi merged commit f5ac364 into main Jul 9, 2026
20 checks passed
@wan9chi
wan9chi deleted the fix/conpty-milestone-ordering branch July 9, 2026 05:53
wan9chi added a commit that referenced this pull request Jul 9, 2026
## What changed

Revert #527, removing the rendered zero-width milestone fence implementation and its dependency changes.

## Motivation

The anonymous FIFO fence protocol does not handle ConPTY coalescing or multiple milestone-producing processes reliably. Reverting it restores the prior marker behavior while a cross-platform window-title-based protocol with process-unique nonces is designed.
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