Skip to content

Releases: hessius/MeticAI

MeticAI v2.3.0

25 Mar 13:57
c7ae45f

Choose a tag to compare

MeticAI v2.3.0 — Brewing Coach & Guided Experience 🎉

What's New

Espresso Compass: After pulling a shot, tell MeticAI how it tasted (sour/bitter, weak/strong) and get suggestions for your next attempt — based on Barista Hustle's Espresso Compass, adapted to Meticulous.

🎛️ Tweak variables before brewing: Adjust dose, temperature, and all other variables on the fly without changing the saved profile.

🔍 Find Similar profiles: Browse your catalogue and discover related profiles based on tag matching.

📝 Actionable shot analysis: Analysis now gives you specific, selectable recommendations you can apply directly to your profile.

🖼️ Profile images: Download images and better image generation.

🧹 Catalogue edit mode: Cleaner default view. Tap Edit to export, rename, or bulk-delete profiles.

71% smaller initial load: App loads much faster thanks to code-splitting.

Accessibility improvements: Keyboard navigation, screen reader support, and reduced-motion throughout.

🐛 Plus a bunch of bug fixes (pour-over persistence, preheat, run shot improvements, mobile layout, etc.)


Installation

docker pull ghcr.io/hessius/meticai:latest

Or upgrade:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/update.sh | bash

MeticAI v2.3.0-beta.2

25 Mar 13:19

Choose a tag to compare

MeticAI v2.3.0-beta.2 Pre-release
Pre-release

MeticAI v2.3.0-beta.2

Highlights

  • fix(preheat): Don't load profile before preheat — prevents machine auto-starting extraction when temperature is reached
  • fix: Preheat-only stays on Run/Schedule page (no erroneous navigation to live view)
  • fix: Control center shows newly selected profile immediately (not stale profile)

What's Changed

  • chore(release): bump version to 2.3.0-beta.2
  • fix(preheat): don't load profile before preheat to prevent auto-start
  • fix: preheat-only navigation and stale profile in control center
  • fix(docker): bump s6-overlay to 3.2.2.0 (3.2.0.x releases return 404)
  • fix(runShot): save-as-new shows correct name in live view and saves to catalogue
  • fix(liveView): remove Power line from live shot chart
  • fix: scroll to top on all intra-component view transitions
  • feat: profile image improvements — download, auto-scroll, no-text prompt
  • fix(variables): filter emoji info vars and exempt base vars from unused warning
  • fix(runShot): improve variable adjust panel and fix preheat subtitle
  • fix(profiles): move export/delete buttons to edit mode in catalogue
  • docs: update v2.3.0 testing checklist with accessibility and pour-over results
  • fix(pour-over): add doseGrams and brewRatio to Pydantic preferences model
  • fix(a11y): add aria-labels to back buttons and chart containers
  • fix(ui): improve recommendation dialog layout on mobile
  • fix(runShot): variable panel reliability, i18n, save-as-new toggle, preheat nav
  • fix(profiles): clean up catalogue UI with image cache and profile thumbnails
  • fix: disable watchtower in dev overlay to prevent image replacement
  • fix: pre-select profile during preheat phase (#281)
  • docs: update Continuity auto-generated sections
  • fix: show variable adjust panel when navigating with initial profile
  • feat: bulk delete profiles from machine
  • fix: persist doseGrams and brewRatio in pour-over preferences
  • feat: ephemeral profile loading + fix variable panel bug (#281)
  • feat(recommendations): replace AI with structural profile comparison
  • feat(analysis): support stage exit trigger and limit edits via recommendations
  • fix(ui): use mt-4 for shot annotation card spacing
  • fix(i18n): replace 50+ hardcoded error strings with t() calls
  • feat(pour-over): persist coffee weight and brew ratio across sessions
  • fix: cross-cutting improvements + accessibility tests

Docker

docker pull ghcr.io/hessius/meticai:v2.3.0-beta.2
docker pull ghcr.io/hessius/meticai:beta

MeticAI v2.3.0-beta.1

21 Mar 16:48

Choose a tag to compare

MeticAI v2.3.0-beta.1 Pre-release
Pre-release

MeticAI v2.3.0-beta.1 — Brewing Coach & Guided Experience

🚀 New Features

Espresso Compass (#261)

Interactive 2D taste input (sour/bitter, weak/strong) with descriptor selection. After pulling a shot, tell MeticAI how it tasted and get AI-powered recommendations for your next attempt.

Temporary Variable Adjustments (#281)

Tweak profile variables (dose, temperature, pressure, flow targets) before running a shot — without saving changes to the profile. Run-without-saving support plus "Save as New" option for keepers.

Profile Recommendations (#95)

AI recommends profiles based on tag similarity scoring. "Find Similar" overlay in the profile catalogue helps you discover related profiles.

Analysis-to-Edit Pipeline (#258)

Shot analysis now generates structured, actionable recommendations. Select which suggestions to apply — edits are made directly to the profile.

Profile Catalogue Edit Mode

Export, rename, and delete buttons are now behind an Edit toggle — cleaner default view, full control when you need it. Bulk delete support included.

Profile Image Improvements

Download profile images, auto-scroll gallery, and improved prompt generation.

♿ Accessibility (#186)

  • Landmarks, skip navigation, and live regions throughout the app
  • All icon-only buttons have descriptive aria-labels
  • Charts have role="img" with descriptive labels
  • prefers-reduced-motion support across all animations
  • 25+ accessibility i18n keys across all 6 locales

⚡ Performance

  • Code-splitting: 13 views lazy-loaded (main bundle 1,807 KB → 516 KB, 71% reduction)
  • Recharts and framer-motion in separate async chunks
  • Granular error boundaries on all lazy-loaded views

🐛 Bug Fixes

  • Variable adjust panel: reliability improvements, correct grouping (base vs. custom), unused variable warnings, emoji info variables filtered out
  • Pour-over: dose and brew ratio now persist across sessions
  • Preheat: subtitle no longer shows when preheat is disabled; profile pre-selected during preheat phase
  • Live view: removed Power line from chart (not useful for espresso)
  • Recommendation dialog: improved mobile layout
  • Profile catalogue: image caching, thumbnail improvements
  • Scroll-to-top on all intra-component view transitions
  • 50+ hardcoded English error strings replaced with i18n t() calls

📦 Dependencies

  • Vite 8.0.0 (Rolldown-based builds)
  • React 19.2.4, framer-motion 12.37.0, tailwindcss 4.2.1
  • 31 dependency bumps total (Python + NPM)

📊 Stats

  • 105 files changed, 15,336 insertions, 3,743 deletions
  • 6 locales fully updated (en, de, es, fr, it, sv)
  • 0 lint errors, all tests passing

Installation (Beta Channel)

Docker (beta tag):

docker pull ghcr.io/hessius/meticai:beta

Pin to this exact version:

docker pull ghcr.io/hessius/meticai:2.3.0-beta.1

⚠️ This is a pre-release. The latest tag is unchanged — stable users are not affected.


Built from commit: 1a57c72

MeticAI v2.2.2

16 Mar 22:17
5f3d21b

Choose a tag to compare

MeticAI v2.2.2

What's Changed

  • wording re img model
  • fix: resolve model name at call time, handle empty env, add tests
  • fix: update Gemini model from deprecated gemini-2.0-flash to gemini-2.5-flash

Installation

Quick Install:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.sh | bash

Docker:

docker pull ghcr.io/hessius/meticai:v2.2.2

Upgrading from v1.x:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/migrate-to-unified.sh | bash

Built from commit: 5f3d21b

MeticAI v2.2.1

13 Mar 09:42
f581b58

Choose a tag to compare

MeticAI v2.2.1

What's Changed

  • fix(hotfix): recipe mode crash from variable shadowing translation function

Installation

Quick Install:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.sh | bash

Docker:

docker pull ghcr.io/hessius/meticai:v2.2.1

Upgrading from v1.x:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/migrate-to-unified.sh | bash

Built from commit: f581b58

MeticAI v2.2.0

12 Mar 22:46
c256fe2

Choose a tag to compare

MeticAI v2.2.0

🚀 What's New

Profile Management

  • Full profile catalogue with machine sync and auto-sync option (#182, #192)
  • Edit profiles directly in the app (#257)
  • Add markdown notes to any profile (#225)

Shot Tracking

  • Star ratings and comments on every shot (#179)
  • New Shot Analysis view for reviewing your history (#259)

Smarter Setup

  • Auto-detect your Meticulous via mDNS inside the UI (#216)
  • AI description controls — choose when Gemini generates profile descriptions (#234)

Under the Hood

  • MachineService abstraction for cleaner machine communication (#252)
  • Lazy-load canvas-confetti — remove ~40 kB from main bundle (#188)
  • 15 dependency upgrades

Installation

Quick Install:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.sh | bash

Docker:

docker pull ghcr.io/hessius/meticai:v2.2.0

macOS:
Download MeticAI.dmg

Upgrading from v1.x:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/migrate-to-unified.sh | bash

MeticAI v2.1.0 — Pour-Over Mode, AI-Free Operation & Faster Profiles

10 Mar 11:34
3f7d75e

Choose a tag to compare

MeticAI v2.1.0 — Pour-Over Mode, AI-Free Operation & 95% Faster Profiles

Continuing the biggest MeticAI release yet. v2.1.0 brings full pour-over brewing support with Meticulous machine integration, the ability to run entirely without AI, dramatically faster profile generation, and a beta testing program — plus localization, developer tooling, and dozens of quality-of-life improvements.


🎯 Marquee Features

☕ Pour-Over Mode with Machine Integration

A complete pour-over brewing experience with three distinct modes:

  • Free Mode — Manual timer and scale tracking with flow rate display, perfect for any technique
  • Ratio Mode — Set your coffee-to-water ratio and let MeticAI guide your pours with real-time weight targets, bloom tracking, and auto-tare
  • Recipe Mode — Follow famous pour-over recipes step-by-step (Hoffmann V2, Tetsu Kasuya 4:6, Scott Rao V60, Lance Hedrick Single Pour, and more) with precise timing and weight guidance

All three modes integrate directly with the Meticulous hardware — MeticAI creates a temporary profile, loads it onto your machine, monitors the shot lifecycle (idle → preparing → ready → brewing → drawdown → purging → done), and cleans up automatically. Drawdown timing continues after the shot ends with an on-chart annotation.

🚀 Up to 95% Faster Profile Generation

A new distilled knowledge mode (now the default) reduces prompt tokens by 61%, cutting generation time dramatically. Combined with the new OEPF validation pipeline with automatic retry and real-time SSE progress tracking (5-phase segmented progress bar with elapsed time), profile creation is faster and more reliable than ever.

🔓 AI-Free Operation

Gemini API key is now fully optional. MeticAI gracefully hides all AI-dependent features when no key is configured — you get full machine control, pour-over mode, shot history, and settings without any AI dependency. Perfect for users who want a clean espresso dashboard without AI profile generation.

🧪 Beta Testing Program

Opt in to beta updates directly from Settings. Includes:

  • One-toggle beta/stable channel switching
  • Automatic Watchtower-compatible image tag management
  • Built-in feedback form that creates GitHub issues
  • Smart notifications when newer betas or stable catch-up versions are available
  • Full i18n support across all 6 languages

🔧 Additional Improvements

  • Localization (i18n) — Comprehensive English and Swedish translation coverage; framework for German, Spanish, French, and Italian (482+ new translation keys across 6 locales)
  • Python SDK Migration — Replaced Gemini CLI subprocess calls with native Python SDK function-calling for better reliability and error handling
  • Addon Management — New scripts/addons.sh and scripts/addons.ps1 for toggling services (Watchtower, Tailscale, Home Assistant) post-install
  • Dependency Upgrades — ESLint v10, react-hooks v7 (all 5 strict rules enforced), lucide-react, react-resizable-panels v4, FastAPI 0.135.1, and more
  • Profile Robustness — UUID enforcement, partial-data fallback for broken profiles, duplicate profile prevention
  • Developer Experience — Integration test suite (21 tests) for real Meticulous hardware, agent configuration, workflow skills, and 8 new Playwright E2E specs

📊 By the Numbers

Metric Value
Files changed 135
Lines added 27,061
Lines removed 1,605
Commits 103
Python tests 689
Web tests 269
E2E specs 8 new
Total tests 958+
Issues resolved 13
Beta releases 8

📋 Issues Resolved

  • #176 — AI-free operation (Gemini API key optional)
  • #193 — Pour-over mode
  • #214 — Python SDK migration (replace CLI subprocess)
  • #215 — Addon management scripts
  • #220 — Comprehensive i18n localization
  • #227 — Token-optimized distilled prompt mode
  • #229 — Validation pipeline with retry + SSE progress
  • #232 — Temporary/ephemeral profile support
  • #235 — Local integration tests with real machine API
  • #236 — Beta testing program with channel toggle
  • #237 — Pour-over Meticulous machine integration
  • #255 — Complex Dependabot dependency upgrades
  • #256 — react-hooks v7 strict rule compliance

🛠 Installation

Quick Install (Linux/macOS):

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.sh | bash

Docker:

docker pull ghcr.io/hessius/meticai:v2.1.0

Windows:

irm https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.ps1 | iex

Upgrading from v2.x: If you have Watchtower enabled, the update will happen automatically. Otherwise, run the install script again — it detects existing installations and upgrades in place.

Upgrading from v1.x:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/migrate-to-unified.sh | bash

Full changelog: v2.0.5...v2.1.0

MeticAI v2.1.0 Beta 1

03 Mar 21:24

Choose a tag to compare

MeticAI v2.1.0 Beta 1 Pre-release
Pre-release

MeticAI v2.1.0 Beta 1

Thank you for helping test MeticAI 2.1.0! This is the first beta release of the next major feature update. Your feedback is invaluable — please report bugs, feature requests, and UX issues via the in-app feedback button or by opening a GitHub issue.


What's New in 2.1.0

Pour-Over Mode (New!)

A dedicated pour-over brewing mode with real-time machine integration:

  • Ratio-based brewing — set your coffee-to-water ratio and let MeticAI guide you
  • Live flow-rate graph with bloom phase indicator and smoothed curves
  • Drawdown timing — automatic detection of drawdown phase
  • Weigh-from-Scale support — use the machine scale to set your dose
  • Auto-start — machine starts automatically when you begin pouring (waits for machine readiness)
  • Mobile-optimized UX — swipe navigation, responsive layout, taller graphs on mobile
  • Desktop two-column layout for larger screens

AI Profile Creation Improvements

  • Token-optimized prompts with distilled espresso knowledge for faster, better profiles
  • OEPF pre-validation — profiles are validated against the Open Espresso Profile Format schema before upload, with automatic retry on validation errors
  • SSE progress streaming — real-time progress updates during profile generation
  • Drag & drop image upload — drop a photo of your coffee bag directly onto the UI
  • Profile import fix — imported JSON profiles now correctly upload to the Meticulous machine
  • Improved profile summaries with re-import instructions

Localization

  • Full English and Swedish translations across all screens
  • i18n support infrastructure for additional languages

Beta Testing Program

  • Beta channel toggle in Settings — opt in to receive pre-release updates automatically
  • In-app feedback button for reporting bugs and suggestions
  • Automatic updates between beta versions via Watchtower

Other Improvements

  • Optional Gemini API key during installation (AI-free operation supported)
  • Post-install addon manager for Watchtower, Tailscale, and Home Assistant
  • Improved shot history and analysis history views
  • Better error handling throughout

What Needs Testing

This is a beta release. The following areas especially need your attention:

Profile Creation (Priority: High)

  • Analyze a coffee bag photo — does the AI analysis look correct?
  • Generate a profile — does it validate and upload to the machine successfully?
  • Try drag & drop image upload
  • Import a JSON profile from file — does it appear on the machine?
  • Check the SSE progress updates during generation — smooth or glitchy?

Pour-Over Mode (Priority: High)

  • Start a pour-over session in Ratio mode
  • Does auto-start work? (Machine should start when you begin pouring)
  • Is the live flow graph readable and smooth?
  • Does the bloom phase indicator appear at the right time?
  • Try "Weigh from Scale" — does it read the dose correctly?
  • Test on mobile — is the layout usable? Does swipe navigation work?
  • Test on desktop/tablet — does the two-column layout look right?
  • Start a new shot after completing one — does it reset properly?

General UX

  • Switch between English and Swedish in Settings
  • Enable the beta channel toggle — does it show the correct channel?
  • Use the feedback button to submit a test report
  • Browse shot history and analysis history

Installation

New beta install:

export METICAI_TAG=beta REPO_BRANCH=version/2.1.0; curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/version/2.1.0/scripts/install.sh | bash

Existing users — switch to beta:
Enable "Beta Channel" in Settings, or manually set METICAI_TAG=beta in your .env file and run:

docker compose pull && docker compose up -d

Docker pull:

docker pull ghcr.io/hessius/meticai:beta

Auto-Updates

If you have Watchtower enabled (default), you will automatically receive:

  • Future beta updates (beta 2, beta 3, etc.)
  • The stable 2.1.0 release when it ships

No manual intervention needed once you're on the beta channel.


Built from branch version/2.1.0 at commit 648c3a1

MeticAI v2.0.5

01 Mar 00:00

Choose a tag to compare

MeticAI v2.0.5

What's Changed

  • fix: unified 2.0.5 branch for readiness and profile generation (#222)
  • Revert "Merge pull request #218 from hessius/feat/2.0.5-version-bump-and-ci-bun-retry"
  • fix(updates): improve watchtower detection and diagnostics
  • fix(profiles): support data-uri and url image sources in image proxy
  • fix(ci): address PR review feedback for Bun retry and version alignment
  • chore(release): bump to 2.0.5 and harden Bun setup retries
  • fix(commands): prevent auto-start when selecting profile in control center
  • chore: add mobile-web-app-capable meta tag
  • fix: resolve machine IP from settings across bridge and server
  • fix: use React state for profile image fallback handling
  • fix: publish real power telemetry to live chart
  • fix: add defensive null guards across frontend components
  • fix: harden backend data loaders with type validation
  • feat: upgrade Docker base image to Python 3.13-slim
  • chore(deps): bump fastapi 0.133.0 → 0.133.1
  • fix: installer garbled output and volume warnings on lightweight distros
  • fix(ci): update bun lockfile and add missing Pester test mocks

Installation

Quick Install:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.sh | bash

Docker:

docker pull ghcr.io/hessius/meticai:v2.0.5

Upgrading from v1.x:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/migrate-to-unified.sh | bash

Built from commit: 934a933

MeticAI v2.0.1

27 Feb 07:07

Choose a tag to compare

MeticAI v2.0.1

What's Changed

  • chore: bump version to 2.0.1
  • fix: propagate METICULOUS_IP to s6 container environment on settings save
  • fix: return 503 for machine connection errors, disable strict content-type
  • chore(deps): bump fastapi to 0.133.0, fix codecov file→files input
  • chore(deps): bump httpx from 0.26.0 to 0.28.1 in /apps/server (#206)
  • chore(deps): bump codecov/codecov-action from 4 to 5 (#209)
  • chore(deps): bump eslint-plugin-react-refresh (#212)
  • chore(deps): bump aiohttp (#211)
  • chore(deps): bump uvicorn from 0.40.0 to 0.41.0 in /apps/server (#205)
  • chore(deps): bump docker/build-push-action from 5 to 6 (#210)
  • chore(deps): bump actions/upload-artifact from 4 to 6 (#204)
  • chore(deps): bump actions/setup-python from 5 to 6 (#202)
  • chore(deps): bump actions/checkout from 4 to 6 (#207)
  • fix: improve install scripts and Windows documentation
  • fix: remove Icon\r files that break Windows git clone
  • docs: fix incorrect /api/v1/ paths in README (should be /api/)
  • docs: add Windows installation guide, update/migration guide, and trim README

Installation

Quick Install:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/install.sh | bash

Docker:

docker pull ghcr.io/hessius/meticai:v2.0.1

Upgrading from v1.x:

curl -fsSL https://raw.githubusercontent.com/hessius/MeticAI/main/scripts/migrate-to-unified.sh | bash

Built from commit: 3472efd