You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Port the DecentConverter logic from the met-community-profiles repository to enable importing Decent Espresso profiles into Meticulous format. This extends the existing "Import from URL" feature (#96) and addresses profile interoperability (#284).
Background
Decent Espresso is the most popular prosumer espresso platform with thousands of community-shared profiles. The MeticulousHome team built a DecentConverter (Vue component) that converts Decent .json profiles to Meticulous format. We should port this logic to our backend.
Summary
Port the DecentConverter logic from the
met-community-profilesrepository to enable importing Decent Espresso profiles into Meticulous format. This extends the existing "Import from URL" feature (#96) and addresses profile interoperability (#284).Background
Decent Espresso is the most popular prosumer espresso platform with thousands of community-shared profiles. The MeticulousHome team built a DecentConverter (Vue component) that converts Decent
.jsonprofiles to Meticulous format. We should port this logic to our backend.Behaviour
Import Flow
.jsonfile.jsonauthor,beverage_type,steps[]withflow/pressuretargets)steps[]→ Meticulousstages[]exit_condition→ Meticulousexit_triggersnotes→ Meticulous descriptionDecent Profile Sources
https://visualizer.coffee/shots/...export URLs.jsonexportsConversion Details (from DecentConverter.vue)
steps[].flowstages[].dynamics.points(flow type)steps[].pressurestages[].dynamics.points(pressure type)steps[].temperaturestages[].temperaturesteps[].exit.type == "pressure_over"exit_triggers[].type = "pressure"steps[].exit.type == "flow_over"exit_triggers[].type = "flow"steps[].secondsexit_triggers[].type = "time"steps[].weightexit_triggers[].type = "weight"authorprofile.authortitleprofile.namenotesprofile.descriptionEdge Cases
espresso_declinestep type → map to declining pressure/flow dynamicsImplementation
Backend
apps/server/services/decent_converter.pydetect_decent_format(data: dict) -> boolconvert_decent_to_meticulous(data: dict) -> dictDecentConverter.vueto PythonPOST /api/import-from-urlto auto-detect Decent formatPOST /api/convert-decentfor direct file conversionespresso-profile-schemaFrontend
Acceptance Criteria
References