Skip to content

feat: add mesh info panel (Feature 3)#7

Merged
kraulerson merged 13 commits intomainfrom
feat/mesh-info-panel
Apr 7, 2026
Merged

feat: add mesh info panel (Feature 3)#7
kraulerson merged 13 commits intomainfrom
feat/mesh-info-panel

Conversation

@kraulerson
Copy link
Copy Markdown
Owner

Summary

  • Add dockable Info Panel (QDockWidget) with four collapsible sections: File, Geometry, Dimensions, Status
  • Display vertex/face count, bounding box dimensions (with collapsible min/max), surface area, volume, manifold status
  • Unit mismatch warning banner + inline warning when dimensions suggest wrong units
  • Keyboard toggle (I), View menu entry, dark theme styling, full accessibility (screen reader labels, keyboard navigation)

Test Plan

  • 197 tests passing (44 new for info panel)
  • ruff: clean
  • mypy: clean
  • Visual smoke test with cube.stl — all sections populated correctly
  • Feature recorded: 1/2 toward next UAT

🤖 Generated with Claude Code

Karl Raulerson and others added 13 commits April 7, 2026 10:02
Reset build-progress counter after UAT session 1 completion. Add
data-driven update_check handlers for git repos, docker images, and
ephemeral/plugin tools. Add track-based tool filtering and session
hook scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Make update prompts more explicit — always list commands and require
Orchestrator confirmation before proceeding.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add brew prefix to PATH at script start so version checks find
user-installed tools instead of macOS system stubs. Simplify Python
version command now that PATH handles the lookup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Collapsible QDockWidget with four sections (file, geometry, dimensions,
status), unit mismatch warning banner, and direct method call
integration pattern. Approved during brainstorming session.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7-task TDD plan: InfoPanel skeleton, collapsible sections, data
population, unit mismatch warning, MainWindow integration,
accessibility pass, and manual smoke test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements QDockWidget-based InfoPanel with placeholder label and
is_empty/clear interface; tested TDD with 5 passing tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements toggle-able section with header button, separator, and
content area; accessible name reflects expanded/collapsed state.
TDD: 6 new tests, all 11 passing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add update(doc) method, warning banner, four CollapsibleSection instances
(File, Geometry, Dimensions, Status), min/max sub-section, inline unit
warning, _format_file_size helper, and all test accessor methods.
Tests cover file/geometry/dimensions/status sections and update/clear cycle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add TestInfoPanelUnitWarning covering banner visibility, banner text,
inline warning in Dimensions section, clear/reset behavior, and the
rule that non-unit warnings must not trigger the banner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ethod name)

- Prepend checkmark/warning icons to manifold label and set accessibleName
- Change volume N/A text to "N/A (non-manifold)" for non-manifold meshes
- Replace combined size label with three separate Size X/Y/Z labels
- Replace combined min/max label with three per-axis labels (X: [min, max])
- Rename update(doc) to set_document(doc) to avoid shadowing QWidget.update()
- Remove redundant load() alias; update all tests to use set_document()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…toggle

Dock InfoPanel on the left, wire set_document/clear into the load flow,
add View menu toggle action with I keyboard shortcut. Six new TDD tests
cover panel existence, empty state, View menu entry, load population,
error clearing, and shortcut binding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds TestInfoPanelAccessibility class (6 tests) covering accessible names,
keyboard focus policy, and manifold/warning label names. Adds _apply_styles()
to InfoPanel with dark amber warning banner and inline unit mismatch styling.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kraulerson kraulerson merged commit d536f9d into main Apr 7, 2026
2 of 5 checks passed
kraulerson pushed a commit that referenced this pull request Apr 8, 2026
Documentation artifact remediation: 10 new templates in templates/generated/,
UAT HTML template in templates/uat/, new artifact directories.

Process enforcement: process-checklist.sh state machine, pre-commit-gate.sh
commit gating, track-tool-usage.sh, updated session hooks and scripts.

Updated framework reference docs (builders-guide, governance, user-guide).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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