Skip to content

Release v3.2.0 - #64

Draft
vycdev wants to merge 160 commits into
mainfrom
develop
Draft

Release v3.2.0#64
vycdev wants to merge 160 commits into
mainfrom
develop

Conversation

@vycdev

@vycdev vycdev commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

This PR promotes the full Kromacut v3.2.0 release train from develop to main. It is a major release spanning physical filament calibration, appearance-aware Auto-paint, image preparation, 3D inspection, export reliability, the web experience, and desktop security updates.

Highlights

Three complementary physical calibration workflows

  • Hiding Distance: camera-free printed wedges with Quick and Accurate multi-base measurements, per-channel HD values, confidence scoring, partial result entry, and calibrated profile persistence.
  • Palette Proof: image-driven target selection from original or fitted/achievable colors, printable candidate matrices, iterative continuations, match-quality judgments, and regularized appearance fitting.
  • Stack Matrix: HD-guided selection from large fixed-depth recipe spaces, worker-backed 3MF creation, photographed-board orientation and alignment, perspective correction, LUT extraction, reference-marker lighting correction, and profile-integrated appearance evidence.

Better Auto-paint and physical output

  • Hiding Distance replaces ambiguous stored TD values, with one-time migration and per-channel optical behavior.
  • Enhanced matching scores the same layer-snapped physical stack used by preview and export with deterministic CIEDE2000-based optimization.
  • Added optimizer effort tiers, progress reporting, repeated-swap controls, transition detail, stable seeds, region weighting, and Preserve color separation.
  • Palette Proof and Stack Matrix evidence improve achievable-color fitting without introducing a second stack simulator.
  • Added carrier-free Flat Paint, producing an unmirrored, face-up print without a transparent carrier.
  • Added Simulated/Physical preview colors and Shaded, Transparent, and Wireframe inspection modes.

Image preparation and workflow

  • New responsive landing page at /, with the tool moved to /app.
  • Hard-edged Brush, Eraser, Fill, Text, and color-picker touch-up tools.
  • Supplier palettes and filament-profile templates, beginning with Bambu Lab PLA Basic.
  • Palette cloning, editable color names, and per-color enable/disable controls.
  • Collapsible 2D and 3D control groups with remembered state.
  • Improved crop workflow, settings navigation, and in-app calibration theory documentation.

Reliability and compatibility

  • Hardened smooth meshing and serialized 3MF topology against slicer-visible open or non-manifold geometry.
  • Streamed large desktop exports and moved heavy calibration/export work off the main UI thread.
  • Added safer profile validation and schema-v3 appearance-evidence import/export.
  • Added HueForge spool CSV/TSV profile imports.
  • Updated Tauri and supporting dependencies to resolve applicable security alerts.
  • Expanded deterministic optimizer, calibration, meshing, export, routing, and browser-flow regression coverage.

Release gallery

Landing page
2D touch-up tools
Enhanced Auto-paint result
3D inspection modes
Palette Proof target selection
Stack Matrix photo workflow
Open the complete v3.2.0 screenshot gallery

Image preparation and palettes

Image workspace
Supplier palettes
Named and selectively disabled colors
Crop workflow

Auto-paint and 3D output

Calibrated HD profile
Carrier-free Flat Paint controls
Physical filament preview colors
Application settings

Calibration workflows

Calibration hub
Accurate multi-base HD calibration
Frontlit calibration wedge
Selected Palette Proof colors
Palette Proof map
Stack Matrix setup
Calibration theory documentation

Showcase artwork uses public-domain images from Wikimedia Commons: Van Gogh self-portrait and Rainbow landscape. Calibration screens use Kromacut's repository test profile and genuine application states; no physical print results were simulated.

Compatibility notes

  • Older uncalibrated opacity values migrate once to the frontlit HD scale.
  • Calibrations produced by the removed photo-based workflow should be recreated with the new frontlit wedge.
  • Profile schema v3 adds bounded Palette Proof and Stack Matrix evidence while preserving v2 HD semantics.
  • Multi-plate work in this release is preliminary scaffolding and does not yet change generated output.

Validation

  • npm test — 453 tests passed
  • npm run lint
  • npm run build — production build completed; Rollup reported only the existing large-chunk warning
  • npm run test:e2e — 10 passed, 1 failed: settings resource focus did not land on the Patreon link after Shift+Tab (tests/e2e/landing.spec.ts:142); the focused rerun failed the same way
  • GitHub branch-direction check

Release checklist

  • Replace unreleased with the v3.2.0 release date in CHANGELOG.md
  • Smoke-test landing, /app, and documentation routes
  • Smoke-test frontlit wedge, Palette Proof, and Stack Matrix workflows
  • Smoke-test STL/3MF export in browser and packaged desktop builds
  • Confirm final release installers and update metadata

Bjohnson131 and others added 30 commits June 12, 2026 16:47
…xports

Signed-off-by: Brice Johnson <1939015+Bjohnson131@users.noreply.github.com>
…d delimiters

Signed-off-by: Brice Johnson <1939015+Bjohnson131@users.noreply.github.com>
Signed-off-by: Brice Johnson <1939015+Bjohnson131@users.noreply.github.com>
Signed-off-by: Brice Johnson <1939015+Bjohnson131@users.noreply.github.com>
@
Add auto-paint detail controls and optimizer tiers

Replace the repeated-swaps toggle with an Off/2/4/6/8/12 selector and add
a transition-detail selector (80/90/95% opacity) so stack height vs color
resolution is an explicit trade-off. Expand the optimizer menu to five
effort tiers (Fast/Balanced/Thorough/Deep/Exact base order) and score
sequences against the already-processed palette with an added detail-
coverage term.

Polish the panel UI: a determinate progress bar, fixed-width label column
so controls align, a quality/speed meter under the algorithm picker, and
nesting the enhanced-matching sub-options under their gate toggle.
@
Replace the repeated-swaps toggle with an Off/2/4/6/8/12 selector and add
a transition-detail selector (80/90/95% opacity) so stack height vs color
resolution is an explicit trade-off. Expand the optimizer menu to five
effort tiers (Fast/Balanced/Thorough/Deep/Exact base order) and score
sequences against the already-processed palette with an added detail-
coverage term.

Polish the panel UI: a determinate progress bar, fixed-width label column
so controls align, a quality/speed meter under the algorithm picker, and
nesting the enhanced-matching sub-options under their gate toggle.
RMantis and others added 16 commits August 6, 2026 00:57
- Storage loads now migrate palettes/profiles whose ids collide with ANY
  reserved built-in id (generic palette ids like p4/g8/auto included,
  not just sup_/tpl_ prefixes) and persist the re-assigned ids so they
  stay stable across reloads; covered by localStorage-level tests
- Number of Colors input is disabled while a named palette is selected,
  resolving the min-2 clamp fighting one-color palettes
- Docs link Bambu Lab's official hex chart in both supplier sections;
  settings-and-controls documents .kpal v2 fields and legacy behavior
- Supplier test pins all 30 official name/hex pairs exactly
- Eye toggle gains aria-pressed and per-row aria-labels
- New focused Playwright spec for the supplier/clone/toggle flow
  (not executed here: Playwright browsers are unavailable in the
  sandbox image; runs via npm run test:e2e where browsers exist)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Issue #26 discussion (comment by vycdev) asked for specific wording:
an unofficial reference palette, not affiliated with, endorsed by, or
sponsored by the manufacturer, names used only to identify referenced
products, plus a link to the referenced chart. Dropdown captions and
both docs sections now follow that phrasing; the chart link was already
added to the docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The two Fixed bullets refined behavior introduced in this same
unreleased version, so per the changelog guidance they don't belong as
Fixed entries. The palette-management e2e spec ran green in a real
Chromium (Playwright v1.60.0 container): supplier group + disclaimer,
clone with name inheritance, eye toggle to 29/30, reload persistence.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Feat/issue 26 suppliers palette and better management
…f-feedback

# Conflicts:
#	src/hooks/useProfileManager.ts
#	src/lib/profileManager.ts
Add iterative palette proof calibration

@vycdev2 vycdev2 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comprehensive review — changes requested

I reviewed all 165 changed files / 149 commits (+34,753 −4,660) across the optimizer and optical model, profile/evidence persistence, Palette Proof and Stack Matrix calibration, 2D editing, 3D meshing/export, Tauri integration, routing/docs, accessibility, dependencies, packaging, and tests.

Blocking/high-impact findings

  • The checked-in deterministic auto-paint golden is stale, so the clean unit suite is red.
  • The settings smoke test is stale after adding the multi-plate switch, so the clean E2E suite is red.
  • A late Stack Matrix photo decode can repopulate state for a different matrix/profile and allow calibration data to be saved to the wrong owner.

Other actionable findings

  • Golden fixtures use the global profile version instead of the TD/HD migration boundary.
  • Imported closest-cell judgments accept unbounded duplicate IDs and materialize duplicate exact anchors.
  • Image export races the new touch-up commit round trip.
  • Schema-valid touching-cell reinforcement geometry feeds overlapping holes to triangulation and generates excess/overlapping faces.
  • One internal documentation link has no target.
  • The changelog overstates both the multi-plate implementation and the completeness of the dependency-security cleanup.

Verification

  • npm run lint: passed.
  • npm run build: passed.
  • Clean-head focused export smoke: 1/1 passed (STL + 3MF).
  • Clean-head auto-paint golden test: failed deterministically on the repeated B&W/logo case.
  • After regenerating only the stale golden fixture: 453/453 Node tests passed.
  • After changing only the stale modal-focus expectation as well: 11/11 smoke E2E tests passed. These modified-worktree results are not presented as clean-head passes.
  • npm audit --omit=dev: 0 findings; full audit: 4 high, fixable development/build findings.
  • cargo metadata --locked: passed. cargo check --locked reached native dependency compilation but could not complete because this host lacks glib-2.0 >= 2.70; that is an environment limitation, not a PR finding.
  • git diff --check: passed; the review checkout remained clean at the exact PR head.

See the inline comments for reproductions and requested fixes.

This was generated by an AI agent (vycdev2). Please verify any changes before merging or applying.

Comment thread tests/assets/auto-paint-goldens.json
Comment thread tests/autoPaintGoldenFixtures.ts Outdated
Comment thread src/components/StackMatrixCalibrationPanel.tsx
Comment thread src/lib/appearanceProfile.ts
Comment thread src/components/CanvasPreview.tsx
Comment thread src/lib/paletteProofGeometry.ts
Comment thread tests/e2e/landing.spec.ts Outdated
Comment thread src/docs/calibration-theory.md Outdated
Comment thread CHANGELOG.md Outdated
Comment thread CHANGELOG.md Outdated
@vycdev2

vycdev2 commented Aug 9, 2026

Copy link
Copy Markdown

Review complete: changes requested

I reviewed all 165 changed files and posted 10 inline findings. The main blockers are:

  • the clean auto-paint golden suite is red because one deterministic fixture is stale;
  • the clean smoke E2E suite is red because the settings focus expectation predates the new switch;
  • a late Stack Matrix photo decode can write calibration state into a different active matrix/profile.

The remaining inline findings cover profile/evidence sanitation, touch-up export timing, Palette Proof geometry, fixture migration, docs, and release/dependency claims.

Full review: #64 (review)

This was generated by an AI agent (vycdev2). Please verify any changes before merging or applying.

@vycdev2 vycdev2 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow-up adversarial pass on the unchanged PR head found six additional, independently validated issues: two P1 correctness/resource blockers (touch-up history coalescing and unbounded calibrated TDs), plus four P2 import/default/accessibility defects. I used focused browser and module-level probes for the executable cases and withheld speculative, unreachable, or duplicate candidates.

This was generated by an AI agent (vycdev2). Please verify any changes before merging or applying.

Comment thread src/components/CanvasPreview.tsx Outdated
Comment thread src/lib/calibration.ts Outdated
Comment thread src/components/StackMatrixCalibrationPanel.tsx Outdated
Comment thread src/lib/paletteManager.ts Outdated
Comment thread src/lib/profileManager.ts Outdated
Comment thread src/components/PaletteProofImageTargetPicker.tsx
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.

6 participants