From 794650afc6bb3c9508632a959a3a263b74d62934 Mon Sep 17 00:00:00 2001 From: Piotr Oleszczyk Date: Sat, 28 Feb 2026 22:32:57 +0100 Subject: [PATCH 1/2] feat(models): add anti_aging to IngredientFunction enum Model was emitting "anti_aging" as a valid ingredient function (e.g. for retinoids, peptides). Add it to the enum and the parse-text system prompt allowed values. Co-Authored-By: Claude Sonnet 4.6 --- backend/innercontext/api/products.py | 2 +- backend/innercontext/models/enums.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/innercontext/api/products.py b/backend/innercontext/api/products.py index c5fb1af..efd4c6d 100644 --- a/backend/innercontext/api/products.py +++ b/backend/innercontext/api/products.py @@ -271,7 +271,7 @@ actives[].functions (array, pick applicable): "humectant" | "emollient" | "occlusive" | "exfoliant_aha" | "exfoliant_bha" | \ "exfoliant_pha" | "retinoid" | "antioxidant" | "soothing" | "barrier_support" | \ "brightening" | "anti_acne" | "ceramide" | "niacinamide" | "sunscreen" | "peptide" | \ -"hair_growth_stimulant" | "prebiotic" | "vitamin_c" +"hair_growth_stimulant" | "prebiotic" | "vitamin_c" | "anti_aging" actives[].strength_level: 1 (low) | 2 (medium) | 3 (high) actives[].irritation_potential: 1 (low) | 2 (medium) | 3 (high) diff --git a/backend/innercontext/models/enums.py b/backend/innercontext/models/enums.py index e610a03..293e280 100644 --- a/backend/innercontext/models/enums.py +++ b/backend/innercontext/models/enums.py @@ -93,6 +93,7 @@ class IngredientFunction(str, Enum): HAIR_GROWTH_STIMULANT = "hair_growth_stimulant" PREBIOTIC = "prebiotic" VITAMIN_C = "vitamin_c" + ANTI_AGING = "anti_aging" class TextureType(str, Enum): From ef8334b93c7daa9319915e27a7210b62117cd078 Mon Sep 17 00:00:00 2001 From: Piotr Oleszczyk Date: Sat, 28 Feb 2026 22:35:39 +0100 Subject: [PATCH 2/2] feat(frontend): add anti_aging to IngredientFunction type and form selector Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/lib/components/ProductForm.svelte | 2 +- frontend/src/lib/types.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/lib/components/ProductForm.svelte b/frontend/src/lib/components/ProductForm.svelte index 700ceb1..67b81a5 100644 --- a/frontend/src/lib/components/ProductForm.svelte +++ b/frontend/src/lib/components/ProductForm.svelte @@ -35,7 +35,7 @@ 'exfoliant_aha', 'exfoliant_bha', 'exfoliant_pha', 'retinoid', 'antioxidant', 'soothing', 'barrier_support', 'brightening', 'anti_acne', 'ceramide', 'niacinamide', - 'sunscreen', 'peptide', 'hair_growth_stimulant', 'prebiotic', 'vitamin_c' + 'sunscreen', 'peptide', 'hair_growth_stimulant', 'prebiotic', 'vitamin_c', 'anti_aging' ]; const interactionScopes: InteractionScope[] = ['same_step', 'same_day', 'same_period']; const tristate = [ diff --git a/frontend/src/lib/types.ts b/frontend/src/lib/types.ts index b30dbd5..150c1bf 100644 --- a/frontend/src/lib/types.ts +++ b/frontend/src/lib/types.ts @@ -23,7 +23,8 @@ export type IngredientFunction = | 'peptide' | 'hair_growth_stimulant' | 'prebiotic' - | 'vitamin_c'; + | 'vitamin_c' + | 'anti_aging'; export type InteractionScope = 'same_step' | 'same_day' | 'same_period'; export type MedicationKind = 'prescription' | 'otc' | 'supplement' | 'herbal' | 'other'; export type OverallSkinState = 'excellent' | 'good' | 'fair' | 'poor';