feat(consult): add free model-classified smalltalk fast path
Independent Staging Quality Gate / validate (push) Successful in 9m35s
Independent Staging Quality Gate / publish (push) Successful in 3m52s

Keep full consultation tool contracts unchanged. Persist short replies and refund the original reservation atomically while recording actual model usage. Verify Linux frontend 3566/3566, database 40/40, Static home and gzip +0.0493%.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
jesse-ux
2026-09-20 12:58:34 +08:00
co-authored by Claude Code
parent 03cba4780a
commit 539d4daee4
33 changed files with 960 additions and 30 deletions
@@ -42,6 +42,7 @@ export type ChatTranscriptProps = Readonly<{
streamingThinking?: string;
streamingSections?: readonly PublicThinkingSection[];
streamingTimeline?: readonly ConsultationTimelineRow[];
streamingResponseKind?: "smalltalk";
sessionId: string;
sessionType: "consultation" | "birth_time_rectification";
theme?: ConsultationDomain;
@@ -197,6 +198,7 @@ export const ChatTranscript = memo(function ChatTranscript({
streamingThinking,
streamingSections,
streamingTimeline,
streamingResponseKind,
sessionId,
sessionType,
theme,
@@ -214,6 +216,7 @@ export const ChatTranscript = memo(function ChatTranscript({
streamingThinking,
streamingSections,
streamingTimeline,
streamingResponseKind,
);
return (
@@ -260,6 +263,7 @@ export function UnsplitChatTranscript({
streamingThinking,
streamingSections,
streamingTimeline,
streamingResponseKind,
sessionId,
sessionType,
theme,
@@ -278,6 +282,7 @@ export function UnsplitChatTranscript({
streamingThinking,
streamingSections,
streamingTimeline,
streamingResponseKind,
);
return (
<>