Releases ·

Roastwarden 0.9.0

Lean home, deep roastery (phase 3). A home install can hide what it doesn't use: six optional modules (reports, cupping, tuning, agents, costs, labels) behind three presets, and a new install asks once what kind of roasting it is for. Weights show in grams or ounces per browser. A roastery can record packed bags, whole bean or ground, straight from a label print, and trace any bag back to its green lot. Drum roasters get two seed profiles, an agent may ask to switch a roaster's control on (the owner approves), each roast keeps its own channels, and Matrix rooms of the newest room version are accepted. The owner's install looks as before: every module stays on.

Added

  • Modules and a first-run page (ROADMAP Next 49, Modules and first run): six optional parts (reports, cupping, tuning, agents, costs, labels) switch on and off in Settings → Modules, with presets Home, Enthusiast and Roastery; an off module leaves the nav, menus and buttons (its API stays). An install from before keeps everything on. A new, empty install opens /welcome once: the kind of roasting, temperature and weight units, time zone. GET /api/about and roast status report the modules; roast modules changes them. Hermes task 40.
  • Weight units (Next 50): metric (g, kg) or US (oz, lb) per browser, Settings → This browser; every weight field takes "8 oz", "2 lb" or "250 g". Labels still print both.
  • Packed bags, ground coffee and traceability (Next 51, Roasted coffee, PDF reports): a packed move on a roasted lot (bags of a size, whole bean or ground with a grind), from Beans → Packed…, roast roasted pack <roast> 3x250g --ground espresso, or a label print run ("Take 3 × 250 g off this roast"). Ground bags' labels say so and are best within 14 days of packing (best_until_days_ground). roast trace and the Traceability report follow a roast back to its green lot, or a coffee to every bag. Migration 050. Hermes task 41.
  • Drum seed profiles and profiles by roaster kind (Next 52, Profiles): a profile can name the kind of roaster it is for (migration 051); two drum seeds (light filter, medium omni); the library lists the selected roaster's kind first.
  • An admin token may ask to switch a roaster's control on (Next 48, owner 2026-10-31): roast roaster control <id> manual, held for the owner's approval; turning it off is at once.
  • Each roast keeps its channel list (Next 48, migration 049), so history, reports and Artisan export stay right after a roaster's probes change.
  • The Modbus register map is editable on the roaster's page (Next 48).
  • The interface standard's three tiers (Logger, Manual, Full) are in Wire formats.

Changed

  • TC4 extra columns that are temperatures follow the device's unit (°F converted); a column may override it (exhaust:F).
  • The skill's examples say <roaster>, not the owner's ESP32 (Next 53).

Fixed

  • Matrix rooms without a server part (Next 54): since Matrix spec v1.16 a room version 12 id is ! and a hash, with no :server; Settings → Notifications refused it.
  • A roast that would not start under load: creating a roast could fail with "database is locked" when telemetry was written at the same moment; it now waits its turn.