#110

Private Message Chat Scrolling Issue

Status: open
Lensflare Lensflare ·

Summary

Private Message Chat Scrolling Issue

Steps to Reproduce

In the Private Message chat page, when you try to scroll up to see older messages, it doesn't work properly. It keeps sticking to the bottom. Only when you scroll very rapidly, like with a mouse wheel, very fast, or with a touch gesture very far and fast, then it works.

If this is intended, it's very confusing. Users don't know what they need to do and it looks and feels broken. And of course, this is extremely bad for accessibility.

Expected Behaviour

Not provided.

Actual Behaviour

Not provided.

Environment

Not provided.


Reported by Lensflare via DevPlace.

Updates & comments

Developer reply from dev typosaurus ·

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

Developer reply from dev typosaurus ·

Starting research round 1 of at most 5.

I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.

Developer reply from dev typosaurus ·

Internal infrastructure issue during research

The LLM backend is not responding correctly: exit code 1: LLM error: All LLM backends permanently failed (no recoverable backend left): molodetz: molodetz permanent SSE failure: stream failed (status 402); deepseek: DEEPSEEK_API_KEY not set. This is an infrastructure problem, not a problem with this ticket. I will retry automatically (up to 3 times) and report the result here.

Developer reply from dev typosaurus ·

I need input to continue.

What I tried: Attempted research 3 times.
What I found: Every attempt failed for internal infrastructure reasons unrelated to this ticket (latest: exit code 1: LLM error: All LLM backends permanently failed (no recoverable backend left): molodetz: molodetz permanent SSE failure: stream failed (status 402); deepseek: DEEPSEEK_API_KEY not set). This is not a judgment about the ticket itself.

The system needs operator attention before I can research this properly. Reply here once the infrastructure is healthy and I will resume from where I left off.

Developer reply from dev typosaurus ·

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

Developer reply from dev typosaurus ·

I need input to continue.

What I tried: Retried this step 3 times.
What I found: Each attempt failed for internal reasons unrelated to this ticket. The details are in the operator's logs; this is not a judgment about the ticket.

The system needs operator attention before I can continue. Reply here once things are healthy and I will resume from where I left off.

Developer reply from dev typosaurus ·

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

Developer reply from dev typosaurus ·

Starting research round 1 of at most 5.

I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.

Developer reply from dev typosaurus ·

Investigation of the reported bug in the source and tests confirmed that the 100px auto-scroll margin (AUTO_SCROLL_MARGIN_PX = 100) causes atBottom to remain true during slow or limited scrolling, which triggers _stabilizeScroll() and snaps the viewport to the bottom. This matches the ticket description exactly, including the accessibility concern. No further investigation is required.

The findings also indicate a straightforward fix: reducing the margin to 10-20px or to 0. The decision has been made to proceed with implementing this change.

The next step is drafting a concrete implementation plan.

Developer reply from dev typosaurus ·

I am drafting the implementation plan now.

The research confirmed the ticket; I am turning the findings into a concrete, verifiable plan.

Developer reply from dev typosaurus ·

Drafted an implementation plan based on the investigation findings. The plan changes AUTO_SCROLL_MARGIN_PX from 100 to 0 in AppChat.js to prevent premature snap-back when the user scrolls up to read older messages. The remaining logic remains unchanged, and the change aligns the outer margin with the existing inner stabilization check.

Handing the plan to the execution agent for implementation and verification.

Developer reply from dev typosaurus ·

The full, verbatim implementation plan is attached: plan-ticket-110.md

Developer reply from dev typosaurus ·

Starting implementation attempt 1 of at most 5.

I am executing the plan inside this ticket's isolated workspace. This can take a while; I will post periodic progress updates until it completes.

Developer reply from dev typosaurus ·

Progress update: implementation attempt 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Developer reply from dev typosaurus ·

Progress update: implementation attempt 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Developer reply from dev typosaurus ·

Internal infrastructure issue during execution

The LLM backend is not responding correctly: the run timed out. This is an infrastructure problem, not a problem with this ticket or the plan. I will retry automatically (up to 3 times) and report the result here.

Developer reply from dev typosaurus ·

Progress update: implementation attempt 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Developer reply from dev typosaurus ·

Implementation attempt 1 finished; I am verifying it now.

Running the project's own build, test, and lint commands against the change.

Developer reply from dev typosaurus ·

The implementation was completed on the first attempt, and all configured build, test, and lint checks passed successfully. No issues were encountered during validation.

Next, I will commit the change, push a dedicated branch, and open a pull request for review.

Developer reply from dev typosaurus ·

I am delivering the change now.

Committing the verified change, pushing branch typosaurus/ticket-110, and opening a pull request.

Developer reply from dev typosaurus ·

The implementation was committed, pushed to branch typosaurus/ticket-110, and the pull request opened at https://retoor.molodetz.nl/retoor/devplacepy/pulls/131. This was done because the change passed all project checks.

The pull request is now being monitored for review, merge, or further feedback.

Log in to comment.