feat(config): allow iframe embedding from trusted domains - #15
Merged
Conversation
Judge Analysis: - Add Redis-backed judge-store.ts for persistent quick score and analysis caching - Round all scores to whole percentages (no decimals) - Add two-tier loading: quick scores first, then full analysis - Preload judge analysis in background when debate completes Summary Page: - Persist reveal models state in localStorage across navigation - Add "How this works" help modal explaining scoring categories - Match help icon style with evidence review section Misc: - Update judge API route for async cache checks - Add QuickScore type and progressive loading states
Caching: - Add jury-store.ts with Redis/Upstash persistence (7-day TTL) - AES-256-GCM encryption matching judge-store pattern - Update jury-service to use persistent cache instead of in-memory Map - Make isDeliberationCached async for proper cache checks UI Improvements: - Replace raw deliberation log with human-readable "Juror Conclusion" panel - Add deliberationSummary field to ArbiterResolution type - Update arbiter prompt to generate plain-language bullet points - No internal claim IDs, no emojis, formal arbiter tone - Delete unused deliberation-log.tsx component
- Remove buildDeliberationPrompt and DELIBERATION_SYSTEM_PROMPT from jury-prompts - Replace runDeliberation with lightweight identifyDisagreements function - Arbiter now handles resolution directly without intermediate deliberation API calls - Add botid package for bot detection
API Cost Optimization: - Switch moderator to Gemini 2.0 Flash (from GPT-5.1) - Use Gemini 2.0 Flash for topic classification - Use Gemini 2.0 Flash-Lite for topic polish - Use GPT-5-mini for rule validation Provider Updates: - Add 'gemini' to TurnProvider type - Add gemini to getDebateProvider factory - Update llm-service to handle gemini provider Prompt Redesigns (Gemini-optimized): - Intro: Apple keynote + friction/escalation structure - Transition: UFC commentator energy with spotlight phrases - Summary: Cinematic podcast finale with heat indicators All prompts include explicit Gemini formatting rules for proper line breaks
- Change judge full analysis model for ~98% cost reduction - Both quick score and full analysis now use same lightweight model - Quality remains close to baseline (30pt vs 55pt deviation) - Estimated savings: ~$0.02 per judge call
- Switch claim extraction to cost-efficient mini model - Switch arbiter resolution to Gemini Flash - ~98% cost reduction on jury deliberation - Faster response times (no reasoning overhead)
Replace X-Frame-Options with CSP frame-ancestors directive to enable embedding from dineshd.dev and localhost development servers.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🚀 Preview Deployment
Deployed with commit e96928e |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
X-Frame-Options: DENYwith CSPframe-ancestorsdirectiveTest plan