Skip to content

feat: build dynamic AI chat stream previewer with simulated message ticks - #121

Merged
Cjay-Cyber-2 merged 2 commits into
ASTROIDX556:mainfrom
CHASE3020:feat/ai-chat-streaming
Sep 1, 2026
Merged

feat: build dynamic AI chat stream previewer with simulated message ticks#121
Cjay-Cyber-2 merged 2 commits into
ASTROIDX556:mainfrom
CHASE3020:feat/ai-chat-streaming

Conversation

@CHASE3020

Copy link
Copy Markdown

Closes #19

What changed

  • New ChatMessage.tsx — dedicated message renderer with:

    • Markdown parsing: **bold**, `inline code`, fenced code blocks, unordered lists
    • Action card injection: detects [ACTION: APPROVE_TRANSFER: ...] markers and renders interactive Approve/Reject buttons with Framer Motion entrance animations
    • Streaming cursor: animated blinking cursor while the message is still streaming
    • Structured briefing widget: renders executive summary cards for financial data
  • Rewritten NvidiaAssistantWidget.tsx — simulated streaming:

    • Word-by-word progressive rendering with realistic pacing (punctuation pauses, shorter words render faster)
    • Auto-scroll to bottom during streaming, respects manual scroll-up via scroll tracking
    • Timer cleanup on unmount to prevent memory leaks
    • Typing indicator shown only before the first assistant token arrives
  • Updated types.ts — added isPartial flag and ActionCard interface

Verification

  • npx tsc --noEmit — passes clean (noUncheckedIndexedAccess: true)
  • npx next lint — no warnings or errors
  • `npx prettier --check "src/features/chat/*.{ts,tsx}"" — all files formatted

Testing

  1. Send a short prompt → text appears word-by-word with a blinking cursor
  2. Send "balance" → action card with Approve/Reject buttons renders inline
  3. Send "gas" → markdown list renders with bold values
  4. Send any other text → standard streaming response
  5. Scroll up during streaming → auto-scroll pauses; scroll to bottom resumes
  6. Unmount the component mid-stream → no console errors (timers cleaned up)

@vercel

vercel Bot commented Aug 31, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the Cjay's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@CHASE3020 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@mergekeeper

mergekeeper Bot commented Aug 31, 2026

Copy link
Copy Markdown

MergeKeeper review

Scope: in scope for linked issue #19.
Verdict: clean

The pull request successfully implements the dynamic AI Assistant chat stream previewer with simulated message ticks, Markdown rendering, action card parsing, and auto-scroll handling as requested by issue #19.

Reviewed commit: ec7e679d387eb691a9f75e4589fad893448e92dc.
CI and merge eligibility are checked separately.

Implement word-by-word streaming preview for the AI assistant chat
widget, with progressive message rendering, markdown formatting, and
interactive transaction action cards.

- Extract ChatMessage component with markdown rendering (bold, inline
  code, code blocks, lists) and action card injection
- Add word-by-word streaming simulation with realistic pacing
- Implement auto-scroll that respects manual user scroll-up
- Clean up timers on unmount to prevent memory leaks
- Parse [ACTION: TYPE: label] markers into interactive Approve/Reject
  cards with Framer Motion entrance animations
- Add isPartial flag to ChatMessage type for streaming cursor display

Closes ASTROIDX556#19

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>

@mergekeeper mergekeeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

The pull request successfully implements the dynamic AI Assistant chat stream previewer with simulated message ticks, Markdown rendering, action card parsing, and auto-scroll handling as requested by issue #19.

@mergekeeper

mergekeeper Bot commented Aug 31, 2026

Copy link
Copy Markdown

MergeKeeper merge status

Status: blocked
PR state: open
Mergeability: mergeable
Checked commit: ec7e679d387eb691a9f75e4589fad893448e92dc.

Reason:
GitHub pull request merge request failed with 405: 3 of 3 required status checks are expected.

Next steps:
This required status check is enforced directly by the repository's branch rules, independent of MergeKeeper's own CI evaluation — a maintainer merge override cannot bypass it unless MergeKeeper is authorized to.

  1. Wait for the check to pass, or fix the underlying failure.
  2. To let an explicit override bypass this check going forward, add the MergeKeeper GitHub App as a Bypass actor on the ruleset (Settings → Rules → Rulesets → the ruleset → Bypass list).

@Cjay-Cyber-2
Cjay-Cyber-2 merged commit 149c73c into ASTROIDX556:main Sep 1, 2026
0 of 2 checks passed
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.

feat: build a dynamic AI Assistant chat stream previewer with simulated message ticks

2 participants