Skip to content

fix: test-round UX — auto-scroll, truncated replies, publish flow, modal close - #41

Merged
Robbertvermeulen merged 1 commit into
mainfrom
fix/test-round-ux
Aug 18, 2026
Merged

Robbertvermeulen merged 1 commit into
mainfrom
fix/test-round-ux

Conversation

@Robbertvermeulen

Copy link
Copy Markdown
Contributor

Fixes 4 of the 8 findings from Robbert's first structured test round:

  • No auto-scroll (finding 3): the thread div is not the scrolling ancestor on every admin layout, so scrollTop writes were no-ops. A bottom-sentinel scrollIntoView({block:'nearest'}) now follows whichever ancestor scrolls; the existing scrolled-up-to-read guard stays.
  • Reply cut off mid-word (finding 5): the hub had stored the full reply; the UI lost trailing delta frames and the end-of-stream reconciliation only fired for empty replies. assistant_text now accumulates as finalText, and on stream end a shorter reply is reconciled to it. The result-time rule is untouched (the guard legitimately flushes a trailing delta after result). Regression test included.
  • Nothing happens after publish (finding 4): publishing from the chat now switches to Started and refreshes the lists.
  • Review & publish opens empty for rejected/list drafts (finding 7): the dialog reads summary/type; the list rows carried snippet/typeLabel. Fields now mapped, and the list-publish path passes the chosen type through.
  • Modal can't be closed (finding 8): backdrop click + × button.

Rebuilt assets/dist. Gates: JS 100 ✓ · PHPUnit 133 ✓ · PHPStan ✓ · PHPCS ✓

🤖 Generated with Claude Code

…al close

- chat auto-scroll: a bottom sentinel scrollIntoView follows whichever ancestor
  actually scrolls (the thread div is not the scrolling element on every admin
  layout), keeping the stick-to-bottom threshold behavior
- truncated replies: assistant_text now accumulates as finalText and on stream
  end a reply shorter than finalText is reconciled to it — lost trailing delta
  frames can no longer cut a message off mid-word
- publish from chat now navigates to Started (and refreshes the lists) so the
  published topic is immediately visible
- Review & publish opened EMPTY for a rejected/list draft: the dialog reads
  summary/type, the list provided snippet/typeLabel — fields now mapped, and
  the publish call passes the chosen type
- the publish modal closes via backdrop click and a new × button

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Robbertvermeulen
Robbertvermeulen merged commit 027820f into main Aug 18, 2026
2 checks passed
@Robbertvermeulen
Robbertvermeulen deleted the fix/test-round-ux branch August 18, 2026 09:15
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