Ground Bean Bro in displayed temperatures, stream replies, and add activity calendar
Test and deploy / test-and-deploy (push) Successful in 1m19s

This commit is contained in:
snowspeeder committed 2026-09-07 06:38:16 -04:00
1 parent a72aec9f86
commit d96ed22de1
16 files changed
+551 -484

No files matched your search

+11 -3
View File
@@ -4,8 +4,7 @@ The Planner now has a compact header, editable plan name, batch summary, annotat
## Plan → roast → taste → experiment
- **Today** lists tasting reminders after three days, low green inventory below 500 g, unattached roasts, and experiments awaiting an outcome. These are disclosed reminder thresholds, not prescriptions about ideal rest or batch size.
- **Coffee history** groups by linked green inventory lot, otherwise by the entered coffee name. Unnamed plans stay separate. It shows plan variations, favorite batches, quick tasting feedback, detailed cupping links, and two-batch measured-curve comparisons. Histories are searchable and paginated; waveform data loads only for selected comparisons.
- **Calendar** replaces Today and Coffee history with monthly activity and direct links to roast, cupping, brew and plan records. The matching coffee history remains available to Bean Bro as account-scoped evidence.
- **Experiments** capture a question, one change and an expected cup result. Quick tasting records balance, sweetness, favorites, and whether the experiment improved the cup. Favorites reflect the user's preference, not model grades.
- **Ask Bean Bro** saves its recent conversation with each plan, uses only that account's matching coffee history, and returns reviewable before/after proposals. Applying or creating a variation is explicit; stale proposals are rejected. Undo and plan history support recovery. Coffee facts and machine settings are outside the assistant's patch allowlist.
- **Roast day** provides a timer and manual milestone recording in Fahrenheit. Records persist in the account-scoped local draft offline. When online, Finish & record tasting creates a finished roast once for that timer session. Manual records export as JSON and are labeled as sparse observations, not continuous telemetry. Importing an Artisan file extracts its measurements, opens the uploaded roast, and can suggest a name-based plan match for confirmation.
@@ -17,4 +16,13 @@ Admin → Bean Bro selects the configured provider/model for chat, prefill and f
## Validation
API regressions cover ownership, revision restore, scoped history/evidence, proposal allowlists, model connection permissions, idempotent manual completion, captured targets and exports. Chromium regressions cover plan switching, cloning, URL persistence, real print PDFs, chat persistence and reviewable edits, mobile tabs and field widths, offline reload with roast events, manual completion and coffee comparisons. Desktop/mobile screenshots were inspected and used to correct the layout.
API regressions cover ownership, revision restore, scoped history/evidence, proposal allowlists, model connection permissions, idempotent manual completion, captured targets and exports. Chromium regressions cover plan switching, cloning, URL persistence, real print PDFs, chat persistence and reviewable edits, mobile tabs and field widths, offline reload with roast events, manual completion, streamed replies and calendar event links. Desktop/mobile screenshots were inspected and used to correct the layout.
## Calendar and streamed replies
The logged-in home page is now an activity calendar. Today and Coffee history were removed; old Coffee history URLs redirect home. The month view and mobile activity log link to owned roasts, cupping sessions, brews, and created plans. Event dates use roast/ritual/brew timestamps where available, otherwise the record creation date is labeled “Date logged.” Month filtering respects the browser timezone. Calendar data contains lightweight event metadata, not roast curves.
Bean Bro receives the same computed milestones used by the chart/report, with Fahrenheit values and explicit illustrative-versus-entered provenance. Actual measurements and preheat setpoint are separate. Named timing components explain that processing adjustments affect development.
Chat requests accept text/event-stream while retaining the JSON response for other clients. Only decoded reply text streams; suggestions are validated and shown after completion. Heartbeats prevent idle buffering, disconnected clients cancel generation, and interrupted responses remain visible with retry guidance.