-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Milestone
Description
Overview
v2.4 introduces three deployment targets for MeticAI:
| Mode | How | Adapter | Status |
|---|---|---|---|
| Server (Docker) | MeticAI on a Pi/server | MeticAIAdapter (proxy to FastAPI backend) |
✅ Existing |
| Machine (PWA) | Static files on the Meticulous machine | DirectAdapter (native REST + Socket.IO) |
✅ Merged (#316) |
| Capacitor (iOS/Android) | Native app via Capacitor | DirectAdapter + native plugins |
📋 #253 |
Merged PRs
- feat: Machine-Hosted PWA — Direct Mode without MeticAI backend #316 — Machine-Hosted PWA (foundation) — 70 files, +7957/-226
- feat: mobile home screen above-the-fold layout (#287) #319 — Mobile home screen layout (feat: mobile home screen above-the-fold layout #287)
- feat: select Gemini model in settings (#180) #320 — Select Gemini model (Select model #180)
- feat: iOS and Material You platform themes (#288, #291) #321 — iOS + Material You platform themes (feat: iOS-inspired CSS theme for native feel on Apple devices #288, feat: Material You (Android) CSS theme for native feel on Android devices #291)
- feat: import profiles from URL (#96) #322 — Import profiles from URL (Import from link #96)
- chore(deps): update all frontend dependencies #323 — Update all frontend dependencies (resolves 8 dependabot PRs)
- chore(deps): bump picomatch from 4.0.3 to 4.0.4 in /apps/web #324 — Bump picomatch (dependabot, merged via main)
- fix(css): reorder platform theme imports after Tailwind #325 — Fix CSS cascade: platform themes now override Tailwind
Implementation Order
#316 (Machine PWA) ✅ ─────────────────────────────► MERGED
│
├── #287 Mobile layout ✅ ───────────────────────► MERGED (#319)
├── #96 Import from URL ✅ ─────────────────────► MERGED (#322)
├── #180 Select Gemini model ✅ ─────────────────► MERGED (#320)
├── #288+#291 Platform themes ✅ ────────────────► MERGED (#321, #325)
│
├── #330 Manual testing ◀── YOU ARE HERE
│ │
│ ├── #326 OEM TS package integration ─────► Depends on testing
│ └── #253 Capacitor app scaffolding ──────► Depends on testing + #326
│
└── #305 Feasibility study ✅ ───────────────────► Complete
New issues (backlog / future milestones):
├── #327 Machine management (sounds, WiFi, health)
├── #328 Decent Espresso profile import
└── #329 Profile images and accent colors
Current Phase: Manual Testing (#330)
All features are implemented and merged. Manual testing in progress per #330 checklist.
Exit criteria for testing:
- All Part 1 (new features) and Part 2 (regression) items pass
- No critical bugs found
After testing passes:
- feat: integrate OEM TypeScript packages into DirectAdapter #326 — Integrate
@meticulous-home/espresso-api+espresso-profileinto DirectAdapter, add missing actions (abort/purge/home) - iOS app: native client via Capacitor + MachineDirectAdapter #253 — Capacitor app scaffolding using the improved DirectAdapter
Milestone Issues
- feat: Machine-Hosted MeticAI PWA — Implementation Plan #309 — Machine-Hosted MeticAI PWA → PR feat: Machine-Hosted PWA — Direct Mode without MeticAI backend #316
- feat: mobile home screen above-the-fold layout #287 — Mobile home screen layout → PR feat: mobile home screen above-the-fold layout (#287) #319
- Import from link #96 — Import from link → PR feat: import profiles from URL (#96) #322
- Select model #180 — Select Gemini model → PR feat: select Gemini model in settings (#180) #320
- feat: iOS-inspired CSS theme for native feel on Apple devices #288 — iOS-inspired CSS theme → PR feat: iOS and Material You platform themes (#288, #291) #321
- feat: Material You (Android) CSS theme for native feel on Android devices #291 — Material You CSS theme → PR feat: iOS and Material You platform themes (#288, #291) #321
- research: Browser-Only MeticAI Feasibility Study #305 — Feasibility Study → Complete
- feat: integrate OEM TypeScript packages into DirectAdapter #326 — OEM TypeScript package integration → Next
- iOS app: native client via Capacitor + MachineDirectAdapter #253 — iOS app: Capacitor + DirectAdapter → After feat: integrate OEM TypeScript packages into DirectAdapter #326
- test: v2.4.0 pre-release manual testing #330 — Manual testing → In progress
Capacitor Groundwork (from PR #316)
| Aspect | Status | Notes |
|---|---|---|
MachineService interface |
✅ Ready | Adapter-agnostic |
DirectAdapter |
✅ Reusable | Same adapter for PWA and Capacitor |
| Feature flags | ✅ Ready | DIRECT_FLAGS apply; Capacitor can extend |
| Mode detection | Add window.Capacitor runtime check (#253) |
|
| OEM TS API wrapping | 📋 Planned | espresso-api + espresso-profile (#326) |
| Missing actions | 📋 Planned | abort/purge/home via direct REST (#326) |
| mDNS discovery | ❌ Not in interface | Add in #253 as Capacitor plugin |
| Native storage | Capacitor Preferences plugin is better |
Dependabot PRs
- chore(deps): bump the dev-dependencies group across 1 directory with 20 updates #315 — 20 dev-dependencies
- chore(deps): bump fastapi from 0.135.1 to 0.135.2 in /apps/server #312 — fastapi bump
- chore(deps): bump sse-starlette from 3.2.0 to 3.3.3 in /apps/server #311 — sse-starlette bump
- chore(deps): bump oven/bun from 1.3.10-alpine to 1.3.11-alpine in /docker #310 — oven/bun Docker bump
- chore(deps): update all frontend dependencies #323 — All remaining frontend deps (resolves chore(deps): bump the production-dependencies group across 1 directory with 13 updates #314, chore(deps): bump storybook from 10.2.7 to 10.3.1 in /apps/web #308, chore(deps): bump flatted from 3.3.3 to 3.4.2 in /apps/web #307, chore(deps): bump rollup from 4.55.1 to 4.59.1 in /apps/web #306, chore(deps): bump @tailwindcss/vite from 4.1.18 to 4.2.1 in /apps/web #302, chore(deps): bump framer-motion from 12.25.0 to 12.37.0 in /apps/web #299, chore(deps): bump @hookform/resolvers from 4.1.3 to 5.2.2 in /apps/web #275)
- chore(deps): bump picomatch from 4.0.3 to 4.0.4 in /apps/web #324 — picomatch bump
Release Criteria
- All automated tests green (416 frontend + 900 backend)
- Manual testing passed (test: v2.4.0 pre-release manual testing #330)
- feat: integrate OEM TypeScript packages into DirectAdapter #326 OEM TS package integration complete
- iOS app: native client via Capacitor + MachineDirectAdapter #253 Capacitor app scaffolding complete
- All 6 locales complete (en, sv, de, es, fr, it)
- VERSION + package.json bumped to final
2.4.0
Related Issues (Backlog)
- feat: machine management — sound themes, WiFi, and health dashboard #327 — Machine management (sounds, WiFi, health dashboard)
- feat: import Decent Espresso profiles via DecentConverter #328 — Decent Espresso profile import (DecentConverter)
- feat: profile images and accent colors from OEM defaults #329 — Profile images and accent colors
Reactions are currently unavailable