Two places where the stack's honesty rule (see the capability model) does real work: mapping a running printer onto the toolpath, and interpreting motion commands whose meaning is firmware-specific.
Feed a normalized ProgressObservation (adapted from Moonraker, Bambu, OctoPrint-class sources)
and the stack maps it onto the toolpath with tiered confidence:
The normalized contract and consumer guidance are in the
progress signal contract
and consumer notes.
Pass it via the progress prop.
The interpreter models position-affecting commands and — again — discloses its confidence rather than guessing silently:
M82/M83) — extrude vs. travel is classified from the true per-move E
delta, not the raw E word, so an absolute-E (M82) file no longer misreads travel as
extrusion. Disclosed via the extrusionMode capability.G90/G91) — absolute vs. relative XYZ. Disclosed via positioningMode.G92 E-datum — an extruder-datum reset so the next move's delta is correct.Absolute is the power-on default (the Marlin/RepRapFirmware convention). Whether G90/G91 also
switch the extruder mode is firmware-specific, so it is gated on
parseOptions.extruderFollowsPositioning: Marlin/Klipper set it true (E follows G90/G91
unless M82/M83 override); RepRapFirmware leaves it false (XYZ and E independent). Explicit
M82/M83 always win. When neither the mode nor a firmware hint is known, the capability is
disclosed as inferred, never known.
Coverage — including what's still in progress (arc planes G17–G19, work-coordinate systems) — is
in the motion coverage matrix.