Skip to content

feat(agents): one-chat Phase B — FastAgentPanel adopts the canonical answer#584

Merged
HomenShum merged 5 commits into
mainfrom
feat/one-chat-phase-b
Jul 18, 2026
Merged

feat(agents): one-chat Phase B — FastAgentPanel adopts the canonical answer#584
HomenShum merged 5 commits into
mainfrom
feat/one-chat-phase-b

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Summary

Phase B of docs/design/ONE_CHAT_INTERFACE.md: FastAgentPanel renders the canonical ChatAssistantMessage for overlapping completed turns (plain prose + plain tool calls + URL sources), expand-contract style — its duplicate internals stay until Phase C.

Honest-subset discipline (the point of this phase):

  • No fabricated verification badges — panel sources carry url+title only, so rows render without badges rather than with fake ones
  • trace stays empty (no synthetic "how we got this answer"); receipt admits telemetry not recorded
  • Model-authored bare [N] references are refused rather than bound to arbitrary sources
  • Failures render as failures: blocked fetch = flagged warning stage + errored tool card
  • Markdown-rich prose, streaming turns, agent hierarchy, fusion/memory/media parts stay panel-specific (each refusal has a named reason in describeCanonicalAnswerFit)

Canonical component changes are strictly additivevariant="panel" + receiptTierLabel; live/receipt behavior byte-identical (verified in diff review; all guard-pinned substrings intact).

Also fixes the one red test on main: oraclePromptPackContract asserted loop content on the root ORACLE_LOOP.md pointer stub left by doc consolidation; the test now follows the stub to the canonical doc, and the doc's invalid single-dash -noEmit tsc flag is corrected.

Verification (orchestrator-independent)

  • tsc 0 · build clean · redesign+convex 148/148 · agents suite green with +32 new scenario contracts (adoption gate + adapter honesty); the single prior failure was proven pre-existing on main and is fixed here (4/4)
  • Evidence: docs/design/ui-contract/20260718-one-chat-phase-b/ — 3 shots from a committed dev harness mounting the real adapter chain (no anonymous full-panel path exists; the harness is the honest capture route)

Phase C remaining (scoped in spec + manifest): retire duplicate bubble internals, markdown-prose decision, port/drop delete+read-aloud, default the adoption, fix the "0 steps" Reasoning-trigger nit.

🤖 Generated with Claude Code

HShuM and others added 5 commits July 18, 2026 13:05
…ntMessage for overlapping completed turns

- adapters/canonicalAnswer.ts: eligibility gate (describeCanonicalAnswerFit)
  + honest packet mapping (buildCanonicalAnswerProps). Never fabricates
  verification states, trace steps, durations, costs, or router tiers.
- PanelCanonicalAnswer.tsx: [data-redesign]-scoped mount that mirrors the
  host dark/light theme and imports the redesign stylesheets.
- UIMessageBubble: opt-in preferCanonicalAnswer prop (default off — legacy
  anatomy + its contract tests unchanged); production panel call site opts in.
- ChatAssistantMessage: strictly-optional additions only — variant="panel"
  (Sources visible for compact packets) + receiptTierLabel override.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…honesty

32 tests: canonical anatomy for overlapping completed turns, legacy anatomy
preserved for opted-out callers / compact sidebar / streaming / markdown /
domain / delegation / fusion / unbound-[N] turns, and adapter honesty pins
(no fabricated verification, trace, durations, or router tiers).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…swer

Renders PanelCanonicalAnswer through the real adapter chain over a fixture
message (no Convex providers), served only by the Vite dev server, for
Phase B screenshot evidence. Imported by nothing in the app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…el scope (light/dark, collapsed/expanded)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…its root

Evidence folder for the FastAgentPanel canonical-answer adoption (3 shots
from the committed dev harness over the real adapter chain), replacing
the agent's .oneshot-evidence scratch location.

Also fixes the one red test on main (oraclePromptPackContract): the root
ORACLE_LOOP.md became a pointer stub during doc consolidation but the
test still asserted loop content on the stub. The test now asserts the
stub points at the canonical doc and asserts content where it lives —
and the pinned tsc command's invalid single-dash `-noEmit` flag is
corrected to `--noEmit` in the canonical doc. 4/4 green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@HomenShum
HomenShum enabled auto-merge (squash) July 18, 2026 20:21
@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nodebench-ai Ready Ready Preview, Comment Jul 18, 2026 8:23pm

Request Review

@github-actions

Copy link
Copy Markdown

PR size advisory

This PR adds 999 lines of substantive change. CONTRIBUTING.md defines a soft limit of ~400 LOC.

If the PR is genuinely cohesive (e.g. an architecture map, a generated migration, a deletion of a dead module), no action is needed. Otherwise consider:

  • splitting into 2-3 PRs along independent concerns
  • pre-discussing the architecture change in a GitHub Discussion before merge

This is advisory — it does not block the merge.

@github-actions

Copy link
Copy Markdown

✅ Dogfood Visual QA Gate: PASSED

Check Status
Screenshots 7 captured (pass)
Walkthrough 9 chapters (pass)
Key Frames 9 extracted (pass)
Scribe Steps 8 how-to steps (pass)
Build success
Artifacts

Download the dogfood-evidence-22240e3 artifact from the Actions tab for full screenshots, frames, and walkthrough video.


Generated by Dogfood QA Gate

@HomenShum
HomenShum merged commit b7f0d52 into main Jul 18, 2026
17 checks passed
@HomenShum
HomenShum deleted the feat/one-chat-phase-b branch July 18, 2026 20:27
@github-actions

Copy link
Copy Markdown

Demo: walkthrough of the surfaces this PR changed is available as a workflow artifact (pr-demo-584) at https://github.com/HomenShum/NodeBenchAI/actions/runs/29659749876

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.

2 participants