Commit Graph

180 Commits

Author SHA1 Message Date
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
49e0ee8e9e Consolidate on ALWRITY_ENABLED_FEATURES - remove all legacy support
Backend:
- Remove all legacy env var fallbacks (ALWRITY_FEATURE_PROFILE, ALWRITY_ROUTER_PROFILE, etc)
- Remove get_active_profile() from start_alwrity_backend.py
- Remove _env_flag_enabled() from app.py
- Use ALWRITY_ENABLED_FEATURES as single source of truth

Frontend:
- demoMode.ts now uses only REACT_APP_ENABLED_FEATURES
- Removed all legacy fallback keys (app_mode, demo_mode, podcast_only_demo_mode)

Usage:
  ALWRITY_ENABLED_FEATURES=podcast     # Podcast only
  ALWRITY_ENABLED_FEATURES=all        # All features (default)
2026-03-31 18:51:30 +05:30
ajaysi
edd92ec85b Deprecate legacy feature flags, use ALWRITY_ENABLED_FEATURES only
- Remove fallback to ALWRITY_FEATURE_PROFILE, ALWRITY_ROUTER_PROFILE
- Primary env var is now ALWRITY_ENABLED_FEATURES (backend)
- Primary env var is REACT_APP_ENABLED_FEATURES (frontend)
- Add deprecation comments to all get_enabled_features() functions
- Update demoMode.ts with clear deprecation notes

Usage:
  ALWRITY_ENABLED_FEATURES=podcast      # Podcast only
  ALWRITY_ENABLED_FEATURES=all          # All features (default)
2026-03-31 18:45:52 +05:30
ajaysi
cd06c6aaa8 Consolidate feature flags to ALWRITY_ENABLED_FEATURES
Backend:
- Add get_enabled_features() returning set from ALWRITY_ENABLED_FEATURES
- Update router registry to use 'features' instead of 'profiles'
- Support feature names: podcast, blog-writer, youtube, story-writer, etc
- Update bootstrap gating to use enabled features
- Update PODCAST_ONLY_DEMO_MODE to check new flag first
- Add backwards compatibility with legacy env vars

Frontend:
- Update demoMode.ts to use REACT_APP_ENABLED_FEATURES
- Add getEnabledFeatures() and isFeatureEnabled() utilities

Usage:
  ALWRITY_ENABLED_FEATURES=all          # All features (default)
  ALWRITY_ENABLED_FEATURES=podcast      # Podcast only
  ALWRITY_ENABLED_FEATURES=podcast,core # Podcast + core features
2026-03-31 18:40:54 +05:30
ajaysi
bf980ab89b fix: In demo mode, redirect to podcast-maker when no subscription data 2026-03-31 14:43:23 +05:30
ajaysi
45aefd0590 fix: Remove Navigate return from useEffect, use early return instead 2026-03-31 14:33:05 +05:30
ajaysi
f53b53a543 fix: Fix TypeScript error in useEffect by moving checkout redirect outside 2026-03-31 14:32:04 +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
dfccf53d18 Merge PR #457: Fix onboarding loading gate for inactive subscriptions 2026-03-31 07:57:41 +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
ي
a0efdb5001 Fix onboarding loading gate for inactive subscriptions 2026-03-31 07:33:17 +05:30
ajaysi
8b8730ae9f fix: Don't wait for onboarding data in demo mode, prevents infinite loading 2026-03-31 06:59:46 +05:30
ajaysi
66faff9051 fix: Add podcast-only demo mode frontend integration
- Skip onboarding in demo mode, redirect to podcast-maker
- Demo mode checks localStorage and env vars
- Remove mock subscription - use real subscription flow
2026-03-31 06:48:24 +05:30
ajaysi
f0b78f5cbe fix: Skip subscription check in demo mode, allow access with mock subscription 2026-03-30 16:32:18 +05:30
ajaysi
43c6ceab2f fix: Skip onboarding calls in podcast-only demo mode
- Add demoMode utility for consistent demo mode detection
- Skip onboarding API calls in OnboardingContext when in demo mode
- Redirect to /podcast-maker instead of /onboarding in demo mode
2026-03-30 09:38:48 +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
ي
7e4adce55f Make SIF agent workflows non-blocking and guard SSE hangs 2026-03-10 14:04:26 +05:30
ajaysi
7747174f00 Merge branch 'pr-404' 2026-03-09 16:20:06 +05:30
ajaysi
1c3524964e Merge branch 'pr-400' 2026-03-09 15:19:47 +05:30
ajaysi
b3cc83ed6e fix: resolve onboarding session not found warnings and frontend build OOM
- Use canonical Clerk user id (clerk_user_id) across all onboarding entrypoints to ensure consistent OnboardingSession.user_id lookup
- Fix API key persistence in api_key_manager.py to use correct APIKey model columns (session_id, provider, key)
- Increase Node heap for frontend build to 8GB and add build:nomap script to disable sourcemaps and reduce memory usage
- Update onboarding endpoints (endpoints_core.py, onboarding_control_service.py, step_management_service.py) to prefer clerk_user_id over id
- Fix frontend workflowStore.ts TypeScript error by returning WorkflowError instance
- Add website_automation_service.py for onboarding automation
2026-03-09 13:36:34 +05:30
ي
c3bd04e259 Fix huddle SSE auth fallback with query token support 2026-03-09 12:06:49 +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
ajaysi
a25ec8302c fix: Resolve merge conflicts in workflowStore.ts by combining normalization and fallback logic (PR #387) 2026-03-07 12:08:29 +05:30
ajaysi
f0f73eb003 Merge branch 'pr-385' 2026-03-07 12:02:50 +05:30
ajaysi
8b554a35c4 fix: Resolve dependency conflicts, scheduler status error, and frontend config (Closes #382) 2026-03-07 11:51:59 +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
ي
c3f478a763 Normalize today workflow task dependencies as arrays 2026-03-06 21:37:36 +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
ي
7d530b3220 Preserve full provider breakdown in billing UI coercion 2026-03-05 11:31:49 +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
65fede6839 Merge PR #370: Tiered agent activity responses and detailed approvals UI 2026-03-03 18:33:38 +05:30