Skip to content

Make Sear full-feed gate relative to ignition temp#23

Merged
CamSoper merged 1 commit into
mainfrom
claude/clever-albattani-jj7nb2
Jun 20, 2026
Merged

Make Sear full-feed gate relative to ignition temp#23
CamSoper merged 1 commit into
mainfrom
claude/clever-albattani-jj7nb2

Conversation

@CamSoper

Copy link
Copy Markdown
Owner

Problem

In Sear mode the auger only switched from the gentle establishing feed to a continuous full feed once the grill crossed an absolute 180°F (_minSetPoint).

But FireMinder declares the fire "started" and turns the igniter off at ~150°F. So from 150→180°F the fire has to climb 30°F on the slow Smoke-style trickle with no igniter assist. On a cold or windy day the firepot settles lower than that — the grill stalls in the 150–180°F band and never reaches full feed. (That band is also unmonitored by the recovery watchdog, which in Sear only arms above ~340°F, so a fire that dies there isn't relit.)

Fix

Replace the absolute gate with a margin relative to where the fire actually caught:

  • FireMinder now exposes InitialIgnitionTemp — the grill temp at the first ignition, captured once and never raised by recovery relights (the existing _ignitionTemp gets bumped to the fire-check temp during a recovery, so it can't be used directly without re-introducing a stall band after recovery).
  • Smoker.Sear() gates full feed at InitialIgnitionTemp + _searEstablishMargin (default 25°F, tunable) instead of the fixed 180°F.

This keeps a sensible "establish" margin above the catch temp while scaling with conditions, so cold/windy starts reach full feed instead of stalling. The 150°F lit-detection itself is unchanged (acts as a safety floor for the anchor).

_searEstablishMargin is the single knob to turn down if the worst windy days still stall before full feed.

Tests

Added FireMinder tests covering:

  • the default 150°F floor before the fire catches,
  • cold-start capture of the catch temp, and
  • that a recovery relight does not move the anchor.

All 71 tests pass; clean build.

🤖 Generated with Claude Code

https://claude.ai/code/session_01APzBbDz9nDWgpiCi1A48vw


Generated by Claude Code

In Sear mode the auger only switched from the gentle establishing feed to a
continuous full feed once the grill crossed an absolute 180F (_minSetPoint).
On cold or windy days the firepot settles lower, so the grill could stall in
the 150-180F band — fed only the slow Smoke-style trickle with the igniter
already off — and never reach full feed.

Replace the absolute gate with a margin above where the fire actually caught:
FireMinder now exposes InitialIgnitionTemp (the grill temp at the first
ignition, captured once and never raised by recovery relights), and Sear gates
full feed at InitialIgnitionTemp + _searEstablishMargin (default 25F, tunable).

Add FireMinder tests covering the default floor, cold-start capture, and that a
recovery relight does not move the anchor.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01APzBbDz9nDWgpiCi1A48vw
@pulumi

pulumi Bot commented Jun 19, 2026

Copy link
Copy Markdown

🚀 The Update (preview) for CamSoper-org/inferno-deploy/main (at 0f39de4) was successful.

✨ Neo Code Review

Standard API redeployment triggered by application logic changes to fire ignition tracking. ✅ Low Risk

Routine code deployment. The publish-api and restart-api commands are being replaced because their triggers hash changed — this is the normal mechanism for detecting that the application source has changed and needs to be redeployed. The new code adds the _initialIgnitionTemp anchor and the relative Sear establish gate (InitialIgnitionTemp + 25°F) to FireMinder/Smoker.

No infrastructure resources are affected; this is a pure application update.

Resource Changes

    Name         Type                    Operation
+-  publish-api  command:local:Command   replaced
+-  restart-api  command:remote:Command  replaced

@CamSoper CamSoper marked this pull request as ready for review June 20, 2026 00:25
@CamSoper CamSoper merged commit cb2190d into main Jun 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants