Repository navigation
fix(updater): install Happy-Hare mmu_server Moonraker component - #366
Open
gmmcosta15 wants to merge 9 commits into
Open
gmmcosta15 wants to merge 9 commits into
gmmcosta15 wants to merge 9 commits into
Conversation
1 of 4 tasks
# Conflicts: # tests/updater/test_hooks_unit.py
RobeMartins
approved these changes
Oct 23, 2026
RobeMartins
approved these changes
Oct 23, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Every RF50 box has
[mmu_server]in moonraker.conf but nomoonraker/components/mmu_server.py. Happy-Hare's interactive installer was dropped fromcomponents.yamlbecause it edits printer.cfg, and that also dropped its Moonraker component. Without the component, every UI gate-map edit on an AMU box failsspoolman_push_gate_mapand shows an ERROR popup. The slicer placeholder preprocessor (!referenced_tools!,!colors!, ...) is missing as well, so MMU_START_SETUP gets num_colors=-1. This PR ships a pinned Happy-Hare checkout through the updater and links onlymmu_server.pyinto Moonraker, without running HH's installer.Changes
servicelink_mmu_pluginsdoes, and add it to Moonraker'sinfo/exclude(best effort, WARN on failure)[mmu_server]is configured; the argv matches the install-updater.sh sudoers ruleBS_UPDATER_PENDING_RESTARTS) or a print is running (BS_UPDATER_PRINTING)extra_env, which can never override COMPONENT_PATH/NEW_HASH/PREV_HASHMotivation
The updater shipped
[mmu_server]in moonraker.conf without the module that implements it, so Moonraker logs ModuleNotFoundError plus an "Unparsed config section" warning on every start, and Happy-Hare's Spoolman sync fails. There is deliberately noservice:key._undo_provisiondisables the component's service when a provision fails, and withservice: moonraker.servicethat would disable Moonraker. mmu_server also takes over Moonraker's METADATA_SCRIPT for every upload, so upload metadata and thumbnails should be checked on the simulator.Tests
TestHappyHareHook(14): provision, sudoers argv vs installer + manifest, pending/other pending restarts, link-only, printing, unwritable exclude, idempotent update, changed file, no section, copied file replaced, exclude without newline, no Moonraker, bad checkoutTestMoonrakerHook(7): update relinks without restart, boot reclone restarts, intact link restores exclude, no HH, failed-provision link removed, foreign link kept, relink failure never fails the hookTestPinnedCheckoutIsEnforced(3),test_shipped_happy_hare_is_pinned_without_service