Skip to content

Step relief preview handles by physical layers - #110

Merged
vycdev merged 3 commits into
developfrom
codex/relief-layer-keys
Oct 29, 2026
Merged

vycdev merged 3 commits into
developfrom
codex/relief-layer-keys

Conversation

@vycdev

@vycdev vycdev commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

🤖 This was created by Codex using the GPT-6.1-Sol model on xhigh reasoning effort, during automated macOS end-to-end testing.

Relief preview handles use a 0.01 mm Radix slider step. At the default 0.12 mm layer height, an arrow-key change snaps back to the same printed layer, leaving keyboard users unable to step through the model.

Handle relief arrow keys in physical layer-boundary indices, including the distinct first layer. Shift+arrow and Page Up/Down move ten layers; Home/End reach the constrained limits. Keep proportional pointer positions, ordered cutoffs, rebuild reset, Flat Paint's existing index behavior, and exported geometry unchanged. Document the keys in all twelve guide languages.

Fixes #106.

Validation:

  • npm run lint: passed.
  • npm run build: passed, including TypeScript and i18n checks.
  • npm test: 860 passed, 1 skipped, 0 failed.
  • npm run test:docs: 3 passed after localized guide updates.
  • PLAYWRIGHT_BROWSERS_PATH=/Users/vycdev/Desktop/kromacut-e2e/.playwright npx playwright test tests/e2e/relief-layer-preview.spec.ts tests/e2e/flat-paint-preview.spec.ts: 4 passed in Chromium.
  • PLAYWRIGHT_BROWSERS_PATH=/Users/vycdev/Desktop/kromacut-e2e/.playwright npx playwright test --config ../perf/layer-webkit.config.ts: 1 passed against this branch's dev server.
  • The same WebKit regression against unmodified main failed as expected: ArrowLeft retained 0.44 mm instead of reaching 0.32 mm. The temporary config only selects WebKit and a base URL; test source is included in this PR.
  • git diff --check: passed.

The new regression covers both handles, first-layer boundaries, range constraints, larger steps, Home/End, and rebuild reset. Existing Flat Paint tests cover full-slab export and failure recovery. The native release defect was exercised twice; the patched desktop binary was not rebuilt, as required by the QA brief.
Repository target note: this feature branch was cut from latest main as requested by the QA brief. The repository only permits develop→main PRs, so this PR targets develop (currently the same source tree as main). Earlier Require develop into main failures are historical branch-policy checks from the initial target, not code/test failures; GitHub may still show them on this head.

@vycdev
vycdev changed the base branch from main to develop October 24, 2026 15:50
- Prevent Float32 relief bounds from adding phantom top-layer steps
- Cover exact ten-layer moves, constrained limits, and both-handle reset
- Update the unreleased changelog entry
@vycdev

vycdev commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Automated review and fixes

Pushed 173b291 to this branch.

Findings

  • ✅ Float32 model bounds create phantom top layers: A 32.24 mm relief reports a Float32 top of 32.240001678 mm, producing an extra boundary and an ineffective first arrow step. Updated previewLayerRange.ts to account for Float32 precision. Added a regression that failed before the fix, while preserving exact model tops and genuine partial layers.

  • ✅ Keyboard regression does not prove ten-layer moves or both-handle reset: The three-layer fixture only tested clamping, and the lower handle was already zero before rebuilding. Expanded it to thirteen layers, asserted exact ten-layer moves and constrained limits, moved both handles before rebuilding, and prevented missing ARIA values from passing as zero.

Verification: E2E relief-layer-preview and flat-paint-preview pass (4/4).


Fixed by GPT 6.1 Sol

# Conflicts:
#	CHANGELOG.md
@vycdev
vycdev merged commit 135ec6c into develop Oct 29, 2026
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.

Relief layer preview arrow keys do not move across physical layers

1 participant