Skip to content

v3.2.0 — Editor Consolidation & Cost Accuracy

Choose a tag to compare

@Blb3D Blb3D released this 25 Feb 14:48

Highlights

Single routing editor — Replaced 5 duplicate BOM/routing editor components with one RoutingEditorContent, cutting ~2,850 lines of duplicated code. The same component now powers both the Items page (modal) and BOM page (embedded).

Material cost accuracy — Fixed a UOM conversion bug where filament material costs were ~1000x too high. The unit_cost property now correctly divides by purchase_factor (e.g., $20/KG ÷ 1000 = $0.02/G).

Datetime stability — Resolved timezone naive/aware mismatches across 9 locations in 7 backend files that could cause TypeError crashes on quote expiration checks, production operation completion, command center overrun detection, and more.

What's Changed

Refactored

  • Consolidated BOM/routing editors: 5 components → 1 RoutingEditorContent (#358)

Fixed

  • Material unit_cost now divides by purchase_factor for correct UOM conversion (#358)
  • Fulfillment queue material consumption had the same UOM bug (#358)
  • Timezone naive/aware datetime mismatches in quote expiry, auth token purge, password reset, command center, operation completion, maintenance checks, inventory approval, fiscal period close (#358)
  • Work center rate field mismatch: unsaved operations showed $0.00 cost (#358)
  • Operation rows now use backend-computed calculated_cost; materials show extended_cost (#358)
  • CodeRabbit review fixes: stale closure, fetch fan-out, embedded save, stale materials (#358)
  • BOM page material save restored (#357)

Performance

  • Fixed N+1 query patterns in items list and dashboard (#356)

Added

  • Dev seed script for local development (#355)
  • Walkthrough screenshot Playwright tests (#355)

Dependencies

  • 12 dependency upgrades via Dependabot consolidation (#354)

Full Changelog: v3.1.1...v3.2.0

37 files changed | +3,511 | -4,134 (net -623 lines)