sp-improved-wheat-growing uses wheat (and only wheat) as spoilable input. Since the freshness of the products is the freshness of the educts this cycle will die after the spoilage time (45m). This is even worse for potatoes if you craft nutrients from the Potatoes itself since nutrients have a horrible short spoilage time.
You can build workarounds like freezing and unfreezing these things from time to time or using the original recipes from time to time. But freezers are horrible slow and the sp-potato recipe is horrible inefficient. So I assume that this is not intended.
So I assume you would like to set reset_freshness_on_craft[1] in these recipes:
data.raw["recipe"]["sp-improved-wheat-growing"].reset_freshness_on_craft = true
data.raw["recipe"]["sp-improved-potato-growing"].reset_freshness_on_craft = true
data.raw["recipe"]["sp-improved-honycob-fungus-growing"].reset_freshness_on_craft = true
diff prototypes/recipe.lua:
@@ -11991,6 +11991,7 @@
category = "sp-herbs-growing",
enabled = false,
allow_productivity = true,
+ reset_freshness_on_craft = true,
energy_required = 45,
ingredients = {
{type = "item", name = "sp-potato", amount = 1},
@@ -12028,6 +12029,7 @@
category = "sp-herbs-growing",
enabled = false,
allow_productivity = true,
+ reset_freshness_on_craft = true,
energy_required = 30,
ingredients = {
{type = "item", name = "sp-wheat", amount = 1},
@@ -12046,6 +12048,7 @@
category = "sp-herbs-growing",
enabled = false,
allow_productivity = true,
+ reset_freshness_on_craft = true,
energy_required = 5,
ingredients = {
{type = "item", name = "sp-honeycomb-fungus", amount = 1},
[1] https://lua-api.factorio.com/latest/prototypes/RecipePrototype.html#reset_freshness_on_craft