Weekly report
Frappe and ERPNext changes, 29 Jun to 5 Jul 2026
39 changes merged: 8 new features, 19 fixes, 12 refactors.
Highlights
- feat Editor's pick Standard helper to render buttons `frappe.ui.button(opts)` creates Espresso-style button wired with onclick handling, promise handling, and loading states; also available as markup via `.html(opts)`.
- feat Make field cards fully draggable in print format builder Drag fields by the whole card instead of only the grip handle; interactive elements are excluded; shows grab/grabbing cursor; browser back closes preview.
- feat Add section margin support with per-side spacing control in print format builder Adds margin support for sections rendered in builder preview and print output; replaces four-stepper padding grid with reusable SpacingRow component; adds table border options.
- fix Dashboard chart crashes when filters_json is a dict Report-type Dashboard Charts could fail to load when filters_json contained a dict instead of a list; validation now checks `isinstance(filters, list)`.
- fix Settings dialog panel scroll Settings dialog scrolling broke when there were multiple entries and some setting was enabled.
See all 9 changes
- fix Show user picker for assignment filter values Filtering by Assigned To or Liked By required manually entering exact email; now shows a User Link picker for search and selection.
- fix Remove outer table border in plain style print output Bootstrap's `table-bordered` double-bordered the header in plain table style and didn't match the builder preview; removed outer border and standardized header underline.
- fix Preserve tree view expansion state on back-navigation Opening a tree, expanding nodes, then navigating back always rebuilt the tree from root, collapsing every expanded node.
- refactor Split field inspector into panels Split FieldInspector.vue (1710 → ~260 lines) into mode-specific panels; extract store concerns into composables and utils; consolidate inspector CSS; drop redundant footer buttons.
- feat Editor's pick Shop floor interface for operators Touch- and keyboard-friendly screen for factory floor supervisors and machine operators to view work orders and manage job lifecycle.
- fix Race condition in process pcv Process PCV gets stuck in Running state when 2 jobs create a race condition on the summarization step; MariaDB 11.6+ has snapshot isolation enabled by default causing lock timeout on PPCVD updates.
- fix Type cast error on postgres Clicking on cost center field throws error; Postgres doesn't support `like` operator on `smallint` fields.
- fix Reset_mode_of_payments raises AttributeError on a POS Invoice Calling reset_mode_of_payments on a draft POS Invoice raises AttributeError because the method checks `doc.is_created_using_pos`, a field that only exists on Sales Invoice.
- fix Item form permission errors Opening an Item form as a user with read access but no access to Item Price/Warehouse threw unhandled permission error popups instead of hiding restricted sections.
See all 13 changes
- fix Warning message for new item standard cost fix: warning message for new item standard cost
- refactor Add coverage for Contract Template test: add coverage for Contract Template
- refactor Add coverage for CRM Settings test: add coverage for CRM Settings
- refactor Cover Exchange Rate Revaluation validation and gain/loss paths test: cover Exchange Rate Revaluation validation and gain/loss paths
- refactor Cover Stock Reservation Entry validations and helper test: cover Stock Reservation Entry validations and helper
- refactor Cover untested Payment Entry field validations test: cover untested Payment Entry field validations
- refactor Add coverage for Bisect Accounting Statements test: add coverage for Bisect Accounting Statements
- refactor Add coverage for Repost Payment Ledger test: add coverage for Repost Payment Ledger
- fix Revert "fix(onboarding): trigger FC setup-complete from on_login instead of after_insert" Existing FC user creating a signup site as admin were unable to access desk; reverts problematic onboarding changes.
- refactor Backport frappe-ui v1.0.0-beta.19 to main-hotfix Combined backport of frappe-ui v1 migration and Tree fix; submodule 61d6228 → 637e6cf1.
- refactor Minor Release v1.77.0 chore: Minor Release v1.77.0
b
Builder
1 fixes
o
Other
4 new features · 6 fixes · 1 refactors
- feat Add checkbox cells Google-Sheets-style checkboxes in Sheets; a new data-validation rule that reuses existing validation engine and renders as canvas chips.
- feat Paste tables from external apps via the HTML clipboard flavor Sheets can now paste structured tables from Excel Online, Google Sheets, Gameplan, or web pages; prefers HTML flavor over tab-delimited plain text.
- feat Surface knowledge base descriptions to the agent in the search tool Flow Knowledge Base `description` field now fed to the model; appends each bound KB's title and description to search_knowledge tool so agent knows what knowledge exists.
- feat Redesign the assistant chat and tool-call UI Sequential non-approval tool calls collapse into one line; arguments render as a compact table; approval requirement now comes from agent's tools instead of hardcoded frontend.
- fix Commit before model call so concurrent turns don't hit lock timeout Non-streaming chat held the request's DB transaction open across the model call, causing Flow Session row locks for the run's duration and blocking concurrent turns until lock timeout.
See all 11 changes
- fix Delete linked flow runs when a session is deleted Deleting a Flow Session left its Flow Runs orphaned; now cascade-deletes linked runs in `FlowSession.on_trash`.
- fix Right align join button fix(meet): right align join button
- fix Undo of an external paste reverts only the anchor cell Pasting a multi-row text block into a single cell worked, but undo removed only the anchor cell and left every other pasted row.
- fix Hide model api key/base url when a provider is linked, clarify field help Model form showed API Key and Base URL fields even when a Provider was linked, though the Provider already supplies both.
- fix Redirect space URL to first page in sidebar order Visiting a space URL redirected to the first descendant in NestedSet order, not the first page in sidebar sort order; now walks the same tree the sidebar renders.
- refactor Add examples to trigger condition and prompt template field help Add concrete examples to Flow Trigger field descriptions clarifying available scope and expected syntax.