Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: barebaric/rayforge
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.8.3
Choose a base ref
...
head repository: barebaric/rayforge
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1.8.4
Choose a head ref
  • 13 commits
  • 113 files changed
  • 2 contributors

Commits on Jul 14, 2026

  1. refactor: replace OpsProducer pipeline with assembler registry

    - Remove AssemblerMeta.resolve_params in favor of Step.get_assembler_kwargs()
    - Replace step.assembler_name/assembler_params with ASSEMBLER_NAME ClassVar
      and real typed attributes on each Step subclass
    - Add MachineDefaults dataclass wired through the pipeline
    - Thread Step through pipeline instead of separate assembler_name/params
    - Add AssemblerRegistry with _register_laser_assemblers fallback for workers
    - Make task_mgr a required parameter on AddonManager, passed at construction
      so _build_and_update_manifest always finds shared_state
    - Remove set_task_manager method (redundant with constructor parameter)
    - Remove _ensure_assemblers_registered conftest fixture (assembler registry
      fallback handles it)
    - Step.from_dict dispatches via step_registry; workers get addon manifest
      through shared_state automatically
    - Remove _STEP_TYPE_TO_ASSEMBLER hack from compute_workpiece_artifact
    - Add to_dict/from_dict roundtrip and get_assembler_kwargs tests for all
      step subclasses
    - Clean up pipeline test args indices (args[7] -> args[5])
    - Remove addon imports from core pipeline tests
    knipknap committed Jul 14, 2026
    Configuration menu
    Copy the full SHA
    5b73275 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2026

  1. refactor: eliminate AssemblerMeta, migrate UI widgets to step attributes

    - Add orchestration ClassVars to Step base (IS_VECTOR, SPLIT_CONTOURS,
      SET_POWER, NORMALIZE_WINDINGS, ALWAYS_WRAP, SECTION_TYPE) and
      override on each Step subclass - replaces AssemblerMeta fields
    - Delete AssemblerMeta class entirely; AssemblerRegistry becomes a
      plain name -> Callable map with no param_keys filtering
    - Add set_step_property() helper to StepComponentSettingsWidget base
      for undoable step attribute writes via ChangePropertyCommand
    - Migrate contour, frame, shrinkwrap, wavefront, and raster widgets
      to read/write step attributes directly instead of opsproducer_dict
    - Add override_threshold, threshold to ContourStep and dither_algorithm
      to EngraveStep (previously only on producers)
    - Fix Step.from_dict to delegate to step_class.from_dict(data) so
      subclass attributes are deserialized correctly
    - Remove _register_laser_assemblers() hardcoded fallback from registry
      (consistent with ProducerRegistry/StepRegistry pattern)
    - Simplify all assembler registration calls (no AssemblerMeta wrapper)
    - ShrinkWrapStep imports prepare_surface directly from rayforge.image
    - Fix UnboundLocalError from local logger shadowing module-level logger
    knipknap committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    c495c70 View commit details
    Browse the repository at this point in the history
  2. delete producers, now replaced by step methods + assemblers

    - Delete all producer files: OpsProducer, ProducerRegistry, PlaceholderProducer,
      and all 6 laser producer implementations (contour, frame, shrinkwrap,
      raster, wavefront, material_test_grid)
    - Remove register_producers hook spec, registration table entry, and all
      implementations (laser_worker, sketcher)
    - Move CutSide/CutOrder enums to rayforge/core/cut_side.py
    - Migrate material test widget + command to step attributes (no more
      opsproducer_dict or producer parameters)
    - Widget frontend passes 4 args (editor, title, page, step) — no more
      producer arg
    - Base class makes component parameter optional with default None
    - Add missing_step_types property to Doc (replaces missing_producer_types)
    - Clean up all remaining OpsProducer/opsproducer_dict/producer_registry
      references across tests, scripts, and hooks
    knipknap committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    c511aea View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    792f566 View commit details
    Browse the repository at this point in the history
  4. Add bidirectional raster scan X-offset calibration

    Fixed-corner mechanical/firmware skew between left-to-right and
    right-to-left raster passes misaligns alternate scan rows on some
    machines, regardless of speed (a different case from the
    timing-delay skew LightBurn's speed table addresses).
    
    - Adds a bidir_x_offset_mm param to the Rasterizer producer (UI
      control + serialization), per engrave step rather than a single
      machine-wide value, since different jobs may want different
      corrections, and this may need to vary by speed in the future
    - Adds BidirScanOffsetTransformer, which shifts each right-to-left
      raster pass along X by that offset during gcode generation,
      preserving per-pixel power values for variable-power (photo)
      engraving
    - Tests the producer -> settings -> transformer wiring end-to-end,
      not just each piece in isolation
    vyvcodd committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    a9cee80 View commit details
    Browse the repository at this point in the history
  5. Improve material test grid block isolation

    - Doubles the auto-calculated overscan distance for individual test
      blocks, so backlash settling happens outside the visible engrave
      area rather than muddying whatever parameter the grid is testing
    - Adds Optimize to the default transformers, but disabled: its
      nearest-neighbor travel reordering has no concept of cell
      boundaries and was interleaving lines from different cells
      instead of engraving each one fully before moving to the next.
      Left toggleable rather than removed, so it's easy to compare
      with/without
    vyvcodd committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    d5c06cc View commit details
    Browse the repository at this point in the history
  6. Add Speed vs Offset mode to the material test grid

    Extends the material test grid so users can calibrate bidir_x_offset_mm
    empirically: columns vary speed, rows vary offset. raygeo's
    generate_material_test_grid already supports grid_mode="Speed vs
    Offset" plus min_offset/max_offset (including scaling power with speed
    so darkness stays comparable across a row) -- this just plumbs an
    offset_range param through the producer, its preview, and the step
    settings widget.
    vyvcodd committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    3f7b2a3 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #312 from vyvcodd/feature/bidir-x-offset

    Add bidirectional raster scan X-offset calibration
    knipknap authored Jul 15, 2026
    Configuration menu
    Copy the full SHA
    cf65c60 View commit details
    Browse the repository at this point in the history
  8. Merge branch 'main' into refactor/assembler-registry-pipeline

    Re-implement bidirectional raster scan X-offset calibration feature
    from main in the new assembler/step architecture (producers were
    deleted in this branch):
    
    - EngraveStep: add bidir_x_offset_mm attribute with serialization
    - MaterialTestStep: add offset_range attribute, pass min/max_offset to
      assembler, add SPEED_VS_OFFSET grid mode support
    - material_test_helpers: add SPEED_VS_OFFSET to GridMode enum, pass
      min/max_offset to draw_preview
    - material_test_cmd: add offset_range to _PARAM_KEYS for preview sync
    - raster_widget: read bidir_x_offset_mm from self.step (not producer)
    - material_test_grid_widget: read offset_range from self.step, fix
      offset handlers to use tuple signature of _update_range_param
    - workpiece_stage: read bidir_x_offset_mm from step.to_dict() via
      setdefault instead of deleted opsproducer_dict
    - Add BidirScanOffsetTransformer and tests from main (unchanged)
    - Update tests for new architecture (no opsproducer_dict references)
    knipknap committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    5ecd390 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6661d11 View commit details
    Browse the repository at this point in the history
  10. Merge pull request #309 from barebaric/refactor/assembler-registry-pi…

    …peline
    
    refactor: replace OpsProducer pipeline with assembler registry
    knipknap authored Jul 15, 2026
    Configuration menu
    Copy the full SHA
    729dbb7 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f9ea7e1 View commit details
    Browse the repository at this point in the history
  12. update for release 1.8.4

    knipknap committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    d37c526 View commit details
    Browse the repository at this point in the history
Loading