Go to file
type-two dc1591d0e6 [render] scram latches with hysteresis, mirroring sim (fixes a ~4s visual lie)
SIM landed heat this round, so I read their implementation: `scrammed` lives
on their internal Ent, never on EntityState; they deliberately clear `jammed`
on scram ("reported by its own event, not as a flow jam"); and Renderer only
ever receives snapshots, never events. So the latched-off state is not
snapshot-visible at all.

A plain `heat >= 1` test (what I shipped earlier today) therefore un-scrams the
moment a machine starts cooling. With HEAT_RESTART=0.5 and dissipation
0.004/tick, the sim holds it dead for ~125 ticks (~4s) while heat falls 1.0 ->
0.5 — the renderer showed it alive, glowing and animating, that whole window.

Now latches at 1.0 and releases below SCRAM_RELEASE=0.5, mirroring them.
Verified: 1.0 dead -> 0.7 STAYS dead -> 0.3 releases and recovers.

This duplicates SIM's constant, which is the wrong place for it to live —
EntityState.scrammed is filed as a contract request with the evidence.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 17:47:15 +10:00
docs Baseline: GLYTCH prototype, FKTRY lore codex, scaffold + 5-lane orchestration docs 2026-07-17 15:51:12 +10:00
fktry [render] scram latches with hysteresis, mirroring sim (fixes a ~4s visual lie) 2026-07-17 17:47:15 +10:00
.gitignore Baseline: GLYTCH prototype, FKTRY lore codex, scaffold + 5-lane orchestration docs 2026-07-17 15:51:12 +10:00
index.html Baseline: GLYTCH prototype, FKTRY lore codex, scaffold + 5-lane orchestration docs 2026-07-17 15:51:12 +10:00
package-lock.json [orchestrator] round 1 review + contracts v2 + round 2 orders 2026-07-17 16:42:58 +10:00
package.json [orchestrator] round 1 review + contracts v2 + round 2 orders 2026-07-17 16:42:58 +10:00