Skip to content

fix(code): scroll resumed threads to the bottom - #5543

Merged
Mason Daugherty (mdrxy) merged 3 commits into
mainfrom
mdrxy/code/resume-scroll-bottom
Aug 17, 2026
Merged

fix(code): scroll resumed threads to the bottom#5543
Mason Daugherty (mdrxy) merged 3 commits into
mainfrom
mdrxy/code/resume-scroll-bottom

Conversation

@mdrxy

@mdrxy Mason Daugherty (mdrxy) commented Aug 17, 2026

Copy link
Copy Markdown
Member

Resumed dcode -r threads now open at the newest message.


The fixed-delay timer could fire independently of layout readiness. This delegates to Textual's refresh-aware deferred scroll_end so it uses the final scroll bounds while preserving one-shot behavior.

Made by Open SWE

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
@github-actions github-actions Bot added dcode Related to `deepagents-code` fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization size: XS < 50 LOC labels Aug 17, 2026
@mdrxy
Mason Daugherty (mdrxy) marked this pull request as ready for review August 17, 2026 19:50
The single `pilot.pause()` after `_load_thread_history` was not enough for
the refresh-deferred `scroll_end` to land, failing ~1 run in 10 with all
cores saturated (`assert 0.0 == 44`). `make test` runs `pytest -n auto`,
so CI is the contended case. A fixed pause count cannot fix this; two is
still insufficient under load.

Poll until the scroll settles instead. Polling alone would weaken the
test -- it spans enough wall clock for a fixed-delay timer to fire, so it
would pass against the implementation the test exists to rule out. Spy on
`set_timer` to pin that separately.

Also document why `immediate` must stay at its default at the call site:
the fix's correctness rests on the absence of an argument, which is
invisible to a reader and trivially "simplified" back.

Verified against three mutations of step 10 (timer + `immediate=True`,
inline + `immediate=True`, timer + deferred) -- each still fails -- and
12/12 passes with all 18 cores busy.
@github-actions github-actions Bot added size: S 50-199 LOC and removed size: XS < 50 LOC labels Aug 17, 2026
@mdrxy
Mason Daugherty (mdrxy) merged commit 1c6d358 into main Aug 17, 2026
57 checks passed
@mdrxy
Mason Daugherty (mdrxy) deleted the mdrxy/code/resume-scroll-bottom branch August 17, 2026 20:37
Mason Daugherty (mdrxy) pushed a commit that referenced this pull request Aug 18, 2026
> [!CAUTION]
> Merging this PR will automatically publish to **PyPI** and create a
**GitHub release**.

For the full release process, see
[`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md).

---

_Release notes preview: keep this section in sync with the package
`CHANGELOG.md`. Publish reads the merged CHANGELOG via `release.yml`,
not this PR description — keep them aligned anyway so the PR stays an
accurate historical record for reviewers and anyone returning later._

---


##
[0.1.57](deepagents-code==0.1.56...deepagents-code==0.1.57)
(2026-08-18)

### Features

- Added warnings before expensive cold-cache turns and trust
user-declared endpoints for cold-cache policies
([#5439](#5439),
[#5462](#5462)).
- Made the chat input resizable by dragging its top border
([#5524](#5524)).
- Added a `multi_select` question type to `ask_user`
([#5097](#5097)).
- Added support for ACP approval modes
([#5394](#5394)).
- Added `DeepSeek-V4-Pro-0813` to the model picker
([#5512](#5512)).
- Show conversation turns alongside message counts
([#5571](#5571)).
- Include `TERM_PROGRAM` in the resume hint
([#5548](#5548)).

### Bug Fixes

- Report total context after `/offload`
([#5488](#5488)).
- Fixed transcript and thread restoration issues, including hydration
lag, scrolling resumed threads to the bottom, and hiding empty
previous-thread hints
([#5479](#5479),
[#5543](#5543),
[#5552](#5552)).
- Fixed Auto-mode approval handling by binding “yes” to the paired
`ask_user` question and avoiding duplicate Auto denial notices
([#5038](#5038),
[#5501](#5501)).
- Improved reload behavior by keeping the chat input responsive during
`/reload`, reporting MCP server changes, and avoiding plugin reload
prompt flashes or startup hints
([#5529](#5529),
[#5504](#5504),
[#5500](#5500),
[#5502](#5502)).
- Improved dependency update UI by preserving editable fields and hiding
dependency details after updates
([#5521](#5521),
[#5519](#5519)).
- Fixed chat UI polish issues, including detached spacer mount anchors,
the unfocused input cursor, and relative timestamp toggle display
([#5516](#5516),
[#5258](#5258),
[#5503](#5503)).
- Refresh the splash version after updates
([#5520](#5520)).

_End release notes preview._

---

> [!NOTE]
> A **community contributors** list and a **Special thanks** section
(crediting the users who filed the issues this release's PRs closed) are
appended to the GitHub release notes automatically at publish time (see
[Release
Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline),
step 3).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: langchain-oss-automated-triage[bot] <248757908+langchain-oss-automated-triage[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dcode Related to `deepagents-code` fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization size: S 50-199 LOC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant