diff --git a/backend/app/api/yield_domains.py b/backend/app/api/yield_domains.py index e95a805..cf14fb6 100644 --- a/backend/app/api/yield_domains.py +++ b/backend/app/api/yield_domains.py @@ -774,6 +774,14 @@ async def list_partners( def _domain_to_response(domain: YieldDomain) -> YieldDomainResponse: """Convert YieldDomain model to response schema.""" + # Safely get partner name + partner_name = None + try: + if domain.partner: + partner_name = domain.partner.name + except Exception: + pass + return YieldDomainResponse( id=domain.id, domain=domain.domain, @@ -781,7 +789,7 @@ def _domain_to_response(domain: YieldDomain) -> YieldDomainResponse: detected_intent=domain.detected_intent, intent_confidence=domain.intent_confidence, active_route=domain.active_route, - partner_name=domain.partner.name if domain.partner else None, + partner_name=partner_name, landing_template=getattr(domain, "landing_template", None), landing_headline=getattr(domain, "landing_headline", None), landing_intro=getattr(domain, "landing_intro", None), diff --git a/frontend/src/components/hunt/BrandableForgeTab.tsx b/frontend/src/components/hunt/BrandableForgeTab.tsx index 6f79969..3927d8d 100644 --- a/frontend/src/components/hunt/BrandableForgeTab.tsx +++ b/frontend/src/components/hunt/BrandableForgeTab.tsx @@ -47,8 +47,8 @@ export function BrandableForgeTab({ showToast }: { showToast: (msg: string, type const tier = (subscription?.tier || '').toLowerCase() const hasAI = tier === 'trader' || tier === 'tycoon' - // Mode selection - const [mode, setMode] = useState<'pattern' | 'ai'>('pattern') + // Mode selection - AI mode by default if available + const [mode, setMode] = useState<'pattern' | 'ai'>(hasAI ? 'ai' : 'pattern') // Config const [pattern, setPattern] = useState('cvcvc') @@ -143,7 +143,35 @@ export function BrandableForgeTab({ showToast }: { showToast: (msg: string, type {/* Mode Selector */}