The latest Duro releases and improvements.
Change orders got smarter about keeping you in the loop — and keeping you out of trouble.
Change order validation webhook. New CHANGE_ORDER_VALIDATION_COMPLETED event fires when validation finishes, whether it passes or fails. Ships with the full validation state and an isValid flag. If you're automating approval workflows, you can now react immediately instead of polling the API every few seconds hoping something changed.
Off-change-order edit warnings. Editing a child part that's already on a change order? If you open it directly instead of through the CO, we'll warn you. Catches the surprisingly common "wait, I thought I was editing through the change order" mistake before you accidentally fork your work.
Vendor search just got smarter. You can now filter sourcing by vendor in either role — manufacturer or distributor — and the system matches vendor names loosely. Search "TI" and you'll find "Texas Instruments." Search "Molex" and you'll catch "Molex LLC." It works the way you'd expect it to.
Vendor search in sourcing — Filter by vendor as manufacturer or distributor. Vendor names match loosely, so abbreviations and full names land in the same results.
Faster part imports — When importing parts matched on CPN or EID, Name and Category are now optional. Less typing, fewer clicks.
BOM export variants — New option to include permitted variants in BOM exports.
Integrations menu access control — Users without view access now see greyed-out menu entries. Edit controls are hidden if you don't have configure access.
Drive module live — The Drive module is now available.
Fixed an issue where vendor pair filters could drift out of sync after vendor renames or sourcing updates.
Fixed search results getting silently truncated when part data exceeded message size limits.
Search just got more useful. Component filters now rank results by how well they match your query — exact matches first, then prefix matches, then substring hits. The ranking holds through grouped previews and paginated results, so the best matches stay at the top no matter how far you scroll.
Component search ranks by relevance. Exact matches surface first, followed by prefix matches, then substring hits. The ranking persists through grouped views and pagination — load more results and the best matches stay on top.
Altium library names now pull from your PLM configuration context. The library name comes from the Context field in your PLM config, with the configuration URL as fallback. Cleaner mapping between Altium and Duro.
Change order validation refreshes all open viewers. When someone validates a change order, everyone else viewing it sees the updated state immediately. No stale data, no manual refresh needed.
The org member list used to load users one at a time — every member on the page triggered its own database call. If you had 50 people in your org, that's 50 separate round trips. Now it batches everything in one go. Pages with large member lists load noticeably faster.
Member list errors now explain themselves. If the list fails to load, you'll see why — and get a retry button instead of staring at a blank screen.
Drawers that open before data arrives handle it gracefully. The teams drawer no longer flashes stale state if you open it mid-load. It waits for fresh data and offers retry if the fetch fails.
Altium imports now enforce revision order. If you try to bring in a Design item with a revision that's lower than what Duro already has, the import fails. No more conflicting revisions slipping through — the revision field finally works like an actual version number.
Revision validation on import. Duro checks that incoming Design revisions are higher than what's already in the system. If they're not, you get a duplicate-update conflict and the import stops. Revisions behave like a strictly increasing sequence now.
Shared part counters across variants. When you create PCBAs, PCBs, and EBOMs together, they pull from the same running number. No more gaps in your part sequences when variants are involved.
Smarter conflict resolution for revisions. When two revisions differ, Duro now compares them segment by segment — so "A.1" and "A.2" sort correctly instead of throwing format errors.
Altium import retries gracefully. If a batch create with variant slots fails, the import automatically retries with one item per category. Keeps your part numbering intact even when things don't go as planned.
We tightened up vendor approvals and made concurrent imports less confusing.
Vendor approval now requires explicit permission. If you've been approving vendors, you'll need the sourcing.vendor.status_change permission going forward. Check your role settings — if you had approval access before, your admin may need to grant it explicitly now.
The import wizard warns you if another import is already running. No more mysterious conflicts when two people try to import at the same time. You'll see a notice on step one.
Rate limits now protect API traffic, with clear handling when a limit is reached.
Change-order templates can be disabled while remaining visible for history.
BOM release history now preserves pinned child revisions and uses the latest released sibling revisions.
Altium conversions no longer lose custom attributes whose names match reserved properties.
BOM and change-order workloads use more efficient database access, reducing the risk of system-wide slowdowns under load.
Priority-based sourcing is here. You can now add a Priority column to your sourcing imports — Duro ranks each item's sources in the order you specify, then merges that ranked list into the item's existing sources. No more manual reordering after the fact.
What's new
Priority column on sourcing imports. Add a Priority column to your CSV. Duro validates it during prep, applies the ranking on import, and shows you which rows succeeded or failed. Your sources land in the order you want them.
Named assembly-row locks. The lock icon in the UI now tells you what action is holding the lock — editing, reviewing, whatever. No more wondering if someone's actively working or just left a tab open.
Rate limits used to fail silently — or worse, cryptically. Now when you hit one, Duro tells you exactly what happened: which credential type triggered it (API key or bearer token), the reason, and when you can retry. No more detective work.
Rate limit errors are specific now. When a degraded line appears, you'll see which credential hit the limit and how long until you can try again. The old vague "something failed" message is gone.
Vendor Components tab runs on live data. The sourcing UI now queries the Component model directly instead of maintaining a separate vendor-specific copy. Same interface, more reliable foundation.