Skip to content

feat: OrcaSlicer slicing + named printer presets - #1

Merged
Sbussiso merged 3 commits into
masterfrom
feat/orca-slice-and-printers
Sep 8, 2026
Merged

feat: OrcaSlicer slicing + named printer presets#1
Sbussiso merged 3 commits into
masterfrom
feat/orca-slice-and-printers

Conversation

@Sbussiso

@Sbussiso Sbussiso commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

/slice picks Cura or OrcaSlicer (orca preferred when PrintMCP exposes it) with a --slicer override; /printer manages named printer presets (Cura printer id + OrcaSlicer machine/process/filament). Depends on PrintMCP ≥ 0.3.0 (now on PyPI). 23 tests pass incl. a real cross-repo OrcaSlicer integration test.

- /slice picks Cura or OrcaSlicer (orca preferred when the local PrintMCP
  exposes it), with a --slicer cura|orca override. Presets resolve from the
  active printer preset -> /config orca_* keys -> defaults.
- New printers table + /printer command (list/show/use/add/remove) to bundle
  cura_printer + orca machine/process/filament per machine. Applying via
  /printer use writes the active slicer settings; removing the active printer
  clears its settings so slicing falls back cleanly. A default ender-3-pro
  preset ships seeded.
- Unified --adhesion maps to OrcaSlicer's real settings (brim_width /
  raft_layers / skirt_loops) instead of a nonexistent adhesion_type, and
  --infill/--temp/--bed/--supports map to Orca overrides.
- app.py: parse command args with shlex (multi-word printer names work),
  dispatch /printer, banner shows slicer + local-vs-pypi PrintMCP source.
- scanner.py ingests agent-invoked orca_slice_model results into the DB.
- tests: 23 passing incl. preset CRUD/resolution/adhesion, scanner ingestion
  for both slicers, and a real cross-repo OrcaSlicer integration test.
…yout

- What-is stack: slicing via CuraEngine or OrcaSlicer.
- File table: printer.py command module, shlex command-arg parsing,
  _printmcp_server_params() and the PRINTPAL_PRINTMCP_COMMAND local-checkout
  override, ORCA_DEFAULTS/ORCA_FLAG_OVERRIDES.
- Scanner detects orca_slice_model too.
- Testing section now matches reality (uv run python -m pytest, temp-DB
  isolation, integration marker) instead of 'no tests currently'.
- pyproject: add [tool.ruff] select = [E, F, I, N, UP, B] (matching PrintMCP)
  with E501 handled by the formatter. Recent ruff's broader defaults flagged
  the REPL's deliberate never-crash guards and the DB's naive-localtime
  convention; pinning keeps CI stable as ruff evolves.
- commands/__init__.py: keep COMMANDS before the submodule imports (help.py
  imports it at module load) and silence the resulting E402 with per-line
  noqas — fixes a circular-import regression from the autofix pass.
- helpers.py: rename unused 'default' loop var (B007), add 'from e' (B904).
- ruff format applied across src + tests to satisfy the 'ruff format --check'
  gate (the repo never ran it before).

All 23 tests pass; both ruff gates clean.
@Sbussiso
Sbussiso merged commit d2de525 into master Sep 8, 2026
2 checks passed
@Sbussiso
Sbussiso deleted the feat/orca-slice-and-printers branch September 8, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant