Skip to content

capture(test[continuity]) Document ambiguous repeated scrollback - #808

Open
tony wants to merge 3 commits into
masterfrom
rmux-py-trim-evidence
Open

tony wants to merge 3 commits into
masterfrom
rmux-py-trim-evidence

Conversation

@tony

@tony tony commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Equal captures can hide intervening output after repeated rows fill and trim scrollback. This PR documents that ambiguity and adds an isolated, producer-synchronized reproducer for #671. It introduces no public API or continuity guarantee.

The fixture fixes its geometry explicitly and works at the supported tmux 3.2a minimum. An available history_collected increase supplies evidence of collection, but cannot reconstruct evicted text; an absent counter remains unavailable evidence.

Test plan

  • Run the reproducer against tmux 3.2a and local 3.8a.
  • Change the second output burst deliberately and confirm the capture-equality assertion fails.
  • Run Ruff, the full-tree mypy command, and the project's documentation build.
  • Complete pytest suite: the same hooks, popup, and floating-pane failures reproduce on unchanged master.
  • Hosted checks pass at the corrected PR head, including every tmux build lane and CodeQL.

This is the evidence/documentation slice of #671. The issue remains open for diagnostic classification and its cursor/wait consumers. No sibling or engine branch is required. macOS qualification is outside this effort; existing platform support is unchanged.

why: Equal text, history size, and cursor samples cannot prove output continuity.
what:
- Add a producer-synchronized trim counterexample on an isolated server
- Fix the owned pane's geometry across supported tmux versions
- Document unavailable evidence and the limits of history collection counters
@codecov

codecov Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.37%. Comparing base (0813d07) to head (6d0301a).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #808      +/-   ##
==========================================
- Coverage   52.45%   52.37%   -0.09%     
==========================================
  Files          26       26              
  Lines        3729     3729              
  Branches      747      747              
==========================================
- Hits         1956     1953       -3     
- Misses       1469     1472       +3     
  Partials      304      304              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tony tony added this to libtmux Nov 1, 2026
@tony tony moved this to In Progress in libtmux Nov 1, 2026
why: Global manual sizing crashes new-session on older supported tmux releases.

what:
- Set the owned window geometry through resize-window after acquisition
- Keep the repeated-output assertion and supported minimum unchanged
why: Readers need product notes before adopting this change.

what:
- Describe pane capture reliability in the unreleased changelog
- Reference PR #808

This branch has not been deployed

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

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant