fix: WYSIWYG editor, content generation, and writing assistant bug fixes

- Fix text selection menu not showing: wire contentRef via inputRef on multiline TextField
- Fix blog title not truncating: add min-w-0 for flex item overflow
- Fix outline generation 500: escape curly braces in f-string prompt template
- Fix content generation 'NoneType not callable': replace SessionLocal() with get_session_for_user(), add db param to MediumBlogGenerator, fix signature mismatch in database_task_manager
- Fix writing assistant suggest 500: add auth + user_id to API endpoint and service, replace sync requests with httpx.AsyncClient
- Fix hallucination detector 404: explicitly include router in main.py and app.py
- Fix missing error_data in task failure responses
- Hide CopilotKit web inspector button
- Remove hardcoded fallback suggestions from SmartTypingAssist
- Fix stale closure refs in SmartTypingAssist handleTypingChange
- Add two-column editor layout, stats bar, section hover menu
- Various subscription, billing, and research module improvements
This commit is contained in:
ajaysi
2026-05-14 09:11:30 +05:30
parent 7385100017
commit 928c2f20aa
113 changed files with 4344 additions and 10064 deletions

View File

@@ -5,7 +5,7 @@
import { ResearchMode, ResearchProvider } from '../services/blogWriterApi';
import { apiClient } from './client';
import { isPodcastOnlyDemoMode } from '../utils/demoMode';
import { isFeatureOnlyMode } from '../utils/demoMode';
export interface ProviderAvailability {
google_available: boolean;
@@ -130,9 +130,9 @@ let pendingConfigRequest: Promise<ResearchConfigResponse> | null = null;
* and research persona from the unified /api/research/config endpoint.
*/
export const getResearchConfig = async (): Promise<ResearchConfigResponse> => {
// Skip in podcast-only mode — backend always provides AI-generated research_queries
if (isPodcastOnlyDemoMode()) {
throw new Error('Research config not available in podcast-only mode');
// Skip in feature-limited mode — backend always provides AI-generated research_queries
if (isFeatureOnlyMode()) {
throw new Error('Research config not available in feature-limited mode');
}
// If a request is already in flight, return the same promise