Skip to content

feat: basic mesh repair with undo/redo support#13

Merged
kraulerson merged 9 commits intomainfrom
feat/basic-mesh-repair
Apr 8, 2026
Merged

feat: basic mesh repair with undo/redo support#13
kraulerson merged 9 commits intomainfrom
feat/basic-mesh-repair

Conversation

@kraulerson
Copy link
Copy Markdown
Owner

Summary

  • Add one-click mesh repair: fill holes, fix flipped normals, remove degenerate faces
  • New plan_repair() dry-run and apply_repair() execution in mesh_repair.py
  • Add undo_swap()/redo_swap() to UndoStack for proper current-state tracking
  • Wire Undo (Ctrl+Z), Redo (Ctrl+Shift+Z), and Repair (R) into MainWindow with Edit menu, View menu, and toolbar
  • Repair shows confirmation dialog with impact warning, auto re-analyzes after apply

Test Plan

  • 19 unit tests for mesh repair (plan + apply)
  • 8 unit tests for undo_swap/redo_swap
  • 10 UI tests for undo/redo actions
  • 8 UI tests for repair action
  • Full suite: 363 passed, 0 failed

🤖 Generated with Claude Code

Karl Raulerson and others added 9 commits April 7, 2026 22:04
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
trimesh.repair.fix_normals and fill_holes lack type stubs, causing
mypy no-untyped-call errors in CI. Added type: ignore comments and
a regression test guarding that the functions remain callable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kraulerson kraulerson force-pushed the feat/basic-mesh-repair branch from 725b44b to 8c9adb5 Compare April 8, 2026 05:36
@kraulerson kraulerson merged commit b37aa90 into main Apr 8, 2026
2 of 5 checks passed
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