Summary
detectRequestedResponseShape (convex/domains/redesign/chatRuns.ts) recognizes only title_only and bullets. Every other explicit shape request falls through to the five-section memo: "one sentence", "a table", "as JSON", "under 50 words", "one paragraph", "a numbered list". This is a feature gap (broader than the possessive-determiner bug fixed in PR #565, which was a correctness bug within the existing title_only path).
Ask
Decide which additional shapes are worth honoring deterministically vs. leaving to the model, and extend the detector + applyDeterministicResponsePolicy accordingly. Each new shape needs render-layer support (parseMemo fallbacks + frontend gates in ChatSurface.tsx and ReproducibleChatPage.tsx).
Files
convex/domains/redesign/chatRuns.ts — detectRequestedResponseShape, applyDeterministicResponsePolicy
src/features/redesign/surfaces/ChatSurface.tsx (compact gates)
src/features/redesign/pages/ReproducibleChatPage.tsx (parallel gates)
Summary
detectRequestedResponseShape(convex/domains/redesign/chatRuns.ts) recognizes onlytitle_onlyandbullets. Every other explicit shape request falls through to the five-section memo:"one sentence","a table","as JSON","under 50 words","one paragraph","a numbered list". This is a feature gap (broader than the possessive-determiner bug fixed in PR #565, which was a correctness bug within the existingtitle_onlypath).Ask
Decide which additional shapes are worth honoring deterministically vs. leaving to the model, and extend the detector +
applyDeterministicResponsePolicyaccordingly. Each new shape needs render-layer support (parseMemo fallbacks + frontend gates inChatSurface.tsxandReproducibleChatPage.tsx).Files
convex/domains/redesign/chatRuns.ts—detectRequestedResponseShape,applyDeterministicResponsePolicysrc/features/redesign/surfaces/ChatSurface.tsx(compact gates)src/features/redesign/pages/ReproducibleChatPage.tsx(parallel gates)