Skip to content

Release v3.2.0 - #64

Draft
vycdev wants to merge 149 commits into
mainfrom
develop
Draft

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

Conversation

@vycdev

@vycdev vycdev commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • Release Kromacut v3.2.0 from develop into main.
  • Adds camera-free frontlit filament calibration, Hiding Distance migration, enhanced auto-paint optimization, 2D touch-up tools, collapsible controls, 3D inspection modes, a new landing page and /app route, and experimental multi-plate support.
  • Includes export, meshing, profile-validation, dependency-security, and routing reliability improvements.

Why

This promotes the completed v3.2.0 integration work to the release branch while keeping final release preparation visible and reviewable before merge.

User impact

Users gain a more accurate filament-calibration and auto-paint workflow, richer image and preview controls, improved web navigation, and more reliable STL/3MF output.

Validation

  • npm test — 339 tests passed
  • npm run lint
  • npm run build
  • npm run test:e2e

Release checklist

  • Replace “unreleased” with the v3.2.0 release date in CHANGELOG.md
  • Remove the duplicate “Frontlit filament calibration” changelog entry
  • Complete final browser and desktop release smoke tests

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.
vycdev and others added 30 commits July 26, 2026 22:46
- Supplier filament data (Bambu Lab PLA Basic) surfaced as built-in
  supplier palettes in the quantization dropdown and read-only filament
  profile templates in Auto-paint
- Per-color enable/disable toggles on custom palettes via an additive
  disabledColors field (.kpal format v2, backward compatible)
- Clone button copying any palette (built-in, supplier, custom) into an
  editable custom palette, with hsl->hex normalization
- Shared deduplicateName helper extracted to nameUtils; reserved-id
  guards so imported files cannot claim built-in ids
- Unit tests for paletteManager and supplierFilaments; docs + changelog

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every color row in the palette editor gets an optional display name
(e.g. "Pumpkin Orange"), stored as an additive colorNames field in the
palette and its .kpal export. Names surface as tooltips on dropdown
chips, survive cloning, and supplier palettes carry their real filament
names so cloning one yields a fully named custom palette.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Verified against Bambu Lab's published Filament Hex Code Table PDF:
all 21 existing hexes were correct, but the line has 30 colors. Adds
the 9 missing ones (Hot Pink, Pumpkin Orange, Sunflower Yellow, Bright
Green, Cocoa Brown, Maroon Red, Turquoise, Cobalt Blue, Indigo Purple),
reorders to match the chart, and uses the official "Blue Grey" spelling.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Loading a filament template now shows a transient notice that its
hiding distances are color estimates and should be calibrated before
printing. Docs gain a color-accuracy caveat (advertised hex vs printed
filament) and a trademark/non-affiliation statement for supplier names.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Reserved sup_/tpl_ prefixes move to src/lib/reservedIds.ts (data
  re-exports them); storage loads and file imports now re-assign a
  fresh UUID to any reserved-prefixed id, so stale or crafted ids can
  never shadow built-ins or become undeletable
- Palette import remaps disabled indices and color names when invalid
  color entries are dropped, keeping per-color data attached to the
  right color
- Editing a legacy palette stamps the current format version
- ControlsPanel prop types match the real create/update signatures;
  drop duplicate isTemplateActive from useProfileManager's return
- Move the new feature bullets to the changelog's Added section

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The "Number of Colors" input only updated on dropdown re-selection, so
editing, toggling, cloning, or importing the selected palette left a
stale count on screen. Display-only: quantization always used the
palette's actual colors. An effect in App now keeps the postprocess
target aligned with the selected palette's enabled color count.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 4-second load pill was too easy to miss. While a template is the
active profile, an amber notice under the profile toolbar now stays
visible: hiding distances are color estimates to calibrate before
printing, colors are advertised values, and Save as new profile makes
an editable copy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The trademark/non-affiliation statement was docs-only. A small muted
caption now sits directly under the "Supplier Palettes" group header in
the palette dropdown and the "Templates" group header in the Auto-paint
profile dropdown - visible exactly where supplier brand names appear.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Opening the Save New popover now suggests "<active name> (copy)"
(numeric suffix if taken) forked from the active profile or template,
so keeping a customized template is a two-click operation. Empty when
no profile is active.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- 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
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