Skip to content

Feature Flags & Gating Reference

Applies to: All PRDs that affect access, limits, or feature availability Last Updated: February 2026 Provider: LaunchDarkly (SDK key configured via LAUNCHDARKLY_SDK_KEY)


How to Reference Feature Flags in PRDs

Any PRD section that introduces a limit, gate, or toggleable behavior should include:

**Feature flag:** `flag.key.name` (default: value)
**Enforcement:** [service/file that checks the flag]

Master Switches

Flag Default Purpose Enforcement
free_tier.enabled true Enable free tier restrictions globally subscription_access_service.py
rate_limit.enabled true Enable all rate limiting rate_limit_service.py
superpower.enabled false (prod) / true (dev) Master switch for all superpowers Feature flag evaluation
superpower.user_created.enabled false (prod) / true (dev) Enable user-created custom superpowers Feature flag evaluation
llm.force_basic_mode false Emergency kill-switch: caps all tokens at 200, disables expensive features llm_client.py

Free Tier & Subscription Flags

Flag Default Purpose PRDs Affected
free_tier.daily_message_limit 50 Max messages per day for free users 5, 6, 12
free_tier.superpowers_disabled false Block superpowers in 1:1 for free users (deprecated — free users now get 1 slot) 1, 2, 3, 6, 12
free_superpower_slots 1 Number of superpower slots for free-tier users 1, 3, 6, 12
payment.monthly_price_cents 799 Monthly subscription price ($7.99) 6, 12
payment.annual_price_cents 5000 Annual subscription price ($50.00) 6, 12
payment.stripe_enabled true Enable Stripe payment processing 6, 12
payment.paywall_enabled false Require payment before feature access 6, 12
payment.topup_enabled true Enable credit top-ups (legacy, not user-facing) 12

Rate Limiting Flags

Flag Default Purpose PRDs Affected
rate_limit.message_budget_threshold 5 1 AI unprompted message per N human messages 5, 10
rate_limit.commands_per_minute 10 Max commands per minute per user 1, 2
rate_limit.miniapp_actions_per_minute 20 Max miniapp actions per minute 1
rate_limit.user_messages_per_minute 20 Max user messages per minute 5, 8
rate_limit.photos_per_hour 50 Max photo uploads per hour 6, 7
rate_limit.strict_mode_enabled false Reduce all limits by multiplier 8
rate_limit.strict_mode_multiplier 0.5 Limit multiplier when strict mode on 8

LLM Token Flags

Flag Default Purpose PRDs Affected
llm.max_tokens.reflex 1500 Max tokens for reflex responses 1, 5
llm.max_tokens.deep_reasoning 2000 Max tokens for complex reasoning 7, 10
llm.max_tokens.default 1000 Max tokens for standard responses All
llm.max_tokens.vision 1500 Max tokens for vision/photo analysis 6, 7

Pipeline Flags

Flag Default Purpose PRDs Affected
pipeline.classifier_v2_enabled false Combined classifier v2 (cost optimization) All
context.reduced_history_enabled false Reduced conversation history mode 7
context.max_messages 10 Max messages in LLM context window 7, 10
media.photo_batching_enabled false Batch photo analysis for cost savings 6
media.photo_batch_size 3 Photos per batch 6

Caching Flags

Flag Default Purpose PRDs Affected
cache.response.enabled true Redis-backed response caching All
cache.memory.ttl_seconds 300 Memory search cache TTL (5 min) 7
cache.llm_response.ttl_seconds 3600 LLM response cache TTL (1 hour) All

Progression & Relationship Flags (PRD 3)

Flag Default Purpose PRDs Affected
enable_relationship_tracking true Master switch for 4-stage relationship state 3, 5, 7
enable_level_system false 10-level formula-based progression (gates all of PRD 3) 3, 4, 10, 12
enable_level_derivation false Derive relationship stages from levels (replaces independent stage tracking) 3
enable_persona_modifiers false Memory-driven behavioral tuning via derive_persona_modifiers() 3
enable_micro_bans false Level-gated voice constraints in system prompts 3
enable_superpower_tiers false Bronze/Silver/Gold tier progression for superpowers 3
enable_streak_tracking false Consecutive-day streak system 3
streak_saver_enabled false Proactive streak-saving messages at 9pm 3, 10
enable_companion_switching false Allow Superpowers+ users to switch companions (per-companion levels preserved, new companion starts L1) 3, 6
max_superpower_slots_paid_base 3 Superpowers+ starting slot limit (grows to 6 at L10 when level system enabled) 3, 12
max_superpower_slots_paid_cap 6 Superpowers+ maximum slot limit at Level 10 3, 12
enable_continuation_coordinator true Proactive conversation continuations 3, 5

Onboarding & Growth Flags (PRD 6)

Flag Default Purpose PRDs Affected
enable_onboarding_survey true Survey flow on ikiro.ai 6
enable_companion_picker true Companion picker with live previews (false = auto-assign best match) 6
enable_cold_text_path false Stranger mode + natural warm-up for cold texters 6
cold_text_activation_message_count 3 Number of back-and-forth exchanges before pending_activationactivated 6
suppress_capability_hints_before_activation true Block capability hints until account_status == "activated" AND stranger mode feature reveal completed. Prevents feature discovery from breaking the stranger-texting-a-person illusion. 1, 6
enable_group_recognition false Group chat implicit referral recognition (Path 3) 5, 6
enable_assistant_switching false Switch companion mechanic 3, 6
enable_pregenerated_response true Pre-generate Path 1 first response at companion selection (latency optimization, not an activation gate) 6
enable_open_loop_triggers true Conv 1 → Conv 2 open loop patterns 6
enable_proactive_first_checkin true 18-22h proactive first check-in after Conv 1 6, 10
enable_personality_read true Personality test superpower's "read" moment 6
enable_conversational_photos true Assistant asks for photos in early conversations 6
enable_onboarding_stage_2 true Stage 2 profile collection directives after name confirmed 6
enable_onboarding_decline_detection true Detect and respect user pushback on onboarding questions 6
enable_referral_rewards true 3-referrals = 1-free-month reward system 6, 12
referrals_per_free_month 3 Number of activated referrals needed to earn 1 free month 6, 12

Group Chat Flags (PRD 5)

Flag Default Purpose PRDs Affected
enable_group_mode false Master switch for group chat support 5
group_message_budget_threshold 20 MessageBudget N value: 1 unsolicited response per this many human messages 5
group_max_responses_per_window 1 Max unsolicited Luna responses per budget window (explicit invocations bypass) 5
group_cooldown_after_friction 7200 Seconds of silence after friction detected (e.g., "luna shut up") 5
group_relevance_filter_enabled true Edge agent logistics keyword + mention filter (~70% drop rate) 5
group_memory_logistics_only true Extraction-only policy: only store logistics-relevant content in group memory 5, 7
group_poll_enabled false Poll / consensus builder 5
group_reminder_enabled false Group-scoped reminder commitments 5
group_checklist_enabled false Trip / checklist broadcast 5
group_bill_split_enabled false Bill split in group context (requires dual gating: room owner sub + invoker loadout) 5, 12
group_viral_tracking_enabled false Exposure → conversion tracking (group_exposure table) 5
group_first_contact_message_enabled false Send norms message on first group appearance 5
group_escalation_to_dm_enabled false Redirect personal requests from group to 1:1 DM 5, 6

Memory System Flags (PRD 7)

Flag Default Purpose PRDs Affected
enable_memory_system true Master switch for memory storage and recall 7
memory_importance_threshold 4 Minimum importance score (1-10) to store a memory 7
memory_search_limit 10 Max memories returned per search 7
memory_top_k_injected 5 Top-K memories injected into LLM context 7
enable_multi_query_retrieval true Tolan-inspired auxiliary question synthesis for broader recall 7
enable_event_tracker true Proactive "I Remember" — detects future events and schedules resurfacing 7, 10
enable_memory_deduplication true Nightly deduplication at 3am (cosine 0.85 threshold) 7
enable_photo_memory true GPT-5 Vision memory extraction from photos 7
memory_dedup_similarity_threshold 0.85 Cosine similarity threshold for dedup matching 7
enable_legacy_mem0 false Legacy mem0 fallback (migration complete, not used in production) 7

Memory Import Flags (PRD 15)

Flag Default Description PRD
enable_memory_import false Master gate for all memory import functionality (settings page + onboarding + conversational) 15
enable_memory_import_onboarding false Show Step 3.5 (memory import) in Path 1 web onboarding flow 15
enable_memory_import_conversational false Allow companion to offer import once during Stage 1-2 conversation 15
memory_import_max_entries 200 Maximum parsed entries per import session 15
memory_import_importance_floor 3 Minimum importance score for imported memories (vs 4 for organic) 15

Individual Superpower Flags

Each superpower has an independent feature flag: superpower.{name}.enabled

Proactive (user-configurable): travel_brain, reservation_prep, tickets_vault, birthday_reminder, post_event_checkin, cancellation_protector, membership_renewal, package_tracking, call_prep, focus_protector

Proactive (scheduled): calendar_morning, calendar_events, email_urgency, evening_prep, destination_prep

Agent (user-triggered): calendar_stress_agent, calendar_query_agent, calendar_list_agent, gmail_mindreader_agent

MiniApps: trip_planner, bill_split, todo_list

Life/Wellness: mood_tracker, budget_tracker, habit_tracker, daily_summary

All default to true in dev, false in prod. Enable individually via LaunchDarkly for gradual rollout.


Observability Flags

Flag Default Purpose
metrics.token_monitoring_enabled true Detailed token usage tracking
metrics.detailed_logging_enabled false Verbose request/response logging

Environment-Level Toggles (Not LaunchDarkly)

These are environment variables, not feature flags, but gate major subsystems:

Variable Default Purpose
ENABLE_PROACTIVE_SCHEDULER false Master on/off for the proactive scheduler service
ENVIRONMENT development Controls CORS, secrets validation, logging level
POSTHOG_API_KEY (optional) If unset, analytics is no-op
SENTRY_DSN (optional) If unset, error tracking is no-op