Skip to content

fix: rebuild collapsed content across native scrollback - #253

Closed
hetaoBackend wants to merge 1 commit into
mainfrom
fix/structural-scrollback-collapse
Closed

hetaoBackend wants to merge 1 commit into
mainfrom
fix/structural-scrollback-collapse

Conversation

@hetaoBackend

@hetaoBackend hetaoBackend commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Change

Follow up on #243: when transient content collapses above the previous viewport origin, preserving that origin can leave stale activity in scrollback and hide a folded summary or the first Composer row. Rebuild the full projection when a shrinking frame changes the text of the already-scrolled prefix. Tail-only shrink and style-only changes still preserve native scrollback, and resize previews retain their existing behavior.

Update the engine change ledger and virtual-terminal regressions for stale transient rows, all Composer rows after selector dismissal, and simultaneous shrink plus styling without duplicate answer rows. Structural rebuilds intentionally clear native scrollback before replaying the current projection.

Validation

  • Regression reproduction on the previous implementation: both collapse cases failed; the other 10 focused tests passed.
  • Focused local-delta suite after the fix: 12 tests passed.
  • Full verification on committed bfdf767: pnpm verify — all 14 applicable gates passed (macOS arm64, Node 26.4.0).
  • NOT RUN locally: Linux, Windows, and manual terminal interaction. Virtual-terminal fixtures do not establish acceptance in every terminal emulator. GitHub CI results are tracked separately.

Publication and contribution checks

  • I have permission to contribute these changes under the existing licenses applicable to the changed files/packages; existing notices are preserved.
  • No credentials, account data, real user content, internal source history or private review material is included.
  • Only existing files changed; the source inventory and test-suite declaration need no additions.
  • The engine behavior ledger is updated. Offline fixtures are not described as live-service acceptance.

Maintainer handoff

No publication scope or license changes. Shared-source port: complete. The source baseline remains unchanged because this is a targeted fix.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

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