Commit Graph

214 Commits

Author SHA1 Message Date
ajaysi
80838ed028 Fix: Implement isCancelled pattern and memoize callbacks to prevent camera unmounting
- Wrap all AvatarSelector callback handlers in useCallback in CreateModal.tsx
- Add isCancelled flag pattern to RobustCamera useEffect
- Inline camera initialization to avoid stale closure issues
- Add proper cleanup on component unmount
- Ensure camera stream is properly stopped if component unmounts during initialization
- Remove unused initializeCamera function
2026-04-07 11:39:07 +05:30
ajaysi
e66311ea44 Fix: Prevent camera remounting issues from parent re-renders
- Add React.memo to CameraSelfie to prevent unnecessary re-renders
- Memoize callbacks in CameraSelfie
- Track previous open/facingMode state in RobustCamera to detect actual changes
- Add streamAttachedRef to prevent duplicate stream attachments
- Fix useEffect dependencies to prevent cleanup on parent re-renders
- Ensure camera only initializes on actual dialog open (not parent re-render)
2026-04-07 11:22:10 +05:30
ajaysi
cf2d3a51e8 Fix: Resolve camera display issues in selfie component
- Consolidate stream attachment into single useEffect
- Remove race conditions from multiple competing effects
- Add proper cleanup with video element reset
- Simplify state management using single stream state
- Add isMountedRef to prevent state updates after unmount
- Improve error handling with specific error messages
- Add canvas flip correction for front camera mirror effect
2026-04-07 11:14:49 +05:30
ajaysi
8dd1c13f85 Fix: Improve audio recording playback in voice clone component
- Use explicit MIME type for MediaRecorder (audio/webm;codecs=opus)
- Add error handling for audio playback
- Copy chunks before creating blob to prevent race conditions
- Add key prop to audio elements for proper re-rendering
2026-04-07 07:05:45 +05:30
ajaysi
23bf709c10 Feat: Podcast maker UI improvements and voice clone panel
- Add podcast feature to step4_assets router for podcast mode
- Enhance analysis tab navigation with gradient styling
- Move cost estimate display to TopicUrlInput component
- Add voice clone panel with toggle and preview functionality
- Improve podcast dashboard header with gradient background
- Add step indicator and improved styling to TopicUrlInput
- Update AvatarSelector with refined styling
- Enhance PodcastConfiguration with better layout
- Improve Header component with gradient and shadow effects
2026-04-07 06:41:53 +05:30
ajaysi
3f1d5cbb09 Feat: Add TTS to analysis tabs and improve Research Queries UX
- Add TextToSpeechButton to Outline, Takeaways, and Guest tabs in analysis phase
- Add help icon with tooltip to Research Queries explaining the workflow
- Change Run Research button to show 'Next: Select Query' when disabled
- Add hint text 'Select a query to continue' when no queries selected
2026-04-06 17:59:13 +05:30
ajaysi
12960a22ea Fix: Mobile responsiveness for Podcast Presenter Avatar section
- Make header stack responsive with column layout on mobile
- Add responsive breakpoints for tab sizes and padding
- Fix image preview max widths for mobile screens
- Add responsive font sizes for info boxes
- Adjust container padding for smaller screens
- Fix icon sizes for mobile devices
2026-04-06 16:56:13 +05:30
ajaysi
45d2b0b693 Fix: Remove duplicate Research Queries section in podcast maker
- Remove Research Queries section from AnalysisPanel.tsx
- Keep QuerySelection component as single source for research queries
- Remove unused props (onRunResearch, isResearchRunning, selectedQueries, etc.)
2026-04-06 16:20:28 +05:30
ajaysi
348839be36 Fix: Improve podcast analysis LLM prompt and skip bible generation in podcast mode
- Add pandas to requirements-podcast.txt for usage tracking
- Fix LLM prompt to return plain strings instead of objects for enhanced_ideas
- Add object-to-string normalization for LLM responses that return objects
- Skip bible generation in podcast-only mode (onboarding disabled)
- Skip alerts polling in AlertsBadge when in podcast-only demo mode
2026-04-06 15:19:23 +05:30
ajaysi
d12fe6348e Fix: Skip non-podcast API calls in podcast-only mode
- AlertsBadge: Skip agent alerts fetch in podcast mode
- UserBadge: Skip system status fetch in podcast mode
- SystemStatusIndicator: Skip monitoring stats in podcast mode

This prevents 404 errors when frontend calls endpoints that don't exist in podcast-only demo mode.
2026-04-06 14:58:53 +05:30
ajaysi
6cf5d0396d Update PodcastDashboard 2026-04-06 07:21:47 +05:30
ajaysi
a697b869ab feat(frontend): allow podcast-mode to bypass onboarding gate for /podcast-maker in ProtectedRoute 2026-04-05 10:56:03 +05:30
ajaysi
9e3867ca61 debug(frontend): instrument ProtectedRoute gating with shouldSkipOnboarding log 2026-04-05 09:04:41 +05:30
ajaysi
b567a32136 debug(frontend): log gating in PodcastDashboard entry 2026-04-05 07:40:52 +05:30
ajaysi
88deabb9fc fix(frontend): satisfy ESLint by moving import to top and removing module-time log 2026-04-05 07:22:53 +05:30
ajaysi
f30f6c5346 debug(frontend): log gating at PodcastMaker/ui/index.ts 2026-04-05 07:17:40 +05:30
ajaysi
2ab4471632 debug(frontend): log redirect paths via navigateAndLog for onboarding flow 2026-04-05 07:03:03 +05:30
ajaysi
26e1f08ebb debug: add logging to trace REACT_APP_ENABLED_FEATURES 2026-04-04 11:15:40 +05:30
ajaysi
a8c80c5b75 fix: add missing App components for Vercel deployment 2026-04-03 18:32:22 +05:30
ajaysi
4fbbe9c8b4 fix: Render PORT binding and Recharts TypeScript errors 2026-04-03 13:02:59 +05:30
ajaysi
63bb937796 feat: podcast demo mode with ALWRITY_ENABLED_FEATURES support
- Add ALWRITY_ENABLED_FEATURES env var for feature gating
- Podcast-only mode: skip LLM bootstrap, scheduler, persona services
- Enhance video generation prompt with scene context, analysis, narration
- Add voice cloning support via custom_voice_id in WaveSpeed
- Add text-to-speech for research results (browser speechSynthesis)
- Fix render queue to sync images from script phase
- Add WaveSpeed LLM pricing (gpt-oss-120b)
- Fix podcast bible generation error handling
- Refactor RouterManager for feature-based router loading
2026-04-03 06:59:59 +05:30
ajaysi
d06ab77e60 Improve podcast avatar display and info banner
- Avatar images now use full available width (max 280px, responsive)
- Auto-collapse info banner after 8 seconds
- Add 'Show tips' link to expand collapsed info
- Fix image sizing to use contain instead of cover for better visibility
2026-03-31 20:13:24 +05:30
ajaysi
f737b24b49 Require podcast avatar before enabling Analyze & Continue button
- canSubmit now checks for avatar presence (uploaded, brand, or generated)
- Checks avatarFile, avatarUrl, avatarPreview, brandAvatarFromDb, brandAvatarBlobUrl
- Updated tooltip to reflect new requirement
2026-03-31 19:53:09 +05:30
ajaysi
d28daca2e1 fix: Redirect to podcast-maker after Stripe checkout in demo mode
- Update PricingPage success_url to point to podcast-maker in demo mode
- Handle ?subscription=success query param in InitialRouteHandler
2026-03-31 14:30:55 +05:30
ajaysi
2c3fe33c75 fix: Add missing setAnnouncementSeverity parameter to announceError calls 2026-03-31 12:12:45 +05:30
ajaysi
9d04ffb63a fix: Add error handling and display for podcast workflow failures
- Improve error message handling for common API failures
- Add announcementSeverity state for error/success styling
- Display errors with red alert styling in podcast dashboard
2026-03-31 07:52:42 +05:30
ajaysi
e64aea484f Merge PR #450: Add strict Stripe checkout guard via env flag 2026-03-30 07:54:42 +05:30
ajaysi
8828e982f8 Merge PR #449: Feature-flag pricing tier availability for alpha/demo modes 2026-03-30 07:52:39 +05:30
ي
4e0f176842 Add strict Stripe checkout guard via env flag 2026-03-30 07:51:45 +05:30
ajaysi
bbb46ca9d1 fix: Add podcast-only demo mode readiness patches
- Patch pricing redirect to route to podcast-maker instead of onboarding
- Allow all plan tiers in demo mode (remove alpha restriction)
- Add Stripe mode warning in demo when key is missing
- Add startup router mount assertions for subscription and podcast
- Add smoke test script for demo mode validation
2026-03-30 07:50:58 +05:30
ي
d1ff406d03 Feature-flag pricing tier availability for alpha/demo modes 2026-03-30 07:49:56 +05:30
ي
cadcb8077d Add mode-aware pricing redirect for podcast demo flow 2026-03-30 07:48:00 +05:30
ajaysi
d6ad903e3d feat: Improve image generation prompts with visual data extraction
- Add dedicated image_generation module with statistical extraction
- Support 16 industry domains with visual concept detection
- Add model-specific guidance for Ideogram, FLUX, GLM, Qwen, MAI
- Extract statistics, rankings, comparisons, and trends automatically
- Refactor backend/api/images.py to use new module
2026-03-29 10:16:40 +05:30
ajaysi
446b59e31d Add_local_development_files_and_media_cache_utilities 2026-03-12 15:25:49 +05:30
ajaysi
e90a29c27e Merge_PR_410_with_local_changes 2026-03-12 15:21:08 +05:30
ajaysi
01881bb405 "feat:enhance-podcast-topic-ai" 2026-03-11 19:09:27 +05:30
ajaysi
8c2d88efb9 Commit_all_local_changes_after_PR_406_merge 2026-03-10 17:01:36 +05:30
ي
6b141ee554 Merge branch 'main' into codex/implement-central-visibility-for-seo-onboarding-tasks 2026-03-08 23:13:08 +05:30
ي
936dd14e0d Add consolidated onboarding SEO task health API and dashboard panel 2026-03-08 23:09:02 +05:30
ajaysi
8f6ed3a616 Merge PR #388: Daily Workflow Integration & Enhanced Reliability
- Resolve merge conflicts in backend/services/today_workflow_service.py and frontend/src/stores/workflowStore.ts
- Backend: Keep robust handling for both dict and object types in TaskProposal conversion
- Backend: Combine dependencies coercion with task metadata normalization
- Frontend: Implement graceful fallback pattern (try server first, then local generation on unavailability)
- Add provenanceSummary integration from server responses
- Ensure degraded mode handling with appropriate messaging
2026-03-08 17:47:15 +05:30
ي
81b29895b9 Improve daily workflow provenance modeling and UI labels 2026-03-06 21:39:32 +05:30
ي
ed625eae61 Harden workflow fallback handling and degraded mode UI 2026-03-06 21:38:39 +05:30
ajaysi
6205ff8bbe Merge PR #379: fix preflight pricing/model drift and usage UI 2026-03-05 12:22:21 +05:30
ي
01bf56837f Fix unlimited video limit display in usage rings 2026-03-05 11:36:04 +05:30
ajaysi
c303a1040b Merge branch 'pr-373' 2026-03-05 10:24:58 +05:30
ajaysi
26131232c7 feat: enhance billing dashboard with historical data & security hardening
- Fix usage tracking zero-value bug with self-healing logic
- Add month selector for historical usage views
- Implement start-of-month graceful initialization
- Merge PR #372: Harden user-scoped access in subscription routes
- Fix UI bugs in UsageDashboard component
2026-03-05 10:21:56 +05:30
ي
5a7b9e6c6b Refactor billing flows to require authenticated user IDs 2026-03-04 20:41:07 +05:30
ajaysi
1d36ebe2f9 Update frontend components: TeamHuddleWidget, useAgentHuddleFeed, TeamActivityPage 2026-03-04 09:19:53 +05:30
ajaysi
2fbda8f803 Merge PR #369: Standardize agent activity events and update timeline UI 2026-03-03 18:25:05 +05:30
ajaysi
1e95198ec9 Fix: Type errors and linter warnings 2026-03-03 18:20:48 +05:30