MorphPlanFeatures class

What a given MorphPlan is allowed to do. The runtime gate is always wants AND allows: • wants = the dev's opt-in via MorphFeatures on the provider • allows = an instance of this class derived from the resolved plan

The dev never instantiates this directly — it lands on BuildContext.morphPlanFeatures once the validator has resolved the plan. PlanGate / requireMorphProfessional use it to gate UI access.

Naming note: this class is MorphPlanFeatures (not MorphFeatures) because the latter is already the dev-facing opt-in flag bag from the commercial-features module. Keeping them distinct means callers can pattern-match wants && allows without type collisions.

Mirrors PlanService.PlanFeatures in chameleon-backend — when a flag moves between tiers, both files have to change in lockstep.

Annotations

Constructors

MorphPlanFeatures({required MorphPlan plan})
const

Properties

aiInsights bool
no setter
analyticsDashboard bool
no setter
batteryAware bool
no setter
batteryAwareUI bool
no setter
behavioralAnalyticsLocal bool
no setter
behavioralSuggestions bool
no setter
behavioralV2 bool
V2 behavioral intelligence — zone reorder, morphing, suggestion engine. The umbrella flag every other Pro+ V2 widget keys off.
no setter
chargePatternPredictor bool
no setter
circadianRhythm bool
no setter
claudeInsights bool
no setter
customInfrastructure bool
no setter
darkModeAuto bool
no setter
dashboardExporter bool
no setter
fatigueBaseline bool
no setter
fatigueCognitiveDetection bool
no setter
fatigueDetection bool
no setter
gpsAccelerometerFusion bool
no setter
gpsContext bool
no setter
gpsContextUI bool
no setter
gripDetection bool
no setter
hashCode int
The hash code for this object.
no setteroverride
industryPresets bool
no setter
interruptionRecoveryAdvanced bool
no setter
interruptionRecoveryBasic bool
Scroll position only — no checkout/transfer/KYC contexts.
no setter
metricsReporter bool
no setter
morphZone bool
no setter
multiStepWorkflow bool
no setter
no setter
no setter
plan MorphPlan
final
recoveryAdvanced bool
Rich context-aware recovery (cart, transfer, KYC step, …).
no setter
recoveryContextual bool
no setter
reorderableColumn bool
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sla bool
no setter
sonnetTheme bool
Premium Claude Sonnet for theme generation. Free silent-degrades to Haiku server-side (same JSON shape).
no setter
sso bool
no setter
suggestionEngine bool
no setter
systemPreferences bool
no setter
themeGeneration bool
no setter
whiteLabel bool
no setter

Methods

check(String featureName, bool condition, MorphPlan requiredPlan) bool
Returns condition and, when blocked in debug builds, prints a pointer to the upgrade URL. Used internally by the check… shortcuts below. Production builds never log (the assert closure is stripped).
checkAiInsights() bool
checkAnalyticsDashboard() bool
checkBatteryAware() bool
checkBatteryAwareUI() bool
checkBehavioralSuggestions() bool
checkClaudeInsights() bool
checkFatigueDetection() bool
checkGpsContext() bool
checkGripDetection() bool
checkSuggestionEngine() bool
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
override