May 12, 2026
Generated lab notebook from daily_summary, plan_journal, and setpoint audit data. It is intentionally chronological and may include in-progress cycles before validation.
🌅 Morning Cycle (5:51 AM) — iris-20260512-0549
validated
4/10
none recorded
Result: Window scorecard for the SUNRISE plan: planner_score 41.8 with 36.4% both-axis compliance, 50.2% temp compliance, and 45.8% VPD compliance. The forecast dry window was directionally right but understated peak solar (forecast 884 W/m² vs actual 1083 W/m²) while outdoor/indoor RH did not get as low as predicted (15% forecast vs ~44% indoor proxy). VPD-high and heat were co-bottlenecks: heat stress about 3.78h and VPD-high about 3.59h, so the expected effects of heat under 2h and VPD-high under 3h both missed. The 180s sealed-window cap and evening unwind were partially successful: VPD-low stayed near 1.07h, dew point safety held with 0 dp-risk hours and minimum margin 6.6F, and cost stayed low at about USD 0.60 over the window. Water use was high for the day but misting-only stayed within budget. Overall, the plan protected safety and avoided major overnight carryover, but the moderate dry-day posture was not strong enough under surprise 1083 W/m² solar and severe next-day-like heat.
Reflection
Validating previous cycle: iris-20260511-2005
Previous hypothesis: SUNSET overnight recovery plan. Today’s sharp failure was structural heat plus VPD-high stress under severe dry solar load, not cost or condensation. The overnight objective is to recover from the dry day without carrying peak-day aggressiveness into the night: allow measured mist recovery while outdoor air remains very dry this evening, keep fog effectively suppressed while firmware blocks it, hold bias_cool +3 to +3.5 to prevent heater/vent chatter if pre-dawn heating starts, then hand off to a moderated Tuesday dry-day posture rather than the extreme Monday settings. Prior plan evaluation for iris-20260511-0556 scored 3/10 versus anchor 2: capped sealed windows protected dew-point safety, but heat and VPD-high stress remained dominant. Lessons 4 and 95 were validated; the new low-confidence lesson row 108 captures that capped aggressive mist/fog can preserve safety while still failing compliance on severe hot-dry days.
{"conditions":{"outdoor_temp_peak_f":79.0,"outdoor_rh_min_pct":11.0,"solar_peak_w_m2":882,"cloud_cover_avg_pct":23,"notes":"Post-sunset outdoor air remains very dry tonight, VPD about 2.2 falling to 1.1 by dawn; indoor dew-point margin is safe at 13.4F now. Tuesday is moderate dry, 79F and 18-23% RH with high solar, not a repeat of Monday's 88F/near-10% extreme."},"stress_windows":[{"kind":"vpd_high","start":"2026-05-11T20:05:00-06:00","end":"2026-05-12T03:30:00-06:00","severity":"medium","mitigation":"moderate mist thresholds engage 1.55-1.60 with 45-50s gaps; fog escalation high because fog is time-window blocked; sealed window capped at 180s"},{"kind":"cold","start":"2026-05-12T04:30:00-06:00","end":"2026-05-12T07:30:00-06:00","severity":"low","mitigation":"bias_cool +3.5 and bias_heat +0.5 only near predawn to avoid heater-to-vent oscillation without chasing unnecessary warmth"},{"kind":"vpd_high","start":"2026-05-12T09:30:00-06:00","end":"2026-05-12T19:30:00-06:00","severity":"medium","mitigation":"moderated dry-day posture: engage 1.35, gap 25s, fog escalation 0.40, short sealed windows, then evening unwind"}],"rationale":[{"parameter":"mister_engage_kpa","old_value":1.75,"new_value":1.55,"forecast_anchor":"current indoor VPD is 0.91 and outdoor VPD stays 1.9-2.2 kPa through midnight","expected_effect":"recover remaining VPD-high stress without using Monday's peak 1.05 kPa setting overnight"},{"parameter":"mister_pulse_gap_s","old_value":60.0,"new_value":45.0,"forecast_anchor":"dry evening air but no solar and safe 13.4F dew-point margin","expected_effect":"permit moderate VPD recovery while keeping dp_risk_hours near 0"},{"parameter":"fog_escalation_kpa","old_value":0.15,"new_value":0.90,"forecast_anchor":"fog is firmware-blocked overnight; high escalation prevents accidental early fog before morning dry ramp is confirmed","expected_effect":"avoid overnight over-humidification and VPD-low carryover"},{"parameter":"bias_cool","old_value":-2.0,"new_value":3.5,"forecast_anchor":"overnight cooling from 70F to 56F with possible pre-dawn heating; retrieved sunset plans favor +3 to +4 against heater/vent chatter","expected_effect":"keep cold_stress from vent oscillation under 1h overnight"},{"parameter":"mist_max_closed_vent_s","old_value":240.0,"new_value":180.0,"forecast_anchor":"lessons 95 and 89 warn not to extend sealed heat traps after hot-dry stress; dew safety is the overnight priority","expected_effect":"keep dew-point risk at 0h while allowing repeated short humidity recovery"},{"parameter":"mister_engage_kpa","old_value":1.55,"new_value":1.35,"forecast_anchor":"Tuesday 10:00-18:00 forecast VPD 1.58-2.80 kPa, RH 18-31%, solar 584-882 W/m2","expected_effect":"hold Tuesday VPD-high stress under 3h without the stronger Monday extreme posture"}]}Result: Window scorecard for the SUNRISE plan: planner_score 41.8 with 36.4% both-axis compliance, 50.2% temp compliance, and 45.8% VPD compliance. The forecast dry window was directionally right but understated peak solar (forecast 884 W/m² vs actual 1083 W/m²) while outdoor/indoor RH did not get as low as predicted (15% forecast vs ~44% indoor proxy). VPD-high and heat were co-bottlenecks: heat stress about 3.78h and VPD-high about 3.59h, so the expected effects of heat under 2h and VPD-high under 3h both missed. The 180s sealed-window cap and evening unwind were partially successful: VPD-low stayed near 1.07h, dew point safety held with 0 dp-risk hours and minimum margin 6.6F, and cost stayed low at about USD 0.60 over the window. Water use was high for the day but misting-only stayed within budget. Overall, the plan protected safety and avoided major overnight carryover, but the moderate dry-day posture was not strong enough under surprise 1083 W/m² solar and severe next-day-like heat. Score: 4/10
New finding: When forecast peak is only low-80s but live/actual solar exceeds 1000 W/m² and a 90F+ dry day follows, a moderate 1.30/20s/fog 0.30 posture may still miss both heat and VPD-high targets; preserve the early evening unwind, but start the next morning dry-ramp earlier and stronger while keeping sealed windows capped to protect dew point. → Added to Lessons Learned
Hypothesis
Testing: Time-gated dry-day ramp: start guarded while indoor VPD is low, use moderate peak fog/mist only during the confirmed dry solar window, then unwind before evening so VPD-low does not dominate overnight. Expected outcome: Keep Tuesday both-axis compliance above 65%, VPD-high stress under 3h, VPD-low stress under 2h, heat stress under 2h, dp_risk_hours at 0, and total cost below the 7-day average.
Conditions (structured)
82.0°F
15.0%
884.0 W/m²
18.0%
Cool humid dawn followed by clear dry solar ramp; forecast VPD peaks 3.17 kPa at 15-17:00, but recent bias shows forecast VPD/RH may overstate dryness, so aggressive misting is time-gated to live dry window.
Expected stress windows
guard dawn with high mist thresholds, 50s gap, fog escalation 0.70, and no preemptive aggressive mist until indoor VPD rises
moderate dry-day posture: engage 1.35 to 1.30, all 2.05 to 1.95, gap 20-25s, fog_escalation 0.30-0.35, short 180-240s sealed windows
bias_cool -1 during peak and do not extend mist_max_closed_vent_s beyond 180s when heat risk rises
early evening unwind to engage 1.75, all 2.35, 60s gaps, fog escalation 0.90, bias_cool +3.0
missed-cycle fallback for Wednesday severe 90F/RH 9-14%: stronger but still capped dry-day posture, fog_escalation 0.20, engage 1.15-1.25, short sealed windows
Parameter rationale
bring physical mist pulses online during the dry window and keep VPD-high stress under 3h without using Monday’s 1.05 extreme setting
speed VPD recovery during peak while evening unwind limits VPD-low under 2h
use fog assist for stubborn VPD without overshooting into long VPD-low overnight
vent/cool earlier during heat risk, keeping heat stress under 2h while avoiding sealed heat traps
preserve dew-point safety and prevent heat stress escalation
spend water on productive zones and keep mister water near or below budget
reduce missed VPD-high excursions while avoiding rapid overshoot cycles
Setpoints
Tuesday May 12
Primary crop-band changes:
Dawn guard: indoor VPD is low and dew-point margin is safe;
Morning ramp: outdoor RH forecast falls below 30% and solar
Peak solar dry window: forecast VPD exceeds 2.5 kPa with sol
Late-day dry air persists but solar collapses/clouds arrive;
Overnight reset: fog is outside firmware window and Monday s
Tactical tunable changes:
Dawn guard: indoor VPD is low and dew-point margin is safe;
Morning ramp: outdoor RH forecast falls below 30% and solar
Peak solar dry window: forecast VPD exceeds 2.5 kPa with sol
Late-day dry air persists but solar collapses/clouds arrive;
Overnight reset: fog is outside firmware window and Monday s
Wednesday May 13
Primary crop-band changes:
Missed-cycle fallback for Wednesday severe dry ramp: RH fall
Wednesday extreme fallback peak: forecast RH 9-16%, VPD abov
Wednesday evening recovery fallback: stop carrying severe pe
Tactical tunable changes:
Missed-cycle fallback for Wednesday severe dry ramp: RH fall
Wednesday extreme fallback peak: forecast RH 9-16%, VPD abov
Wednesday evening recovery fallback: stop carrying severe pe
Changed secondary parameters:
initial 3
initial 0.5
initial 5
initial 300000
initial 1
initial -2
initial 0.7
initial 1.2
initial 120
initial 45
initial 180
initial 120
initial 60
initial 60
initial 1200
initial 180
initial 90
initial 360
initial 90
initial 500
initial 600
initial 1
initial 1
initial 1
initial 1
initial 1
initial 1.8
initial 5
initial 5
initial 60
3 → 0
0.5 → 0
0.7 → 0.4
120 → 90
45 → 60
1200 → 900
180 → 240
360 → 300
90 → 60
1.8 → 1.6
0 → -1
0.4 → 0.3
90 → 60
900 → 600
240 → 180
300 → 240
60 → 45
1.6 → 1.5
-1 → 1.5
0.3 → 0.55
60 → 120
60 → 45
600 → 900
240 → 300
45 → 75
1.5 → 1.7
1.5 → 3
0 → 0.5
0.55 → 0.9
120 → 180
900 → 1200
300 → 360
75 → 90
1.7 → 1.8
3 → -1
0.5 → 0
0.9 → 0.25
180 → 60
45 → 60
1200 → 600
360 → 240
90 → 45
1.8 → 1.5
-1 → -2
0.25 → 0.2
240 → 180
-2 → 3
0 → 0.5
0.2 → 0.9
60 → 180
60 → 45
600 → 1200
180 → 360
45 → 90
1.5 → 1.8
Full secondary parameter dump
Value 3.
Value 0.5.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.7.
Value 1.2.
Value 120.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 1200.
Value 180.
Value 90.
Value 360.
Value 90.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 5.
Value 5.
Value 60.
Value 0.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.4.
Value 1.2.
Value 90.
Value 60.
Value 180.
Value 120.
Value 60.
Value 60.
Value 900.
Value 240.
Value 90.
Value 300.
Value 60.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.6.
Value 5.
Value 5.
Value 60.
Value -1.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.3.
Value 1.2.
Value 60.
Value 60.
Value 180.
Value 120.
Value 60.
Value 60.
Value 600.
Value 180.
Value 90.
Value 240.
Value 45.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.5.
Value 5.
Value 5.
Value 60.
Value 1.5.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.55.
Value 1.2.
Value 120.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 900.
Value 180.
Value 90.
Value 300.
Value 75.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.7.
Value 5.
Value 5.
Value 60.
Value 3.
Value 0.5.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.9.
Value 1.2.
Value 180.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 1200.
Value 180.
Value 90.
Value 360.
Value 90.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 5.
Value 5.
Value 60.
Value -1.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.25.
Value 1.2.
Value 60.
Value 60.
Value 180.
Value 120.
Value 60.
Value 60.
Value 600.
Value 180.
Value 90.
Value 240.
Value 45.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.5.
Value 5.
Value 5.
Value 60.
Value -2.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.2.
Value 1.2.
Value 60.
Value 60.
Value 180.
Value 120.
Value 60.
Value 60.
Value 600.
Value 180.
Value 90.
Value 180.
Value 45.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.5.
Value 5.
Value 5.
Value 60.
Value 3.
Value 0.5.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.9.
Value 1.2.
Value 180.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 1200.
Value 180.
Value 90.
Value 360.
Value 90.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 5.
Value 5.
Value 60.
🌆 Evening Cycle (8:10 PM) — iris-20260512-2007
Daily Summary So Far
not validated yet
none recorded
Reflection
Daily Summary So Far — this cycle will be validated at the next planning cycle.
Hypothesis
Testing: Recovery-first overnight plus early severe-day ramp: suppress overnight humidity overshoot, then start strong VPD support before the 09:00-12:00 climb without extending sealed heat traps. Expected outcome: Overnight: dp_risk_hours 0, cold_stress under 1h, no heater/vent chatter. Wednesday: reduce VPD-high stress versus today despite harsher forecast, accept structural heat stress if 92F verifies, and unwind by 19:30 to keep VPD-low carryover under 2h.
Conditions (structured)
92.0°F
7.0%
887.0 W/m²
45.0%
Clear cool night to 50F, then severe Wednesday hot-dry ramp: forecast RH 7-15%, VPD 3.0-4.7 kPa from noon through early evening, and peak solar near 887 W/m2. Forecast VPD has been biased high, but today’s actual solar exceeded forecast, so tomorrow uses stronger early support without extending sealed heat traps.
Expected stress windows
suppress overnight mist/fog with engage 1.75-1.80, all 2.35-2.40, 60s gaps, fog escalation 0.85, and 180s sealed cap
bias_cool +3 overnight and +2.5 pre-dawn, bias_heat +0.5, gas staging unchanged; avoid heater-to-vent chatter rather than chasing a high temp_low
begin morning ramp at 09:00 with engage 1.25 and 25s gap, then peak engage 1.10, all 1.75, 15s gap, fog escalation 0.15, vpd weight 3.0
bias_cool -2 at peak, d_cool_stage_2 3, summer vent enabled, dwell gate on but THERMAL_RELIEF exempt; keep mist_max_closed_vent_s 180 so humidity attempts do not become heat traps
early unwind to engage 1.80, all 2.40, 60s gap, fog escalation 0.90, vpd_hysteresis 0.50, bias_cool +3
Parameter rationale
bring physical mist support online early enough to reduce VPD-high hours versus today’s 7.1h while unwinding to 1.80 by evening
escalate faster during the true severe window without using all-zone overnight
speed VPD recovery during peak while returning to 60s at 19:30 to limit VPD-low carryover
reduce over-humidification risk while relying on shorter gaps and fog for peak recovery
use fog for stubborn VPD during ventilation and reduce VPD-high stress without extending sealed time
pre-cool and ventilate earlier during peak, accepting structural heat but avoiding unnecessary sealed heat trapping
avoid unnecessary heating cost while providing a small buffer against cold stress
reduce missed high-VPD excursions during the ramp, then widen to 0.50 after sunset
enter recovery sooner without excessive mode churn
allow repeated bounded recovery cycles without extending any individual heat trap
spend water on driest productive zones while staying within 500 gal/day mister budget
Setpoints
Tuesday May 12
Primary crop-band changes:
evening_and_midnight_recovery: suppress mist/fog after today
Tactical tunable changes:
evening_and_midnight_recovery: suppress mist/fog after today
Wednesday May 13
Primary crop-band changes:
pre_dawn_guarded_handoff: still cool, but start easing towar
morning_dry_ramp: VPD forecast rises rapidly after 09:00; be
peak_severe_hot_dry: true 90F+/single-digit-RH posture; aggr
evening_unwind: prevent peak-day fog/mist aggressiveness fro
Tactical tunable changes:
pre_dawn_guarded_handoff: still cool, but start easing towar
morning_dry_ramp: VPD forecast rises rapidly after 09:00; be
peak_severe_hot_dry: true 90F+/single-digit-RH posture; aggr
evening_unwind: prevent peak-day fog/mist aggressiveness fro
Changed secondary parameters:
initial 3
initial 0.5
initial 5
initial 300000
initial 1
initial -2
initial 0.85
initial 1.2
initial 120
initial 45
initial 180
initial 120
initial 60
initial 60
initial 900
initial 180
initial 90
initial 300
initial 90
initial 500
initial 600
initial 1
initial 1
initial 1
initial 1
initial 1
initial 1.8
initial 5
initial 5
initial 60
3 → 2.5
0.85 → 0.6
90 → 75
1.8 → 1.7
2.5 → -1
0.5 → 0
0.6 → 0.25
120 → 90
900 → 600
300 → 240
75 → 60
1.7 → 1.5
60 → 45
-1 → -2
0.25 → 0.15
90 → 60
240 → 120
60 → 45
-2 → 3
0 → 0.5
0.15 → 0.9
60 → 120
600 → 900
120 → 300
45 → 90
1.5 → 1.8
45 → 60
Full secondary parameter dump
Value 3.
Value 0.5.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.85.
Value 1.2.
Value 120.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 900.
Value 180.
Value 90.
Value 300.
Value 90.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 5.
Value 5.
Value 60.
Value 2.5.
Value 0.5.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.6.
Value 1.2.
Value 120.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 900.
Value 180.
Value 90.
Value 300.
Value 75.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.7.
Value 5.
Value 5.
Value 60.
Value -1.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.25.
Value 1.2.
Value 90.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 600.
Value 180.
Value 90.
Value 240.
Value 60.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.5.
Value 5.
Value 5.
Value 45.
Value -2.
Value 0.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.15.
Value 1.2.
Value 60.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 600.
Value 180.
Value 90.
Value 120.
Value 45.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.5.
Value 5.
Value 5.
Value 45.
Value 3.
Value 0.5.
Value 5.
Value 300000.
Value 1.
Value -2.
Value 0.9.
Value 1.2.
Value 120.
Value 45.
Value 180.
Value 120.
Value 60.
Value 60.
Value 900.
Value 180.
Value 90.
Value 300.
Value 90.
Value 500.
Value 600.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 5.
Value 5.
Value 60.
Daily Summary So Far
Climate
61.7–83.3°F; avg 70.0°F
0.40–1.75 kPa; avg 0.89 kPa
44.3–80.4%
Stress Hours
- Heat stress (>85°F): 0.0h
- VPD stress (>2.0 kPa): 0.0h
- Cold stress (<55°F): 0.0h
Economics
USD 1.85
USD 0.96
USD 0.000
USD 2.81
Equipment Runtimes
Primary exhaust runtime.
Secondary exhaust runtime.
Intake vent runtime.
Fogger runtime.
Electric heater runtime.
Gas heater runtime.
Supplemental lighting runtime.
South mister runtime.
West mister runtime.
Center mister runtime.
Water
- Total: 0 gal
- Mister: 259 gal
Crop Health (Gemini Vision)
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Foliage appears green and healthy, no obvious signs of stress.
Roots appear healthy and extensive, but difficult to assess foliage health in IR light.
Seedlings appear healthy and are establishing well on the shelf.
Seedlings are growing steadily, no visible signs of stress.
Seedlings are growing steadily.
Hourly Pattern
RH 56.1%.
RH 54.1%.
RH 53.9%.
RH 55.7%.
RH 63.6%.
RH 60.1%.
RH 60.6%.
RH 59.7%.
RH 62.1%.
RH 60.9%.
RH 62.9%.
RH 69.4%.
RH 75.6%.
RH 76.9%.
RH 74.0%.
RH 76.4%.
RH 75.7%.
RH 69.4%.
RH 67.4%.
RH 64.3%.
RH 60.8%.
RH 59.8%.
RH 60.0%.
RH 62.0%.
7-Day Stress Context
Cold stress 0.0h.
Cold stress 0.0h.
Cold stress 0.0h.
Cold stress 0.0h.
Cold stress 0.0h.
Cold stress 0.0h.
Cold stress 0.0h.