rimlike/scenes/ai
megaproxy 708080a022 Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked
Three alert signals had no UI subscribers — gameplay failures vanished
silently. Now all three feed AlertsLog via translator handlers that
forward to the generic alert_added sink.

- EventBus: new no_stockpile_accepts(item_type, tile) and
  bill_blocked(recipe_label, reason, focus_tile) signals.
- HaulingProvider: per-item-type 30s cooldown; emits when find_best_for
  scan finishes with viable items but no destinations.
- CraftingProvider: per-(workbench, reason) 60s cooldown; emits at the
  skill_too_low and missing_ingredient continue sites. no_workbench
  reason declared for future use but not emitted (the iteration shape
  has no natural site for it).
- AlertsLog: connect + disconnect for all three signals using the same
  has_signal-guarded pattern; translator handlers convert to localized
  alert_added(severity, text, focus_tile).
- AlertsLog catch-up: room_too_large emits during World init, before
  this CanvasLayer mounts. _catch_up_room_too_large() in _ready scans
  World.rooms for rooms > ROOM_AUTOROOF_CAP and replays them, so the
  pre-built cabin's 24-tile-too-large warning lands in the log on every
  boot. Hauling/bill signals fire at runtime so they need no catch-up.

Verified runtime: cabin warning shows up in AlertsLog with severity
'warn' and focus_tile (45, 24) — the cabin top-left.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 13:16:25 +01:00
..
bill.gd Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
bill.gd.uid Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
chop_provider.gd Phase 4 — Trees, Rocks, Items, Stockpiles, Hauling 2026-05-10 21:32:39 +01:00
chop_provider.gd.uid Phase 4 — Trees, Rocks, Items, Stockpiles, Hauling 2026-05-10 21:32:39 +01:00
cleaning_provider.gd Phase 13: Rooms + Auto-roof + Beauty + Dirtiness + Cleaning 2026-05-11 17:19:23 +01:00
cleaning_provider.gd.uid Phase 13: Rooms + Auto-roof + Beauty + Dirtiness + Cleaning 2026-05-11 17:19:23 +01:00
construction_provider.gd Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
construction_provider.gd.uid Phase 5 — Designation, BuildJob, Wall/Floor/Door, Crate; 3/4 perspective pivot 2026-05-10 22:11:40 +01:00
crafting_provider.gd Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked 2026-05-12 13:16:25 +01:00
crafting_provider.gd.uid Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
decision.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
decision.gd.uid Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
doctor_provider.gd Phase 9+10: Status/Doctor/Medical bed + Wolves/WolfSpawner 2026-05-11 16:11:36 +01:00
doctor_provider.gd.uid Phase 9+10: Status/Doctor/Medical bed + Wolves/WolfSpawner 2026-05-11 16:11:36 +01:00
eat_provider.gd Phase 7 — Crops, hunger, eating, cooking chain (grain → flour → bread) 2026-05-11 11:38:47 +01:00
eat_provider.gd.uid Phase 7 — Crops, hunger, eating, cooking chain (grain → flour → bread) 2026-05-11 11:38:47 +01:00
hauling_provider.gd Alerts: wire room_too_large, no_stockpile_accepts, bill_blocked 2026-05-12 13:16:25 +01:00
hauling_provider.gd.uid Phase 4 — Trees, Rocks, Items, Stockpiles, Hauling 2026-05-10 21:32:39 +01:00
job.gd Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
job.gd.uid Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
job_runner.gd Phase 14: Death + Corpses + Burial + Cremation 2026-05-11 18:48:15 +01:00
job_runner.gd.uid Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
mine_provider.gd Phase 4 — Trees, Rocks, Items, Stockpiles, Hauling 2026-05-10 21:32:39 +01:00
mine_provider.gd.uid Phase 4 — Trees, Rocks, Items, Stockpiles, Hauling 2026-05-10 21:32:39 +01:00
plant_provider.gd Phase 7 — Crops, hunger, eating, cooking chain (grain → flour → bread) 2026-05-11 11:38:47 +01:00
plant_provider.gd.uid Phase 7 — Crops, hunger, eating, cooking chain (grain → flour → bread) 2026-05-11 11:38:47 +01:00
quality.gd Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
quality.gd.uid Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
recipe.gd Phase 14: Death + Corpses + Burial + Cremation 2026-05-11 18:48:15 +01:00
recipe.gd.uid Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
recipe_catalog.gd Phase 14: Death + Corpses + Burial + Cremation 2026-05-11 18:48:15 +01:00
recipe_catalog.gd.uid Phase 6 — Recipe / Bill / Workbench / CraftingProvider / Quality / Skills 2026-05-10 23:52:41 +01:00
rest_provider.gd Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
rest_provider.gd.uid Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
sleep_provider.gd Phase 8 — Beds, sleep need, thoughts, mood, Sulking soft-break 2026-05-11 13:21:15 +01:00
sleep_provider.gd.uid Phase 8 — Beds, sleep need, thoughts, mood, Sulking soft-break 2026-05-11 13:21:15 +01:00
status.gd Phase 12: Seasons + Weather (rolls, rain, storm, wet/cold) 2026-05-11 16:39:34 +01:00
status.gd.uid Phase 9+10: Status/Doctor/Medical bed + Wolves/WolfSpawner 2026-05-11 16:11:36 +01:00
status_catalog.gd Phase 12: Seasons + Weather (rolls, rain, storm, wet/cold) 2026-05-11 16:39:34 +01:00
status_catalog.gd.uid Phase 9+10: Status/Doctor/Medical bed + Wolves/WolfSpawner 2026-05-11 16:11:36 +01:00
thought.gd Phase 8 — Beds, sleep need, thoughts, mood, Sulking soft-break 2026-05-11 13:21:15 +01:00
thought.gd.uid Phase 8 — Beds, sleep need, thoughts, mood, Sulking soft-break 2026-05-11 13:21:15 +01:00
thought_catalog.gd Phase 14: Death + Corpses + Burial + Cremation 2026-05-11 18:48:15 +01:00
thought_catalog.gd.uid Phase 8 — Beds, sleep need, thoughts, mood, Sulking soft-break 2026-05-11 13:21:15 +01:00
toil.gd Phase 14: Death + Corpses + Burial + Cremation 2026-05-11 18:48:15 +01:00
toil.gd.uid Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
wolf_spawner.gd Phase 17: Touch UX (PawnDetail+BuildDrawer+WorkMatrix+AlertsLog+Settings) 2026-05-11 19:45:35 +01:00
wolf_spawner.gd.uid Phase 9+10: Status/Doctor/Medical bed + Wolves/WolfSpawner 2026-05-11 16:11:36 +01:00
work_provider.gd Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00
work_provider.gd.uid Phase 3 — Decision pipeline + JobRunner + RestProvider + save round-trip 2026-05-10 21:05:50 +01:00