CAD settings just got more useful — when you create or update a component from Altium or Onshape, Duro now applies your configured label automatically — no more manual tagging after the fact.
What's new
Auto-applied CAD labels. Both Altium and Onshape integrations now respect your CAD label settings when creating or updating components. The label you configured is the label you get.
Category mappings in Altium. Your CAD settings category mappings now work in Altium PCB and EBOM flows. Parts land in the right buckets from the start, matching the behavior you already have in Onshape.
Email validation in change order templates. The CO template YAML editor now validates email fields and cleans up legacy formats. Less time fighting with YAML syntax.
Fixes
Fixed a race condition where component updates in Altium could fail with stale label conflicts. Now retries once and moves on.
Fixed an issue where the component cache could repopulate itself mid-invalidation. When you clear the cache, it stays cleared.
Stopped generating component part numbers when label assignment was going to fail anyway. No more orphaned counters.
CAD integrations just got more flexible. You can now map Duro labels to CAD properties yourself — no more fighting with hardcoded assumptions about what your "Description" field should be called.
CAD label mapping. Tell your integration which Duro label corresponds to each CAD property. Configure it once in your integration settings, then sync parts without renaming your labels to match our defaults.
New default part numbering. If you're using non-intelligent company part numbers, new parts default to 6-digit format. Existing parts and custom schemes stay exactly as they are.
Unique attribute values. Attributes can now enforce uniqueness — useful for serial numbers, asset tags, or anything else that shouldn't repeat. The validator is smart about it: case-insensitive for text, handles numeric precision correctly.
Fixed a bug where deleted labels could break forms if they were still referenced in saved data. The form now detects stale references and cleans up gracefully.
Part updates no longer send thumbnail data when the image hasn't changed. Small fix, but it keeps mutations lean.
The Component Diff Tool is here. Click into any component's history, pick two versions, and see exactly what changed — attributes, files, revisions, all side-by-side. Additions in green, removals in red, modifications inline. Built for the moment when someone asks "what changed between these two releases?" and you actually want to answer them without opening six tabs.
Component Diff Tool — Compare any two component versions side-by-side with inline change highlighting. No more reconstructing timelines from audit logs.
Onshape sync — Version syncing is more reliable. Fixed edge cases in revision sync that previously failed silently.
Import error handling — When you import a part without a revision scheme, you now get a proper empty state with a button to configure one — not a cryptic error message.
Sourcing tab — Moved it after Documents in the component view. Matches how people actually navigate.

Admins now have real control over who gets into their org. The new auto-discovery invite settings let you set policy by email domain — auto-invite teammates, require approval for contractors, or block randoms entirely. Set it once, stop fielding Slack messages about access.
Custom org invite policies. Control how people with matching email domains join: auto-invite, require approval, or block. No more "who let this person in?" fire drills.
Type-ahead search in CAD settings. Start typing to find categories instead of scrolling through hundreds of options. Finding "Fasteners > Metric > M8" now takes two seconds.
Export file type filtering. Choose which file types to include before you export. Skip the PDFs you'll never open.
Opening a Change Order with a deep bill of materials used to be a gamble. Click the Items tab, watch the spinner, hope the database doesn't give up first. Large assemblies — especially nested ones — would time out or just hang.
Not no mo!
Change Order Items tab loads instantly, even for complex BOMs. We rewrote how the system fetches assembly data. Instead of pulling the entire product structure into memory at once, it now loads only what you're actually looking at. Deep hierarchies that used to choke the database now open without hesitation. No more timeouts. No more waiting.
That's it for this one — a single fix, but one that removes a real friction point if you work with assemblies of any complexity.
We deployed a schema fix to keep our federated graph in sync. Nothing changed in the UI or API — this was purely infrastructure maintenance to prevent issues down the line.
If you didn't notice anything, that's the point.
BOM cost rollup is live. You can now aggregate component pricing and lead times up the assembly tree — on demand, no waiting. Request a rollup for any assembly and get the full calculation in real time. This is the foundation for quote-level cost analysis.
What's new
BOM cost rollup. Sourcing aggregates component costs and lead times on demand. Select an assembly, request the rollup, and see the full tree calculation immediately. No background jobs, no waiting.
Per-row import diagnostics. Import summary CSVs now include row-level results — what passed, what failed, and why. Download the full report from the import progress view. Makes debugging large imports actually manageable.
Wizard import history tracking. Change history now populates correctly for wizard-driven imports. Previously these showed up blank in the audit log. Now you get the full record.
Fixes
Fixed timeouts when loading large assemblies with deep BOM structures. Deep trees now load reliably.
Fixed an issue where imports with 100k+ rows could fail to generate result CSVs. Large import reports now download without issue.

Variants are live! You can now define multiple configurations of a component — different materials, sizes, colors, whatever dimensions matter to your product — and manage them as a family instead of duplicating parts across your workspace.
Variant comparison. New tab on component pages shows side-by-side diffs across all variants in a set. See what's different — attributes, assemblies, attached files — in one view.
"Has variants" filter. Component search now lets you filter to parts with variants defined. Helpful when you're auditing coverage or looking for examples of how other teams structured their variant families.
Change Order version naming control. Onshape integration now respects a workspace-level setting for how CO versions get named in your CAD system. For teams with strict naming conventions that need to carry through.
Session recovery. If your auth token expires mid-workflow, the app now refreshes it automatically instead of bouncing you to login. Less disruptive during long-running operations.
Tightened up the variant tab layout to match the rest of the component detail page.
Fixed edge cases where draft change orders would incorrectly block component updates.
Cleaned up a race condition in token refresh that could cause unpredictable auth behavior.
RefDes validation improving, allowing duplicate values across assemblies