Skip to content

Put the chat in front, type replies out, and keep working lines steady - #56

Merged
TechNomadCode merged 6 commits into
mainfrom
feat/chat-in-front
Oct 25, 2026
Merged

TechNomadCode merged 6 commits into
mainfrom
feat/chat-in-front

Conversation

@TechNomadCode

Copy link
Copy Markdown
Owner

The chat is now the main thing on the screen and the PRD a supporting column beside it (slice 27; docs/decisions.md, Design, 2026-10-22). Replies are typed out as opencode shows a streaming one (2026-10-25), and lines that reacted badly to slow steps and retries are steady.

Layout (slice 27)

  • On a laptop the PRD is 36% of the page and at least 448px: 448px at 1024, about 500 at 1440, 559 at 1920. The chat takes the rest.
  • The chat's text, the visitor's messages, the suggestion and the message box share one centred column of at most 46rem. The conversation's pane still spans the whole chat, so its scrollbar stays at the edge.
  • The PRD's page has 24px of padding a side in its column. A long section heading wraps its own words, and the copy button stays on its first line; its label ends where the button ends, since centred it made the narrower PRD scroll sideways.
  • Phones keep the stacked layout.

Typed replies (docs/decisions.md, Design, 2026-10-25)

  • A reply that arrives whole is typed out from the top: its first words at once, then a few words every 24ms, about 600 characters a second, all of it within about 2.5 seconds, each step ending after a word (opencode's createPacedValue at acdcdb8).
  • Each step's words fade in together over 0.18s, opacity only (opencode's markdown-word-enter), replacing the video's rise and blur over half a second, every paragraph at once.
  • Formatting is in place as it types, never a half-typed mark; tables fill in row by row. Reloaded conversations and reduced motion show text at once.
  • A chat that follows its end keeps following while a reply types on after its answer has ended.

Steady lines on slow steps and retries (found 2026-10-25 with the database down)

  • A search or quote check that arrives while it works no longer rises in again every 0.4s; the arrival runs once and the moving band keeps going.
  • "Drafting…" stays beside a section whose save failed while the assistant tries again.
  • "Thinking" stays one steady line through an answer's steps instead of blinking and restarting its band at each step.
  • "Used 3 searches" no longer loses its number while the count rolls during a running search, and a count glides to its new number, half a line as it fades, instead of a full line's slide in a clipped box.

Tests

  • Layout tests measure the new shares at 1024, 1440 and 1920px, the chat's column, and the PRD staying whole in its column.
  • Three PRD tests that pinned the old geometry now check the same requirement in either placement; one waits for the chat to reach its end, since the reply types on below the statements.
  • The word tests check typing: the first step at once, then steps every 24ms, a long reply within 2.5s, no half-typed marks, tables row by row.
  • New: steps held in progress arrive once and keep their band; the rolling count stays visible and glides; a failed save keeps Drafting; one Thinking line survives a step.
  • Three moving-line unit tests count only lines in sight, since a parked Thinking stays in the page out of sight.

Also recorded: KI-11, a local build or dev server that kept an old globals.css until .next was deleted; CI builds from scratch and isn't affected.

No files in src/server or src/lib change, so nothing the model receives.

Checks run locally: npm run verify (590 unit tests) and npm run test:e2e (88 tests).

TechNomadCode and others added 6 commits October 23, 2026 09:40
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ave is tried again

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…as it rolls

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…first words at once

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TechNomadCode
TechNomadCode merged commit 07b17c0 into main Oct 25, 2026
5 checks passed
@TechNomadCode
TechNomadCode deleted the feat/chat-in-front branch October 25, 2026 10:35
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