Skip to content

Visual browser smoke: walk through examples/chat CHECKLIST.md in real Chrome #214

@blove

Description

@blove

Context: PR #213 landed the canonical examples/chat demo + smoke generator (Phase 1). All 14 CI checks green. Server-side regenerate-path probe via curl confirmed the demo's wire-shape works against the new graph (state correctly transitions 1u/1a → 1u/0u via as_node='__start__' rollback → 1u/1a with new AI id, the 0.0.29 fix path).

What's still pending: Visual browser sweep through examples/chat/smoke/CHECKLIST.md against the generated ~/tmp/ngaf consumer. The Chrome extension MCP was offline at merge time; only server-side and unit-test validation completed.

Steps to close this issue

  1. Pull latest main: git pull origin main.
  2. Confirm OPENAI_API_KEY in examples/chat/python/.env.
  3. Generate fresh smoke consumer:
    npx nx run examples-chat-smoke:run
    # Accept default: ~/tmp/ngaf, version=latest, install=Y, start=N
  4. Start backend: cd examples/chat/python && uv run langgraph dev --port 2024 --no-browser
  5. Start the smoke consumer: cd ~/tmp/ngaf && npm start
  6. Open http://localhost:4200 in Chrome.
  7. Walk through every section of ~/tmp/ngaf/CHECKLIST.md:
    • Pre-flight, initial render, send & receive, stop mid-stream
    • Markdown surfaces (headings, bullets/ordered, task lists, fenced code, tables, blockquotes, links, HRs, no raw HTML escape) — single most important section since it exercises the partial-markdown render path
    • Streaming-specific markdown checks (incomplete code block / table mid-stream)
    • Regenerate with the 1u/1a server-state assertion via curl /threads/<id>/state
    • Cross-mode persistence
    • Mode switching (route + URL, deep-link, popup/sidebar role checks)
    • Model picker (note: known issue — initial dropdown shows first option gpt-5 instead of the signal value gpt-5-mini; capture as a follow-up if confirmed)
    • Debug overlay mount/unmount
    • Palette UX (collapse/expand persistence)
    • Keyboard & accessibility
    • Error handling (stop python; resume)
    • Lifecycle (reload mid-conversation, "↻ New conversation" reset)
    • Browser hygiene (no console.error, no detached chat-message nodes after 10 mode-switch cycles)
    • Visual polish at 1440 / 1024 / 768 / 480
  8. Capture ~/tmp/ngaf/SMOKE_RUN.md plus any screenshots / HAR exports for failures.
  9. File targeted issues against libs/chat for any regressions (e.g. tables / task-lists are documented known regressions from the 0.0.20 partial-markdown swap — surface them here too if still present).

Done when

  • All Phase 1 sections of CHECKLIST.md walked.
  • SMOKE_RUN.md captured (or note "all green, no capture needed").
  • Any failures filed as separate issues against libs/chat.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions