Updated daily

What's New in Frappe

Every notable change across the Frappe ecosystem.

Updating…

Yesterday — Sunday, September 6

ERPNext 38.9k 3 updates
fix accounting 1 day ago

Restore hover tooltip on Profit and Loss dashboard chart

Restores hover tooltip functionality on P&L dashboard charts.

@Shllokkk #58769 Read
fix stock-manufacturing 1 day ago

Show actual outgoing rate in ledger preview

Displays actual FIFO outgoing rates instead of average valuation rate and formats as currency in stock ledger preview.

@Afsalsyed #58700 Read
fix accounting 1 day ago

Check write permission in whitelisted document methods

Adds `check_permission("write")` to whitelisted document methods that mutate data, preventing unauthorized modifications.

@rohitwaghchaure #58701 Read
Frappe 10.7k 3 updates
feat ui-ux 1 day ago

Let an app mount its own UI inside a desk page

Enables apps to mount Vue UI with frappe-ui in shadow roots within desk pages, isolating styling and dependencies from the framework.

@nextchamp-saqib #41714 Read
fix ui-ux 1 day ago

Constrain captured image size in camera preview

Constrains preview image dimensions in camera upload dialog to prevent overflow and stacking across grid columns.

@kaulith #42518 Read
fix ui-ux 1 day ago

Make capture preview remove control readable over photos

Updates camera preview close button styling to remain visible over dark backgrounds.

@kaulith #42529 Read
Insights 1k 1 update
fix other-apps 1 day ago

Accept a numeric workbook name on insert

Handles legacy numeric workbook names from old fixtures to prevent `bench migrate` failures when syncing.

@nextchamp-saqib #1367 Read
o Other 7 updates
feat other-apps 1 day ago

Add disk throughput and IOPS limits

Adds disk throughput and IOPS limit controls for metal VMs.

@tanmoysrt #192 Read
feat other-apps 1 day ago

Add support for traffic bandwith limit and ip attach/detach

Adds traffic bandwidth limits for public and private internet, cleans up egress options, and enables public IP attach/detach without VM restart.

@tanmoysrt #191 Read
feat other-apps 1 day ago

Integrate Atlas WG Mesh

Integrates WireGuard mesh for private tenant networking, builds metald and wg-mesh binaries locally, and auto-configures machines from warm snapshots.

@tanmoysrt #193 Read
feat other-apps 1 day ago

Add query and index analysis to the DB analyzer

Adds read-only performance analysis covering time-consuming queries, full table scans, unused indexes, and redundant indexes via Performance Schema.

@sadiqxansari #429 Read
fix ui-ux 1 day ago

Re-evaluate slot-derived computeds when a slot toggles

Fixes TextInput prefix and suffix icons rendering incorrectly when toggling visibility.

@netchampfaris #1093 Read
fix ui-ux 1 day ago

Ignore a file dropped on a read-only editor

Prevents file uploads and image insertion into read-only editors, which were incorrectly mutating document content.

@netchampfaris #1124 Read
fix other-apps 1 day ago

Remove backtick notation from order_by

Removes invalid backtick notation that was returning HTTP 417 errors across multiple page routes, blocking site access.

@netchampfaris #3 Read

Friday, September 4

ERPNext 38.9k 2 updates
feat accounting 3 days ago

Disabled marker and cost center parity in tree views

Shows disabled status as badges in Account and Cost Center tree views; makes Account Type visible in previews and adds cost center parity.

@sumitjain236 #58726 Read
feat accounting 3 days ago

More sidebar improvements

Adds general sidebar enhancements.

@sokumon #58729 Read
Frappe 10.7k 14 updates
feat framework 3 days ago

Draw a navigation item's authored icon

Renders authored navigation item icons that were defined and shipped but not drawn in the UI.

@shariquerik #42468 Read
feat framework 3 days ago

Keep the reader in the panel they are already in

When a navigation destination exists in multiple panels, keeps the reader in their current panel instead of always switching to one panel.

@shariquerik #42476 Read
feat framework 3 days ago

Open a shut section the address is standing in

Fixes sidebar section expansion so a section automatically opens when the address points to an item within it, even if keep_closed is set.

@shariquerik #42478 Read
feat framework 3 days ago

Weigh each boot key and log the ones over budget

Implements boot budget checking by logging each key's size and flagging those exceeding the 40 KB budget.

@shariquerik #42482 Read
feat ui-ux 3 days ago

A history entry carries the sidebar it was read in

Fixes back button navigation for items that appear in multiple sidebars by storing which sidebar the page was opened in.

@shariquerik #42491 Read
fix framework 3 days ago

Typecast ref_name and docname

Updates autoincrement doctypes with correct typecasting for ref_name and docname fields.

@sokumon #42477 Read
fix framework 3 days ago

Give parent docs identity to link child table with attach field

Fixes file attachment linking in child table fields by ensuring parent documents have proper identity.

@Bowrna #42163 Read
fix framework 3 days ago

Quote boolean literals so they work as conditions too

Quotes boolean literals in SQL conditions to fix postgres type errors when booleans are used in WHERE clauses.

@Abdeali099 #42409 Read
fix framework 3 days ago

Keep the right column aligned across rows

Fixes list view layout where timestamps, comment counts, and avatars had variable widths, misaligning columns.

@sumitjain236 #42466 Read
fix framework 3 days ago

Duplicate intro messages on first save of new document

Deduplicates intro messages that were being shown multiple times on first document save.

@kaulith #42481 Read
fix framework 3 days ago

CSV conversion of prepared report fails when report has total row

Handles list-format total rows in CSV conversion that was expecting only dict rows.

@kaulith #42411 Read
fix framework 3 days ago

Escape in get_csv_bytes too

Escapes special characters when exporting CSV files to prevent formatting issues with leading characters.

@AarDG10 #42483 Read
fix framework 3 days ago

Translated doctype search repeats rows across pages

Fixes pagination for doctypes with translated fields, which previously repeated rows across pages due to filtering translated values in Python after SQL offset.

@kaulith #41855 Read
fix developer-experience 3 days ago

Add client_secret in blocklist of traceback_sanitizer

Masks client_secret credentials when they appear in error tracebacks to prevent credential leakage.

@AarDG10 #42458 Read
HR 8.7k 3 updates
fix hr-payroll 3 days ago

Set print_format_for to doctype in standard formats

Makes bundled print formats (Salary Slip variants) visible in the print dropdown by setting the print_format_for field.

@nareshkannasln #5099 Read
fix hr-payroll 3 days ago

Clear unused dates when Is Recurring is toggled

Clears hidden date fields in Additional Salary when toggling recurring mode to prevent false duplicate/overlap validation errors.

@akhtarmohsin #5190 Read
fix hr-payroll 3 days ago

Exclude cancelled Job Offers in JobApplicant.onload

Filters out cancelled job offers from job applicant UI to prevent linking to dead records.

@pratheep-bit #5019 Read
Helpdesk 3.4k 2 updates
fix other-apps 3 days ago

Write portal defaults without saving the whole document

Fixes migration failures by writing portal settings without validating broken link references in unrelated menu rows.

@aerodeval #3746 Read
fix other-apps 3 days ago

Stop mail loops from bounces and autoresponders

Prevents inbound mail loops by screening machine-generated messages and blocking replies to bounces and out-of-office responses.

@aerodeval #3628 Read
Insights 1k 1 update
fix other-apps 3 days ago

Native SQL queries with a CTE fail with "Duplicate query name"

Fixes ibis query compilation which was writing CTEs twice, causing sqlglot to reject duplicate names.

@nextchamp-saqib #1364 Read
p Press 563 3 updates
fix other-apps 3 days ago

Use parsed GitHub url when adding app in new app dialog

Parses GitHub URLs correctly when adding apps to prevent format-related errors.

@siduck #7374 Read
fix other-apps 3 days ago

Allow a pull update on a site with a large database

Enables app pull updates on large databases (108 GB+) without requiring a full physical backup.

@balamurali27 #7366 Read
fix other-apps 3 days ago

Don't archive a site when the archive step was skipped

Prevents accidental deletion of a site's backups and metadata when the archive step fails or is skipped, which was mistakenly treated as success.

@balamurali27 #7373 Read
o Other 10 updates
feat other-apps 3 days ago

Standardize app page metadata

Standardizes document titles and favicons across Suite apps with dynamic, workbook-aware metadata.

@BreadGenie #812 Read
feat other-apps 3 days ago

Retain html formatting when pasting text content

Preserves rich text formatting (lists, inline styles) when pasting between slides instead of stripping to plain text.

@BreadGenie #815 Read
feat other-apps 3 days ago

Scroll table horizontally when columns exceed width

Allows horizontal scrolling of tables when added columns exceed viewport width instead of shrinking all columns.

@Jeesha09 #566 Read
feat ui-ux 3 days ago

Number card target and delta prefix

Adds optional `target` field to show target value and `deltaPrefix` for units in NumberCard; removes per-series emphasis on axis chart hovers.

@nextchamp-saqib #1115 Read
feat other-apps 3 days ago

Introduce Project

Adds a new Project feature to the billing module.

@shadrak98 #298 Read
feat other-apps 3 days ago

QOL sidebar shortcut

Adds Cmd+B keyboard shortcut to toggle the sidebar across the app.

@prathameshkurunkar7 #308 Read
feat other-apps 3 days ago

Storage cluster stage handling

Adds state toggles at every storage cluster stage for better recovery from failed deployment states.

@Aradhya-Tripathi #11 Read
feat other-apps 3 days ago

Ask how far a recurring change reaches

Unifies the dialog for recurring calendar event changes (edit, drag, delete, RSVP) with consistent UI asking whether to modify one instance or the entire series.

@krantheman #809 Read
feat other-apps 3 days ago

Drive the pictures sidebar from the Theme doctype

Makes theme categories configurable via the Theme doctype with Show in Pictures Sidebar and Sidebar Order fields, eliminating hardcoded sidebar lists.

@netchampfaris #2 Read
fix other-apps 3 days ago

Stop task detail blanking on server-scoped tasks

Fixes task detail page going blank for server-scoped tasks by removing undefined route reference.

@sadiqxansari #449 Read

Thursday, September 3

ERPNext 38.9k 17 updates
feat accounting 4 days ago

Contribute the Default Company navigation item kind

First navigation item kind from a non-frappe app; demonstrates that extensibility is first-class with a two-file, one-hook contribution.

@shariquerik #58717 Read
feat accounting 4 days ago

Ship ERPNext's module-primary rail and its module sidebars

Ships one Rail record (20 items) and 18 module Sidebar records (317 rows); ERPNext navigation arrives as JSON with no navigation code.

@shariquerik #58713 Read
fix accounting 4 days ago

Skip zero quantity items in production plan material requests

Backports v16 behavior to v15: zero-quantity rows stay in Production Plan for bin reservation but are skipped when creating Material Requests.

@krishna-254 #58642 Read
fix stock-manufacturing 4 days ago

Allow creating stock closing balances

Non-Administrator users were getting permission failures when generating Stock Closing Balance records.

@krishna-254 #58590 Read
fix stock-manufacturing 4 days ago

Rearrange fields in BOM Operation

fix: rearrange fields in BOM Operation

@rohitwaghchaure #58683 Read
fix accounting 4 days ago

Check read permission on lead in add_lead_to_prospect

The method wasn't checking whether the user could read the lead before converting it to a prospect.

@Shllokkk #58684 Read
fix stock-manufacturing 4 days ago

Prorate landed cost charge into transaction currency

Landed cost charge GL entries were using the entire item net amount instead of the applicable charge when posting in transaction currency.

@ervishnucs #58575 Read
fix accounting 4 days ago

Use company-currency change amount when netting pos gl entries

Multi-currency Sales Invoices were netting POS change amount in invoice currency instead of company currency, producing incorrect GL entries.

@ervishnucs #58599 Read
fix accounting 4 days ago

Include payment deductions in sales/purchase register ledger bal…

Sales Register ledger view incorrectly showed discounted amounts as outstanding customer balance when payment entries posted discounts to Sales Discount accounts.

@ervishnucs #58437 Read
fix stock-manufacturing 4 days ago

Filter cancelled BOMs in BOM Stock Analysis

The BOM selector was including submitted but now-cancelled BOMs.

@krishna-254 #58647 Read
fix accounting 4 days ago

Filter fully ordered items when creating RFQ from Material Request

RFQ creation was copying all items including those fully covered by POs; now filters on pending qty like the PO flow does.

@Shllokkk #58534 Read
fix stock-manufacturing 4 days ago

Use item warehouses in production plan work orders

Work orders from a production plan were using the sub-assembly target warehouse as source for all raw materials instead of respecting each item's defaults.

@Pandiyan5273 #58663 Read
fix accounting 4 days ago

Validate contact email before saving an email campaign

Email campaigns for contacts with no primary email were saving and silently failing to send; now validates email presence first.

@kaulith #58667 Read
fix stock-manufacturing 4 days ago

Subtract stock qty of same-document rows from batch availability

Batch filtering was subtracting transaction-UOM qty from stock-UOM quantities, allowing assignment of batches that can't cover alternate-UOM rows.

@mihir-kandoi #58669 Read
fix stock-manufacturing 4 days ago

Assign batch_no only when the first batch covers the full qty

Auto-pick was assigning a batch that couldn't fulfil the full quantity when qty spanned multiple batches; now leaves batch empty so the auto-created bundle splits it correctly.

@mihir-kandoi #58668 Read
fix stock-manufacturing 4 days ago

Preserve exchange gain loss journals in lcv

Submitting a Landed Cost Voucher was cancelling the exchange gain/loss Journal Entry it was meant to work with.

@Pandiyan5273 #58505 Read
fix accounting 4 days ago

Check write permission in whitelisted document methods

`run_doc_method` was only checking read permission; writes via `db_set`, `db_update`, and direct SQL were accessible to any read-permitted user.

@rohitwaghchaure #58689 Read
Frappe 10.7k 18 updates
feat ui-ux 4 days ago

Resolve desk v2 navigation into boot

New `frappe/shell/navigation.py` resolves rails and sidebars into boot, implementing the design settled by "Where does desk v2 resolve navigation layers?"

@shariquerik #42399 Read
feat framework 4 days ago

Let an app extend another app's rail, and drop mount_on

One app can now extend another app's rail while keeping its own; resolves the mounting and ordering question for multi-app navigation.

@shariquerik #42404 Read
feat framework 4 days ago

Render every navigation item kind, through the contribution door

All eight Navigation Item Type records now render in AppRail.vue instead of silently dropping seven of them; implements the contribution pathway.

@shariquerik #42425 Read
feat ui-ux 4 days ago

Filter desk v2 navigation on the bucket each item type declares

Builds the single navigation filter designed for "Filter an authored rail"; applies the bucket each item type declares.

@shariquerik #42431 Read
feat ui-ux 4 days ago

Draw the sidebar a linked rail item opens

Renders the sidebar panel that opens when clicking a linked rail item; implements charter point 1 of the rail/sidebar design.

@shariquerik #42430 Read
feat framework 4 days ago

Save a navigation arrangement as anchors, not positions

Desk v2's first user-state write: saves navigation arrangements (which items are pinned/hidden) as anchors rather than screen positions for consistency across devices.

@shariquerik #42410 Read
fix framework 4 days ago

Print format onboarding follow-ups

Print format builder had several follow-up fixes: unified empty-header check, restored letterhead margin in PDF, and copy-from-New-dialog fix.

@iamejaaz #42262 Read
fix framework 4 days ago

Give the IMAP sync rule test account a unique email id

Test was reusing an email already owned by another test account, causing backports to v15 (where email_id is unique on its own) to fail.

@kaulith #42408 Read
fix framework 4 days ago

Changing the file private/public should not throw FilealreadyExists error

fix(file): Changing the file private/public should not throw FilealreadyExists error

@Bowrna #42397 Read
fix framework 4 days ago

Correct typo. in cache invalidation key

User `allowed_in_mentions` changes weren't invalidating the cache because the handler checked the typo'd field name `allow_in_mentions`.

@AarDG10 #42389 Read
fix framework 4 days ago

Populate footer parent_label options on page load

Footer Items' Parent Label select stayed empty on page load and only populated after editing; mirrors the fix already applied to Top Bar Items.

@khushi8112 #41434 Read
fix framework 4 days ago

Open workspace by slug in Workspaces tab

Workspace routing was using raw names instead of slugs, causing lookups to miss and show 404s.

@khushi8112 #41928 Read
fix ui-ux 4 days ago

Apply the module veto to a sidebar addressed at that module

`block_modules` was gating Module items but missing Sidebar items addressed at blocked modules; now applies the veto consistently.

@shariquerik #42436 Read
fix framework 4 days ago

Force render_safe_globals context

Web pages no longer need to parse `exec_safe_globals` — `render_safe_globals` is sufficient for the use case.

@AarDG10 #42386 Read
fix framework 4 days ago

Remove request completely

fix(safe_exec): remove request completely

@AarDG10 #42387 Read
fix ui-ux 4 days ago

Use query builder for contact search

PostgreSQL couldn't execute the Contact link query's MySQL IF function; rebuilt with the query builder to work across databases.

@mihir-kandoi #42376 Read
fix framework 4 days ago

Read app data files as UTF-8, not the locale default

Fixes `UnicodeDecodeError` that blocked all site migrations when running under C/POSIX locales with ASCII encoding.

@gajjug004 #42165 Read
fix framework 4 days ago

Keep json payloads parseable

Ensures JSON payloads remain parseable, preventing data corruption during serialization.

@sokumon #42457 Read
CRM 3.5k 7 updates
fix crm-sales 4 days ago

Dim assignee, timestamp and favourite columns for visited rows

Visited-row dimming was only applied to text columns; now extends to assignee avatar, timestamp, and favourite heart columns, plus adds data patch for existing records.

@Shindhu-Ramaswamy #2767 Read
fix crm-sales 4 days ago

Manual backport of visited records dimming (#2693, #2767)

#2693 was never backported due to a merge commit; manually applied #2693 and #2767 to main-hotfix and fixed a subsequent migrate failure.

@ps173 #2769 Read
feat crm-sales 4 days ago

Add fetch_from support in fields

feat: add fetch_from support in fields

@ps173 #2763 Read
feat crm-sales 4 days ago

Add chart options API and update AddChartModal component

Moves chart definitions from hardcoded frontend to a backend API, providing an extension point for apps to contribute custom dashboard charts.

@trufurs #2416 Read
feat crm-sales 4 days ago

Ship CRM's rail and its four doctype sidebars

CRM's rail is now authored in source as standard rows instead of derived at runtime; implements the doctype-primary half of the navigation design.

@shariquerik #2771 Read
fix crm-sales 4 days ago

Prevent IntegrityError when syncing items without a standard rate

Item sync was writing NULL to the NOT NULL currency column when an item had no Item Price; now coerces the rate with `flt()`.

@Kie70 #2738 Read
fix crm-sales 4 days ago

Make website column clickable in Leads and Deals list views

Website field now opens URLs in a new tab instead of showing as plain text.

@Shindhu-Ramaswamy #2749 Read
Helpdesk 3.4k 2 updates
fix other-apps 4 days ago

Dedupe vue-router and dompurify for the linked @framework/ui

Building against frappe/ui source was failing because vue-router wasn't installed next to that source; added deduplication.

@aerodeval #3743 Read
fix other-apps 4 days ago

Move agents off an agent status when it is disabled

Disabling an HD Agent Status left agents stuck on it because the picker hid disabled statuses; now auto-moves them to the default status.

@aerodeval #3433 Read
Insights 1k 1 update
fix other-apps 4 days ago

Read the condition off the whole expression

Drill down on conditions with commas was parsing only up to the first comma; switched to a full-expression parser that respects nesting.

@nextchamp-saqib #1362 Read
p Press 563 3 updates
feat other-apps 4 days ago

Find sites with outdated framework in n days

Introduces a daily audit job that snapshots the aggregate count of sites with outdated framework versions.

@ssiyad #7360 Read
feat other-apps 4 days ago

Warning for outdated framework version

Shows a banner in bench and site dashboards if the Frappe Framework is more than 30 days old.

@ssiyad #7357 Read
fix other-apps 4 days ago

Print each site that loses its rate limit

The rate-limit removal patch was silent on success; now prints the site name after each successful config update.

@balamurali27 #7359 Read
o Other 15 updates
fix other-apps 4 days ago

Align writer and sheets navbars

Adds the shared app switcher, theme control, and account action to Writer and Sheets; aligns navbar chrome with Slides and adds editable Sheets breadcrumbs.

@BreadGenie #807 Read
feat other-apps 4 days ago

Better password set

feat: Better password set

@Aradhya-Tripathi #445 Read
feat other-apps 4 days ago

Build golden images

feat: Build golden images

@Aradhya-Tripathi #10 Read
feat other-apps 4 days ago

Atlas controller - Phase 1

Bare metal provisioning with Scaleway and Route53; adds server provider and DNS provider abstraction, HTTP proxy build, and automates wireguard + metal daemon setup.

@tanmoysrt #182 Read
feat other-apps 4 days ago

Warm snapshots + image promotion

VM snapshots, promotion to images, and cloning from warm snapshots; refreshes VM metadata on clone.

@the-bokya #184 Read
feat other-apps 4 days ago

Feat/timetable generation

Automated timetable generation for schools; administrators describe rules once and the generator builds conflict-free weeks, replicates across terms as Course Schedule records, and reports unplaceable items.

@EmilioCliff #491 Read
fix other-apps 4 days ago

Keep the broken-file-log compensation test off stderr

Test captured stderr printing, which made CI runners look like failures even though the test passed; now redirects stderr to a StringIO.

@s-aga-r #806 Read
fix other-apps 4 days ago

Time edits the event modal wouldn't take

Three issues: recurring event times were overwritten on save, DST transitions weren't handled, and date validation was missing.

@krantheman #805 Read
fix other-apps 4 days ago

Delete the site's push subscriptions when a user is disabled

Disabling a user now cleans up push subscriptions on the mail server so they can't accumulate orphaned entries.

@s-aga-r #811 Read
fix other-apps 4 days ago

Let the account switcher keep its rows

The account submenu closed when moving the pointer toward the list; fixed by using a proper list component instead of hand-built slots.

@krantheman #810 Read
fix other-apps 4 days ago

Self-heal push subscriptions and seed missing sync state

Mail realtime wasn't working because push subscriptions were never created, only renewed; added auto-creation and sync state seeding.

@krantheman #727 Read
fix other-apps 4 days ago

Triage that reaches the end of a list keeps going

Triaging the last thread in a list closed the reading pane and deselected it; triaging from the bottom now wraps to the top to keep the flow going.

@krantheman #803 Read
fix other-apps 4 days ago

Actions that stopped at a removed toast call

Mail and Calendar actions were calling the removed `toast.removeAll()` from a frappe-ui bump; replaced with guard checks.

@krantheman #802 Read
fix other-apps 4 days ago

Restore the mobile gap above a poll in the timeline

Polls sat flush against post bodies on mobile; restored the mobile padding that was inadvertently removed.

@netchampfaris #565 Read
fix other-apps 4 days ago

Repayment schedule dates stop advancing when schedule type is blank

When schedule type was empty, `get_next_payment_date` was returning the same date every loop iteration instead of advancing.

@suparikoli #1383 Read

Wednesday, September 2

ERPNext 38.9k 6 updates
feat accounting 5 days ago

Track supplier quotation order status

Supplier Quotation now tracks whether items have been ordered, reusing the status field and adding ordered_qty.

@mihir-kandoi #58572 Read
fix accounting 5 days ago

Round party balances to currency precision in Trial Balance for Party

GL balances rounded to currency precision eliminate floating-point residuals that bypassed the Exclude Zero Balance filter.

@Shllokkk #58607 Read
fix stock-manufacturing 5 days ago

Handle BOM price list currency update

New BOMs no longer error when selecting an item triggers price list currency updates.

@Pandiyan5273 #58638 Read
fix stock-manufacturing 5 days ago

Ignore cancelled batch entries in valuation

Batch quantity calculations during manufacture exclude cancelled outward entries.

@Pandiyan5273 #58659 Read
fix accounting 5 days ago

Add permission checks on payment entry whitelisted methods

fix: add permission checks on payment entry whitelisted methods

@diptanilsaha #58643 Read
fix accounting 5 days ago

Add missing perm checks on various whitelisted methods

Enforce permission checks on multiple whitelisted methods that were previously bypassed.

@diptanilsaha #58652 Read
Frappe 10.7k 17 updates
feat framework 5 days ago

More improvements for the editor

Sidebar editor now supports item deletion and direct app shipping.

@sokumon #42291 Read
feat ui-ux 5 days ago

Author Rail and Navigation Item on desk-v2

New Rail and Navigation Item doctypes for desk v2's navigation model.

@shariquerik #42352 Read
feat ui-ux 5 days ago

Extend Sidebar for desk v2 with an address, layers and Navigation Item rows

Desk v2's sidebar gains link_doctype, layers, and Navigation Item row support.

@shariquerik #42365 Read
fix framework 5 days ago

Better message for migrate

Framework errors during migrate now display less scary messages.

@sokumon #42338 Read
fix framework 5 days ago

Make RQ job id creation idempotent

fix: make RQ job id creation idempotent

@sagarvora #42351 Read
fix framework 5 days ago

Use postgres-compatible quoting in SQL strings and aliases

Postgres no longer rejects double-quoted string literals and aliases; uses SQL-standard single quotes.

@Abdeali099 #42290 Read
fix framework 5 days ago

Cast boolean values to strings for PostgreSQL compatibility

fix: cast boolean values to strings for PostgreSQL compatibility

@Abdeali099 #42129 Read
fix framework 5 days ago

Use Redis heartbeat for process health

Containerized deployments now correctly detect scheduler status via Redis heartbeat instead of file locks.

@kaulith #40866 Read
fix framework 5 days ago

Allow export when report exceeds max_report_rows

Reports over the row limit can now be exported (which the UI recommends).

@gajjug004 #42250 Read
fix framework 5 days ago

Rounding inflates exactly representable values at high precision

Float rounding epsilon now scales with precision to prevent inflating exact values.

@kaulith #42273 Read
fix framework 5 days ago

Calendar all day fallback

fix: calendar all day fallback

@nishkagosalia #41439 Read
fix framework 5 days ago

Render the doc passed by the caller

Print rendering now handles unsaved preview documents correctly via `frappe.get_print()`.

@Pandiyan5273 #42369 Read
fix framework 5 days ago

Filter User fields based on perms instead of ret. unconditionally

User fields now respect normal permission checks instead of returning all fields regardless of access.

@AarDG10 #40248 Read
fix framework 5 days ago

Make `after_response` callbacks reliable

One failing callback no longer skips database cleanup; failures are logged with tracebacks.

@sagarvora #42371 Read
fix ui-ux 5 days ago

Ignore reindexed uids when building IMAP sync rule

IMAP sync handles UIDVALIDITY changes without getting stuck on invalid sync requests.

@kaulith #42092 Read
fix framework 5 days ago

Allowed file extensions setting not enforced for files with an unknown mimetype

File upload validation now checks extensions directly instead of relying on mimetype table lookups, preventing unintended accepts when OS/Python versions don't recognize extensions.

@kaulith #42375 Read
fix framework 5 days ago

Harden public signup against enumeration and abuse

Rate limit public signups to 500 per IP per minute and return generic failure messages to prevent email enumeration.

@barredterra #38339 Read
CRM 3.5k 5 updates
fix crm-sales 5 days ago

Email template selection break

fix: email template selection break

@ps173 #2753 Read
fix crm-sales 5 days ago

Allow custom values for autocomplete fields

Combobox fields now allow custom values like Frappe's Autocomplete field.

@Anish59312 #2675 Read
fix crm-sales 5 days ago

Bulk edit reports failures and supports lost reason

Bulk edit now reports which records failed to save and supports required lost reason on status changes.

@asimdelvi #2733 Read
fix crm-sales 5 days ago

Prevent 'Document not found' error flash on lead delete

Delete success is now silent instead of showing a misleading error before navigation.

@Shindhu-Ramaswamy #2726 Read
fix crm-sales 5 days ago

Show filter date fields in the system date format

Date/date-range filters now display in the configured system date format.

@michellealva #2756 Read
Helpdesk 3.4k 2 updates
fix other-apps 5 days ago

Blank empty states, always-visible Update Account, false typing indicator

Settings screens (Agents, Email Accounts, Saved Replies, Field Dependencies) now render empty states instead of blank.

@aerodeval #3741 Read
fix other-apps 5 days ago

Avoid improper reply box closing for Grammarly suggestions

Grammarly's suggestion card no longer triggers reply box closure.

@aerodeval #3742 Read
p Press 563 2 updates
fix other-apps 5 days ago

Strip unwanted fields from save

Dashboard forms no longer reject saves over computed fields returned by the resource read.

@ssiyad #7348 Read
fix other-apps 5 days ago

Add error states for notif panel & server name in incidents card

fix(ui): Add error states for notif panel & server name in incidents card

@siduck #7351 Read
o Other 26 updates
feat other-apps 5 days ago

Apply dynamic rate limits to all public endpoints

All public meeting endpoints (join, approval, etc.) protected with configurable rate limits seeded on install.

@dankgarlic1 #734 Read
feat other-apps 5 days ago

Delete and a legible title in the event modal

Event modal gains delete from a ⋯ menu and editable title with visual affordance.

@krantheman #794 Read
feat other-apps 5 days ago

Project recorded shared stage

Record the ordered shared stage from SFU; gate FFmpeg capture on frame commits and media attachment.

@BreadGenie #791 Read
feat other-apps 5 days ago

Separate recorder health and admission

Recorder deployment health separate from atomic admission decisions with typed policy/capacity/recovery contracts.

@BreadGenie #798 Read
feat other-apps 5 days ago

Left right layout

feat: left right layout

@TITANiumRox #2239 Read
fix ui-ux 5 days ago

Stop the delete shortcut eating Backspace

Popover isOpen state no longer swallows Backspace/Delete keypresses from the page.

@krantheman #1114 Read
fix other-apps 5 days ago

Broken expresisons in custom field

fix: Broken expresisons in custom field

@deepeshgarg007 #95 Read
fix other-apps 5 days ago

Give composer errors and checkbox options room to breathe

fix(polls): give composer errors and checkbox options room to breathe

@adityapradhan10 #552 Read
fix other-apps 5 days ago

Vote in a single-answer poll with radios

Single-answer polls now render radio buttons instead of checkboxes.

@netchampfaris #564 Read
fix other-apps 5 days ago

Table toolbar, header columns, click-to-select, wrap and auto-fit

Table toolbar unified; adds cell fill/border, text color, font selector, header controls.

@bvnaik05 #557 Read
fix other-apps 5 days ago

Delay tooltips for two seconds

Tooltip hover delay now consistent across toolbar and teleported popovers.

@bvnaik05 #583 Read
fix other-apps 5 days ago

Label elbow corner style and provide clear tooltips

fix: label elbow corner style and provide clear tooltips

@bvnaik05 #593 Read
fix other-apps 5 days ago

Render fill and border on text box shapes

fix: render fill and border on text box shapes

@bvnaik05 #594 Read
fix other-apps 5 days ago

Mirror shape rotation and connector geometry in SVG thumbnails/exports

fix: mirror shape rotation and connector geometry in SVG thumbnails/exports

@bvnaik05 #591 Read
fix other-apps 5 days ago

Compact Fill and Border popovers

fix: compact Fill and Border popovers

@bvnaik05 #586 Read
fix other-apps 5 days ago

Smooth laser trail spine points

Laser pointer trails eased to follow fluid gestures instead of hand jitter.

@bvnaik05 #584 Read
fix other-apps 5 days ago

Smooth freehand stroke capture

Freehand strokes retain intended shape by filtering low-amplitude samples.

@bvnaik05 #585 Read
fix other-apps 5 days ago

Drop the 10 MB cap on inserted images

Removed client-side image size check; limits now enforced below the app layer.

@bvnaik05 #558 Read
fix other-apps 5 days ago

Empty-canvas nudge stays gone once a tool is armed

fix: empty-canvas nudge stays gone once a tool is armed

@bvnaik05 #565 Read
fix other-apps 5 days ago

Language migration and sync race

fix: language migration and sync race

@ps173 #14 Read
fix other-apps 5 days ago

Show meet avatar fallback in join/leave toasts

Join/leave notifications now display themed avatar initials instead of a generic user icon.

@BreadGenie #799 Read
fix other-apps 5 days ago

Crash when amount paid check runs before payable amount is set

Loan repayment validation moved after payable amount is set to prevent crashes on "Validate Payments" enabled products.

@Nihantra-Patel #1415 Read
fix other-apps 5 days ago

A mail to yourself reads once in its thread

Self-addressed messages no longer appear twice (Sent copy and delivery copy collapsed into one).

@krantheman #796 Read
fix other-apps 5 days ago

A scroll never pages the thread

Swipe-to-page now tracks touch movement along its path instead of just endpoints, preventing accidental thread pagination during scroll.

@krantheman #797 Read
fix other-apps 5 days ago

Stop double charge debit on write off recovery payment account

Write-off recovery payments no longer double-charge the bank account when covering a charge with its own invoice.

@Nihantra-Patel #1417 Read
fix other-apps 5 days ago

Verify Digio webhook using X-Digio-Checksum header

Digio webhooks now verified with correct HMAC-SHA256 checksum header instead of rejected plaintext secret.

@Nihantra-Patel #5 Read

Tuesday, September 1

ERPNext 38.9k 23 updates
feat stock-manufacturing 1 week ago

Valuation method for BOM secondary items

BOM Secondary Item gets a Valuation Type select with three modes: % of FG Cost (existing), Valuation Rate (pre-v16 method: bin-average valuation), and AQ (average qty).

@mihir-kandoi #58431 Read
feat accounting 1 week ago

Production plan visualizer page and summary report fix

Fixes Production Plan Summary report (finished good rows emitted after work order rows, Order Qty showed remainder chain) and adds production plan visualizer page.

@rohitwaghchaure #58541 Read
feat accounting 1 week ago

Add multi-currency support to Blanket Orders

Blanket Orders now support transaction currency, exchange rates, and selling/buying price lists with price list currency conversion.

@mihir-kandoi #58472 Read
feat accounting 1 week ago

Enhance tree view functionality for accounts and cost centers

Builds on Frappe tree redesign with accounting-specific actions: account-number badge, freeze indicator, row actions for Add Child, View Ledger, Convert, Move, Delete.

@sumitjain236 #58520 Read
feat accounting 1 week ago

Close individual transaction items

Adds a `closed` flag on Purchase Order, Sales Order, Delivery Note and Purchase Receipt item tables to close individual rows instead of the whole document.

@mihir-kandoi #57596 Read
fix accounting 1 week ago

Skip tax addition for invoice created from opening invoice tool

Opening invoices automatically fetched taxes when enabled in Account Settings, but opening entries are inclusive and should not auto-add.

@ljain112 #58483 Read
fix accounting 1 week ago

Restore isolated loyalty and subcontracting tests

Loyalty Program test module failed in isolated process; Skip-transfer Manufacture Stock Entries replaced Work Order item warehouses incorrectly.

@mihir-kandoi #58587 Read
breaking accounting 1 week ago

Prevent update_doctypes from exporting files

Utility test called update_doctypes against real schema, saving standard child DocTypes to the app checkout and breaking later migrations.

@mihir-kandoi #58589 Read
fix accounting 1 week ago

Translate label in party validation

Party validation label in error messages was not wrapped for translation.

@barredterra #58624 Read
fix stock-manufacturing 1 week ago

Widen item name in stock projected qty

Stock Projected Qty report allocated only 100 pixels to Item Name while Description had 200, truncating longer names.

@Pandiyan5273 #58598 Read
fix stock-manufacturing 1 week ago

Correct BOM sorting and stock translations

BOM item sorting used an invalid comparator for equal item codes; two stock validation messages had formatting issues preventing translation or silently discarding arguments.

@Pandiyan5273 #58605 Read
fix accounting 1 week ago

Keep closed rows out of Update Items

Closed rows remained editable in Update Items dialog and reachable via the whitelisted method; server now excludes them.

@mihir-kandoi #58609 Read
fix stock-manufacturing 1 week ago

Handle duplicate root BOM items

Adding the same raw material twice under a root BOM Creator raised `StopIteration` instead of a duplicate validation error.

@mihir-kandoi #58614 Read
fix stock-manufacturing 1 week ago

Compare updated item quantities in stock UOM

Update Items compared quantities stored in different UOMs, rejecting valid updates or accepting invalid reductions when conversion factors differed.

@mihir-kandoi #58603 Read
fix accounting 1 week ago

Correct reservation and pick list quantities

Only the final batch had its delivered quantity updated; picked quantities spanning multiple locations were deducted repeatedly; allocated serial numbers were not removed from leftover locations.

@Pandiyan5273 #58613 Read
fix accounting 1 week ago

Do not map the same row twice in "Get Items From"

Selecting the same Delivery Note twice in a Sales Invoice added two sets of lines for the same rows; button now enforces idempotence.

@barredterra #58617 Read
fix accounting 1 week ago

Explain missing fields when loading party details or taxes

When Company, party, or date was missing, the form cleared user input and showed a vague "Mandatory" message; now explains what was cleared and what must be set first.

@barredterra #58627 Read
fix accounting 1 week ago

Add permission checks on get_invoices

POS invoice endpoint was accessible without permission checks.

@diptanilsaha #58591 Read
fix accounting 1 week ago

Add permission checks on get_available_payment_schedules

Payment schedule endpoint lacked permission validation.

@diptanilsaha #58588 Read
fix accounting 1 week ago

Check read permission on source in create_duplicate_project

Project duplication did not verify read access to the source project.

@Shllokkk #58325 Read
fix accounting 1 week ago

Add missing permission validation on get_contract_template

CRM contract template endpoint was accessible without permission checks.

@diptanilsaha #58621 Read
fix accounting 1 week ago

Validate POS Settings invoice and search fields on the server

API requests could store invalid fields or excluded items in POS Settings, bypassing browser validation.

@diptanilsaha #58611 Read
fix stock-manufacturing 1 week ago

Validate serial batch bundle company

A stock voucher could retain a Serial and Batch Bundle from a different company after the voucher company was changed.

@Pandiyan5273 #58608 Read
Frappe 10.7k 12 updates
feat ui-ux 1 week ago

Cleaner tree view UI

Tree view redesign with improved layout and visual hierarchy.

@sumitjain236 #42189 Read
fix framework 1 week ago

Add connect timeout for requests to Frappe Cloud

Frappe Cloud integration lacked timeouts, allowing network issues to block gunicorn workers indefinitely.

@tanmoysrt #42254 Read
fix framework 1 week ago

Log lock path on filelock timeout

Diagnostic log in `filelock()` used a plain string, logging literal `Filelock: Failed to aquire {lock_path}` instead of the actual path.

@kaulith #42162 Read
fix framework 1 week ago

Apply field level permission on attachments in right pane

Field-level permissions were not applied to attachments in the right pane.

@Bowrna #42292 Read
fix framework 1 week ago

Add link for partner discovery

Billing card now links to partners page.

@sokumon #42298 Read
fix framework 1 week ago

Make "rows selected" toast readable in dark mode

Datatable selection toast was hard to read in dark mode.

@KerollesFathy #42191 Read
fix ui-ux 1 week ago

Disabled reports still appear in desk search

Disabled Reports appeared in Desk search, List View dropdowns, and recent routes when linked through Custom Roles or with no roles.

@kaulith #42188 Read
fix framework 1 week ago

2FA login says the code was emailed when nothing was sent

`send_token_via_email` returned `True` even when `frappe.sendmail` did not queue; login page showed false success on unsubscribed or muted emails.

@kaulith #42183 Read
fix framework 1 week ago

Don't advise deleting the lock file on lock timeout

Lock timeout message incorrectly told users to delete the file; deleting while held allows concurrent database operations.

@kaulith #42164 Read
fix framework 1 week ago

Show print format field only for query/script reports

Print Settings dialog rendered Print Format field in doctype report view and treeview where it does not apply.

@Shllokkk #42253 Read
fix framework 1 week ago

Escape docname used as default link text in get_form_link

Removes dependency on docname validation by escaping fallback link text.

@kaulith #42159 Read
fix framework 1 week ago

Add roles table to SMS Settings

System Managers can now configure which roles are allowed to send SMS.

@AarDG10 #42285 Read
HR 8.7k 3 updates
feat hr-payroll 1 week ago

Add icons for Update Progress and Mark as Completed

Goal tree row actions now display icons for Update Progress and Mark as Completed.

@sumitjain236 #5181 Read
fix hr-payroll 1 week ago

False Exchange Gain/Loss on Expense Claims in base currency

Expense Claims booked false gains/losses when linked advance's exchange rate was missing/zero; now skips calculation when no real rate exists.

@iamkhanraheel #5158 Read
fix hr-payroll 1 week ago

Update system date format for password in salary slip

Date fields in password policy template stringified as ISO regardless of System Settings format; employee told password is their date of birth in dd-mm-yyyy tries 08-05-1990 and cannot open PDF.

@nareshkannasln #5092 Read
CRM 3.5k 4 updates
fix crm-sales 1 week ago

Dim visited deals/leads in list view using frappe's _seen field

Dims deal and lead rows in list view once opened, using Frappe's built-in `_seen` tracking instead of client-side store.

@Shindhu-Ramaswamy #2693 Read
fix crm-sales 1 week ago

Wrap hardcoded user-facing strings in __() for translation

Error banners, modal fallbacks, and validation messages on Deal/Lead pages were not wrapped for translation extraction.

@Kie70 #2740 Read
fix crm-sales 1 week ago

Typos in user-facing messages and parameter names

Fixed intergration→integration (Exotel error), charaters→characters, seperate→separate, and extention→extension parameter.

@Kie70 #2737 Read
fix crm-sales 1 week ago

Cannot read properties of null in quickfilters

Quick filters failed on cold list-view loads when list.params was null.

@shahzeelahmed #2731 Read
Helpdesk 3.4k 1 update
fix other-apps 1 week ago

Download attachments the browser cannot preview

Attachments with unrenderable mime types (`.dwg`, `.avi`) got stuck in preview dialog without download links; preview eligibility is now an explicit allowlist.

@aerodeval #3739 Read
Insights 1k 5 updates
feat other-apps 1 week ago

Migrate v2 dashboards to v3 workbooks

Adds a migrator copying v2 dashboards into new v3 workbooks; v2 queries, expressions, charts and dashboards are translated, with post-migration validation comparing results.

@nextchamp-saqib #1351 Read
fix other-apps 1 week ago

Give the SQL column operation the same contract as develop

Migrator wrote `sql_column` field but develop reworked it to `raw_sql`, causing data loss on upgrade.

@nextchamp-saqib #1358 Read
fix other-apps 1 week ago

Finish the sql_column rename to raw_sql

Tests still referenced the old `sql_column` field name after rename to `raw_sql`.

@nextchamp-saqib #1359 Read
fix other-apps 1 week ago

Carry a SQL column expression through an ibis query

Migrator writes `sql_column` operation for v2 constructs; ensures the operation contract matches develop so columns are not lost on upgrade.

@nextchamp-saqib #1355 Read
fix other-apps 1 week ago

Report failures and rerun script queries on input changes

Script query failures were not published to the Logs panel; Force Run and variable changes did not rerun due to persistent code cache.

@nextchamp-saqib #1354 Read
p Press 563 3 updates
fix other-apps 1 week ago

Clamp MSS

MSS clamping for NAT to prevent fragmentation.

@ssiyad #7343 Read
fix other-apps 1 week ago

Say drop bench, not archive bench

Bench action menu was the only place that said "archive" instead of "drop" like other destructive actions.

@balamurali27 #7345 Read
fix other-apps 1 week ago

Fix TypeError in OCI attach_to_firewall

Virtual machine OCI attachment had a type error.

@tanmoysrt #7344 Read
o Other 23 updates
breaking ui-ux 1 week ago

Pre-tag surface trims, the toast contract, and the type errors that reach consumers

Eight breaking changes for 1.0.0 tag: `ThemeSwitcher` moves to experimental, DatePicker stops re-exporting utils, `Button` drops exposed `rootRef`, `HoverCard` declares side/align/portalTo, Toast compat shims removed, Toast `description` becomes required.

@netchampfaris #1110 Read
feat other-apps 1 week ago

Multi-company India Payroll

Adds multi-company mode to Payroll Settings with a child table holding statutory registration details per company, supporting multiple ESIC employer codes and EPF establishment codes.

@deepeshgarg007 #88 Read
feat other-apps 1 week ago

Pre-filled default reminders, all-day alert fixes

New events open with default reminder pre-filled as an editable row; all-day swaps respect defaults; flipping All Day swaps an untouched row between defaults.

@krantheman #776 Read
feat other-apps 1 week ago

Refactor HTTP Proxy

HTTP proxy implementation refactored with token-authenticated control endpoints for maps, certificates, health, readiness, and targeted PATCH/DELETE operations for site and custom-domain mappings.

@tanmoysrt #175 Read
feat other-apps 1 week ago

Restrict cross-tenant access to privileged VMs

Adds controller-managed privileged VM whitelist for tenant 0, permitting cross-tenant traffic only when either endpoint is whitelisted.

@tanmoysrt #176 Read
feat other-apps 1 week ago

Replace LVM with ZFS — snapshots, resize, restart

Storage infrastructure refactor from LVM to ZFS.

@the-bokya #180 Read
feat other-apps 1 week ago

Better field mapping for actions and support for all WhatsApp languages

WhatsApp integration improvements for field mapping and language support.

@ps173 #11 Read
feat other-apps 1 week ago

Add Frappe app scaffold at repo root

Scaffolds atlas Frappe app with monorepo coding and documentation guidance.

@tanmoysrt #181 Read
feat other-apps 1 week ago

Lay the submission details page out as a ledger

Outbox submission details redesigned as one narrow column with subject, merged delivery state, state actions, activity list, and message facts.

@s-aga-r #774 Read
feat other-apps 1 week ago

Make the undo send period configurable per user

User Settings gets a Compose section with `undo_send_period` select (5, 10, 20, 30 seconds, default 5).

@s-aga-r #769 Read
feat other-apps 1 week ago

Add shortcuts for undo send, schedule send and the outbox

Cmd/Ctrl+Shift+Enter opens Schedule Send; Cmd/Ctrl+Z undoes sent mail while server holds it.

@s-aga-r #770 Read
feat other-apps 1 week ago

Separate recording budgets and storage reservations

Adds explicit Drive storage reservations for recording budgets, growing them from durable cumulative segment progress.

@BreadGenie #772 Read
feat other-apps 1 week ago

Version recording contracts

Versions recording commands, callbacks, browser lifecycle, and Recording Grant proof seams with immutable v1 semantic vectors.

@BreadGenie #777 Read
feat other-apps 1 week ago

Finalize recording artifacts durably

Adds durable Frappe finalization state and authenticated status protocol for recording artifacts, making artifact validation, Drive publication and owner notifications recoverable and idempotent.

@BreadGenie #779 Read
feat other-apps 1 week ago

Event reminders that reach the browser

Calendar alerts now publish a realtime event to open suite tabs and become toasts with an Open action plus system notifications when permitted.

@krantheman #775 Read
fix other-apps 1 week ago

Fix Restore PF wage aggregation in EPF register

Version-16-hotfix merge into develop left `_aggregate_salary_detail` in half-merged state with undefined `company_by_slip` references, causing NameError on every call.

@deepeshgarg007 #92 Read
fix other-apps 1 week ago

Give the mail actions menu its options back

Mail ⋯ menu showed "No options"; frappe-ui menu groups changed to `{ group, options }` but code still used `items` key.

@krantheman #771 Read
fix other-apps 1 week ago

Keep a selected image ring under the pinned author row

Full-width image selection ring in discussions scrolled above and was visible behind the pinned author row; now masked with z-index.

@netchampfaris #563 Read
fix other-apps 1 week ago

Tolerate the root-redirect race in open_root

E2E test `test_logs_into_admin` failed intermittently with navigation interruption race; added tolerance for root → /sites redirect.

@badal8381 #428 Read
fix other-apps 1 week ago

Uploaded image overwrites an earlier one with the same filename

Pasted clipboard images all saved as `image.png`, with WebP versions overwriting previous images to the same URL; now generates unique names via `generate_file_name`.

@kaulith #751 Read
fix other-apps 1 week ago

Preserve active media attachments

Media element manager replaced unchanged srcObject streams after 60 seconds, interrupting playback with brief black frames on routine Vue updates.

@BreadGenie #780 Read
fix other-apps 1 week ago

Keep the drafts list in the doctype store

New drafts did not appear in the list and deleted drafts persisted until page reload; moved bare useCall into listStore for sync.

@netchampfaris #561 Read
fix other-apps 1 week ago

Stop failing a publish over an edit that arrived mid-save

User could not publish a draft on first attempt; post body never reached the server and publication refused to proceed.

@netchampfaris #562 Read

Monday, August 31

ERPNext 38.9k 4 updates
fix accounting 1 week ago

Work Order picks wrong Delivery Date when Sales Order has the same item in multiple rows

Backport to version-16-hotfix.

@Henil666 #58526 Read
fix accounting 1 week ago

Work Order picks wrong Delivery Date when Sales Order has the same item in multiple rows

Backport to version-15-hotfix.

@Henil666 #58527 Read
fix stock-manufacturing 1 week ago

Use packed row delivery date

Work Orders for packed items now correctly pick delivery dates from their corresponding Sales Order rows instead of the first matching item, fixing wrong date assignments when the same item appears multiple times.

@mihir-kandoi #58568 Read
fix accounting 1 week ago

Scoping whitelisted methods output to projects and timesheets that are accessible to users

Restricts whitelisted method output to user-accessible projects and timesheets, preventing unauthorized data exposure.

@diptanilsaha #58267 Read
Frappe 10.7k 3 updates
feat ui-ux 1 week ago

Address every doctype under every prefix, with a module segment

Moves slug table out of boot to serve per-bench routing with module-name mapping, allowing doctypes to be addressed under every prefix via a module segment.

@shariquerik #42277 Read
fix framework 1 week ago

Enforce one primary contact per party

Prevents multiple contacts from being marked as primary on the same party, eliminating ambiguity in transaction contact selection.

@Pandiyan5273 #42219 Read
fix framework 1 week ago

Don't break job system on invalid workers config

Guards queue timeout retrieval to fall back to defaults instead of crashing when workers config is malformed, preventing entire background job system failure.

@iamejaaz #42104 Read
HR 8.7k 1 update
feat hr-payroll 1 week ago

Copy applicant data when creating an Employee

Creating an Employee from a Job Applicant now uses mapped document creation, copying name, email, phone, designation, salary currency, and job opening details instead of opening a blank form.

@barredterra #5101 Read
p Press 563 1 update
fix other-apps 1 week ago

Permission error on toggle

Adds missing editable field declaration so users can enable/disable firewalls without permission errors.

@ssiyad #7341 Read
o Other 5 updates
feat other-apps 1 week ago

Private multicast network mesh

Establishes a private multicast network mesh with a reserved tenant ID for cross-IP connectivity on private networks.

@tanmoysrt #167 Read
feat other-apps 1 week ago

Add unicast discovery relay

Adds a discovery relay for environments without multicast support, forwarding WHO_HAS and NOW_HERE messages over UDP unicast to configured peers with automatic reload and logging.

@tanmoysrt #169 Read
feat other-apps 1 week ago

Make recording startup durable

Persists recorder startup milestones before recording begins and replays/retries startup callbacks until capture launch is acknowledged.

@BreadGenie #762 Read
feat other-apps 1 week ago

Recover recording interruptions

Recovers transient FFmpeg capture failures within a fixed 60-second recovery window, persisting omission bounds, callbacks, and retry state; shows participants the interrupted state and recovery countdown.

@BreadGenie #764 Read
fix other-apps 1 week ago

Advertise routable local SFU address

Respects WebRTC bind address in development and advertises the detected local IPv4 for local media transport.

@BreadGenie #760 Read

Sunday, August 30

ERPNext 38.9k 2 updates
fix accounting 1 week ago

Load available serial no report

Fixed inventory-dimension helper referencing wrong report name, which left filters undefined. Backports: [#58561](https://github.com/frappe/erpnext/pull/58561), [#58562](https://github.com/frappe/erpnext/pull/58562)

@Pandiyan5273 #58558 Read
fix accounting 1 week ago

Added permission checks on multiple payment entry whitelisted methods

Added permission checks on multiple payment entry whitelisted methods

@diptanilsaha #58555 Read
Frappe 10.7k 2 updates
feat ui-ux 1 week ago

Add ConditionBuilder, a nested and/or condition editor

New UI component for building nested boolean condition trees, built on Filter's operator and value-control logic.

@raizasafeel #41784 Read
fix framework 1 week ago

Calendar view breaks for users in a different timezone than the system

Converts date range explicitly: start to start-of-day, end keeps its time to avoid excluding records on the last day. Backports: [#42255](https://github.com/frappe/frappe/pull/42255), [#42256](https://github.com/frappe/frappe/pull/42256)

@kaulith #42251 Read
LMS 3.2k 1 update
feat other-apps 1 week ago

Quiz proctoring with violation tracking

Instructors can enable proctoring per quiz and set violation tolerance; learner camera is monitored during attempt with full event history for review.

@pateljannat #2659 Read
Insights 1k 1 update
feat other-apps 1 week ago

Draw a reference line where the data says

Reference lines can now follow plotted data (average, median, min, max) instead of only fixed values, and update with filters or new periods.

@nextchamp-saqib #1349 Read
o Other 13 updates
fix other-apps 1 week ago

Litmus prepare opts the user in; matcher handles CR lines

WebDAV compliance setup now creates Drive Settings with webdav_enabled; ledger matcher handles carriage-return progress lines.

@s-aga-r #752 Read
feat other-apps 1 week ago

Bulk-add members with a searchable picker

Replaced single-person picker with searchable multi-select list and "add everyone" one-click for communities with hundreds of members.

@netchampfaris #559 Read
fix other-apps 1 week ago

Add currency details for Georgia in countryInfo.json

Added missing `currency` and `currency_name` fields; fixed `currency_symbol`.

@demonno #1447 Read
fix other-apps 1 week ago

Fix horizontal scroll, off-center page, and dynamic rescaling (ReportPrintView)

Page preview had horizontal clipping, was offset right, and scale didn't update on window resize.

@the-narwhal #1511 Read
fix other-apps 1 week ago

Foreign currency invoices incorrectly marked as "Partly Paid" on submit

Payment status checked were comparing base currency amounts instead of invoice currency amounts.

@the-narwhal #1508 Read
fix other-apps 1 week ago

General Ledger Ref Name filter dropdown empty & Accounting Entries navigation broken

General Ledger Ref Name filter dropdown empty & Accounting Entries navigation broken

@vishram2997 #1497 Read
fix other-apps 1 week ago

Link field search stops working after clearing selection

Component cached database results; clearing the field didn't invalidate cache, so subsequent searches returned stale results.

@willneill #1459 Read
breaking other-apps 1 week ago

German translations broken by corrupted CSV quoting

Three lines had mismatched quotes breaking RFC 4180 parser; fixed quoting to restore German translations.

@willneill #1458 Read
fix other-apps 1 week ago

SalesQuote list view shows 'Paid' status incorrectly

Switched from invoice status column (which shows payment states) to document status, and removed misleading outstanding amount column.

@willneill #1457 Read
fix other-apps 1 week ago

Force Latin digits in number formatting for all locales

Arabic locales defaulted to Arabic-Indic numbering; now forced to Latin digits globally.

@willneill #1452 Read
fix other-apps 1 week ago

Sum outstanding amounts across all references in payment validation

Multiple invoice payment validation was using assignment instead of accumulation, keeping only the last value.

@willneill #1451 Read
fix other-apps 1 week ago

Use startsWith('Sales') for party labels in print templates

Hard-coded `entryType === 'SalesInvoice'` caused non-invoice sales types to show wrong labels ("Supplier" instead of "Customer").

@willneill #1450 Read
fix other-apps 1 week ago

Fix negative tax rate adds to grand total instead of reducing it

Tax amounts were passed through `.abs()` which stripped the sign from negative taxes like withholding tax.

@willneill #1448 Read

Saturday, August 29

ERPNext 38.9k 6 updates
feat accounting 1 week ago

Alternative finished goods conversion against work order

Work orders can now regrade/convert to alternative finished goods during QC; remains linked to original work order.

@rohitwaghchaure #58479 Read
feat stock-manufacturing 1 week ago

Batch split operation to produce child batches per piece

BOM Operations gain Batch Split checkbox and Weight Per Piece field to auto-create child batches per unit during production.

@rohitwaghchaure #58530 Read
feat accounting 1 week ago

Erpnext sidebars and workspaces

ERPNext adopts Sidebar fixtures replacing workspace sidebars for curated navigation.

@sokumon #58476 Read
fix accounting 1 week ago

Sum item and its alternate transferred qty on work order

fix: sum item and its alternate transferred qty on work order

@Shllokkk #58500 Read
fix stock-manufacturing 1 week ago

Persist redistributed additional costs during stock entry repost

fix: persist redistributed additional costs during stock entry repost

@Afsalsyed #58433 Read
fix accounting 1 week ago

Check write permission in edit_note

fix(crm): check write permission in edit_note

@Shllokkk #58324 Read
Frappe 10.7k 20 updates
feat framework 1 week ago

New creation flow

Print format creation now starts with builder as the front door; new dialog for format type selection; HTML-only report formats route to form.

@iamejaaz #41715 Read
feat ui-ux 1 week ago

Run the record-page engine's tests from the shell

Adds vitest harness to run 14 record-page unit test files from the frappe shell, closing test infrastructure gap.

@shariquerik #42174 Read
feat ui-ux 1 week ago

Run contributed record customizations through the engine

Record-page engine accepts contributed customizations (fields, sections, buttons) and runs them against the live form.

@shariquerik #42173 Read
feat developer-experience 1 week ago

Host the SPA shell at /apps from one bench-wide build

Central SPA shell now hosts contributed record-page customizations through a seam; one build per bench instead of per-app.

@shariquerik #42172 Read
feat ui-ux 1 week ago

Serve apps by declared prefix under /apps

Routes apps by declared URL prefix instead of hardcoding paths, unifying app hosting policy across the framework.

@shariquerik #42171 Read
feat developer-experience 1 week ago

Read doc and field-level permissions from the client

Adds useUserRoles and enhanced useDoctypeMeta for SPA frameworks to check permissions without boot data.

@shariquerik #42208 Read
feat ui-ux 1 week ago

Add a way for non desk apps to go desk page of the app

feat: add a way for non desk apps to go desk page of the app

@sokumon #42244 Read
fix ui-ux 1 week ago

Add the missing get_current_user_roles endpoint

Record pages were failing to fetch user roles due to missing server endpoint.

@shariquerik #42213 Read
fix ui-ux 1 week ago

Use espresso tokens in sidebar and dock

fix: use espresso tokens in sidebar and dock

@sokumon #42239 Read
fix framework 1 week ago

Add help and menu items back

fix: add help and menu items back

@sokumon #42240 Read
fix developer-experience 1 week ago

Report PDF export clips columns beyond the page width

fix: report PDF export clips columns beyond the page width

@kaulith #42194 Read
fix framework 1 week ago

Web form save fails when the form has a currency field

fix: web form save fails when the form has a currency field

@kaulith #42199 Read
fix framework 1 week ago

Attach files linked by url to attach fields

Extends attach_files_to_document to handle http/https URLs and properly create File records on duplication.

@iamejaaz #42209 Read
fix framework 1 week ago

Honour ignore_if_duplicate on a unique key violation

SQLite `bench new-site` was failing during frappe install; db_insert now honors ignore_if_duplicate flag consistently.

@netchampfaris #42193 Read
fix framework 1 week ago

Email dialog ignores document's print language

Print language defaulted to system language despite document's setting; now respects guess_language() logic.

@kaulith #42145 Read
fix framework 1 week ago

Validate group_by args before saving report

Validates `group_by` arguments against a strict whitelist before persisting report definitions.

@AarDG10 #40461 Read
fix framework 1 week ago

Revalidate redirect targets in get_web_image()

fix(utils): revalidate redirect targets in get_web_image()

@AarDG10 #42195 Read
fix framework 1 week ago

Escape Attach/Img./Sign./Barcode field values in print format temp.

Escapes field values to prevent XSS in print templates.

@AarDG10 #42224 Read
fix framework 1 week ago

Check perm. before unzipping file

fix(file): check perm. before unzipping file

@AarDG10 #42217 Read
fix framework 1 week ago

Enforce permission checks on list and delete

fix(virtual): enforce permission checks on list and delete

@AarDG10 #42138 Read
HR 8.7k 3 updates
feat hr-payroll 1 week ago

Module sidebars

HRMS navigation moves from workspace sidebars to per-module Sidebar fixtures, with nine semantic navigation-only modules.

@sokumon #5160 Read
fix hr-payroll 1 week ago

Support custom attendance calendars

Attendance calendars now pass sorting through to queries and respect custom view status colors.

@krishna-254 #5088 Read
fix hr-payroll 1 week ago

Error message in html to text

fix: error message in html to text

@AbdullahAnsari-03 #5016 Read
CRM 3.5k 1 update
feat crm-sales 1 week ago

Migrate write TextEditor instances to frappe-ui/editor

Migrates TextEditor, comment areas, email templates, and panels to reusable RichTextField component wrapping frappe-ui/editor.

@Shindhu-Ramaswamy #2658 Read
LMS 3.2k 3 updates
fix other-apps 1 week ago

Align sidebar icon spacing with CRM and Helpdesk

fix: align sidebar icon spacing with CRM and Helpdesk

@michellealva #2695 Read
fix other-apps 1 week ago

Show volume slider on lesson video player

Volume control now visible on both embedded and uploaded lesson videos.

@michellealva #2694 Read
fix other-apps 1 week ago

Keep the signup form independent of frappe develop

Signup form broke on released frappe versions; now defines banner macro locally instead of importing from frappe develop.

@raizasafeel #2691 Read
b Builder 2.3k 2 updates
feat ui-ux 1 week ago

Published status across dashboard and editor

Grid dashboard cards and editor toolbar now display publish status; heading truncation and pb-10 fixes applied.

@SmrutiSawant #785 Read
fix ui-ux 1 week ago

Block traversal segments in standard page export paths

Developer-mode exports now reject `..` segments to prevent writing outside the app directory.

@surajshetty3416 #787 Read
Insights 1k 1 update
feat other-apps 1 week ago

Add an end-to-end test suite

Adds 61 browser-based E2E flows across eight areas (query, workbook, charts, etc.) with zero quarantined tests.

@nextchamp-saqib #1346 Read
p Press 563 5 updates
fix other-apps 1 week ago

Require JSON config values to be an object or array

fix(site-config): Require JSON config values to be an object or array

@regdocs #7337 Read
fix other-apps 1 week ago

Require JSON config values to be an object or array

fix(site-config): Require JSON config values to be an object or array

@regdocs #7326 Read
fix other-apps 1 week ago

Skip rate limit on all dedicated server plans

Rate limiting now correctly skipped for all nine dedicated server plans, not just two.

@balamurali27 #7266 Read
fix other-apps 1 week ago

Add press_otp and press_otp_sent cache to persistent cache keys

fix: Add press_otp and press_otp_sent cache to persistent cache keys

@tanmoysrt #7332 Read
fix other-apps 1 week ago

Replace the automatic table restore with a button

Site updates that fail recovery now offer a manual restore button instead of attempting automatic recovery.

@balamurali27 #7327 Read
o Other 7 updates
fix other-apps 1 week ago

Unify appearance preferences

Consolidated theme preference to User.desk_theme; removed divergent Mail, Calendar, Writer, and Meet theme implementations.

@BreadGenie #745 Read
fix other-apps 1 week ago

A user with no Gameplan role sees onboarding instead of a 403

SPA now correctly renders 403 errors instead of showing onboarding; permission queries fixed to check user roles before returning empty list.

@netchampfaris #558 Read
feat other-apps 1 week ago

Draft and declined events, and a week-aware header

Calendar events now distinguish draft (saved, unsent) from declined state; primary button adapts to Send/Save based on invitation status.

@krantheman #750 Read
feat ui-ux 1 week ago

Draft and declined events, plus follow-up fixes

Adds isDraft and isDeclined flags to calendar events with dashed/struck-through rendering; fixes Tabs and related UI components.

@krantheman #1109 Read
feat other-apps 1 week ago

First-class WebDAV server

Drive now runs as an RFC 4918 Class 1+2+3 WebDAV server at `/dav/`, compatible with Windows Explorer, Finder, rclone, MS Office, and mobile file managers.

@s-aga-r #724 Read
fix other-apps 1 week ago

Don't hardcode studio file access to System Manager, check has perm directly

fix: don't hardcode studio file access to System Manager, check has perm directly

@ruchamahabal #257 Read
fix other-apps 1 week ago

Frappe-ui update fallout — tabs, mobile search, and the details chevron

Migrated tabs to value-based selection, fixed mobile search, and restored chevron in details pane after frappe-ui v1 update.

@krantheman #751 Read

Friday, August 28

ERPNext 38.9k 11 updates
fix accounting 1 week ago

Improve message formatting and translation for validation issues

Improves message formatting and translation for validation issues.

@Abdeali099 #58425 Read
fix stock-manufacturing 1 week ago

Preserve job card qty in mr transfer

Keeps Job Card completed quantity through Material Request mapping instead of resetting to zero via Work Order logic.

@mihir-kandoi #58482 Read
fix stock-manufacturing 1 week ago

Reset bin when a repost finds no stock ledger entries

Zeros bin stock_value and valuation_rate when a repost finds no ledger entries, preventing bin totals from drifting.

@Sudharsanan11 #58434 Read
fix accounting 1 week ago

Sum item and its alternate transferred qty on work order

Fixes transferred quantity calculation for items with alternates on work orders.

@Shllokkk #58502 Read
fix accounting 1 week ago

Set pos profile on invoices respecting user permissions

Respects user permissions when setting POS profile on invoices.

@diptanilsaha #58508 Read
fix accounting 1 week ago

Ignore cancelled invoices in timesheet portal

Excludes cancelled Sales Invoices from timesheet portal access checks.

@mihir-kandoi #58501 Read
fix accounting 1 week ago

Translate doctype in map msg

Translates doctype names in map validation messages.

@barredterra #58515 Read
fix stock-manufacturing 1 week ago

Classify MRP items without a BOM as Purchase

Sets type_of_material for items without a BOM so they appear and dispatch correctly in MRP reports.

@barredterra #58509 Read
fix accounting 1 week ago

Validate frozen accounts in period closing voucher

Restores frozen-account validation that was being skipped due to argument order in version 15.

@Pandiyan5273 #58477 Read
fix accounting 1 week ago

Check quotation write permission before marking lost

Validates write permission before the `declare_enquiry_lost` endpoint modifies a Quotation.

@Pandiyan5273 #58493 Read
fix accounting 1 week ago

Check sales order permission before work order creation

Blocks unauthorized Work Order creation by users without read access to the Sales Order.

@Pandiyan5273 #58492 Read
Frappe 10.7k 10 updates
breaking framework 1 week ago

Refactor!: allowing page_length argument for controlling amount of fetched linked items

Introduces `page_length` argument with default 0 (all linked records) for `frappe.db.get_link_options`. Breaking change.

@eagledot #42147 Read
fix framework 1 week ago

Support none filter to avoid stricter type validation

Supports `none` filter to skip stricter type validation.

@Bowrna #42152 Read
feat ui-ux 1 week ago

Module sidebar

Introduces module sidebars that will map 1:1 with module definitions.

@sokumon #41636 Read
fix framework 1 week ago

Allow null filters in custom html block link query

Accepts `None` for the filters parameter in custom block link search.

@iamejaaz #42146 Read
fix developer-experience 1 week ago

Removing unusable button that appears on clicking checkbox

Removes an unusable button that appeared when clicking a grid checkbox.

@Bowrna #42139 Read
fix framework 1 week ago

Allow non-system managers to print report with print format

Allows non-System Manager users to print reports with custom print formats by skipping full Print Format read-permission checks.

@harshp4114 #42108 Read
fix framework 1 week ago

Translate field labels in bulk edit dialog

Builds translated field labels from parts so the Bulk Edit dropdown shows correct language labels.

@kaulith #42169 Read
fix ui-ux 1 week ago

Let the v16 sidebar conversion survive real v16 data

Fixes v16 migration failure caused by bad data during sidebar conversion.

@sokumon #42190 Read
fix ui-ux 1 week ago

Keep a filtered sidebar item, and land on a doctype

Allows a DocType to be the first item in a sidebar.

@sokumon #42192 Read
fix framework 1 week ago

Apply consistent HTTP method validation to whitelisted callback dispatch

Ensures callback dispatch validates HTTP methods consistently, closing a permission bypass.

@AarDG10 #42176 Read
CRM 3.5k 4 updates
fix crm-sales 1 week ago

Pin primary contact to top of Deal contacts list

Orders CRM Contacts by is_primary before idx so primary contact always appears first.

@Shindhu-Ramaswamy #2699 Read
fix crm-sales 1 week ago

Preserve scroll position in grouped list view

Preserves scroll position when reopening a record in a grouped list view.

@Shindhu-Ramaswamy #2700 Read
fix crm-sales 1 week ago

Kanban three-dot click — In Task Page

Fixes kanban task card menu to open dropdown without the edit modal and adds delete confirmation.

@Shindhu-Ramaswamy #2711 Read
fix crm-sales 1 week ago

Keep deal activities visible when the lead is not readable

Skips lead history when not readable instead of failing the whole activity load.

@ps173 #2725 Read
Helpdesk 3.4k 1 update
fix other-apps 1 week ago

Truncate long recipient names in the popover

Truncates long contact names so option rows fit within the email recipient popover width.

@aerodeval #3724 Read
Insights 1k 4 updates
fix other-apps 1 week ago

Stop an unrelated comment from cancelling a review

Moves iris review concurrency group to job level so unrelated comments don't cancel running reviews.

@nextchamp-saqib #1342 Read
fix other-apps 1 week ago

Run a public execution as its publisher, not with checks off

Runs public executions as their publisher instead of as Administrator with checks disabled.

@nextchamp-saqib #1341 Read
fix other-apps 1 week ago

Let the client reach get_site_info, and land an invitee in Insights

Changes `get_site_info` from GET-only to allow POST so frappe-ui's `call` succeeds.

@nextchamp-saqib #1343 Read
fix other-apps 1 week ago

Check the referenced document, not the one that names it

Fixes five permission-check defects where endpoints read/wrote a second document without validating access.

@nextchamp-saqib #1326 Read
p Press 563 2 updates
fix other-apps 1 week ago

Remove duplicate countries in local compliance dropdown

Filters duplicate countries from the local compliance dropdown.

@siduck #7328 Read
fix other-apps 1 week ago

Reuse team prefix validation

Reuses team prefix validation for remote files.

@ssiyad #7330 Read
o Other 19 updates
fix other-apps 1 week ago

Use --dev flag instead of --serve-assets for frappe runner

Uses `--dev` flag for frappe runner and installs dev extras on dev benches.

@tanmoysrt #424 Read
fix other-apps 1 week ago

Mark fully discounted order lines as free items

Marks 100% discounted Shopify order lines as free items so ERPNext keeps the zero rate.

@Shllokkk #460 Read
fix ui-ux 1 week ago

Keep the remembered position when leaving the tray

Stops overwriting remembered panel position when expanding out of the tray.

@nextchamp-saqib #1065 Read
feat other-apps 1 week ago

Integration for S3 service

Adds garage service backend for object storage with bucket creation on demand and pilot integration.

@Aradhya-Tripathi #297 Read
feat other-apps 1 week ago

Serve site storage from a six-hourly report

Serves site storage sizes from a cached six-hourly report instead of computing inline on every request.

@mihir-kandoi #423 Read
feat other-apps 1 week ago

Add open presentation link to desk form

Adds "Open Presentation" web link on Presentation Desk form.

@BreadGenie #741 Read
feat ui-ux 1 week ago

Size month rows to their events instead of hiding them

Month view rows grow to fit their events instead of using fixed 5–6 row grids with "n more" buttons.

@krantheman #1108 Read
feat other-apps 1 week ago

Multi-day spans, a sidebar mini month, and upcoming events

Draws multi-day events across their date spans, adds a sidebar mini-month calendar, and lists upcoming events.

@krantheman #739 Read
feat other-apps 1 week ago

Let the add-app dialog accept a typed branch

Extends the add-app dialog's branch picker to accept typed custom branches.

@mihir-kandoi #378 Read
feat other-apps 1 week ago

Accept a custom frappe branch in the setup wizard

Allows typing a custom Frappe branch in the setup wizard alongside the curated list.

@mihir-kandoi #377 Read
fix other-apps 1 week ago

Encode presentation slug and fix statement terminators

Encodes presentation slug with `encodeURIComponent` and adds missing semicolons for style consistency.

@BreadGenie #742 Read
fix other-apps 1 week ago

Ignore xss filter for block & route fields

Ignores XSS filter for block and route fields since the framework now sanitizes JSON fields.

@ruchamahabal #256 Read
fix other-apps 1 week ago

List every branch via one git ls-remote

Lists all branches using `git ls-remote` instead of paginated REST API, ensuring version branches like `version-16-hotfix` appear.

@mihir-kandoi #380 Read
fix other-apps 1 week ago

Open sites on their served origin and hint when the host cannot resolve

Opens sites on their actual served origin (handles http/non-default ports) and clarifies errors when the host cannot resolve.

@badal8381 #418 Read
fix other-apps 1 week ago

Exclude the app-update poller from task listings server-side

Hides the `fetch-all-app-updates` poller from task listings by adding an `is_listed` flag.

@badal8381 #417 Read
fix other-apps 1 week ago

Expand chat composer to four lines

Raises chat input max-height from 44px to 88px to prevent long messages from being clipped.

@BreadGenie #743 Read
fix other-apps 1 week ago

Reduce mobile camera workload

Requests lower-resolution, lower-frame-rate camera on mobile and uses distinct simulcast layers to reduce encoding load.

@BreadGenie #746 Read
fix other-apps 1 week ago

Render search palette content

Binds Mail's search content to the dynamic overlay's default slot so the desktop palette renders.

@BreadGenie #744 Read
fix other-apps 1 week ago

EPF calcualtion logic

Fixes EPF wage calculation to use basic wages plus dearness allowance per EPF Act 1952, not gross minus allowances.

@deepeshgarg007 #89 Read

Thursday, August 27

ERPNext 38.9k 22 updates
feat accounting 2 weeks ago

Fix!: tax net_amount and not_applicable

Adds net_amount fields to tax rows and 'Not Applicable' marker for Item Tax Template Detail.

@barredterra #54687 Read
feat accounting 2 weeks ago

Fix/payment-request-subscription-plans-population

Payment Request now populated with subscription plan details when created from subscription-based invoices.

@ervishnucs #57494 Read
feat accounting 2 weeks ago

Option to skip delivery note for service items in sales order

New Selling Settings checkbox skips delivery note creation for service items (opt-in, off by default).

@rohitwaghchaure #58297 Read
feat accounting 2 weeks ago

Filter sales and purchase analytics by entity

Adds Entity multi-select filter to Purchase and Sales Analytics.

@Sudharsanan11 #58402 Read
fix accounting 2 weeks ago

Skip missing checkbox columns in asset type patch

Asset type migration handles v15 upgrades by checking which checkbox columns exist.

@barredterra #58416 Read
fix stock-manufacturing 2 weeks ago

Carry accounting dimensions from Landed Cost Voucher charges

Mandatory accounting dimensions now properly carried to Taxes and Charges rows on Landed Cost.

@ervishnucs #56981 Read
fix accounting 2 weeks ago

Added missing filters for cost_center and projects

Party Ledger Summary now filters by cost center and projects.

@diptanilsaha #58411 Read
fix accounting 2 weeks ago

Keep source rate on re-fetch when maintain same rate is enabled

Skips price list fetch for rows mapped from source documents when "maintain same rate" is on.

@barredterra #58332 Read
fix accounting 2 weeks ago

Split bank charges from exchange gain/loss on multi-currency transfers

Multi-currency transfers can now have both bank charges and exchange gain/loss on separate rows.

@Jatin3128 #58071 Read
fix accounting 2 weeks ago

Resolve subscription plans for any reference doctype in Payment Request

Payment Request now resolves subscription plans for Purchase Invoice, not just Sales Invoice.

@Jatin3128 #58438 Read
fix stock-manufacturing 2 weeks ago

Reset hardcoded letter head on Incorrect Serial and Batch Bundle report

Removes hardcoded letterhead from report configuration.

@Shllokkk #58440 Read
fix accounting 2 weeks ago

Clarify duplicate internal party messages

Error message now identifies which existing internal party blocks creation.

@Pandiyan5273 #58469 Read
fix accounting 2 weeks ago

Grant select on link targets to roles with write access

Grants `select` permission on link targets to roles that have `write` access.

@barredterra #58334 Read
fix stock-manufacturing 2 weeks ago

Keep pick list links when refetching stock entry items

Preserves pick list link when user re-fetches stock entry item details.

@Sudharsanan11 #58374 Read
fix stock-manufacturing 2 weeks ago

Preserve LCV quantity across stock reconciliation

Stops filtering next Stock Reconciliation by legacy batch number, preserving LCV repricing.

@mihir-kandoi #58309 Read
fix stock-manufacturing 2 weeks ago

Guard serial batch editor grid lookup

Prevents grid lookup errors when form validation delays table initialization.

@Pandiyan5273 #58464 Read
fix accounting 2 weeks ago

Prevent child table doctypes as accounting dimensions

Hides child table/single doctypes from Accounting Dimension picker and blocks them server-side.

@khushi8112 #58412 Read
fix stock-manufacturing 2 weeks ago

Validate serial inventory dimensions

Validates serial item availability at the inventory dimension level, not just warehouse.

@Pandiyan5273 #58394 Read
fix accounting 2 weeks ago

Work Order picks wrong Delivery Date when Sales Order has the same item in multiple rows

Work Order now uses the correct Delivery Date when created from rows with duplicate items.

@Henil666 #58448 Read
fix stock-manufacturing 2 weeks ago

Account for pending job card qty

Excludes pending quantity from Job Card validation to allow follow-up cards.

@Pandiyan5273 #58466 Read
fix accounting 2 weeks ago

Respect zero currency precision

When Currency Precision is set to 0, amounts now display without decimal places.

@Pandiyan5273 #58395 Read
fix accounting 2 weeks ago

Validate items against source Sales Order in Material Request

Blocks Material Request from deviating from source Sales Order items.

@Shllokkk #58443 Read
Frappe 10.7k 16 updates
feat framework 2 weeks ago

Add support to serve socketio and wsgi app through uvicorn single process

Adds support to serve socketio, wsgi, and rq in single uvicorn process.

@tanmoysrt #41867 Read
feat framework 2 weeks ago

New control "Attachment Gallery"

Adds Attachment Gallery form control for viewing, uploading, previewing, and deleting attachments.

@aerodeval #40963 Read
feat ui-ux 2 weeks ago

Composer — intuitive API, host extensions, real-life stories

Composer API refactored for intuitive prop handling with host extensions support.

@aerodeval #42119 Read
feat framework 2 weeks ago

Add post_fixture_sync patch section for migrations

New PatchType.post_fixture_sync runs patches after fixture and customization sync.

@niraj2477 #42106 Read
fix developer-experience 2 weeks ago

Install mariadb client tools from ubuntu archives

Removes dependency on external mariadb repo, uses ubuntu archives for client tools.

@barredterra #42057 Read
fix framework 2 weeks ago

Quote tabSingles during DocType rename

PostgreSQL now finds tabSingles with quoted identifiers during Single DocType rename.

@mihir-kandoi #42137 Read
fix ui-ux 2 weeks ago

Align the timeline gutter line with the icon axis

Timeline gutter icon now centered on line; even white space around comment/email avatar.

@RitvikSardana #42142 Read
fix framework 2 weeks ago

Handle workspace rendering

Makes workspace rendering robust against bad JSON.

@sokumon #42087 Read
fix framework 2 weeks ago

Data validation as guest in web forms

Validates form data for guest users in web forms.

@sokumon #42132 Read
fix framework 2 weeks ago

Key link title lookups by doctype and value

Report view now correctly resolves link titles when multiple Link columns contain same value.

@kaulith #41830 Read
fix framework 2 weeks ago

Scope child item selection to filtered parents

Scopes child item selection table to filtered parents instead of leaking all parent rows.

@barredterra #42044 Read
fix framework 2 weeks ago

Avoid duplicate DROP INDEX for accent/case-colliding fields during schema sync

Handles case/accent-colliding column names on MariaDB during schema sync.

@Shllokkk #41887 Read
fix framework 2 weeks ago

Escape backslashes in filter condition values on MariaDB

Prevents backslash injection in filter condition values.

@AarDG10 #42084 Read
fix framework 2 weeks ago

Apply parent's row-level permissions to child table queries

Enforces parent doctype's row-level permissions on child table queries.

@AarDG10 #42103 Read
fix framework 2 weeks ago

Validate request trace ID format

Validates X-Frappe-Request-Id format before use in queries to prevent injection.

@AarDG10 #42089 Read
fix framework 2 weeks ago

Validate redirect target against parsed origin

Adds validation layer to redirect target to prevent open redirect vulnerabilities.

@AarDG10 #42109 Read
HR 8.7k 2 updates
fix hr-payroll 2 weeks ago

Skip reference field patch if payment_entry column is missing

fix(expense_claim): skip reference field patch if payment_entry column is missing

@barredterra #5152 Read
feat hr-payroll 2 weeks ago

Show employer contribution in salary slip

Employer contributions now shown on salary slip doc for transparency.

@asmitahase #5149 Read
CRM 3.5k 2 updates
feat crm-sales 2 weeks ago

Backport Forms to main-hotfix

Backports Forms feature from develop to main-hotfix branch.

@ps173 #2713 Read
fix crm-sales 2 weeks ago

Validate form field mappings on save

Form builder now re-validates field mappings against allowed catalog on save.

@ps173 #2719 Read
LMS 3.2k 1 update
fix other-apps 2 weeks ago

Treat an unset profile field as empty, not as a change

Clearing a never-set profile field no longer latches the "Not Saved" badge.

@FawazAlhafiz #2684 Read
Insights 1k 4 updates
feat other-apps 2 weeks ago

Read the PR thread, answer questions, review the delta

Iris review now reads PR thread, tracks settled findings, and reviews delta from prior commits.

@nextchamp-saqib #1330 Read
fix other-apps 2 weeks ago

Tighten permission and input handling

Expression context isolation, invitation key hashing, and permission boundary hardening.

@nextchamp-saqib #1321 Read
fix other-apps 2 weeks ago

Mark an email alert as one, and check its recipients at save

Validates alert recipients at save time and bounds them to site accounts.

@nextchamp-saqib #1333 Read
fix other-apps 2 weeks ago

Rendered output, exported files and database connections

Eight independent fixes including credential permlevel, SSL certificate handling, and connection security.

@nextchamp-saqib #1332 Read
p Press 563 10 updates
feat other-apps 2 weeks ago

Link chart cards to the docs

feat(dashboard): Link chart cards to the docs

@balamurali27 #7298 Read
feat other-apps 2 weeks ago

Open advanced analytics by default

Advanced analytics section now open by default; toggle still available to collapse.

@balamurali27 #7320 Read
feat other-apps 2 weeks ago

Allow renaming a press role

Team owners can now rename Press Roles via title field.

@barredterra #7305 Read
feat other-apps 2 weeks ago

Add OOM kills chart to server analytics

Adds OOM Kills chart to server analytics alongside Memory chart.

@balamurali27 #7323 Read
fix other-apps 2 weeks ago

Revert "fix(invoice): Set Amount due as zero once paid"

Reverts previous invoice amount due change.

@shadrak98 #7308 Read
fix other-apps 2 weeks ago

Ensure dependant apps are added before the main app

Dependent apps now added before main app to resolve dependency order.

@Aradhya-Tripathi #7302 Read
fix other-apps 2 weeks ago

Reuse team prefix validation

Adds team prefix validation to remote file's new and restore methods.

@ssiyad #7314 Read
fix other-apps 2 weeks ago

Oversample slow queries before normalizing

Top Slow Queries chart now useful by oversampling before grouping by normalized text.

@balamurali27 #7316 Read
fix other-apps 2 weeks ago

Show the job error banner without impersonation

Agent job error banner now visible to system users and support agents without impersonation.

@balamurali27 #7322 Read
fix other-apps 2 weeks ago

Show resource titles in the role resource picker

Resource picker now shows title instead of autogenerated name for servers and benches.

@barredterra #7307 Read
o Other 39 updates
feat other-apps 2 weeks ago

Add support for traces

feat: Add support for traces

@Aradhya-Tripathi #11 Read
fix other-apps 2 weeks ago

Remove unclosed string from headers

fix(nginx): Remove unclosed string from headers

@the-bokya #591 Read
fix other-apps 2 weeks ago

Resolve missing kwargs for get_sql

fix: resolve missing kwargs for get_sql

@eagledot #3 Read
feat other-apps 2 weeks ago

Container security checks

feat(actions): container security checks

@DanielRadlAMR #1971 Read
feat other-apps 2 weeks ago

Enforce single participant connection

Enforces at most one active Participant Connection per participant and Meet Room.

@BreadGenie #732 Read
fix other-apps 2 weeks ago

Hide tooltips with toolbar

Toolbar button tooltips hidden when Meet auto-hides controls.

@BreadGenie #731 Read
feat other-apps 2 weeks ago

Include the meet link in the ICS LOCATION

Frappe Meet link appended to LOCATION property in generated ICS files.

@s-aga-r #736 Read
feat ui-ux 2 weeks ago

Feat(Calendar)!: span multi-day events across the days they cover

Multi-day calendar events now span their full range with proper rendering for month and week views.

@krantheman #1106 Read
fix other-apps 2 weeks ago

Refine home scheduling UI

Refines home scheduling UI with shared AM/PM options and improved avatar grouping.

@BreadGenie #740 Read
feat other-apps 2 weeks ago

Reports Redesign, billing overview and payment dialog polish

Design polish on billing console cards and dialogs; parking Payment log door for now.

@sadiqxansari #294 Read
feat other-apps 2 weeks ago

Notification channel support, auto default account management

Adds notification channel support with automatic default account management.

@ps173 #8 Read
feat other-apps 2 weeks ago

WhatsApp notification channel + title case template enums

Adds WhatsApp as Frappe Notification channel; fixes template enum capitalization.

@ps173 #5 Read
feat other-apps 2 weeks ago

Manage the default whatsapp account automatically

First account added becomes default; deletion blocked while others exist.

@ps173 #6 Read
feat other-apps 2 weeks ago

'Allow Guest Access' option for pages

Pages can now toggle guest access; guests redirected to login if disabled.

@ruchamahabal #246 Read
feat other-apps 2 weeks ago

Default a new bench to lite mode

New benches default to lite mode (single process) by default.

@tanmoysrt #415 Read
feat other-apps 2 weeks ago

Add support for Garage S3

Adds S3 support for Garage object storage backend.

@gi-yt #155 Read
feat other-apps 2 weeks ago

Integrate logs using fluent-bit

Adds `pilot setup logs` command to install fluent-bit and send logs to Datum.

@20vikash #391 Read
feat other-apps 2 weeks ago

Add co-host promotion in UI

Meet Room owners can now promote authenticated participants to co-host with UI action.

@BreadGenie #640 Read
feat other-apps 2 weeks ago

Join or leave a community from Settings

Settings dialog now includes entry in account menu and allows joining/leaving communities.

@netchampfaris #554 Read
fix other-apps 2 weeks ago

Page lists on the server's `has_next` signal

Drive pagination now relies on server's has_next signal instead of client row counting.

@ebrahimgamdiwala #665 Read
fix other-apps 2 weeks ago

Verify full host stack before skipping packages

Full system dependency check before skipping package installation.

@aakvatech #407 Read
fix other-apps 2 weeks ago

Merge dialog navigation and global admin access to private communities

Merge dialog navigation fixed; global admin access to private communities enabled.

@netchampfaris #555 Read
fix other-apps 2 weeks ago

Source keys from Frappe Cloud

Keys sourced from Frappe Cloud instead of hardcoded.

@deepeshgarg007 #83 Read
fix other-apps 2 weeks ago

Return search results the caller can actually read

Drive search now filters permission before pagination instead of after.

@ebrahimgamdiwala #670 Read
fix other-apps 2 weeks ago

Simplify muted toolbar buttons and pfp in chat panel

Removes filled red background from muted toolbar controls; adds participant profile images to chat.

@BreadGenie #738 Read
fix other-apps 2 weeks ago

Restore app switcher navigation

Replaces deprecated custom menu rows with native app-switcher actions.

@BreadGenie #737 Read
fix other-apps 2 weeks ago

Hide attachments from home

DocType attachments excluded from default home listing.

@BreadGenie #733 Read
fix other-apps 2 weeks ago

Restrict presence previews

Unapproved users in restricted meetings no longer receive SFU presence-preview tokens.

@BreadGenie #729 Read
fix other-apps 2 weeks ago

Ensure tmp env uses bench python version

Temporary environment uses correct bench Python version.

@Aradhya-Tripathi #420 Read
fix other-apps 2 weeks ago

Fix/create sites before dns config

Creates sites directory before writing dns_multitenant config.

@aakvatech #410 Read
fix other-apps 2 weeks ago

A dangling default_user_image link must not block every Server op

Server operations no longer fail due to dangling Atlas Settings links.

@the-bokya #164 Read
fix other-apps 2 weeks ago

Derive ssh public key when the .pub sibling is absent

Derives public key from private key with ssh-keygen when .pub file missing.

@the-bokya #14 Read
fix other-apps 2 weeks ago

Sync-image reconstitution must not flatten rootfs ownership

Distributed images preserve /home/frappe ownership on all hosts.

@the-bokya #11 Read
fix other-apps 2 weeks ago

Run scheduled backups from cron and save schedules in UTC

Scheduled backups now run from cron with correct module imports and UTC schedule storage.

@tanmoysrt #419 Read
fix other-apps 2 weeks ago

Curved connector's control-point drag now tracks the cursor at any zoom/pan

Curved connector control-point drag now uses correct coordinate transformation.

@bvnaik05 #560 Read
fix other-apps 2 weeks ago

Selection box paints above shapes on the unified canvas

Selection chrome now renders above shapes on unified canvas.

@bvnaik05 #559 Read
fix other-apps 2 weeks ago

Polygon tool icon reads as freeform, not a fixed pentagon

Changes polygon tool icon from fixed pentagon to freeform shape.

@bvnaik05 #561 Read
fix other-apps 2 weeks ago

Pen/highlighter middle size dot

Evens out preview dot sizes for pen/highlighter size pickers.

@bvnaik05 #562 Read
fix other-apps 2 weeks ago

Repair chromium exec bit when the binary is already downloaded

Restores executable bit if chromium binary exists but lost permissions.

@kaulith #553 Read

Tuesday, August 25

ERPNext 38.9k 11 updates
fix accounting 2 weeks ago

Translate get_label results at presentation with DocType context

Field labels now translate at presentation time using the correct DocType context.

@barredterra #57217 Read
fix accounting 2 weeks ago

Supplier group filter not applied on accounts payable report

Report now correctly filters suppliers by selected Supplier Group.

@ervishnucs #58179 Read
fix accounting 2 weeks ago

Include time logs ending at midnight in timesheet billing summary

Logs ending exactly at midnight or crossing into the next day are now included correctly.

@mihir-kandoi #58355 Read
fix accounting 2 weeks ago

Render missing terms before printing

Company default Terms and Conditions now render on printed documents.

@Pandiyan5273 #58358 Read
fix stock-manufacturing 2 weeks ago

Aggregate child warehouses in Stock Qty vs Serial No Count report

Report now includes stock from child warehouses when a parent warehouse is selected.

@harisansari008 #58134 Read
fix accounting 2 weeks ago

Handle none price_list_rate in e-invoice xml generation

Prevent Jinja template errors when price_list_rate is None during Italian E-Invoice generation.

@ervishnucs #58242 Read
fix stock-manufacturing 2 weeks ago

Fix/return qty validation different uom

Fix return quantity validation for items where transaction UOM differs from stock UOM in partial returns.

@ervishnucs #58298 Read
fix accounting 2 weeks ago

Hide rfq status in supplier portal

Hide submission status badge in supplier RFQ list to avoid confusion.

@Pandiyan5273 #58368 Read
fix accounting 2 weeks ago

Hide supplier name in rfq portal

Remove redundant supplier name display in RFQ portal view.

@Pandiyan5273 #58373 Read
fix accounting 2 weeks ago

Prevent duplicate supplier quotations from portal

Portal supplier users can now submit only one Supplier Quotation per Request for Quotation.

@Pandiyan5273 #58377 Read
fix stock-manufacturing 2 weeks ago

Preserve job card transfer quantity

Skip Work Order coverage cap when Stock Entry links to a Job Card, preserving transfer quantity for tracked semi-finished goods.

@mihir-kandoi #58382 Read
Frappe 10.7k 5 updates
fix framework 2 weeks ago

Grant select on link targets to roles that need them

Roles with write permission on a DocType now automatically get select on all its Link targets.

@barredterra #42014 Read
fix framework 2 weeks ago

Skip link title lookup for blank Link columns in report view

Stop requesting titles for null-valued Link fields in reports.

@kaulith #41943 Read
fix developer-experience 2 weeks ago

Scroll to `role_html` field when click on Add Roles button

Dialog closes and scrolls to Roles field instead of attempting a no-op route.

@KerollesFathy #42010 Read
fix framework 2 weeks ago

Raise error with actual reason of denial

Permission error messages now show User Permission restrictions instead of generic denials.

@kaulith #41576 Read
fix framework 2 weeks ago

Mask sensitive data in activity

Masks sensitive field values in activity logs to prevent exposure.

@Bowrna #42034 Read
CRM 3.5k 1 update
fix crm-sales 2 weeks ago

Data field tab

Selected tab in Data Fields layout is preserved after saving field edits.

@yuanran32 #2288 Read
Insights 1k 5 updates
fix other-apps 2 weeks ago

Key release notes on pull requests, not commits

Release notes now build from pull requests instead of commits, avoiding duplication from backports.

@nextchamp-saqib #1313 Read
feat other-apps 2 weeks ago

Acknowledge /iris review, report a failed run

PR review bot now reacts to acknowledge reviews and reports failed runs.

@nextchamp-saqib #1309 Read
fix other-apps 2 weeks ago

Remove the env probes that broke CI runs

Fix CI environment variable checks and branch checkout for fork PRs in iris review bot.

@nextchamp-saqib #1306 Read
fix other-apps 2 weeks ago

Keep column names when the result is empty

Preserve column schema in cached results to prevent KeyError on zero-row filter dropdowns.

@nextchamp-saqib #1303 Read
fix other-apps 2 weeks ago

Do not force SSL verification on database connections

Properly disable SSL certificate verification for self-signed database connections.

@nextchamp-saqib #1305 Read
p Press 563 3 updates
feat other-apps 2 weeks ago

Add drag to zoom on the server and site line charts

Drag-to-zoom gesture added to 19 server and site analytics charts for easier time range selection.

@balamurali27 #7275 Read
fix other-apps 2 weeks ago

Zoom the charts with a pinch on touch devices

Touch devices now pinch-to-zoom charts instead of scroll-to-zoom.

@balamurali27 #7277 Read
fix other-apps 2 weeks ago

Audit and logo upload issues

Resolves audit failures and logo upload issues in marketplace.

@prathameshkurunkar7 #7280 Read
o Other 14 updates
fix other-apps 2 weeks ago

Preserve recorder integration evidence

Upgrade Suite CI actions to Node 24-compatible releases and fix artifact upload permissions.

@BreadGenie #701 Read
feat other-apps 2 weeks ago

Surface meeting info in toolbar

Meeting info popover added to toolbar showing E2EE state, fingerprint, and meeting options.

@BreadGenie #702 Read
feat other-apps 2 weeks ago

Pick the reply identity from the original message's recipients

Multi-identity reply now automatically selects the identity the message was addressed to.

@s-aga-r #704 Read
feat other-apps 2 weeks ago

Thread view cleanup

Collapsed messages now show one-line summaries instead of full headers, saving ~50% viewport space per message.

@krantheman #716 Read
fix accounting 2 weeks ago

Correct service name retrieval (WRT-7)

Use full shipping service name instead of product name to distinguish between services.

@MarcCon #112 Read
fix other-apps 2 weeks ago

Clip slideshow overflow

Slideshow root clips overflow to prevent scrollbars across different monitor viewports.

@GursheenK #703 Read
fix other-apps 2 weeks ago

Fail recovery on snapshot errors

Snapshot errors now properly fail recovery instead of silently accepting degraded state.

@BreadGenie #708 Read
fix other-apps 2 weeks ago

Bound participant snapshot retries

Participant snapshot recovery is limited to three retries and escalates on exhaustion.

@BreadGenie #709 Read
fix other-apps 2 weeks ago

Don't keep sender copies of custom invite emails

Custom calendar invites are destroyed after sending so they don't clutter sender's mailbox.

@s-aga-r #710 Read
fix other-apps 2 weeks ago

Compare against actual writer-home route name

Error page Go Home button no longer renders on the home error page itself.

@ebrahimgamdiwala #712 Read
fix other-apps 2 weeks ago

Remove orphaned temp upload file on quota rejection

Temp files from rejected uploads are now cleaned up to prevent disk leaks.

@ebrahimgamdiwala #713 Read
fix other-apps 2 weeks ago

Partial Settlement overshoot no longer creates orphan principal demand

Extra principal payments in overshoot settlements are now linked to the repayment schedule.

@Nihantra-Patel #1402 Read
fix other-apps 2 weeks ago

Stop querying dropped old_name field in translate_old_name

Stop SQL errors from legacy `/drive/{file,folder,document}/` redirects on migrated sites.

@s-aga-r #715 Read
fix other-apps 2 weeks ago

Remove dead get_docs_attached_to endpoint

Removes an unreachable endpoint that loaded File objects without permission checks, closing a thin existence-only permission gap.

@ebrahimgamdiwala #714 Read

Friday, August 21

ERPNext 38.9k 6 updates
fix accounting 2 weeks ago

Skip covered rows when ordering from the mrp report

MRP report ordering now correctly skips rows already covered.

@Pandiyan5273 #58312 Read
fix accounting 2 weeks ago

Respect permissions in timesheet billing summary

Timesheet billing totals now exclude rows the user cannot access; includes backport 58322.

@mihir-kandoi #58320 Read
fix accounting 2 weeks ago

Correct to and from date filters in timesheet billing summary

Date filters in timesheet billing summary were reversed; includes backport 58318.

@mihir-kandoi #58317 Read
fix accounting 2 weeks ago

Stop doubling totals in timesheet billing summary

Group By was counting each entry twice, yielding incorrect totals like 21 hours instead of 10.5; includes fixes for 58315, 58318.

@Pandiyan5273 #58311 Read
fix stock-manufacturing 2 weeks ago

Changing product bundle warehouse should change packed items warehouse

Setting warehouse on a bundle item now updates warehouses in its packed items.

@mihir-kandoi #58316 Read
fix accounting 2 weeks ago

Avoid full grid re-render per row in set_exchange_rate

Opening a Journal Entry with many rows was slow; each row now only updates itself instead of rebuilding the entire grid.

@Jatin3128 #58328 Read
Frappe 10.7k 3 updates
fix framework 2 weeks ago

Fix href link webform in request data

Webform URL links on request-data page now point to correct field.

@Bowrna #41993 Read
fix developer-experience 2 weeks ago

Onclick link for routes expanded

Navbar routes with onclick links were not expanding; now properly handle dynamic route expansion.

@Bowrna #41989 Read
fix framework 2 weeks ago

Treat formula-like values as literal text in CSV/XLSX export

Values starting with `=`, `+`, `-`, `@`, etc., are now escaped to prevent formula injection on import.

@AarDG10 #41945 Read
HR 8.7k 3 updates
fix hr-payroll 2 weeks ago

Set indicator colors on kanban columns

Job Applicant kanban columns now show indicator colors on board creation; patch backfills existing boards; includes backport 5135.

@iamkhanraheel #5090 Read
fix hr-payroll 2 weeks ago

Use public scrub API in unpaid expense report

Unpaid Expense Claim report import failing on Frappe v16 fixed by using stable public API instead of internal scrub.

@krishna-254 #5127 Read
fix hr-payroll 2 weeks ago

Enforce advance currency and account type checks consistently across selection and save

Selecting a valid Employee Advance threw false errors for currency mismatches or non-Receivable accounts; checks now consistent; includes backport 5136.

@iamkhanraheel #5126 Read
Helpdesk 3.4k 1 update
fix other-apps 2 weeks ago

Consider holidays for outside working hours banner

The "raised outside working hours" banner was ignoring holidays because it queried the wrong parent doctype.

@aerodeval #3711 Read
LMS 3.2k 3 updates
feat other-apps 2 weeks ago

Improved command palette

Command palette now has functional search and keyboard navigation; most results were routing to wrong pages.

@raizasafeel #2676 Read
feat other-apps 2 weeks ago

Enforce lesson completion

Per-course enforcement of lesson completion gates; students cannot open a lesson until earlier lessons are complete (opt-in, server-side validated).

@raizasafeel #2674 Read
fix other-apps 2 weeks ago

Give the Chapters bar the tab strip's height

Chapters bar button height now aligns with tab strip after page shell updated tab button line-height.

@raizasafeel #2677 Read
b Builder 2.3k 5 updates
fix ai 2 weeks ago

AI design flow session review fixes

Attached reference images in design flow were lost after the turn they were sent; now persisted across session replay.

@surajshetty3416 #773 Read
fix ui-ux 2 weeks ago

Match builds stay faithful to the named reference

Match builds incorrectly chose an older sibling page's design instead of the named reference geometry.

@surajshetty3416 #774 Read
fix ui-ux 2 weeks ago

Sync the root lockfile with the workspace manifests

Yarn install failed on clean checkout due to misaligned dependency versions between root and workspace manifests.

@surajshetty3416 #776 Read
fix ui-ux 2 weeks ago

Send component block as a string when saving

Saving an existing component threw 500 because a dict was passed to SQL instead of JSON string.

@stravo1 #775 Read
fix ui-ux 2 weeks ago

Restore the site analytics chart under echarts 6

Site Analytics chart was blank since echarts version bump; rendering restored by applying missing color configuration.

@surajshetty3416 #780 Read
o Other 17 updates
feat other-apps 2 weeks ago

Add raven_integration app

List raven_integration on the Frappe marketplace.

@raizasafeel #19 Read
feat other-apps 2 weeks ago

Render mermaid diagrams

Published VitePress documentation now renders Mermaid code blocks as interactive fullscreen diagrams with zoom and download.

@DanielRadlAMR #1970 Read
feat other-apps 2 weeks ago

Add media fault injection coverage

Adds test coverage for SFU producer/consumer creation failures and media endpoint closure recovery.

@BreadGenie #694 Read
feat other-apps 2 weeks ago

Cover browser lifecycle recovery

Adds test coverage for deterministic browser visibility and connectivity controls in Meet media fault recovery.

@BreadGenie #696 Read
feat other-apps 2 weeks ago

Show emails in participant search

Calendar participant search now shows email addresses as primary labels with contact names and avatars as secondary.

@BreadGenie #700 Read
feat other-apps 2 weeks ago

Nested condition trees, derived workspace membership, and host-declared manager roles

Membership rules now support flexible nested condition trees instead of flat AND/OR, enabling complex workspace access policies.

@raizasafeel #1 Read
fix other-apps 2 weeks ago

Recover fresh participant connections

Converge exhausted recovery operations into one bounded coordinator; rebuild signaling and transports before advancing media health.

@BreadGenie #693 Read
fix other-apps 2 weeks ago

Recover browser media lifecycle

Suspend media repairs while hidden or offline; reset baselines and retry playback after browser transitions.

@BreadGenie #692 Read
fix other-apps 2 weeks ago

Reconcile expected media

Track expected media lifecycle state and periodically reconcile missing publications and subscriptions with bounded repairs.

@BreadGenie #691 Read
fix other-apps 2 weeks ago

Recover decoded video stalls

Distinguish missing RTP from video decode stalls using inbound frame counters; request keyframe before recovery.

@BreadGenie #689 Read
fix other-apps 2 weeks ago

Recover missing remote streams

Detect and recreate subscriptions for remote consumers missing their first RTP; retry with bounded lifecycle-safe chain.

@BreadGenie #686 Read
fix other-apps 2 weeks ago

Recover ended local tracks

Reacquire camera or microphone tracks that end unexpectedly and preserve selected-device fallback.

@BreadGenie #685 Read
fix other-apps 2 weeks ago

Video upload inconsistencies

Toolbar uploads now show progress, media lands on correct slide, and video posters render correctly on slow connections.

@GursheenK #688 Read
fix other-apps 2 weeks ago

Show scheduled participant avatars

Preserve contact names and profile images for scheduled meeting participants.

@BreadGenie #698 Read
fix other-apps 2 weeks ago

Allow creating loan repayment directly when it fails to create during payroll

Loan repayment can now be created separately when it fails during payroll without canceling the entire payroll entry; includes backport 1400.

@Nihantra-Patel #1399 Read
fix ui-ux 2 weeks ago

TabButtons options, Compose screenshot, and editor write fixes

External writes restoring earlier editor values now apply correctly; TabButtons recipe updated with theme-aware options.

@netchampfaris #1099 Read
fix other-apps 2 weeks ago

Check what a mapping is pointed at on every write path

Prevents Manager-role users from silently repointing mappings through direct API calls, bypassing adoption checks.

@raizasafeel #2 Read

Thursday, August 20

ERPNext 38.9k 19 updates
feat stock-manufacturing 3 weeks ago

Percentage based BOM

Adds percentage-based BOM for formulations where component quantities derive from percentages that total 100%, with balance item support and automatic UOM conversion.

@rohitwaghchaure #58292 Read
fix accounting 3 weeks ago

New docs should refetch incoming rates

New documents now refetch incoming rates before calculating cost of goods.

@mihir-kandoi #58097 Read
fix stock-manufacturing 3 weeks ago

Preserve zero return incoming rates

Sales returns with explicit zero incoming rates now preserve that zero during rate recalculation.

@mihir-kandoi #58302 Read
fix accounting 3 weeks ago

Handle Transaction Deletion Record CSV edge cases

CSV import now handles short rows and imports with only skipped rows gracefully.

@mihir-kandoi #58300 Read
fix accounting 3 weeks ago

Use user data fields hook

Privacy rules now load correctly by replacing deprecated `user_privacy_documents` hook with `user_data_fields`.

@mihir-kandoi #58274 Read
fix accounting 3 weeks ago

Work order finish dialog with process loss qty from job card

Caps the job card completed qty by the minimum from previous operations and shows process loss booked.

@rohitwaghchaure #58256 Read
fix accounting 3 weeks ago

Skip covered rows when ordering from the mrp report

Material Requirements Planning no longer tries to create orders for rows whose quantities are already covered by existing stock.

@Pandiyan5273 #58249 Read
fix accounting 3 weeks ago

Allocate drop-ship cost by invoice quantity

Gross Profit now allocates purchase cost proportionally by invoice quantity for drop-ship items instead of assigning the full cost to every row.

@mihir-kandoi #58226 Read
fix accounting 3 weeks ago

Match returns to source invoice items

Gross Profit now applies returns to the correct invoice rows (not just by item code) and uses the right purchase rate for drop-ship items.

@mihir-kandoi #58250 Read
fix accounting 3 weeks ago

Prevent TimestampMismatchError resolving Dunning with multiple overdue installments

Payment Entries for multi-installment invoices no longer fail when the invoice appears multiple times in a Dunning's overdue table.

@ruchamahabal #57771 Read
fix stock-manufacturing 3 weeks ago

Scope secondary items to job card

Scrap item tracking in multi-operation work orders now limits quantities to the current job card, preventing double-booking across operations.

@mihir-kandoi #58260 Read
fix stock-manufacturing 3 weeks ago

Support shared target UOM conversions

UOM conversions now work when both source and target UOMs convert to a common third UOM.

@mihir-kandoi #58305 Read
fix stock-manufacturing 3 weeks ago

Fetch item stock UOM in stock reconciliation

Stock Reconciliation now shows each item's correct Stock UOM immediately, instead of falling back to settings defaults.

@Sudharsanan11 #58284 Read
fix stock-manufacturing 3 weeks ago

Preserve item UOM conversion factor

Saving an Item now keeps explicit UOM conversion factors instead of replacing them with global defaults.

@mihir-kandoi #58299 Read
fix stock-manufacturing 3 weeks ago

Ignore future stock during batch reservation

Automatic batch reservation now uses a posting timestamp cutoff, preventing reservation of stock from future-dated entries.

@mihir-kandoi #58303 Read
fix stock-manufacturing 3 weeks ago

Update pick list status for product bundles

Pick lists now correctly track delivery status for product bundles that spawn multiple component rows.

@mihir-kandoi #58306 Read
fix accounting 3 weeks ago

Escape on status image for workstations in production status

Escapes `on_status_image` in `get_workstations` so both status branches handle values consistently.

@diptanilsaha #58279 Read
fix accounting 3 weeks ago

Escape interpolated values in text positions across portal and desk templates

Escapes free-text document values interpolated into element text and serializes the RFQ document safely inside its script block.

@diptanilsaha #58286 Read
fix accounting 3 weeks ago

Escape interpolated values in portal, print and desk templates

Escapes item, warehouse, user and document values interpolated into HTML attributes across portal pages, print formats, form grids, dashboards and client-side templates.

@diptanilsaha #58273 Read
Frappe 10.7k 8 updates
fix framework 3 weeks ago

Exclude dynamic routes from sitemap.xml

Dynamic routes with placeholders (e.g. `/blog/:name`) are now skipped from sitemap to avoid invalid URLs like `/project/%3Cname%3E`.

@surajshetty3416 #41985 Read
fix framework 3 weeks ago

Preserve saved page size on load more

Report page size is now reused when loading more rows instead of resetting.

@krishna-254 #41836 Read
fix framework 3 weeks ago

File permission flip fix

File permissions can now be toggled correctly.

@Bowrna #41785 Read
fix framework 3 weeks ago

RQ Job list filters and search-link crash

ID, Job Name, and Status filters now work correctly; fixed autocomplete crash on malformed job names.

@Nihantra-Patel #41990 Read
fix framework 3 weeks ago

Get encryption key during restore

Prevents generating a new encryption key during restore, which would fail decryption and leave the site in a broken state.

@barredterra #36198 Read
fix framework 3 weeks ago

Reject non-string Web Form Request keys

Rejects list and tuple keys before they're used as ORM filters, preventing filter mismatches.

@barredterra #41971 Read
fix framework 3 weeks ago

Scope reference_doc to form fields for key holders

Restricts `reference_doc` to web form fields only, preventing key holders from receiving the full document in the page.

@barredterra #41983 Read
fix framework 3 weeks ago

Bypass forced sanitization for json fields

Prevents JSON field data corruption by bypassing forced HTML sanitization on fields that store structured data.

@AarDG10 #41963 Read
LMS 3.2k 2 updates
fix other-apps 3 weeks ago

Require only a first name to save a profile

Profile form now matches the User doctype's actual required fields (first_name only).

@FawazAlhafiz #2656 Read
fix other-apps 3 weeks ago

Stop a reverted language change from reloading the page

Changing language and then reverting it no longer triggers a full page reload.

@FawazAlhafiz #2660 Read
b Builder 2.3k 7 updates
fix ui-ux 3 weeks ago

Skip XSS filtering on builder-authored block fields

fix(builders): skip XSS filtering on builder-authored block fields

@mardausdennis #767 Read
feat ui-ux 3 weeks ago

Fix(property plus affordance recedes until interaction

Property panel plus icons now use lighter color at rest and darken on interaction.

@surajshetty3416 #772 Read
feat ui-ux 3 weeks ago

Font token values pick from the font dropdown

Design token font values now use a searchable dropdown with per-family previews and custom font uploads instead of free-text entry.

@surajshetty3416 #769 Read
feat ui-ux 3 weeks ago

Font dropdown keeps a minimum width

Font dropdown options list now maintains a minimum width so family names don't truncate.

@surajshetty3416 #771 Read
feat ui-ux 3 weeks ago

Preview the selected font and design tokens in their own typeface

Font dropdown field and design token rows now preview values in their own typeface instead of the UI font.

@SmrutiSawant #770 Read
feat ui-ux 3 weeks ago

Focus point control for cover images

Cover images now have a focal-point picker in a popover with fit tabs, live zoom slider, and preview on canvas.

@surajshetty3416 #768 Read
feat ai 3 weeks ago

Give Bob one voice across models

AI assistant voice is now defined once and reused across all models, maintaining consistent persona regardless of provider.

@surajshetty3416 #759 Read
p Press 563 7 updates
fix other-apps 3 weeks ago

Include app name in pyproject error

fix: Include app name in pyproject error

@huzan-kazi #7255 Read
fix other-apps 3 weeks ago

Keep whitelisted methods on the bench dropdown's group resource

fix(ui): Keep whitelisted methods on the bench dropdown's group resource

@siduck #7268 Read
feat other-apps 3 weeks ago

Add drilldown in cost by service report

Cost by service report now supports drilldown to see detailed breakdown.

@shadrak98 #7252 Read
fix other-apps 3 weeks ago

Set Amount due as zero once paid

Invoice amount due now correctly updates to zero after payment.

@shadrak98 #7245 Read
fix other-apps 3 weeks ago

Scroll the bench log dialog after the body mounts

Deep links to bench logs now scroll to the bottom on load instead of staying at the top.

@balamurali27 #7259 Read
fix other-apps 3 weeks ago

Make a single command for ssh access dialog

SSH access dialog now shows a single copyable command instead of requiring multiple steps.

@siduck #7233 Read
fix other-apps 3 weeks ago

Show database uptime as a percent of each bucket

Database uptime chart now shows percentage of time up in each time bucket instead of a flat 0/1 gauge.

@balamurali27 #7270 Read
p Payments 174 1 update
feat integrations 3 weeks ago

List the refunds on a payment

Razorpay integration now exposes `fetch_refunds(payment_id)` to list all refunds against a payment, enabling reconciliation of refunds made outside the system.

@harshtandiya #251 Read
o Other 36 updates
fix other-apps 3 weeks ago

Shared-dep resolver so linked frappe-ui can't pull its own @tiptap

fix(scope): shared-dep resolver so linked frappe-ui can't pull its own @tiptap

@ruchamahabal #253 Read
fix other-apps 3 weeks ago

Missing Popover in build config

fix(builders): missing Popover in build config

@ruchamahabal #251 Read
fix other-apps 3 weeks ago

Capture build failure error and show in toast

fix(builders): capture build failure error and show in toast

@ruchamahabal #252 Read
fix other-apps 3 weeks ago

Minor ui things

fix: minor ui things

@BreadGenie #679 Read
fix other-apps 3 weeks ago

Typo

fix(drive): typo

@BreadGenie #680 Read
fix other-apps 3 weeks ago

Fix DOCX export and rewrite exporter

fix(writer): fix DOCX export and rewrite exporter

@DikshaJadhav3110 #515 Read
fix other-apps 3 weeks ago

Correct pagination and margins in Writer PDF/print export

fix(mail): correct pagination and margins in Writer PDF/print export

@DikshaJadhav3110 #671 Read
fix other-apps 3 weeks ago

Let the 500 page's links escape their iframe

fix(pages): Let the 500 page's links escape their iframe

@balamurali27 #585 Read
fix other-apps 3 weeks ago

Point the 500 page at the right docs URL

fix(pages): Point the 500 page at the right docs URL

@balamurali27 #587 Read
fix other-apps 3 weeks ago

Broken stuff

fix(ux): broken stuff

@prathameshkurunkar7 #293 Read
fix other-apps 3 weeks ago

Sign pre-commit autoupdate commits

fix(actions): sign pre-commit autoupdate commits

@DanielRadlAMR #1960 Read
fix other-apps 3 weeks ago

Raise z-index of dialog so toasts dont dim

Dialog z-index now stays above toast overlays.

@siduck #400 Read
fix other-apps 3 weeks ago

Quieter resize handles, sticky text colour, and a typed font size

Resize handles now use neutral grey, sticky notes have text color control, and font size has proper typing.

@bvnaik05 #554 Read
fix other-apps 3 weeks ago

Make a "+" mean an offer, and a direction change mean direction

Flowchart and mind-map connectors now show `+` only on unconnected sides and properly display decision branch directions.

@bvnaik05 #552 Read
fix other-apps 3 weeks ago

All five of #544's minor issues

Eraser no longer stays armed after Clear All; Guides label hidden; toolbar triggers fixed.

@bvnaik05 #548 Read
fix other-apps 3 weeks ago

Let a new object clear an arranged line, not tie with it

New objects now correctly supersede arranged lines in z-order instead of tying with them.

@vibhavkatre #551 Read
fix other-apps 3 weeks ago

Distinct Lines-menu icons, and lines behave like first-class objects

Lines now show distinct geometry icons in the menu and can be selected, arranged, and deleted like other objects.

@bvnaik05 #545 Read
feat other-apps 3 weeks ago

Revert "fix: Consider full year calculation for limits"

Reverts a limit calculation change that was incorrect.

@deepeshgarg007 #84 Read
feat other-apps 3 weeks ago

DOCX import support

Writer now supports importing Word documents directly into the editor using mammoth.js for client-side parsing.

@DikshaJadhav3110 #517 Read
feat other-apps 3 weeks ago

Redesign the error pages

All error pages (500, 502, 504, 429) now share one consistent layout with icon, heading, error line, and action buttons, with the 500 page linking to the bench's web error log.

@balamurali27 #581 Read
feat other-apps 3 weeks ago

Better handling of server flows

Atlas now stores and includes correlation IDs on every vm/site event for attribution of outcomes to central requests.

@prathameshkurunkar7 #160 Read
feat other-apps 3 weeks ago

Make server flow robust

Server flows now have structured error handling, Resource Action tracking, and correlation IDs for matching outcomes to requests.

@prathameshkurunkar7 #288 Read
feat other-apps 3 weeks ago

Add send_otp/verify_otp entry points for other apps

Telephony now exposes `send_otp` and `verify_otp` entry points for apps that verify recipients as part of their own flow.

@TanviKamath #22 Read
feat other-apps 3 weeks ago

Align the Draw home page with Drive, remove pinning

Draw home page now uses frappe-ui list primitives matching Drive's design, with sorting on column headers and no pinning.

@bvnaik05 #543 Read
feat other-apps 3 weeks ago

Efficient table editing — row/column grips, structural edits, header rows, cell ranges

Whiteboard tables now support row/column grips with insert/delete actions, header row designation, and cell range selection for a Google-Docs-style editing experience.

@bvnaik05 #555 Read
feat other-apps 3 weeks ago

Connectors and line improvements

Lines can now attach to shapes with auto-binding to ports or sides; connectors follow targets through move, resize, and rotate in the same undo entry.

@GursheenK #674 Read
feat other-apps 3 weeks ago

Saving offline copies and presenting with no network

Presentations can now be saved offline with images, shell, and assets; offline mode works for viewing, presenting, and editing with sync when back online.

@GursheenK #668 Read
fix other-apps 3 weeks ago

Clip background preview corners

Background effect corners are now clipped to prevent composited video pixels leaking through in Firefox.

@BreadGenie #681 Read
fix other-apps 3 weeks ago

Isolate participant connections

SFU media ownership is now isolated per participant connection while preserving participant identity.

@BreadGenie #682 Read
fix other-apps 3 weeks ago

Clean up closed producers

Closed media producers are now finalized idempotently and dependent consumers are cleaned up.

@BreadGenie #683 Read
fix other-apps 3 weeks ago

Recover initial media publication

Camera and microphone now retry independent publication with bounded retries and proper state tracking.

@BreadGenie #684 Read
fix other-apps 3 weeks ago

Support in/not in filters end to end

Multi-value filters now work correctly from the UI through data fetches to the Edit Data spreadsheet.

@ruchamahabal #254 Read
fix other-apps 3 weeks ago

Filter out trashed files from archive downloads

Archive downloads now respect file status checks and exclude trashed files.

@ebrahimgamdiwala #677 Read
fix other-apps 3 weeks ago

Images replaced on the wrong slide

Image replacements now land on the correct slide when duplicating slides from layouts.

@GursheenK #676 Read
fix other-apps 3 weeks ago

Images pasted from another tab were not visible to viewers

Cross-presentation paste now attaches images and videos to the destination, making them visible to viewers.

@GursheenK #672 Read
fix other-apps 3 weeks ago

Block sending during attachment upload

Send and schedule controls are now disabled while file attachments upload to prevent sending incomplete emails.

@BreadGenie #678 Read

Monday, August 17

ERPNext 38.9k 5 updates
feat accounting 3 weeks ago

Add status filter to Supplier Quotation Comparison report

Supplier Quotation Comparison report now has a Status filter (Draft, Submitted, both); defaults to Submitted to hide drafts.

@Shllokkk #58198 Read
fix accounting 3 weeks ago

Drop removed Restaurant doctype from sales tax template dashboard

Sales Taxes and Charges Template form loads properly on sites without the Hospitality app; removed reference to Restaurant DocType that was moved to a separate app.

@Pandiyan5273 #58191 Read
fix accounting 3 weeks ago

Correct Item Group doctype name in item tax template dashboard

Item Tax Template form now loads correctly; dashboard was referencing non-existent "Item Groups" DocType instead of "Item Group".

@Pandiyan5273 #58192 Read
fix accounting 3 weeks ago

Add missing permission check on `get_import_status`

Adds permission check to the `get_import_status` endpoint to block unauthorized calls.

@diptanilsaha #58217 Read
fix accounting 3 weeks ago

Add missing permission check on multiple whitelisted methods

Adds missing permission validation on multiple whitelisted methods to prevent unauthorized access.

@diptanilsaha #58221 Read
Frappe 10.7k 1 update
feat framework 3 weeks ago

Let apps add search results via hook

Enables in-app docs search and allows apps to add custom search results via hooks for use cases like external APIs and semantic search.

@barredterra #41925 Read
b Builder 2.3k 2 updates
fix ui-ux 3 weeks ago

Carry the reference into generation, teach the full component system

AI page generation now preserves reference layouts, fonts, components and scripts instead of losing them or rendering fallbacks.

@surajshetty3416 #754 Read
fix ai 3 weeks ago

Smooth chat panel loading states

AI panel no longer flashes "Set up AI" to configured users on slow networks; chat scrolls to end when loaded behind a closed tab.

@surajshetty3416 #757 Read
o Other 38 updates
feat other-apps 3 weeks ago

Indent lines with tab and keep whitespace in text

Tab and Shift-Tab now indent/outdent slide text lines with 4-character stops; whitespace is preserved on reload.

@GursheenK #656 Read
feat other-apps 3 weeks ago

Reduce interruptions for long projector presentations

Presentation mode now suppresses toasts during fullscreen and holds a wake lock to keep screen awake during long talks.

@GursheenK #660 Read
feat other-apps 3 weeks ago

Add automatic camera framing

Automatic face-aware camera framing with stable crop tracking; users can hold and resume framing from the video preview.

@BreadGenie #655 Read
feat other-apps 3 weeks ago

Draw the laser trail as one continuous ribbon

Laser trail now renders as smooth continuous ribbon instead of beaded segments; grows from tail to head with consistent width.

@vibhavkatre #452 Read
feat other-apps 3 weeks ago

Rework the shapes menu, custom polygons and shape rounding

Shapes menu reorganized into 4×2 grid with custom polygon tile (3–15 sides); shapes now support continuous rounding via corner radius slider.

@vibhavkatre #453 Read
feat other-apps 3 weeks ago

Rebuild Home around the diagram list

Home now centers on the diagram list; removed yellow Drive card and Collections entirely, simplifying the interface.

@vibhavkatre #454 Read
feat other-apps 3 weeks ago

Persist locked framing across sessions

Locked camera framing now persists across page reloads and future calls; restores with validation and bounds clamping.

@BreadGenie #657 Read
feat other-apps 3 weeks ago

Serve page definitions to the renderer without Studio roles

Studio page renderer now loads definitions in 1 request instead of 4, and non-studio users can now view rendered pages.

@ruchamahabal #242 Read
feat other-apps 3 weeks ago

Add Trapezoid and Parallelogram shapes

Two new polygon shapes now available in the Shapes menu alongside existing presets.

@vibhavkatre #480 Read
feat other-apps 3 weeks ago

Fill the block arrow's box, and make its proportions draggable

Block arrow now fills its bounding box completely; proportions of arrow head are draggable to adjust shape.

@vibhavkatre #483 Read
feat other-apps 3 weeks ago

Give the eraser three modes, sized tips and Clear all

Eraser now offers three modes (Eraser with adjustable tip sizes, Erase by object, Clear all) via a dropdown menu.

@vibhavkatre #488 Read
feat ui-ux 3 weeks ago

Print a heatmap's categories, and stand its scale beside the plot

Heatmap categories now print formatted values on axes and in tooltips; scale displays beside the plot instead of as a separate legend.

@nextchamp-saqib #1085 Read
feat other-apps 3 weeks ago

One colour palette across the app

Unified single Espresso color palette across all menus; three near-duplicate palettes (swatches, whiteboard, components) now use the same grid.

@vibhavkatre #534 Read
feat other-apps 3 weeks ago

The Lines menu is a line and an arrow for each shape

Lines menu now offers six tools: straight/elbowed/curved as both lines and arrows, with two genuinely new tools (elbowed and curved lines).

@vibhavkatre #535 Read
fix other-apps 3 weeks ago

Ease camera framing back to full frame

Camera view now eases smoothly back to full frame when auto-framing winds down instead of jumping abruptly.

@BreadGenie #658 Read
fix other-apps 3 weeks ago

Make Fill read as a fill, and let the corner handle own rounding

Fill button now renders as solid disc instead of looking like a second border control; corner handle independently controls rounding.

@vibhavkatre #479 Read
fix other-apps 3 weeks ago

Make the toolbar icons one weight and legible apart

Toolbar icon stroke weight and sizes now consistent across all glyphs; previously conflicting sizes made some icons hard to distinguish.

@vibhavkatre #476 Read
fix other-apps 3 weeks ago

Sit the selection outline tight on the shape, and drop the edit ring

Selection outline no longer stands off shapes; edit ring removed to reduce selection chrome visual noise.

@vibhavkatre #478 Read
fix other-apps 3 weeks ago

Export the preset polygon shapes as their own outlines

Block arrows, hexagons, pentagons and stars now export correctly to PNG, PDF, thumbnails and minimap; were previously rendering as plain rectangles.

@vibhavkatre #477 Read
fix other-apps 3 weeks ago

Show white in the colour grid, and align the font menu with Espresso

White swatch now visible in color grid with a real outline instead of disappearing as a hairline on white; font menu now uses single Espresso palette.

@vibhavkatre #481 Read
fix other-apps 3 weeks ago

Show the Arrange menu tiles as icons only

Arrange menu tiles across four sections now show icons only (tooltips carry the labels), reducing menu width from 300px and eliminating redundant text.

@vibhavkatre #482 Read
fix other-apps 3 weeks ago

Group the canvas toolbar into Navigation, Creation, Editing

Toolbar now reads in three semantic sections (Navigation/zoom, Creation/insert, Editing/arrange) instead of growing contextual groups that shift everything sideways.

@vibhavkatre #484 Read
fix other-apps 3 weeks ago

Drop the guide label pill and the Apps entry

Removed redundant label pill from alignment guides and unused Apps menu entry to reduce visual clutter.

@vibhavkatre #485 Read
fix other-apps 3 weeks ago

Let Escape close a dialog instead of deselecting behind it

Escape key now closes Export, Share and Info dialogs instead of being consumed by the editor's keyboard handler.

@vibhavkatre #486 Read
fix other-apps 3 weeks ago

Hold the export dialog at one height as the format changes

Export dialog no longer shrinks and recenters when switching between SVG/PNG formats; controls stay in place under the mouse pointer.

@vibhavkatre #487 Read
fix other-apps 3 weeks ago

Size an insert menu to its tiles, not to a measured box

Lines menu width now matches its tile content instead of leaving visible empty space to the right.

@vibhavkatre #531 Read
fix other-apps 3 weeks ago

Say whether a failed save needs a retry or a reload

"Save failed" message now distinguishes transient retryable failures from reload-requiring errors (e.g., frontend bundle replaced).

@vibhavkatre #533 Read
fix other-apps 3 weeks ago

Scale the size preview dots instead of clamping them

Highlighter size preview dots now show three distinct sizes; middle and right options no longer rendered as identical dots due to incorrect clamping.

@vibhavkatre #532 Read
fix other-apps 3 weeks ago

Type a table cell and a connector label in what they commit to

Text editors for table cells and connector labels now match the appearance of their committed output; alignment and styling were drifting while editing.

@vibhavkatre #529 Read
fix other-apps 3 weeks ago

Rebuild the connector menu as one kind of control

Connector dash and corner options are now icon cells instead of word-carrying segmented controls; dash pattern is drawn at the connector's own width.

@vibhavkatre #528 Read
fix other-apps 3 weeks ago

Close the selection outline by moving the handles off it

Selection outline no longer appears "open" at corners; resize handles now sit off the dashed box instead of masking it.

@vibhavkatre #527 Read
fix other-apps 3 weeks ago

One drag box selects everything, and nothing it cannot act on

Marquee selection now includes whiteboard elements (ink, stickies, lines, tables) that were invisible to it; fixed two opposing filter bugs in the same function.

@vibhavkatre #526 Read
fix other-apps 3 weeks ago

Render inserted images in the minimap, export and thumbnails

Images now appear in the minimap, SVG/PNG/PDF exports, saved thumbnails and home tiles; were previously rendering as empty rectangles.

@vibhavkatre #525 Read
fix other-apps 3 weeks ago

No text options on the toolbar for an image

Selecting an image no longer shows text formatting controls (font, size, bold, italic, etc.) that don't apply to it.

@vibhavkatre #524 Read
fix other-apps 3 weeks ago

Say why an image insert failed, and place it where the user clicks

Failed image inserts now show an error message; images place at the click point instead of a fixed location.

@vibhavkatre #523 Read
fix other-apps 3 weeks ago

Let a mind map close back up when a node is deleted

Deleting a mind-map node now reflows remaining nodes back toward the parent instead of keeping the spacing of the larger tree.

@vibhavkatre #522 Read
fix other-apps 3 weeks ago

Stop a mind-map node growing a line at 15 characters

Mind-map node sizing no longer oscillates between one and two lines as text grows; character-width calculation is now consistent at all font sizes.

@vibhavkatre #520 Read
fix other-apps 3 weeks ago

One mind-map "+" at a time, and a new node opens for naming

Fixed five simultaneous issues where hover and selection marks appeared on different nodes; new nodes now open with a text input ready for naming.

@vibhavkatre #521 Read

Sunday, August 16

ERPNext 38.9k 3 updates
fix accounting 3 weeks ago

Correct is_frozen description on customer and supplier

Descriptions now accurately state the flag blocks all new transactions, not just ledger entries.

@Pandiyan5273 #58168 Read
feat accounting 3 weeks ago

Validate purchase receipt exchange rate parity on purchase invoice

Foreign currency invoices at different rates silently booked exchange differences to the wrong account; now validated at submission.

@rohitwaghchaure #58177 Read
fix accounting 3 weeks ago

Added permission check for `get_msg_html`

Missing permission check allowed unprivileged users to access digest HTML generation.

@diptanilsaha #58197 Read
Frappe 10.7k 9 updates
fix ui-ux 3 weeks ago

Name the Page Script save event by its current spelling

Comment updated to reference `beforeSave` instead of deprecated `before_save` handler key.

@shariquerik #41905 Read
feat ui-ux 3 weeks ago

`after_app_build` hook to hook into another app's build process

New hook allows apps to inject build steps when another app is built, enabling Studio to build app-specific frontends during app installation.

@ruchamahabal #41900 Read
feat framework 3 weeks ago

A per-render tab override, and announce the resolved tab

FormLayout tabs now support per-render `hidden` and `label` overrides that apply after `depends_on` resolution, and announce which tab is active to callers.

@shariquerik #41908 Read
fix framework 3 weeks ago

Typed empties for a new child row, and a write-through row-edit dialog

New child rows omitted fields without defaults, making `undefined * undefined` computations fail silently; dialog edits also didn't persist to parent form.

@shariquerik #41895 Read
fix framework 3 weeks ago

Identify tabs by name, not by position

Tab selection by index broke when `depends_on` tabs appeared or disappeared, silently moving the reader to a neighboring tab without preserving which tab they were on.

@shariquerik #41902 Read
fix framework 3 weeks ago

Record the source document a notification came from

Mentions in comments only recorded the parent document, not the comment itself, forcing users to search through dozens of comments to find the mention.

@RitvikSardana #41868 Read
fix framework 3 weeks ago

Report view status column corrupts link title fetch on doctypes without an indicator

Status column built unconditionally then removed mid-render, shifting all subsequent cells onto wrong columns and fetching titles for wrong doctypes.

@kaulith #41880 Read
breaking framework 3 weeks ago

Preserve POST authorization through login

Guest POST to authorization endpoint lost body parameters (`client_id`, `redirect_uri`, `state`) before resuming, breaking the OAuth flow.

@barredterra #41544 Read
fix framework 3 weeks ago

Authenticate UserInfo bearer tokens

UserInfo endpoint required Frappe login before OAuth bearer authentication ran, allowing valid tokens to bypass auth. Tokens for missing or disabled User records remained valid, violating RFC 6749.

@barredterra #41545 Read
b Builder 2.3k 3 updates
fix ai 3 weeks ago

Describe embedded components fully in reference reads

Shared headers, sidebars, and footers now described fully in reference pages, preventing Bob from rebuilding them from guesswork.

@surajshetty3416 #752 Read
feat ai 3 weeks ago

Site-aware Bob with on-demand orientation, reference reads, and online research

Bob AI agent now reads the actual site and reference pages instead of guessing, performs online research, and understands site identity and structure.

@surajshetty3416 #751 Read
breaking ui-ux 3 weeks ago

Report the number of blocks changed, not a replacement count

Replacement count incremented once per block regardless of matches inside, breaking both UI reporting and translation strings expecting two separate values.

@mardausdennis #750 Read
o Other 8 updates
fix other-apps 3 weeks ago

Block installing Suite when a standalone suite app is installed

Install fails with a helpful error listing conflicting standalone apps (Calendar, Drive, Mail, etc.) that must be uninstalled first.

@s-aga-r #646 Read
fix other-apps 3 weeks ago

Move standard studio app builds from `after_build` to `after_app_build` hook

Studio app builds now only run when Studio itself is built, not on every app build.

@ruchamahabal #174 Read
feat other-apps 3 weeks ago

Give text elements explicit width modes

Text elements now have explicit `Auto` / `Fixed` width mode control; new text starts centered in Auto mode, and side-handle drag flips to Fixed with a single undo.

@GursheenK #652 Read
fix other-apps 3 weeks ago

Skip recorder-dependent reconciliation when no recorder is configured

Scheduled job raised `ValueError: URL must be configured` for every pending recording on sites without a recorder, creating error logs on every run.

@s-aga-r #645 Read
fix other-apps 3 weeks ago

Send RFC 3339 date-time in HOLDUNTIL envelope parameter

Scheduled sends failed against Stalwart >= 0.16.17; HOLDUNTIL now sends RFC 3339 date-time instead of Unix timestamp per corrected RFC 4865 compliance.

@s-aga-r #647 Read
fix other-apps 3 weeks ago

Ignore stale keyframe requests

Keyframe requests from already-closed consumers were not idempotent, surfacing errors instead of silently ignoring stale work.

@BreadGenie #649 Read
breaking other-apps 3 weeks ago

Synchronize camera media lifecycle

Camera media ownership changes during device switches and unmounts were not synchronized, breaking recovery and E2EE republish.

@BreadGenie #650 Read
fix other-apps 3 weeks ago

Table resize preview snapping back mid-drag

Table frame width flashed back to original while dragging column edges due to live document redraws overwriting preview state.

@GursheenK #653 Read

Saturday, August 15

ERPNext 38.9k 17 updates
feat stock-manufacturing 3 weeks ago

Sync serial no status from stock ledger in Stock Qty vs Serial No Count report

Report now syncs orphaned serial numbers and corrects their warehouse/status from ledger, fixing drift caused by cancelled/amended vouchers.

@rohitwaghchaure #57865 Read
feat accounting 3 weeks ago

Add shipping contact person to sales order, delivery note and sales invoice

Shipping contact can now be selected separately from billing contact in selling documents.

@Pandiyan5273 #58159 Read
feat accounting 3 weeks ago

Cross-plan load and overlap validation in production plan scheduling

Production plan scheduler now loads other plans' booked capacity and validates no overlap, preventing concurrent plan slot double-booking.

@rohitwaghchaure #58127 Read
feat accounting 3 weeks ago

Opt-in 'Consider Accounting Dimension' filter on General Ledger Report

Accounts Settings now has toggle to disable "Consider Accounting Dimension" filter on General Ledger Report, restructuring Reports tab into sections.

@diptanilsaha #58156 Read
feat accounting 3 weeks ago

Belgian Charts of Accounts (commercial + non-profit, FR + NL)

Replaces placeholder chart with four validated PCMN charts from Belgian legislator, covering commercial and non-profit entities in French and Dutch.

@maasanto #54679 Read
fix accounting 3 weeks ago

Rewriting overdue billing checkbox description

Overdue billing field description clarified.

@Jatin3128 #58165 Read
fix accounting 3 weeks ago

Rename misspelled delink_refernce_from_voucher

Internal method spelling corrected from "refernce" to "reference" for naming consistency.

@Pandiyan5273 #58169 Read
fix accounting 3 weeks ago

Preserve alternative material attribution

Manufacturing now correctly tracks when items satisfy both their own and alternative requirement roles, preventing attribution loss.

@mihir-kandoi #58131 Read
fix accounting 3 weeks ago

Get items from sales order in sales invoice

Sales invoice item fetch now correctly retrieves items from linked sales order.

@mihir-kandoi #58163 Read
fix accounting 3 weeks ago

Filter parties by transaction company

Customer and Supplier selectors now respect company restrictions, matching Item selector behavior.

@mihir-kandoi #58147 Read
fix accounting 3 weeks ago

Validation for task end date check

Task end date validation now enforces proper date ordering.

@nishkagosalia #58167 Read
fix accounting 3 weeks ago

Fix AttributeError on budget validation

Budget validation error message formatting now handles v15 doctype structure, showing clear validation message instead of crashing.

@Pandiyan5273 #58093 Read
fix accounting 3 weeks ago

Allow purchase returns against closed purchase orders

Purchase returns can now be created against closed POs, removing an overly restrictive validation.

@Pandiyan5273 #58139 Read
fix accounting 3 weeks ago

Disallow reversing a reverse journal entry

Prevent double-posting of gain/loss entries by blocking reversal of already-reversed Exchange Rate Revaluation journal entries.

@Pandiyan5273 #58092 Read
fix stock-manufacturing 3 weeks ago

Ignore historical negative batch stock in outward validation

Outward stock entries no longer blocked by negative periods from years ago that have since recovered; only current balance matters.

@rohitwaghchaure #58148 Read
fix stock-manufacturing 3 weeks ago

Honor pick serial/batch based on setting in batch selector

Add Batch Nos dialog now respects Stock Settings instead of hardcoding FIFO, allowing expiry-based batch selection when configured.

@Sudharsanan11 #58176 Read
fix stock-manufacturing 3 weeks ago

Restore subcontracting inward warehouse validation

Warehouse direction handlers now route all four subcontracting inward purposes and restore required warehouse checks that were removed during service refactoring.

@mihir-kandoi #58183 Read
Frappe 10.7k 9 updates
feat framework 3 weeks ago

Allow scheduled jobs to override their worker queue

Cron jobs can now specify custom queue and timeout, removing workaround of enqueuing secondary jobs for longer-running tasks.

@kaulith #41263 Read
feat ui-ux 3 weeks ago

Rebuild address & contact cards and add quick entry

Address and Contact cards rebuilt with espresso components; quick entry now enabled for both doctypes on party forms.

@khushi8112 #41600 Read
feat framework 3 weeks ago

Dispatch field commits at the mutation site

FormLayout now emits field `change` events at mutation, allowing consumers to react to field edits without deep-watching documents.

@shariquerik #41892 Read
fix framework 3 weeks ago

Pick RTL layout for supported languages

RTL-supporting languages now detected from framework language definitions and layout switched accordingly.

@Bowrna #41748 Read
fix framework 3 weeks ago

Fall back to docname when link title lookup target is missing

Report view no longer redirects when a Link column references a deleted document; displays the docname as fallback.

@kaulith #41829 Read
fix ui-ux 3 weeks ago

Apply permission checks to kanban board methods

Board read permission now enforced across all kanban board API methods.

@AarDG10 #40952 Read
fix framework 3 weeks ago

Add permission check to assignment rule apply

Assignment rule apply method now validates caller permissions before executing rule assignments.

@AarDG10 #41848 Read
fix framework 3 weeks ago

Consider document ownership in ToDo permission hooks

Permission checks now properly account for ToDo ownership, preventing unauthorized access to other users' tasks.

@AarDG10 #41869 Read
fix framework 3 weeks ago

Enforce IP restrictions for header-based authentication

IP allowlist validation now runs for all authentication paths, covering header-based auth that previously bypassed the check.

@AarDG10 #41883 Read
HR 8.7k 3 updates
feat hr-payroll 3 weeks ago

Add status filter in Monthly Attendance Sheet

Report now filters by employee status (Active, Inactive, Suspended, Left) with Active as default.

@akhtarmohsin #5104 Read
feat hr-payroll 3 weeks ago

Quick action menu for assigning important masters to employee

Employee form now has "Create Assignments" menu with shortcuts to Holiday List, Leave Policy, Salary Structure, Shift and Shift Schedule.

@asmitahase #5095 Read
fix hr-payroll 3 weeks ago

Resolve employee leave balance report error

Report no longer crashes when employee filter is blank; defaults to logged-in user where applicable.

@iamkhanraheel #5069 Read
CRM 3.5k 2 updates
fix crm-sales 3 weeks ago

Only notify mentions on CRM documents

CRM comment hook no longer errors on non-CRM documents like Helpdesk tickets; scope now restricted to CRM doctype references.

@RitvikSardana #2669 Read
fix crm-sales 3 weeks ago

Prevent negative values in currency fields

Lead, Deal, and Organization currency fields now reject negative values via framework validation.

@Shindhu-Ramaswamy #2671 Read
b Builder 2.3k 1 update
feat ai 3 weeks ago

Bob - AI Assistant for Builder

AI assistant Bob now builds pages from single prompts and iteratively edits them, designing tokens, scripts, DocTypes and form wiring in one conversation loop.

@surajshetty3416 #671 Read
p Press 563 5 updates
feat other-apps 3 weeks ago

Add backup audit trail to site backups tab

Site backups tab now shows downloadable audit trail for past backups, querying server job logs when local records deleted by grandfather-father-son policy.

@saurabh6790 #7213 Read
feat other-apps 3 weeks ago

Give user an option to reactivate suspended account

Suspended users now see an account status dialog and can choose to reactivate, instead of silent auto-reactivation.

@siduck #7228 Read
fix other-apps 3 weeks ago

Stop remote builds on stop deploy

Stopping a deploy now cancels remote builds and fixes dockerfile syntax.

@siduck #7219 Read
fix other-apps 3 weeks ago

Show site list for private benches only

Benches sites tab no longer displays the massive public bench site list, reducing UI clutter.

@siduck #7229 Read
fix other-apps 3 weeks ago

Only block large-database updates on AWS servers

Large database size check for physical backup eligibility now runs only on AWS, allowing updates on OCI and Hetzner.

@balamurali27 #7223 Read
o Other 26 updates
feat other-apps 3 weeks ago

Log integration

Datum log ingestion now supported with JWT token minting from central and verification via JWKS.

@20vikash #8 Read
feat other-apps 3 weeks ago

Auto send metrics by flushing buffer

Metrics now auto-flushed from buffer for timely ingestion.

@Aradhya-Tripathi #10 Read
feat other-apps 3 weeks ago

Add site-scoped backup jobs endpoint

New GET /sites//backup-jobs endpoint reports Backup Site jobs with status, timings, artifact sizes, and offsite status for audit compliance.

@saurabh6790 #578 Read
feat other-apps 3 weeks ago

One bake wires signup + server goldens

Chef pilot bake now registers both signup snapshot and server base image via Atlas service API in a single workflow.

@the-bokya #9 Read
feat other-apps 3 weeks ago

Register goldens as signup/server defaults via service API

Service API can now register baked goldens as default bench snapshot for signups and default image for servers.

@the-bokya #156 Read
feat other-apps 3 weeks ago

Run_self_serve(bake=False) for external golden

Atlas can now skip built-in golden bake and assert external service-baked golden, enabling chef-as-a-service image sourcing.

@the-bokya #157 Read
feat other-apps 3 weeks ago

Revamp flowchart UX, node editing and connector routing

Flowchart nodes now measured by actual shape geometry, connector routing avoids passes-through, text fits shape bounds, and the + button stays in reach.

@bvnaik05 #448 Read
feat other-apps 3 weeks ago

Replace Raw Styles with curated Base Styles editor

Raw Styles replaced with searchable curated CSS property editor supporting per-breakpoint edits, ported from Builder.

@ruchamahabal #232 Read
feat other-apps 3 weeks ago

Add Notifications Panel to central

New notifications panel UI component added.

@siduck #282 Read
feat other-apps 3 weeks ago

Notifications in pilot

New notification panel added to pilot.

@siduck #393 Read
feat other-apps 3 weeks ago

Table element in slides

Insert tables via drag-to-grid toolbar, resize columns without edit mode, configure headers and banding, right-click for structure operations and distribution.

@GursheenK #643 Read
feat other-apps 3 weeks ago

Dock and minimise the composer

Mail composer now docks to bottom-right as non-modal, minimises to title bar, and remembers prior state—unblocking list/thread navigation while drafting.

@krantheman #641 Read
fix other-apps 3 weeks ago

Tab title, slideshow video controls and cursor

Slides now shows presentation name in tab title, hides video controls while playing, and hides cursor after idle.

@GursheenK #642 Read
fix other-apps 3 weeks ago

Scroll selected component into view in layers panel

Layers panel now auto-scrolls to show selected block without manual panel scrolling.

@ruchamahabal #239 Read
fix other-apps 3 weeks ago

Restore emoji popup background

Meet chat emoji suggestion popup now renders with correct background using current design tokens.

@BreadGenie #639 Read
fix other-apps 3 weeks ago

Relax host-key checking on ProxyJump host

Atlas builder no longer hangs on fresh containers; ProxyJump host key checking relaxed to match guest.

@the-bokya #12 Read
fix other-apps 3 weeks ago

Drive golden CLI as pilot post-rename

Self-serve site deployments now locate pilot executable correctly after bench-cli rename.

@the-bokya #158 Read
fix other-apps 3 weeks ago

Install openssh-client for atlas builder

Atlas builder now has SSH client to reach build VMs, enabling production image baking in docker-compose.

@the-bokya #11 Read
fix other-apps 3 weeks ago

Wait for SSH after start() before warm_arm

Warm bake mode now waits for guest SSH readiness after boot before attempting snapshot, fixing race condition.

@the-bokya #13 Read
fix other-apps 3 weeks ago

Keep bench-cli entrypoint for Atlas self-serve deploy

Pilot golden image now preserves bench-cli entrypoint symlink, enabling site deployments via Atlas.

@the-bokya #10 Read
fix other-apps 3 weeks ago

Cache-bust mermaid loader in SPA

Mermaid preview no longer fails with stale oklch color format; loader asset now versioned for cache busting.

@NagariaHussain #748 Read
fix other-apps 3 weeks ago

Resolve @tiptap/core from studio for exported apps

Custom TextEditor extensions in exported apps no longer fail to build; @tiptap/core now resolves from Studio's dependency tree.

@aerodeval #237 Read
fix other-apps 3 weeks ago

Bind dialog's renamed open model

Settings dialog now opens correctly after frappe-ui's v1.0.0-beta.52 model rename.

@sadiqxansari #287 Read
fix other-apps 3 weeks ago

Drive preview framework attachments

Drive previews now render framework-created attachments by normalizing MIME types and preserving WebP metadata.

@BreadGenie #638 Read
fix other-apps 3 weeks ago

Tighten chat link wrapping

Long chat URLs no longer wrap at preferred punctuation with misleading gaps; uses link-specific break-all wrapping.

@BreadGenie #644 Read
fix other-apps 3 weeks ago

Require upload access to probe folder filenames

`does_entity_exist` and `get_new_title` APIs whitelisted without permission checks, allowing any logged-in user to enumerate folder contents and probe for file existence.

@ebrahimgamdiwala #603 Read

Friday, August 14

ERPNext 38.9k 11 updates
fix accounting 3 weeks ago

Item description in the item price list

Item Description field in Item Price now displays as formatted text instead of raw HTML.

@akhtarmohsin #58084 Read
fix stock-manufacturing 3 weeks ago

Split fifo/lifo rate across grouped stock item rows

Asset valuations with items at multiple rates now apply FIFO/LIFO correctly per row.

@mihir-kandoi #57820 Read
fix accounting 3 weeks ago

Apply Sales Person user permissions in Accounts Receivable

Clearing the Sales Person filter no longer bypasses user permissions for sales persons.

@khushi8112 #58078 Read
fix accounting 3 weeks ago

Describe stale exchange rate settings

Improves error messaging when exchange rate settings are out of date.

@khushi8112 #58120 Read
breaking stock-manufacturing 3 weeks ago

Qty and UOM not fetched when adding Item in Material Request

Python 3.14's lazy annotations were overriding type validation, breaking item detail fetching in Material Request.

@Henil666 #58118 Read
fix stock-manufacturing 3 weeks ago

Derive material transfers from actual coverage

Stock entry transfers are now capped to the quantity actually covered by included raw materials, preventing overclaims.

@mihir-kandoi #58110 Read
fix accounting 3 weeks ago

Delivery note billing based on quantity

Delivery notes now compute billing status on quantity basis in addition to amount basis, fixing cases where rate changes left items permanently "Partially Billed".

@Sudharsanan11 #56149 Read
fix accounting 3 weeks ago

Keep Currency and Price List section open for foreign currency

The Currency and Price List section now starts expanded when transaction currency differs from company currency, since the exchange rate becomes relevant.

@Jatin3128 #58074 Read
fix accounting 3 weeks ago

Allow purchase returns against a closed purchase order

Closing a purchase order was blocking returns for its remaining items even when receipts existed against them.

@Pandiyan5273 #58126 Read
fix accounting 3 weeks ago

Create `crm_deal` fields on enabling frappe crm data synchronization

Creates necessary CRM data synchronization fields on Customer and Quotation when the feature is enabled, with cleanup if disabled.

@diptanilsaha #58141 Read
fix stock-manufacturing 3 weeks ago

Confirm before changing item qty from the batch selector

The batch selector was silently overwriting item quantities in Delivery Notes, turning a manually-edited batch row into an unintended total.

@Sudharsanan11 #58123 Read
Frappe 10.7k 6 updates
feat framework 3 weeks ago

Typst pdf renderer

Replaces Chromium PDF rendering with Typst for 15x faster print generation (1.5s → 90ms), consuming 300MB less memory.

@iamejaaz #41690 Read
fix framework 3 weeks ago

Consistent link style in toast message

Links in toast messages now use consistent styling instead of being overridden by global CSS.

@asmitahase #41847 Read
fix framework 3 weeks ago

Limit concurrent PDF generation requests

Caps concurrent PDF renders to prevent resource exhaustion under load.

@ShrihariMahabal #41838 Read
fix framework 3 weeks ago

Untranslated awesomplete status messages

Awesomplete status messages ("N results found") were hardcoded in English; now route through translation via a subclass.

@ShrihariMahabal #41858 Read
fix ui-ux 3 weeks ago

Untranslated quill table picker labels

Quill's table picker labels were hardcoded CSS, ignoring user language and custom translations; now render from translatable attributes.

@ShrihariMahabal #41854 Read
fix framework 3 weeks ago

Honour ignore_user_permissions on link fields with a custom query

Custom queries were ignoring the `ignore_user_permissions` flag, allowing queries to inadvertently apply user permissions even when they should be bypassed.

@kaulith #41820 Read
HR 8.7k 2 updates
feat hr-payroll 3 weeks ago

Quick check in/out button on employee checkin doctype

Shows a quick check-in/out button on Employee Checkin list for the session employee, with optional geolocation confirmation.

@asmitahase #5089 Read
fix hr-payroll 3 weeks ago

Incorrect present/absent/leave count for half-day attendance in summarized view

Half-day "other half" status was ignored, and auto-marked half-days were wrongly counted as leave instead of present.

@iamkhanraheel #5074 Read
CRM 3.5k 1 update
fix crm-sales 3 weeks ago

Authorize arbitrary notification creation

Adds authorization checks to prevent arbitrary notification creation.

@ps173 #2662 Read
Helpdesk 3.4k 2 updates
feat other-apps 3 weeks ago

Actions in saved replies

Saved replies can now bundle follow-up actions (status, priority, team, tags) that execute automatically on each use, eliminating repetitive manual steps.

@RitvikSardana #3693 Read
fix other-apps 3 weeks ago

Hide bulk reply, assign and edit from customer roles

Agent-only bulk actions are no longer shown to customers on the ticket list, and the Delete action's condition is now evaluated.

@RitvikSardana #3696 Read
LMS 3.2k 1 update
fix other-apps 3 weeks ago

Sanitize what renders and what saves, allowlist bound URL schemes, and pair every permission gate

Replaces v-html with v-safe-html (DOMPurify) to prevent XSS attacks from user-generated content like course descriptions.

@raizasafeel #2664 Read
b Builder 2.3k 2 updates
feat ui-ux 3 weeks ago

Add dev-setup script for submodule init

Adds a yarn dev-setup script that initializes the frappe-ui submodule and installs dependencies in one step.

@stravo1 #743 Read
feat ui-ux 3 weeks ago

Wrap user-facing strings across the editor

Wraps labels, tooltips, placeholders, and messages with translation functions, expanding the catalog from 163 to 337 entries.

@surajshetty3416 #721 Read
Insights 1k 1 update
fix other-apps 3 weeks ago

Stop the weekly cleanup from dropping tables it cannot rebuild

Orphan warehouse table cleanup now preserves tables it can rebuild and reports instead of silently dropping them.

@nextchamp-saqib #1296 Read
p Press 563 3 updates
fix other-apps 3 weeks ago

Allow updates if other app versions changed

Deployment no longer blocks when other app versions changed, preventing cascading failures.

@Aradhya-Tripathi #7212 Read
feat other-apps 3 weeks ago

Agent-update: Handle play failures and let servers opt out

Catches Ansible play failures and sets server status to Failure; allows servers to opt out of agent updates.

@tanmoysrt #7209 Read
feat other-apps 3 weeks ago

Add a button to copy the SSH command

Adds a button to copy the SSH command for server access, including both the Press gateway and cluster proxy hops.

@balamurali27 #7215 Read
o Other 40 updates
feat other-apps 3 weeks ago

Find asset include hooks in custom apps

Adds find-asset-include-hooks.sh to list JS/CSS/icon bundles custom apps inject into page loads.

@balamurali27 #23 Read
fix other-apps 3 weeks ago

Ignore commented-out lines in hook scan

Filters commented-out hook registrations from scan results using `^[^#]*` anchoring.

@balamurali27 #22 Read
feat other-apps 3 weeks ago

Scan for request and job hooks

Adds before_request/after_request and before_job/after_job hook scanning to find-doc-save-hooks.sh.

@balamurali27 #21 Read
feat ui-ux 3 weeks ago

Add the shortcuts-v1 codemod for the v1 keyboard shortcut config

Provides migration codemod to convert v0 flat-flag shortcut config to v1 combo strings.

@netchampfaris #1077 Read
feat other-apps 3 weeks ago

Template library: 3 marketing templates + multi-category tagging

Adds three marketing templates (Candor, Fetch, Recipe) with multi-category tagging support.

@surajshetty3416 #8 Read
feat other-apps 3 weeks ago

Double-click empty canvas to type, in a box that hugs the text

Double-clicking empty canvas now creates a text box sized to fit the typed content instead of a large fixed box.

@vibhavkatre #437 Read
feat other-apps 3 weeks ago

Lay the share dialog out like the one Slides and Writer share

Rebuilds share dialog to match Drive's ShareDialog layout, with unified invite field and aligned role columns.

@vibhavkatre #432 Read
feat other-apps 3 weeks ago

Make the mind map a brainstorming surface

Fixes eight mind map interaction bugs: hovering affordances, draggable children, text overflow, and branch jumping.

@bvnaik05 #435 Read
feat other-apps 3 weeks ago

Replace the briefcase icon with a spanner

Updates the toolbox mark from a briefcase to a spanner, drawn to match Frappe's icon geometry.

@vibhavkatre #255 Read
feat other-apps 3 weeks ago

Add recipe for datum builds

Adds datum build configs with clickhouse and datum service setup.

@Aradhya-Tripathi #5 Read
feat other-apps 3 weeks ago

Release tracking (pin tracked upstream repos per bake)

Adds release tracking to pin specific upstream repo commits at bake time, enabling reproducible builds.

@the-bokya #8 Read
feat other-apps 3 weeks ago

Mint JWT for Datum Log service

Central now mints log tokens for Datum log ingestion.

@20vikash #280 Read
feat other-apps 3 weeks ago

Overview and Reports - show what the bill is made of

Splits billing cycle into owed and estimated amounts; adds Next payment card and Reports page.

@saurabh6790 #281 Read
feat other-apps 3 weeks ago

One settings modal — desktop dialog, mobile pages

Consolidates profile, notifications, and team settings into a single SettingsDialog.

@sadiqxansari #276 Read
feat other-apps 3 weeks ago

One Team page, plus the profile endpoints

Consolidates team settings and roster into one page; adds profile and password endpoints.

@sadiqxansari #275 Read
feat other-apps 3 weeks ago

View and tune MariaDB variables

Adds a MariaDB variable browser and edit dialog under Settings > Database, with 51-variable catalog and 9-variable editable allowlist.

@AyshaHakeem #388 Read
feat other-apps 3 weeks ago

Put Duplicate in the sticky note's More menu

Moves Duplicate action to the sticky note's More menu, freeing toolbar space for frequently-used colors.

@vibhavkatre #446 Read
feat other-apps 3 weeks ago

Add text case control and regroup text properties

Adds text case (As typed, Uppercase, Lowercase) control and regroups text properties into Typography, Paragraph, and Spacing sections.

@GursheenK #631 Read
feat other-apps 3 weeks ago

Give a tool page one list of tools, not two

Removes duplicate family lists from tool pages, eliminating redundant navigation.

@vibhavkatre #239 Read
feat other-apps 3 weeks ago

Remove the Weather tool

Removes Weather tool since phones already show forecasts and search engines rank weather results higher.

@vibhavkatre #242 Read
feat other-apps 3 weeks ago

Give the time-zone converter its own tool, under Convert

Time-zone converter splits from World Clock as a standalone searchable tool, enabling deep links.

@vibhavkatre #243 Read
feat other-apps 3 weeks ago

Remove the copy control from every result panel

Result copy buttons removed from all tools; users can select and copy as needed.

@vibhavkatre #245 Read
feat other-apps 3 weeks ago

Open every tool on a worked example

Tools now open showing a realistic worked example (e.g., "100 km/h → 62.1 mph") instead of empty inputs.

@vibhavkatre #246 Read
feat other-apps 3 weeks ago

Close each written section until somebody opens it

Tool pages now present written sections as closed `

` elements, keeping the page scannable with the tool above.

@vibhavkatre #248 Read
feat other-apps 3 weeks ago

Give each tool a summary that fits its row

Each tool now carries a short summary (not a full description) that fits its row in All Tools, replacing ellipsis-truncated text.

@vibhavkatre #253 Read
feat other-apps 3 weeks ago

Make Settings a dialog with its own sidebar

Settings now groups preferences in a dialog with a sidebar, replacing a long single-page layout.

@vibhavkatre #250 Read
fix other-apps 3 weeks ago

Firefox microphone device fallback

Media capture now retries without exact device constraints and covers Firefox's NotFoundError.

@BreadGenie #624 Read
fix other-apps 3 weeks ago

Get_template_bundle 403s on a hub with renamed token doctype

Page template loading now works on a hub with a renamed token doctype.

@surajshetty3416 #10 Read
fix other-apps 3 weeks ago

Unicommerce tax returns backfill

Credit note creation for RTO and customer returns now selects correct invoices, handles multi-package returns, and syncs historical returns.

@Bhavathariniya #459 Read
fix ui-ux 3 weeks ago

Menu contrast

Danger menu items raised to red-7 for WCAG AA contrast in dark mode.

@netchampfaris #1080 Read
fix ui-ux 3 weeks ago

FloatingWindow z-index

FloatingWindow drops to z-40 to sit above chrome but below dialogs, fixing dialog unreachability.

@nextchamp-saqib #1064 Read
fix ui-ux 3 weeks ago

Accessibility and layering

Slider now forwards aria-labelledby to the actual slider element and calls useAttrs() for aria-label support.

@waterWang #1047 Read
fix other-apps 3 weeks ago

Settings and navigation

Tool checkboxes now have proper spacing; Reset settings now resets the tool list; page scrolling fixed.

@vibhavkatre #240 Read
fix other-apps 3 weeks ago

Authorizations and owner alignment issues

Mail Cluster Store records are preserved during migration; disabled/deleted users are skipped during RSVP sync; Suite User role permissions aligned.

@s-aga-r #620 Read
fix other-apps 3 weeks ago

Multiple interaction fixes

"Offline" message now only appears when the server is unreachable; improved text selection and pin fill; fixed selection context clearing.

@vibhavkatre #442 Read
fix other-apps 3 weeks ago

Fix Map Pins stacked on top left on Safari

Map pins no longer stack in the corner on Safari when navigating to the Servers page.

@sadiqxansari #283 Read
fix other-apps 3 weeks ago

Show a loading skeleton instead of the empty state

Notifications page now shows a loading state while fetching instead of briefly showing "You're caught up" with an unread badge.

@netchampfaris #548 Read
fix accounting 3 weeks ago

Load Shipment form script via doctype_js

Shipment form initialization now works correctly through the standard doctype_js mechanism.

@barredterra #110 Read
fix other-apps 3 weeks ago

Include unbooked and unaccrued interest in Security Deposit Adjustment payable amount

Interest accrued but not yet raised as a Loan Demand was excluded, causing legitimate adjustments to be incorrectly rejected.

@Nihantra-Patel #1379 Read
fix other-apps 3 weeks ago

Scope mark_as_read to the notification's recipient

Any logged-in user could mark another user's notifications as read, hiding shares and other communications before the recipient saw them.

@ebrahimgamdiwala #621 Read

Thursday, August 13

ERPNext 38.9k 6 updates
feat accounting 4 weeks ago

Capacity aware scheduling for production plan

Production plans now compute realistic item-wise start/end dates via finite-capacity scheduling before work orders are created.

@rohitwaghchaure #58094 Read
fix stock-manufacturing 4 weeks ago

Show full date range in MRP chart

MRP chart stopped after 10 dates and checked wrong field for past dates; now shows full range and uses correct delivery_date field.

@mihir-kandoi #58073 Read
fix accounting 4 weeks ago

Don't count corrective job card transfers as transferred qty

Corrective transfers were inflating material_transferred_for_manufacturing; now excluded from work order rollup.

@mihir-kandoi #58080 Read
fix stock-manufacturing 4 weeks ago

Refine corrective job cards

Corrective job cards now require both operation fields, use Create for correct label, hide inapplicable fields, and block for semi-finished goods.

@mihir-kandoi #58079 Read
fix accounting 4 weeks ago

Exclude corrective transfers from item-level transferred qty

Corrective job card transfers were inflating per-item transferred quantities and understating pending demand; now excluded from rollup.

@mihir-kandoi #58091 Read
fix stock-manufacturing 4 weeks ago

Filter available batch report by company

Available Batch Report now applies the selected company filter to both standard and serial/batch bundle entries.

@krishna-254 #57995 Read
Frappe 10.7k 7 updates
feat framework 4 weeks ago

Show_search option for EmbeddedList

`EmbeddedList` now accepts `show_search` option to hide the search input for fixed-row lists.

@khushi8112 #41811 Read
fix framework 4 weeks ago

Restore Global Search shortcut (⌘G / Ctrl+G)

Desktop Icons page was overriding the global search shortcut without page scope; now page-scoped.

@sumitjain236 #41768 Read
fix framework 4 weeks ago

Apply export field access

Export now applies field-level access control to child tables.

@krishna-254 #41602 Read
fix framework 4 weeks ago

Update modified timestamp when Workflow Action is completed

Workflow action completion now updates the document's modified timestamp.

@AarDG10 #41799 Read
fix framework 4 weeks ago

Handle missing json when updating a custom report

Custom reports created outside `save_report` had no `json` value, causing crashes when updating columns.

@kaulith #41809 Read
fix ui-ux 4 weeks ago

Show column indicator as colored dot, not column background

Kanban column indicator was tinting the entire column instead of appearing as a small dot in the header.

@iamkhanraheel #41807 Read
fix framework 4 weeks ago

Validate HTTP method for document calls

Validates that whitelisted document methods are called with the correct HTTP method.

@ankush #40821 Read
HR 8.7k 4 updates
fix hr-payroll 4 weeks ago

Add non-negative validation for numeric fields

HR and Payroll numeric fields (Base salary, Standard Working Hours) now reject negative values.

@nareshkannasln #5063 Read
fix hr-payroll 4 weeks ago

Remove duplicate links

Payroll workspace had 37 unique links and charts shown twice each; deduplicated.

@nareshkannasln #5081 Read
fix hr-payroll 4 weeks ago

Postgres compatible queries

HR and Payroll queries now work with Postgres.

@deepeshgarg007 #5062 Read
breaking hr-payroll 4 weeks ago

Update no copy for attendance request in attendance

Duplicating Attendance created outside `save_report` copied the read-only attendance_request link, breaking subsequent saves; now marked no-copy.

@nareshkannasln #5064 Read
CRM 3.5k 2 updates
fix crm-sales 4 weeks ago

Render Phone field in its own layout branch

Phone field now uses its own layout branch instead of overloading the default one.

@Shindhu-Ramaswamy #2655 Read
fix crm-sales 4 weeks ago

Range filter not working in dashboard

`DateRangePicker` emits `[from, to]` but dashboard expected comma-separated string; now parses both formats.

@shahzeelahmed #2659 Read
LMS 3.2k 1 update
feat other-apps 4 weeks ago

Forms become pages, lists become cards, filters move into a sheet, and settings leaves the phone

LMS mobile redesign: create/edit forms are now full-page routes, filters collapse into a sheet, and lists render as cards.

@raizasafeel #2662 Read
b Builder 2.3k 3 updates
feat ui-ux 4 weeks ago

Sync `builder_files` with page/script delete and rename operations

Page/script deletes and renames now sync to `builder_files` on disk; orphaned directories no longer accumulate.

@asaura08 #507 Read
feat ui-ux 4 weeks ago

Preview each font in its own typeface

Font dropdown now renders each font name in its own typeface for preview.

@SmrutiSawant #724 Read
fix ui-ux 4 weeks ago

Render repeater with empty data key as plain container

Empty repeater key compiled to invalid Jinja syntax; now renders as plain container.

@surajshetty3416 #726 Read
p Press 563 5 updates
feat other-apps 4 weeks ago

Add database audit logging

Enables MariaDB audit plugin from server actions; logs rotate every 2 hours, upload to S3, and are listed/downloaded via dashboard.

@tanmoysrt #7190 Read
fix other-apps 4 weeks ago

Consider country list present in press when trying to setup account

Signup country list now uses Press data.

@phot0n #7200 Read
fix other-apps 4 weeks ago

Name the currency in the audit log price

Audit log storage price now displays as `2 INR` / `0.025 USD` instead of bare symbols.

@tanmoysrt #7205 Read
fix other-apps 4 weeks ago

Fix the audit transition jobs racing the row

Audit trail enabling no longer races against concurrent row writes; in-memory copy is now refreshed before each step.

@tanmoysrt #7202 Read
fix other-apps 4 weeks ago

Ensure trusted apps are added implicitly

Trusted apps are now added implicitly to Press.

@Aradhya-Tripathi #7206 Read
o Other 35 updates
fix other-apps 4 weeks ago

Don't cache template list for an hour

Removed redis cache from `get_templates`; bulk query for child rows now replaces per-template get_doc.

@GursheenK #616 Read
fix ui-ux 4 weeks ago

Clean up dead ink class name and update ink-shift refusal message

Removed stale `text-ink-gray-700` class name and updated ink-shift refusal message.

@waterWang #1040 Read
feat other-apps 4 weeks ago

Show custom page for werkzeug internal server error

App errors that bypass Frappe now show Frappe Cloud's custom error page instead of bare werkzeug/gunicorn HTML.

@balamurali27 #573 Read
feat other-apps 4 weeks ago

Trim the unified toolbar to essentials

Toolbar trimmed to core tools; undo/redo, duplicate, and whiteboard-only features removed per product calls.

@bvnaik05 #397 Read
feat other-apps 4 weeks ago

Delete diagrams instantly and settle the write in the background

Bulk diagram delete is now instant; write settles in background instead of blocking the UI for ~60 seconds.

@bvnaik05 #406 Read
feat other-apps 4 weeks ago

Pen/highlighter options open on tool click; both get size + opacity

Pen/eraser/sticky/line each open their own popover; pen and highlighter both carry independent size and opacity.

@bvnaik05 #401 Read
feat other-apps 4 weeks ago

Upload MariaDB audit logs to S3

Rotates `server_audit` logs, reads window metadata, uploads to S3, and deletes from disk.

@tanmoysrt #572 Read
feat other-apps 4 weeks ago

Add job to check and repair database tables

Adds job/API to run CHECK TABLE and auto-repair corrupted tables (REPAIR for MyISAM, OPTIMIZE for InnoDB).

@tanmoysrt #571 Read
feat other-apps 4 weeks ago

Rebuild the mobile composer as a page

Mail composer is now a page-route on mobile instead of a dialog, fixing layout bounce and keyboard interaction.

@krantheman #600 Read
feat other-apps 4 weeks ago

Stripe-first billing: fallback rules, Amex/Diners routing, and the payment order card

Adds payment method fallback on terminal declines, Amex/Diners routing, and customer notifications on method failure.

@saurabh6790 #279 Read
feat other-apps 4 weeks ago

Feature/sms email otp

Adds Twilio-backed SMS sending and OTP verification plus independent Email OTP via Frappe mail.

@TanviKamath #20 Read
feat other-apps 4 weeks ago

A rounded rectangle picks its own roundedness, and it survives an export

Rounded rectangles now pick from four corner radius presets; custom radius survives export.

@bvnaik05 #420 Read
feat other-apps 4 weeks ago

A migrated flowchart routes, retypes and labels itself correctly

Migrated flowcharts now correctly route edges, retype connections, and apply label edits.

@bvnaik05 #423 Read
feat other-apps 4 weeks ago

Draw freehand strokes as curves, and stop reshaping them on release

Freehand strokes now render as curves via quadratic Béziers instead of polylines, and no longer reshape when the pen is released.

@vibhavkatre #430 Read
feat other-apps 4 weeks ago

Draw the Shapes tiles with Lucide icons

Shapes menu now draws tiles with Lucide icons instead of shape glyphs, matching the rest of the editor.

@vibhavkatre #431 Read
feat other-apps 4 weeks ago

Move migrations to a standalone script & init resource rtracking

Migrations now run standalone before service startup; adds resource tracking endpoint with Active/Terminated/Pending status.

@Aradhya-Tripathi #9 Read
fix other-apps 4 weeks ago

Serve template media in shared presentations

Shared presentations can now access media files attached to templates.

@GursheenK #608 Read
fix ui-ux 4 weeks ago

Clip the active pill's shadow to the track

Sliding pill indicator's shadow now clips to track; removes shadow bleed past rounded edges.

@netchampfaris #1075 Read
fix other-apps 4 weeks ago

Regenerate the home tile thumbnail on exit, past the 30s throttle

Diagram thumbnails now regenerate on exit even if the final save lands inside the 30s throttle window.

@bvnaik05 #400 Read
fix other-apps 4 weeks ago

Restore the tooltip on reaction pills

Reaction tooltip was using outdated Tooltip slot name; updated to `#content`.

@netchampfaris #545 Read
fix other-apps 4 weeks ago

Force the exit thumbnail only when the session actually saved

Forced thumbnail regeneration on exit now only happens for editable sessions, not read-only views.

@vibhavkatre #408 Read
fix ui-ux 4 weeks ago

Use text-ink-base on solid red in light mode

Solid red button now uses white text in light mode; dark mode unchanged.

@netchampfaris #1063 Read
fix other-apps 4 weeks ago

Scale slide previews to their actual card width

Slide thumbnails in grid view now scale to their actual card width.

@GursheenK #604 Read
fix ui-ux 4 weeks ago

Use text-p tokens and add min height

Textarea used tight text scale instead of paragraph scale; added min-height to prevent collapse.

@netchampfaris #1073 Read
fix other-apps 4 weeks ago

Rename the diagram title through frappe-ui, so the blue focus ring goes

Rename box was a hand-rolled input with browser focus ring on top of it; now uses frappe-ui's TextInput which handles focus styling.

@bvnaik05 #421 Read
fix other-apps 4 weeks ago

Take the diagram from the form data when an image is uploaded

Image uploads broke when routed through `upload_diagram_image`; now takes the diagram from form data instead of request context.

@vibhavkatre #428 Read
fix other-apps 4 weeks ago

Text overflow and selection in editor

Clicking under the multi-selection box now selects the element; text boxes wrap at slide edges; long words wrap whole without hyphenation.

@GursheenK #610 Read
fix other-apps 4 weeks ago

Compare against the namespaced route names

Six route comparisons still tested against old bare names instead of namespaced names, keeping files openable and star badges hidden in Trash and Favourites.

@ebrahimgamdiwala #605 Read
fix other-apps 4 weeks ago

Stop Recents from freezing the tab in list view

Recents passed a freshly-built grouper object on every render, causing ListView to retrigger itself infinitely; now memoizes the grouper.

@ebrahimgamdiwala #613 Read
fix other-apps 4 weeks ago

Guard migration patches against sites missing legacy schemas

Migration patches crashed on sites restored from single-app backups that lacked legacy tables; now guards against missing schemas.

@s-aga-r #618 Read
fix other-apps 4 weeks ago

Center More menu rows on iOS Safari

More menu rows were vertically misaligned on older iPhones due to WebKit's anonymous inner box; added alignment fix.

@netchampfaris #547 Read
fix ui-ux 4 weeks ago

Let the browser keep modified arrow keys

Tree was swallowing Alt/Cmd+Arrow and Ctrl+Home/End before checking for modifiers; now returns early when modifier keys are held.

@waterWang #1038 Read
fix ui-ux 4 weeks ago

Raise z-index above sticky ListGroup headers

Dialog backdrop and content were rendering behind sticky list headers; added z-index containment to fix layering.

@waterWang #1052 Read
fix other-apps 4 weeks ago

Require site admin to preview files on disk

`sync_preview` had no permission check, allowing any logged-in user to retrieve full listings of staged files with paths, sizes, and MIME types.

@ebrahimgamdiwala #602 Read
fix other-apps 4 weeks ago

Make every whitelisted write POST-only

Eleven of Draw's write endpoints were accepting GET requests, opening them to cross-site request attacks; now all whitelisted writes require POST.

@vibhavkatre #433 Read

Wednesday, August 12

ERPNext 38.9k 25 updates
fix stock-manufacturing 1 month ago

Repair existing underbilled purchase receipts

New idempotent patch recomputes every candidate PO item from receipts with mixed billing; earlier patch only caught over-billed items.

@mihir-kandoi #58045 Read
feat stock-manufacturing 1 month ago

Multi select item and warehouse filters in warehouse wise item balance

Item and warehouse filters now accept multiple values (MultiSelectList); compare several warehouses without re-running the report per warehouse.

@Sudharsanan11 #58037 Read
feat accounting 1 month ago

Add Bank Charges account for Payment Entry deductions

New optional Bank Charges Account on Company; when a Payment Entry has a paid/received difference (e.g., bank fee), it now books to Bank Charges instead of always Exchange Gain/Loss.

@Jatin3128 #57840 Read
fix accounting 1 month ago

Block disabled/frozen party on Opportunity and Request for Quotation

Disabled/frozen Customer could be saved as Opportunity party, only getting caught later at Quotation stage.

@Jatin3128 #57983 Read
fix accounting 1 month ago

Correct totals and labels in section foo…

Cash flow report section totals and labels were incorrect; now match P&L and Balance Sheet filter display.

@ervishnucs #57336 Read
fix accounting 1 month ago

Item property updates in POS and transactions and add styling

Batch and Serial Number selection fields disappeared from POS Item Details after the item was added to cart.

@ervishnucs #57189 Read
fix accounting 1 month ago

Allow non-admin roles to import chart of accounts

Permission check referenced non-existent DocType "Party Account", blocking all non-admin COA imports with "Insufficient Permission".

@ervishnucs #57454 Read
fix stock-manufacturing 1 month ago

Pass finished goods as list to subcontracting BOM lookup

Function received a `set` but only handled `str` and `list`, causing SQL query failure outside request/test contexts.

@mihir-kandoi #58006 Read
fix stock-manufacturing 1 month ago

Set auto reserve stock flag before packing list generation

With `auto_reserve_stock` enabled, packed items on new Sales Orders were not marked for reserve because the flag was set after packing.

@mihir-kandoi #58041 Read
fix stock-manufacturing 1 month ago

Preserve BOM Creator item details

BOM Creator item selection suppressed the inherited server method, losing item details, rates, and UOM values.

@mihir-kandoi #58050 Read
fix accounting 1 month ago

Preserve original operation idx in manually created Job Cards

Create Job Card dialog used dialog row idx instead of Work Order Operation idx, pulling raw materials from the wrong operation.

@mihir-kandoi #58016 Read
fix stock-manufacturing 1 month ago

Reinstate mandatory manufactured qty check for manufacture entries

Manufacture entries could submit with For Quantity 0, leaving work order progress unupdated.

@mihir-kandoi #58005 Read
fix stock-manufacturing 1 month ago

Reinstate duplicate entry check for manufacture entries

Multiple Manufacture entries against the same work order could submit when qty was already fully covered.

@mihir-kandoi #58004 Read
fix stock-manufacturing 1 month ago

Reinstate operations completed check for manufacture entries

Manufacture entries could submit against work orders whose operations were never completed, bypassing the existing guard.

@mihir-kandoi #58000 Read
fix stock-manufacturing 1 month ago

Validate warehouse accounts when used

Warehouse accounts were validated at build time instead of at use time, leaving incomplete configurations in drafts that would fail on submit.

@mihir-kandoi #58036 Read
fix accounting 1 month ago

Fetch driver address by supplier link

Driver form looked up transporter Address by title, failing when Supplier naming series made the Supplier ID differ from Address title; now uses Dynamic Link.

@mihir-kandoi #58020 Read
fix accounting 1 month ago

Mirror rounding adjustment on distributed_discount_amount

Rounding adjustment was added to both `net_amount` and `distributed_discount_amount` (which are linked by subtraction), double-counting the discount share.

@barredterra #58047 Read
fix accounting 1 month ago

Reset stale item details on item change

Changing an item on a Sales Order reused values from the previously selected item (UOM, conversion factor, weight, barcode); now clears them before server fetch.

@mihir-kandoi #58051 Read
fix accounting 1 month ago

Read overdue amount from payment ledger, not gl tags

With Restrict Customer Over Billing enabled, customers with advance payments allocated after invoice submit were wrongly blocked; now reads from Payment Ledger instead of stale GL tags.

@Sudharsanan11 #57786 Read
fix accounting 1 month ago

Keep PO billed qty in sync when allocating amount to receipts

Amount-capped branch reduced remaining billed amount but not qty, causing later receipts to under-bill because they divided by stale qty.

@mihir-kandoi #58044 Read
fix accounting 1 month ago

Distribute PO-invoice billed amount across receipts without duplication

PO-level invoice amounts were reused across multiple Purchase Receipts during FIFO allocation, overstating billed amounts and marking receipts Completed too early.

@harisansari008 #58021 Read
fix accounting 1 month ago

Keep item code searchable when a barcode matches the same text

Item lookup overwrote the `name LIKE` filter with barcode condition in a dict, making item codes disappear when they overlapped a barcode.

@kaulith #57997 Read
fix accounting 1 month ago

Bill re-delivered sales order quantities

Sales Invoice used zero quantity after a full return/re-delivery cycle because `returned_qty` and `delivered_qty` were not combined correctly.

@mihir-kandoi #58003 Read
fix stock-manufacturing 1 month ago

Correct nested BOM Explorer quantities

BOM Explorer reset accumulated quantity at each nested level, giving wrong component quantities; now carries multiplier through the tree and normalizes child UOMs.

@mihir-kandoi #57963 Read
fix accounting 1 month ago

Require material transfer before job card start and completion

Job cards accepted Start/Complete before Material Transfer for Manufacture existed; added validation gate to both actions.

@mihir-kandoi #58009 Read
Frappe 10.7k 12 updates
fix framework 1 month ago

Sync support for translated_doctypes in search_widget custom queries

Backports translated-doctype support from develop to v15.

@kaulith #41760 Read
fix framework 1 month ago

Resolve currency precision from the currency's number format

Currency Precision was always read from global number format, ignoring currencies with custom decimal places (BHD, OMR, AED).

@kaulith #41708 Read
feat framework 1 month ago

Prettier email templates

Email templates for registration, password reset, and login redesigned for clarity and visual polish.

@Vibhuti410 #41683 Read
feat framework 1 month ago

Added setup key support in 2fa login

Two-factor authentication can now use either QR code scan or manual setup key entry for authenticator apps.

@sagarvora #39137 Read
feat framework 1 month ago

Add user/doctype filtering to `User Doctype Permissions` report

New filters let you drill into one user or one doctype instead of viewing the full matrix.

@karm1000 #34553 Read
fix framework 1 month ago

Treeview collapse all expand all

fix: treeview collapse all expand all

@khushi8112 #41435 Read
fix framework 1 month ago

Handle None values in PortalSettings menu fields

TypeError when a PortalSettings menu field had a None value; now safely coalesces with helper method.

@khushi8112 #41433 Read
fix framework 1 month ago

Index parent column on child tables

Child table `parent` column was not indexed on PostgreSQL, causing sequential scans on child-row loads and subqueries.

@mihir-kandoi #41756 Read
fix framework 1 month ago

Index creation and modified columns like MariaDB

PostgreSQL was not indexing `creation` and `modified` columns, causing list view sorts to scan every row.

@mihir-kandoi #41757 Read
fix ui-ux 1 month ago

Make headless_shell executable on linux arm64

On linux arm64, `bench setup-chrome` left `chromium/headless_shell` at mode 0644, causing 300s timeout as Chromium could not start.

@regdocs #41661 Read
fix ui-ux 1 month ago

Migrate remaining v1 colour tokens to the v2 token set

Tailwind color utilities (`surface-white`, `outline-gray-modals`) were retired but still used, silently rendering as nothing.

@shariquerik #41767 Read
fix framework 1 month ago

Send workflow email when a document re-enters an approval state

Workflow Action dedup check ignored status, so every return to a state was treated as already handled — no new action, no email.

@Shllokkk #41691 Read
HR 8.7k 1 update
fix hr-payroll 1 month ago

Correct workspace sidebar icons

fix: correct workspace sidebar icons

@asmitahase #5080 Read
CRM 3.5k 3 updates
feat crm-sales 1 month ago

Add Edit option to Notes three-dot menu

feat: add Edit option to Notes three-dot menu

@Shindhu-Ramaswamy #2652 Read
feat crm-sales 1 month ago

Author field conditional logic in the builder + clear embedded form in place

Web Form authors can now set Visible if / Mandatory if / Read-only if per field in the builder, evaluated live on the public page (framework-style, not DocType-based).

@michellealva #2641 Read
fix crm-sales 1 month ago

Stop logging the author out when previewing a Link-field form

Author was logged out by guest-context Link field option lookup during preview, triggering auth failure on all subsequent requests.

@michellealva #2622 Read
Helpdesk 3.4k 3 updates
feat other-apps 1 month ago

Ticket analytics tab

New Analytics tab shows SLA adherence (deadline vs actual), where time went (by message), and issue tracking with visual deadlines.

@RitvikSardana #3689 Read
fix other-apps 1 month ago

Don't check update perms without a previous version

Creating a ticket from customer portal failed with `AttributeError: 'NoneType' object` when checking update permissions on a new document.

@RitvikSardana #3692 Read
breaking other-apps 1 month ago

Use the passed-in user for team permission checks

Permission checks in `_agent_has_permission()` were using session user instead of the passed-in user, breaking Permission Inspector and delegated queries.

@RitvikSardana #3690 Read
Insights 1k 1 update
feat other-apps 1 month ago

Alerts via web hooks

Alerts can now POST a JSON payload to a user-configured URL with Bearer token auth; restricted to publicly routable addresses (https only, checked at socket open, no redirects/proxies).

@Aradhya-Tripathi #1293 Read
p Press 563 6 updates
fix other-apps 1 month ago

Reduce alert frequency to once a month

fix(2fa): Reduce alert frequency to once a month

@ssiyad #7188 Read
feat other-apps 1 month ago

Cancel button for long running jobs on the dashboard

Long-running jobs (restore, backup, new-from-backup) can now be cancelled from the dashboard; each leaves behind expected state (site Broken, etc.).

@balamurali27 #7160 Read
fix other-apps 1 month ago

Spell out how to fix a blocked retry

Will-fail messages gave the problem name but not the fix; now include what failed, what's unchanged, the action to take, and the escape hatch.

@balamurali27 #7162 Read
fix other-apps 1 month ago

Calculate flat discount on top of item discount

fix(invoice): Calculate flat discount on top of item discount

@shadrak98 #7180 Read
fix other-apps 1 month ago

Skip Frappe version check when a branch declares none

Adding or re-pointing the frappe app crashed when validating version against a branch that declared none.

@regdocs #7181 Read
fix other-apps 1 month ago

Fix(dashboard) : Filter null value from migration choices

fix(dashboard) : Filter null value from migration choices

@tanmoysrt #7175 Read
p Payments 174 1 update
feat integrations 1 month ago

Refunds and a signature-verified refund webhook

Adds `fetch_payment()`, `fetch_refund()`, `refund_payment()` with amount validation against live-fetched state; webhook for Razorpay-settled refunds.

@harshtandiya #248 Read
o Other 26 updates
feat other-apps 1 month ago

Persist inbound events before processing, dedup on event_id

Inbound Atlas events now durably persisted before handling, with unique constraint on event_id for race-safe dedup of retried deliveries.

@kwyj1bo #277 Read
fix other-apps 1 month ago

Use default FUI for listview

fix: Use default FUI for listview

@Aradhya-Tripathi #385 Read
feat other-apps 1 month ago

Serve the font the offline shell already cached

Service worker precached fonts without query strings; stylesheet requested them with query params, cache miss. Service worker now matches on cache-aware key.

@vibhavkatre #216 Read
feat other-apps 1 month ago

Give every page a heading, and the root a link to every tool

Root and data-sources pages now have proper headings and SEO; root includes links to all tools.

@vibhavkatre #213 Read
feat other-apps 1 month ago

Say where every dataset and API comes from

New `/data-sources` page documents dataset licence, version, publish date, import date, and row counts for all bundled data.

@vibhavkatre #212 Read
feat other-apps 1 month ago

Say who made this, and what else they make

New `/about` page explains Toolbox's mission, that tracking is disabled, links to source code and ERPNext.

@vibhavkatre #218 Read
feat ui-ux 1 month ago

Refactor(charts)!: park the old Charts family in experimental

Six old chart components (`AxisChart`, `DoughnutChart`, etc.) move from root export to `frappe-ui/experimental`; Charts v2 at `frappe-ui/charts` is now the supported family.

@netchampfaris #1043 Read
feat ui-ux 1 month ago

Upgrade echarts to v6.1.0

Echarts 6 fixes label clipping and text layout issues via improved `containLabel` and `textStyle` fallback.

@nextchamp-saqib #1061 Read
feat ui-ux 1 month ago

Corner resize handle for images and embeds, gradient video controls

Images and embeds get a single bottom-right grip with diagonal-resize glyph; videos get gradient controls overlay.

@netchampfaris #1050 Read
feat ui-ux 1 month ago

Add the two missing Tabs breaks

Migration guide now documents `direction="right"` → `side="right"` and type export changes for Tabs 2.0.

@netchampfaris #1056 Read
fix other-apps 1 month ago

Set bake job_timeout — arq's 300s default aborts fleet bakes

Async fleet bakes were cancelled after ~300s because WorkerSettings never set job_timeout; real builds take minutes to hours.

@the-bokya #4 Read
feat other-apps 1 month ago

Image propagation from the Chef UI + CLI, and worker-backed baking

Wires image baking and fleet propagation through Chef UI and CLI, backed by Atlas's host-to-host sync API (no S3).

@the-bokya #3 Read
feat other-apps 1 month ago

Expose distribute_image (host-to-host fleet sync, no S3)

New service API entry point for Chef to fan an already-promoted image to the rest of the fleet host-to-host.

@the-bokya #152 Read
feat other-apps 1 month ago

Add event IDs + retry webhook event delivery

Central webhooks now carry event_id for dedup; failed deliveries retry via cron instead of dying after one attempt.

@kwyj1bo #146 Read
fix other-apps 1 month ago

Move the end time when the start time changes

Editing event start time left end time alone, allowing invalid end-before-start; now drags end along to preserve the prior gap.

@krantheman #593 Read
fix ui-ux 1 month ago

End the link when a space is typed at its end

Typing a space after a link pulled the space inside the anchor, and everything after it inherited the mark — whole sentences became accidentally linked.

@netchampfaris #1060 Read
fix other-apps 1 month ago

Include properties when fetching EventNotification

fix: include properties when fetching EventNotification

@s-aga-r #585 Read
fix other-apps 1 month ago

Keep navbar behind dialogs

fix(drive): keep navbar behind dialogs

@BreadGenie #598 Read
fix other-apps 1 month ago

Confine upload staging paths

fix(drive): confine upload staging paths

@BreadGenie #591 Read
fix other-apps 1 month ago

Separate recorder deployment from SFU

Recorder was co-located with SFU; separated into standalone deployment to isolate concerns.

@BreadGenie #589 Read
fix other-apps 1 month ago

Avoid text clipping at the bottom

fix(meet): avoid text clipping at the bottom

@BreadGenie #592 Read
fix other-apps 1 month ago

Avoid false local network warnings

Local downlink warnings were triggered by reported RTP packet loss alone; now driven by confirmed consumer stalls, avoiding false positives.

@BreadGenie #597 Read
fix other-apps 1 month ago

Make the mobile Profile tab a page

Profile was the only tab that opened a bottom sheet instead of navigating; Settings row pointed to a page that had its own Profile row. Collapsed into a single route.

@krantheman #595 Read
fix other-apps 1 month ago

Marking a document as favourite in Writer sync to Drive's Favourites tab

Favouriting a document in Writer didn't sync to Drive, and after a partial fix it made the editor read-only until reload.

@DikshaJadhav3110 #519 Read
fix other-apps 1 month ago

Stop deck saves from retrying deleted thumbnails

Saving a deck logged "Error Attaching File" on every save; two patches disagreed about thumbnail location, causing 404 retries.

@s-aga-r #550 Read
fix other-apps 1 month ago

Keep app-owned folders open for create

App-owned folders were locked down for file creation; restored permission so Mail compose can upload attachments.

@s-aga-r #588 Read

Tuesday, August 11

ERPNext 38.9k 6 updates
fix accounting 1 month ago

Clear deferred revenue/expense fields on uncheck

Unchecking deferral left old values in the fields.

@Pandiyan5273 #57830 Read
fix accounting 1 month ago

Keep asset repair downtime in sync with entered dates

Asset repair downtime only updated when status changed, not when dates were edited, leaving stale values.

@Shllokkk #57822 Read
fix accounting 1 month ago

Skip incoming rate calc when serial no qty is zero

Repost of serial+batch items threw ZeroDivisionError when Stock Reconciliation qty recomputed to zero.

@Shllokkk #57427 Read
fix accounting 1 month ago

Re-check future SLE before queuing repost on submit

Concurrent stock entries could skip repost checks because the decision was cached before writes completed.

@Pandiyan5273 #57664 Read
fix accounting 1 month ago

Preserve custom title on new JV

Journal Voucher custom title was being cleared on creation.

@diptanilsaha #57987 Read
fix stock-manufacturing 1 month ago

Field validation and permission checks on get_stock_reservation_entries_for_voucher

Added missing validation and permission checks on a stock query endpoint.

@diptanilsaha #57968 Read
Frappe 10.7k 7 updates
feat framework 1 month ago

Let apps supply their own inline SVG icons

Apps can now register custom inline SVG icons via a `Custom Icon` doctype.

@shariquerik #41735 Read
feat framework 1 month ago

Show edits, milestones and shares in the activity timeline

Activity timeline now surfaces edits (for doctypes with no version history), milestone records, and share events.

@shariquerik #41734 Read
fix framework 1 month ago

Hide core modules in global search settings

Core module doctypes appeared in the global search dropdown even though global search isn't supported for them.

@Bowrna #41721 Read
fix framework 1 month ago

Keep a document's realtime room alive while another consumer holds it

First consumer to unsubscribe from a document evicted all other watchers; now refcounts to keep the room open.

@shariquerik #41733 Read
fix framework 1 month ago

Stop a leading template comment from dropping the caller's class

Production builds silently dropped caller-supplied `class` attributes when components had a comment as the first node.

@shariquerik #41736 Read
fix framework 1 month ago

Return plain dicts and echo doc after execute_doc_method in API v2

API v2 responses were missing information available on newer versions; now returns complete payloads on both old and new versions.

@netchampfaris #41749 Read
fix framework 1 month ago

Add permission check in create_email_flag_queue

Missing permission validation allowed unauthorized email flag creation.

@AarDG10 #41611 Read
HR 8.7k 1 update
feat hr-payroll 1 month ago

Add button to close/reopen job opening

Job opening status can now be changed via action buttons instead of manual form field edits.

@asmitahase #5077 Read
CRM 3.5k 1 update
fix crm-sales 1 month ago

Add phone validation to from/to number fields in CRM call log

CRM call log lacked phone number validation, allowing invalid input.

@Shindhu-Ramaswamy #2597 Read
b Builder 2.3k 1 update
fix ui-ux 1 month ago

Keep bubble menu open while color picker popover is active

Color picker teleported outside the menu, causing the menu to close when opened.

@stravo1 #695 Read
p Press 563 11 updates
feat other-apps 1 month ago

Deploy Wazuh

Wazuh security monitoring now deployable to servers.

@balamurali27 #7154 Read
fix other-apps 1 month ago

Dearmor and ensure correct permissions

Wazuh key handling corrected for proper permissions.

@balamurali27 #7155 Read
fix other-apps 1 month ago

Tolerate a missing unit

Wazuh deployment failed if a unit was missing.

@balamurali27 #7156 Read
fix other-apps 1 month ago

Only update app server for unified servers

Team changes on unified servers incorrectly created new subscriptions due to missing validation.

@shadrak98 #7163 Read
fix other-apps 1 month ago

Verify application patches

Added patch verification to prevent invalid patches from being applied.

@ssiyad #7161 Read
fix other-apps 1 month ago

Account for unified servers in restore space pre-check

Migration pre-check didn't account for servers where app and database share a private IP, giving false "no space" errors.

@balamurali27 #6787 Read
fix other-apps 1 month ago

Clean chart parameters

Chart params contained stale values after page transitions.

@ssiyad #7165 Read
fix other-apps 1 month ago

Validate address before server creation

Missing address validation caused downstream errors during server provisioning.

@ssiyad #7167 Read
fix other-apps 1 month ago

Validate bench during agent job

Added bench validation before running agent jobs.

@ssiyad #7169 Read
fix other-apps 1 month ago

Make site update recovery resilient and recoverable

Failed site updates could end `Fatal` with no path back; recovery now handles timeouts, re-runs idempotently, and provides usable error messages on disk space issues.

@balamurali27 #6729 Read
fix other-apps 1 month ago

Turn server tokens off

Nginx server tokens exposed version information. Disabled to reduce attack surface.

@ssiyad #7170 Read
o Other 66 updates
breaking ui-ux 1 month ago

Take charts v2 to the 1.0.0 bar

Charts v2 cleaned up for v1.0.0 stability; breaking changes documented in migration guide.

@netchampfaris #1033 Read
feat other-apps 1 month ago

Serve robots.txt and a sitemap that lists every tool

Generated `robots.txt` and `sitemap.xml` that list all 34 tools for crawlers.

@vibhavkatre #175 Read
feat other-apps 1 month ago

Give the timer, stopwatch and countdown their own routes

Timer, stopwatch and countdown split from `/timer` tab to `/timer`, `/stopwatch`, `/countdown-timer` with individual titles.

@vibhavkatre #179 Read
feat other-apps 1 month ago

Give the PIN and IFSC lookups their own routes

PIN and IFSC code lookups split from shared tab to individual routes with dedicated SEO.

@vibhavkatre #181 Read
feat other-apps 1 month ago

Give the four health calculators their own routes

Four health calculators (BMI, BMR, TDEE, Pace) split from shared tab to individual routes.

@vibhavkatre #183 Read
feat other-apps 1 month ago

Give the six financial calculators their own routes

Six calculators (EMI, SIP, Compound Interest, CAGR, etc.) split from shared tab to individual routes with dedicated SEO.

@vibhavkatre #185 Read
feat other-apps 1 month ago

Give the nine unit converters their own routes

Nine unit converters split from `/unit-converter` into `/length-converter`, `/weight-converter`, etc., with their own titles and pages.

@vibhavkatre #187 Read
feat other-apps 1 month ago

Export is a dialog you confirm, not a menu that fires on click

Export now opens a dialog to pick format, raster scale, and see preview with pixel size before confirming.

@vibhavkatre #384 Read
feat other-apps 1 month ago

Collections — group diagrams on Home (backend)

Added `Draw Collection` and `Draw Collection Member` doctypes for labeling diagrams.

@vibhavkatre #387 Read
feat other-apps 1 month ago

Collections on Home — filter chips, and filing a drawing into one

Diagrams can belong to multiple collections; Home shows filter chips; clicking a chip narrows the list.

@vibhavkatre #390 Read
feat other-apps 1 month ago

Put undo and redo on the toolbar, and make canUndo actually change

Undo/redo moved from keyboard-only to toolbar buttons; fixed `canUndo` state to actually track history.

@vibhavkatre #392 Read
feat other-apps 1 month ago

Enforce scoped role grants (Central-side)

Team member resource grants now actually scoped per server/site, enforced through IAM.

@prathameshkurunkar7 #268 Read
feat other-apps 1 month ago

One compact zoom control on the toolbar; the canvas is clear

Four float zoom buttons consolidated to one toolbar entry showing live percentage and a menu; frees bottom-left canvas space.

@vibhavkatre #394 Read
feat other-apps 1 month ago

Unwrap block

Right-click > Unwrap now promotes an inner block as root or adds all children to parent, useful for replacing Studio Component wrapper divs.

@ruchamahabal #226 Read
feat other-apps 1 month ago

One left-aligned toolbar that fits, with the four inserts promoted

Toolbar reorganized left-aligned with four insert buttons (shapes, lines, text, image) promoted to the main bar.

@vibhavkatre #395 Read
feat other-apps 1 month ago

Send a heading and the page content to a crawler

Tool pages now send rich content to crawlers (h1, description, sections, JSON-LD) instead of running on JavaScript.

@vibhavkatre #191 Read
feat ui-ux 1 month ago

Charts v2

New chart library with Bar, Line, Area, Scatter, Donut, Funnel, Heatmap, Sankey, NumberCard; flat props naming columns as plain strings.

@nextchamp-saqib #890 Read
feat other-apps 1 month ago

Write the remaining 32 tool pages

All 34 tools now have ~700-word pages with formulas, worked examples, FAQs, and JSON-LD for crawlers.

@vibhavkatre #198 Read
feat other-apps 1 month ago

Stripe as a primary gateway

Stripe now accepted as primary payment gateway; carries cards and India e-mandates; Razorpay handles RuPay/UPI/netbanking.

@saurabh6790 #270 Read
feat other-apps 1 month ago

Gather the synonyms of every sense into one list

Dictionary now groups all synonyms by part of speech instead of scattering them across senses.

@vibhavkatre #202 Read
feat other-apps 1 month ago

Add recorder telemetry dashboard

Added telemetry dashboard for meeting recordings.

@BreadGenie #569 Read
feat other-apps 1 month ago

Lock elements in slides

Slide elements can be locked to prevent accidental moves or edits; lock/unlock from right-click menu or Cmd+Shift+L.

@GursheenK #573 Read
feat other-apps 1 month ago

Add central settings

Created a doctype for general Central settings and feature flags.

@prathameshkurunkar7 #272 Read
feat other-apps 1 month ago

Custom alerting

Users can now set up custom alerts for system metrics and site uptime with webhook notifications.

@Aradhya-Tripathi #384 Read
feat other-apps 1 month ago

Add Anton and Courier Prime fonts

Presentations can now use Anton and Courier Prime as self-hosted `woff2` with unicode-range subsets.

@GursheenK #580 Read
feat other-apps 1 month ago

Billing UI polish: invoice receipt panel, limit tiers redesign, shared list and panel infra

Invoices list now has a docked receipt panel; limit tiers show progress; overview cards have consistent anatomy.

@sadiqxansari #273 Read
feat other-apps 1 month ago

Add SFU human-empty grace cleanup

Added grace period for cleaning up SFU rooms after all humans leave.

@BreadGenie #583 Read
feat other-apps 1 month ago

Grant Guardian desk access and Sales Invoice permissions

Guardians can now view student fees via Desk and Sales Invoice access wired through install and patches.

@tuwafula #481 Read
feat other-apps 1 month ago

Rank recipient suggestions by correspondence

Recipient suggestions now ranked by frequency of prior correspondence, not just name match.

@s-aga-r #574 Read
feat other-apps 1 month ago

Collapsible sections in editor

Added toggle sections to the rich and comment editors via `/` menu, toolbar button, or `>>` shorthand.

@netchampfaris #542 Read
feat ui-ux 1 month ago

Composed Tabs family, TabButtons parity

Tabs rewritten as a composed family (TabList / TabTrigger / TabPanel) with trigger-value model and RouterLink support.

@netchampfaris #1024 Read
feat other-apps 1 month ago

Upgrade Boat button in the Desk UI

Operators can now roll boat generation (binary, sudoers, units) fully from the Desk UI with verification and daemon-stayed-up checks.

@the-bokya #148 Read
feat other-apps 1 month ago

Host-to-host local-image distribution over HTTP (no S3) + Sync Across Hosts

Promoted snapshot images can now be circulated across the fleet over on-host HTTP without an object store, plus a "Sync Across Hosts" Desk action.

@the-bokya #150 Read
fix other-apps 1 month ago

Guard legacy screening patches against missing account_id

Migrate failed on sites that hadn't yet migrated legacy screening doctypes (which were deleted).

@s-aga-r #621 Read
fix other-apps 1 month ago

Write Outgoing settings to Account Settings after model sync

Migrate failed because a patch tried to write columns that didn't exist yet (created by model sync).

@s-aga-r #622 Read
fix other-apps 1 month ago

Draw the Shapes menu with the shapes icon, not a lone square

Shapes menu button showed a rectangle icon (the first shape) instead of the category icon.

@vibhavkatre #391 Read
fix other-apps 1 month ago

Pinning belongs to Home, so drop it from the editor's menu

Editor ignored the five-pin Home limit, letting users pin unlimited diagrams from inside.

@vibhavkatre #393 Read
fix other-apps 1 month ago

Print the canvas exactly, with no added whitespace

Print added a white band below the diagram when the page ratio didn't match canvas ratio.

@vibhavkatre #382 Read
fix other-apps 1 month ago

Stop pointing users at the palette that is gone

Onboarding copy pointed at a toolbar palette that was removed.

@vibhavkatre #383 Read
fix other-apps 1 month ago

The minimap draws the diagram, not an approximation of it

Minimap rendered whiteboard objects as grey boxes instead of their actual content (ink, highlighter, tables).

@vibhavkatre #385 Read
fix other-apps 1 month ago

Let a diagram's owner change and revoke the access they granted

Changing a collaborator's level or revoking access failed for non-admins on all but the first share.

@vibhavkatre #386 Read
fix other-apps 1 month ago

Use room ID as fallback name for recording files

Recording files now use room ID as fallback when title is unavailable.

@BreadGenie #566 Read
fix other-apps 1 month ago

Imperative dialogs and toasts don't work in dev mode

Dialogs and toasts fired imperatively didn't show in dev; excluded frappe-ui from optimizeDeps to dedupe state.

@ruchamahabal #227 Read
fix other-apps 1 month ago

Recorder speaker sync

Fixed speaker synchronization issues in call recording.

@BreadGenie #579 Read
fix other-apps 1 month ago

Hold the dataset import lock until the rows are committed

Dataset import lock was released before rows committed, allowing concurrent imports to corrupt each other.

@vibhavkatre #203 Read
fix other-apps 1 month ago

Keep the timer workspace for the browser session, not forever

Timer, stopwatch and countdown persisted to `localStorage` across browser sessions instead of clearing.

@vibhavkatre #204 Read
fix other-apps 1 month ago

Keep the calculator and dictionary histories for the session

Calculator and dictionary histories persisted to `localStorage` forever instead of for the session only.

@vibhavkatre #207 Read
fix other-apps 1 month ago

Show the forecast in the unit the visitor chose

Temperature unit setting was ignored; weather always showed Celsius regardless of choice.

@vibhavkatre #208 Read
fix other-apps 1 month ago

Share the body measurements calculators claim to share

Four health calculators promised to share body measurements but didn't; now they actually do.

@vibhavkatre #209 Read
fix other-apps 1 month ago

Stop legacy /g/ URLs from landing on 404

Old `/g/teams` links (from when the app lived at `/teams`) redirected to 404 instead of the community page.

@netchampfaris #541 Read
fix ui-ux 1 month ago

Remove transition flashbang when theme switching

Theme switches caused a visual flash because transitions remained active; now temporarily disabled during switch.

@siduck #953 Read
fix ui-ux 1 month ago

Stale responses no longer write docStore/listStore

Concurrent writes could leave the stores with stale data from the response that settled last, not the newest one.

@netchampfaris #1018 Read
fix other-apps 1 month ago

Flaky undo-delete and 403 on shared presentation media

Undo could lose slides; media access checked a random File row instead of the presentation's actual files.

@GursheenK #565 Read
fix other-apps 1 month ago

Show replies that land in already-loaded threads

Incoming replies to already-visible threads were silently dropped; now updates the thread in place and re-sorts.

@krantheman #577 Read
fix other-apps 1 month ago

Rank recipient suggestions by relevance

Recipient search returned unscored results ordered by insertion instead of match quality; now ranks by relevance and correspondence frequency.

@s-aga-r #571 Read
fix ui-ux 1 month ago

Render ToastProvider before the slot so early toasts land

Toasts fired during app setup were dropped because the provider hadn't subscribed yet; reordered to catch early toasts.

@netchampfaris #1026 Read
fix ui-ux 1 month ago

Keep adjacent lists merged so numbering continues

Deleting an item and its empty line split an ordered list, restarting numbering at 1 instead of continuing.

@netchampfaris #1027 Read
fix other-apps 1 month ago

Harden recording ingestion and recorder reliability

Improved recording robustness and validation during ingestion.

@BreadGenie #584 Read
fix ui-ux 1 month ago

Keep the dialog stack on one instance across package copies

`dialog.confirm()` rendered nothing in dev because esbuild pre-bundling created separate instances of the package, splitting the dialog stack.

@netchampfaris #1041 Read
fix other-apps 1 month ago

Grant lvremove of regular snapshot LVs in sudoers

Terminating a VM with a snapshot failed because the sudoers allowlist only covered migrate snapshots, not regular ones.

@the-bokya #10 Read
fix other-apps 1 month ago

Sudo the image presence probe for 0700 directory

Image presence check failed on synced hosts because the boat user cannot stat a 0700 root directory.

@the-bokya #9 Read
fix other-apps 1 month ago

Bring up boat's HTTP listener and ANCP units at bootstrap

Freshly bootstrapped hosts came up with wg-mesh DOWN; the systemd units were never enabled or started during bootstrap.

@the-bokya #147 Read
fix other-apps 1 month ago

Virtual machine stop must wait past boat's graceful drain

VM stop timeout (30s) was shorter than the graceful shutdown it waited for, causing stale `Running` status even though the VM actually stopped.

@the-bokya #149 Read
fix other-apps 1 month ago

Bootstrap sets the server Active on success

Server bootstrap completed but never transitioned to `Active` status, leaving the documented adopt→Bootstrap→Active flow broken.

@the-bokya #151 Read
fix other-apps 1 month ago

Check upload on the parent instead of granting create

Drive's generic API was granting `create` unconditionally, bypassing the parent `upload` check that Drive's own endpoints enforce.

@ebrahimgamdiwala #578 Read
fix other-apps 1 month ago

Stop content_doctype/content_docname from being forged

A File document could link any Drive File to another user's content, inheriting full access and risking cascade deletion. Locked the fields to prevent forgery.

@ebrahimgamdiwala #570 Read

Monday, August 10

ERPNext 38.9k 9 updates
fix accounting 1 month ago

Validate webform for project

Web form permission validation now includes project context.

@nishkagosalia #57832 Read
fix accounting 1 month ago

Reflect in-invoice receivable credits in Sales Register ledger view

Ledger did not reflect in-invoice receivable credit entries.

@Shllokkk #57927 Read
fix accounting 1 month ago

Tolerate floating-point drift in sales team allocated percentage

Sales team allocations rejected valid allocations whose sum drifted due to float precision.

@Pandiyan5273 #57911 Read
fix stock-manufacturing 1 month ago

Negate stock value difference for outward transfer bundles

Outward stock value multiplied by itself instead of by −1; silently wrong until recalculation from qty.

@Pandiyan5273 #57914 Read
breaking accounting 1 month ago

Rename Italy's duplicate Customer name fields

Italy regional setup created custom first_name/last_name fields colliding with standard quick-entry fields added in #46281, breaking all subsequent custom fields on Customer.

@mihir-kandoi #57917 Read
fix accounting 1 month ago

Handling negative grand total

Sales Orders and Purchase Orders now allow negative totals when the negative-rate setting is enabled; validates rate and keeps quantities non-negative.

@nishkagosalia #57560 Read
fix accounting 1 month ago

Escape `customer_details` on lead creation from appointment

Unescaped customer_details field on appointment-to-lead creation could inject script.

@diptanilsaha #57947 Read
fix accounting 1 month ago

Sync open reference forms after Quality Inspection submit

QI updates references via raw db writes without emitting realtime events, leaving open forms stale. Now calls notify_update so browsers stay in sync.

@mihir-kandoi #57918 Read
fix accounting 1 month ago

Track semi finished goods production flow

BOM operations require FG/Semi FG items; adds validation, prevents duplicate item rows, and enforces the chain.

@mihir-kandoi #57895 Read
Frappe 10.7k 1 update
fix framework 1 month ago

Chrome pdf reliability and geometry issues

Chromium connection drops now fail in-flight commands instead of hanging; custom page size stored in mm was consumed as px (3.78× too small); header-spacing string crashed.

@iamejaaz #41710 Read
o Other 46 updates
feat other-apps 1 month ago

One search-and-select field with a real combobox

Three tools (World Clock, Weather, Dictionary) had near-identical search fields with accessibility bugs; unified into one real combobox.

@vibhavkatre #156 Read
feat other-apps 1 month ago

Serve Toolbox at the site root

Tools now at frappe.tools/calculator (not /toolbox/calculator); root itself is All Tools. Rebase required Frappe router integration.

@vibhavkatre #167 Read
feat other-apps 1 month ago

Audio Recorder: capture in the browser, save to the visitor's device

Recordings no longer stored on server (removes last owner-private records). Browser captures with 10-minute/100 MB limit, saves to device.

@vibhavkatre #161 Read
feat other-apps 1 month ago

Remove the authentication layer: no accounts, no stored user data

Toolbox now free public website with no accounts, no user records. DocTypes drop 22→5 (read-only reference data), backend LOC ~2,300.

@vibhavkatre #163 Read
feat other-apps 1 month ago

Remove the eight tools cut in the account-free pivot

Registry drops 23→15 tools. Expenses, Library, Reminders, Checklists, Notes (account-only) and Tone Generator, Metronome, Audio Inspector (focus) removed.

@vibhavkatre #159 Read
feat other-apps 1 month ago

Find a city by the name it is known by locally

GeoNames names places in most-common language, so "München" and "Roma" had no matches. Search now uses alternate names column.

@vibhavkatre #170 Read
feat other-apps 1 month ago

Move Weather off Open-Meteo to MET Norway and a bundled city dataset

Open-Meteo free tier is non-commercial only; moved to MET Norway CC BY 4.0 data and bundled city dataset, unblocking auth removal.

@vibhavkatre #169 Read
feat other-apps 1 month ago

Render per-route page metadata on the server

Each tool route now sends unique title, description, and structured data so crawlers and search engines know Weather and Calculator are different pages.

@vibhavkatre #174 Read
feat other-apps 1 month ago

Live "On this page" TOC beside the editor

"On this page" outline built from live ProseMirror doc beside editor; scrolls to headings on click. Collapses to reader strip on mobile.

@NagariaHussain #745 Read
feat other-apps 1 month ago

Editing nested fragments (dialogs inside dialog, dialogs inside studio component)

Nested overlays now show in breadcrumbs for easy navigation. Can now click overlay components on canvas to edit them.

@ruchamahabal #223 Read
feat other-apps 1 month ago

Add rate limits

Calendar event creation/edit mails invites to participants; new rate limits prevent fan-out abuse like outbound.send.

@s-aga-r #553 Read
feat ui-ux 1 month ago

Park the v0 TextEditor family in frappe-ui/experimental

Deprecated TextEditor moved to experimental for apps mid-migration; v0 imports redirected.

@netchampfaris #1008 Read
feat ui-ux 1 month ago

Feat(Alert)!: redesign for espresso 2.0, add SidebarCard

Alert redesigned content-driven with theme colours; SidebarCard split out as new sidebar promo card.

@netchampfaris #1005 Read
feat other-apps 1 month ago

Per-cell bold, italic and underline in whiteboard tables

Formatting applies to selected cell text or shift-clicked range. Model lives in cellRuns alongside plain-text cells.

@vibhavkatre #352 Read
feat other-apps 1 month ago

Drop the type glyph from Home's list rows

Type glyphs were neutral and only pushed titles right; row and header glyphs both removed.

@vibhavkatre #375 Read
feat other-apps 1 month ago

Icon-only Export and Share in the editor top bar

Export and Share now ghost icon buttons like Comments and the menu, one consistent row.

@vibhavkatre #368 Read
feat other-apps 1 month ago

Drop Rename from the "..." menu, and name the pin action Pin

Removed Rename (redundant with clickable title), renamed Favourite/Unpin to Pin with real pin icon.

@vibhavkatre #369 Read
feat other-apps 1 month ago

Flat, Frappe-Drive-style Home list with sortable headers

De-carded rows, flat table with hairline separators, hover and selected fill, sortable headers. QA'd live.

@vibhavkatre #349 Read
feat other-apps 1 month ago

Canvas toolbar frame and one selection resolver

Static toolbar below title bar as frame for moving all eight floating menus. Nothing moves yet, all bars work as before.

@vibhavkatre #366 Read
feat other-apps 1 month ago

Move the block selection's controls onto the canvas toolbar

22 controls from floating block editor become toolbar groups; makes toolbar real for default document type.

@vibhavkatre #372 Read
feat other-apps 1 month ago

Move the whiteboard controls onto the canvas toolbar

Three floating toolbars (selection editor, sticky note, table cell) moved to canvas toolbar.

@vibhavkatre #378 Read
feat other-apps 1 month ago

Move the mind-map and flowchart controls onto the canvas toolbar

Four floating bars folded into toolbar; bottom palette's map-wide actions consolidated.

@vibhavkatre #376 Read
feat other-apps 1 month ago

Split the insert palette onto the canvas toolbar

Bottom palette gone, five categories split into toolbar entries. Canvas is clear of floating chrome.

@vibhavkatre #380 Read
feat other-apps 1 month ago

Mind-map node redesign — monochrome look, Espresso colour, hover/selection, text menu

Nodes default to uniform gray box; colour is opt-in via Espresso swatch grid. Hover and selection consistent, no rotation, text-only formatting menu.

@vibhavkatre #345 Read
fix other-apps 1 month ago

Tune rate limits and cover missing endpoints

Rate limits were too tight for normal signup flow; adjusted and added missing endpoint coverage.

@s-aga-r #551 Read
fix other-apps 1 month ago

Handle missing entity_name in get_entity_with_permissions

Missing entity_name parameter raised TypeError 500 before error handling; now optional with graceful fallback.

@s-aga-r #548 Read
fix other-apps 1 month ago

Purge versions when a document is deleted

Drive's `clear_deleted_files` failed on Writer files because Writer Version links to deleted Writer Document; now purges versions on delete.

@s-aga-r #547 Read
fix other-apps 1 month ago

Compile recorder layout styles

Recorder layout styles now compiled.

@BreadGenie #552 Read
fix other-apps 1 month ago

Preserve unwrapped join response

Join response wrapping issue fixed.

@BreadGenie #549 Read
fix other-apps 1 month ago

Recording indicator sync with non hosts

Recording indicator did not sync across non-host participants.

@BreadGenie #554 Read
fix other-apps 1 month ago

Prevent flash while switching theme

Theme swap strobe — every transitioning element landed at different times. Suppress transitions during swap.

@NagariaHussain #746 Read
fix other-apps 1 month ago

Read the theme from the key the store writes it to

Theme resolver read from old localStorage key after migration; dark mode preference was lost.

@vibhavkatre #165 Read
fix other-apps 1 month ago

Name the tempo slider, drop dead slider attributes, use Badge amber

Slider never bound $attrs, so class and aria-label reached no element; seven sliders carried dead labels.

@vibhavkatre #154 Read
fix other-apps 1 month ago

Stop Button label from silencing the descriptive aria-label

Button label prop overwrote aria-label; 38 calculator keys lost descriptive names (√x announced as "√x" instead of "Square root").

@vibhavkatre #151 Read
fix other-apps 1 month ago

Bind slider values as arrays so they stop pinning to the minimum

All seven sliders bound scalars instead of arrays, pinning thumbs to minimum (120 BPM read as 30, 50% volume as 0).

@vibhavkatre #150 Read
fix other-apps 1 month ago

Finish #303 — tokenize pin star, Divider separators, off-scale text

Pin star tokenized, separators converted to ``, off-scale text normalized.

@vibhavkatre #350 Read
fix other-apps 1 month ago

Normalise off-scale text, dead borders, raw status colours to tokens

Off-scale `text-[Npx]`, dead `border-black/10`, and raw status colours across 28 files replaced with frappe-ui tokens.

@vibhavkatre #346 Read
fix other-apps 1 month ago

Remember the Home layout, and recover from a dead thumbnail

Home tile/list choice was not persisted; now survives reload. Dead thumbnail recovery added.

@vibhavkatre #371 Read
fix other-apps 1 month ago

Give JPEG its own icon in the export menu

PNG and JPEG both drew the same icon; JPEG now uses file-image for clarity.

@vibhavkatre #373 Read
fix other-apps 1 month ago

Drop Home's end-of-list marker, word each empty view for its tab

Unhelpful end-of-list marker ("reached the end") dropped; empty states now tailored per tab with actionable messaging.

@vibhavkatre #374 Read
fix other-apps 1 month ago

Let double-click open a table cell again

Double-clicking a whiteboard table cell selected the table instead of opening it for edit; selection change cleared editingCell.

@vibhavkatre #355 Read
fix other-apps 1 month ago

Make the sticky note's floating toolbar render again

Toolbar was a Teleport from an SVG `

@vibhavkatre #357 Read
fix ui-ux 1 month ago

Emit oklch from sync-tokens

sync-tokens regenerated colors.json in hex, reverting manual oklch conversion; now includes hex-to-oklch converter.

@netchampfaris #1001 Read
fix ui-ux 1 month ago

Fix(useCall)!: a throwing beforeSubmit cancels the submit

beforeSubmit throw was caught and logged without surfacing, request sent anyway. Now properly cancels submit and rejects.

@netchampfaris #1000 Read
fix ui-ux 1 month ago

Dedup host across sibling mounts

Inject guard in Dialogs.vue only saw ancestors, so sibling provider and slot content hosts both mounted and rendered dialogs twice.

@netchampfaris #1010 Read
fix ui-ux 1 month ago

Give setValue, delete and doc methods isolated call state

Multiple submit calls on the same useDoc member shared one useCall, so a second submit aborted the first mid-flight and both resolved off the same data ref.

@netchampfaris #1012 Read

Friday, August 7

ERPNext 38.9k 7 updates
feat accounting 1 month ago

Split exchange gain and exchange loss accounts

Adds Exchange Gain Account and Exchange Loss Account to Company so realized FX gain/loss books to separate accounts instead of one combined.

@Jatin3128 #57839 Read
fix accounting 1 month ago

Work order name in shop floor view

work order name in shop floor view

@rohitwaghchaure #57826 Read
fix accounting 1 month ago

Sync translations from crowdin

sync translations from crowdin

@frappe-pr-bot #57842 Read
fix accounting 1 month ago

Drop call to confirm_if_drafts_exist missing on v16

Removes call to missing utility on version-16-hotfix that prevented Material Request's "Create Purchase Orders by Supplier" dialog from working.

@mihir-kandoi #57833 Read
fix stock-manufacturing 1 month ago

Purchase return of batchwise valuation batch valued at original receipt rate instead of batch avg rate

Fixes batch valuations being calculated at original receipt rate instead of current average rate, which stranded negative residues in batch values.

@rohitwaghchaure #57835 Read
fix accounting 1 month ago

Round Production Plan mr_items quantity to field precision

Fixes floating-point precision loss in Material Request quantities derived from Production Plan, preventing unrounded values like 5738748.300863984 from entering the database.

@mihir-kandoi #57851 Read
fix accounting 1 month ago

Group work order actions under the Create menu

Consolidates Work Order create actions (Pick List, Material Request, Material Consumption, Additional Material Transfer) under a single Create menu instead of scattered buttons.

@mihir-kandoi #57854 Read
Frappe 10.7k 6 updates
feat framework 1 month ago

Ability to disable / enable app

Allows disabling/enabling apps without uninstalling, hiding their APIs, pages, doctypes, scheduled jobs while keeping data intact.

@tanmoysrt #41563 Read
fix framework 1 month ago

Honour the doctype default print format in generator downloads

Resolves omitted print_format through the same choke point as printview so generator downloads honor the doctype default consistently.

@iamejaaz #41645 Read
fix framework 1 month ago

Print the doctype default when a print format name does not resolve

Falls back to doctype default when print format name is stale or missing, covering renamed/deleted formats and null parameters.

@iamejaaz #41646 Read
fix framework 1 month ago

Fix user level validation

fix user level validation

@deepeshgarg007 #41502 Read
fix ui-ux 1 month ago

Fall back to record name for card title

Displays record name as fallback when a Kanban card's title field is missing or empty.

@nishkagosalia #41440 Read
fix framework 1 month ago

Remove request from render globals & place in exec globals

Removes request object from safe_exec render globals where it poses a security risk, moving it to exec globals.

@AarDG10 #41648 Read
HR 8.7k 2 updates
fix hr-payroll 1 month ago

Fix holiday count for date ranges spanning months

Fixes Monthly Attendance Sheet showing fewer holidays when date range spans month boundaries where day-of-month repeats (e.g. 15th of consecutive months).

@iamkhanraheel #5043 Read
fix hr-payroll 1 month ago

Enforce mandatory leave approver and sync leave approver name

Moves leave approver validation to server-side to prevent blank or mismatched approver names, with a patch to backfill existing records.

@iamkhanraheel #5056 Read
CRM 3.5k 1 update
fix crm-sales 1 month ago

Resolve @me filters in export all records flow

Fixes exports returning blank data when filters use the special `@me` value by resolving it to the logged-in user before serializing.

@Hemil-Sangani #2228 Read
Helpdesk 3.4k 1 update
fix other-apps 1 month ago

Truncate long recipient names in the popover

Fixes email composer popover scrolling sideways with long contact names by adding min-width constraint to flex text columns.

@aerodeval #3677 Read
Insights 1k 2 updates
feat other-apps 1 month ago

Let string filters match an exact value

Adds `equals` and `not equals` operators to string filters so users can match exact values without being limited to distinct-value picker.

@nextchamp-saqib #1283 Read
fix other-apps 1 month ago

Let a workbook owner share without an admin role

Allows workbook owners to share without Insights admin role by reading the share roster independently instead of relying on User listing permissions.

@nextchamp-saqib #1284 Read
p Press 563 4 updates
fix other-apps 1 month ago

Make billing overview page responsive

Make billing overview page responsive

@siduck #7132 Read
fix other-apps 1 month ago

Use query.run() to get servers

Uses SQL union support added in early 2024 instead of separate queries.

@ssiyad #7128 Read
fix other-apps 1 month ago

Add usage record to own team

Add usage record to own team

@shadrak98 #7137 Read
fix other-apps 1 month ago

Skip alerts for disabled teams and users

Skip alerts for disabled teams and users

@ssiyad #7136 Read
o Other 49 updates
feat other-apps 1 month ago

A batch of July bug fixes

Shell blanking while user-list request in flight, posts publishing with no body when save races with paste — four fixes across four commits.

@netchampfaris #534 Read
feat ui-ux 1 month ago

Two 1.0.0 freeze decisions: the at-bar checklist (ADR-0011) and the template-ref surface (ADR-0012)

Docs-only: adds at-bar checklist spec and ADR-0011 for public exports frozen at 1.0.0, plus ADR-0012 on template-ref surface decisions.

@netchampfaris #915 Read
feat other-apps 1 month ago

Parse `compose` + track modes-declared in the manifest

Adds `compose: list[str]` for ordered base recipe stacking and modes_declared flag to chef manifests.

@the-bokya #1 Read
feat other-apps 1 month ago

Retire the 4 per-VM systemd hooks — firecracker-vm@ boots via boat verbs

Replaces four per-VM Python ExecStartPre/Post hooks with byte-compatible boat verbs so units boot through daemon commands.

@the-bokya #136 Read
feat other-apps 1 month ago

Chef-facing API — neutral seam rename + bare-VM/snapshot/promote endpoints

Neutral seam rename (satellite→service), and adds chef-facing API: bare-VM provisioning, snapshot/promote endpoints.

@the-bokya #137 Read
feat other-apps 1 month ago

Add a Tone Generator tool

Pure-tone generator (20–20,000 Hz) with waveform selection, musical note snapping, and A4 / 1 kHz presets.

@vibhavkatre #91 Read
feat other-apps 1 month ago

Add a Metronome tool

Web Audio metronome: 30–300 BPM, accented downbeat, beats per measure, volume, tap tempo, and beat indicator.

@vibhavkatre #93 Read
feat other-apps 1 month ago

Add an Audio Inspector tool

Inspect audio files locally: duration, channels, size, type, waveform, and sample rate read from WAV headers.

@vibhavkatre #95 Read
feat other-apps 1 month ago

Open a saved recording in the Audio Editor

Adds "open in Audio Editor" action to library recordings for in-place trimming/fading without re-importing.

@vibhavkatre #99 Read
feat other-apps 1 month ago

Export edited audio as Opus, not just WAV

Adds compressed audio export using browser MediaRecorder/WebM Opus alongside lossless WAV.

@vibhavkatre #101 Read
feat other-apps 1 month ago

MariaDB variable editor

Introduces DB quick actions for Pilot-managed MariaDB: toggle Performance Schema, adjust InnoDB Buffer Pool, set max connections, restart.

@AyshaHakeem #362 Read
feat other-apps 1 month ago

Add Activity page

Add Activity page

@siduck #363 Read
feat other-apps 1 month ago

Add Global Searchbar

Add Global Searchbar

@siduck #365 Read
feat other-apps 1 month ago

Crop images

crop images

@GursheenK #494 Read
feat other-apps 1 month ago

Scheduled send and undo send via JMAP FUTURERELEASE

Implements Gmail-style undo send: emails held for 13 seconds with 10-second undo window.

@s-aga-r #501 Read
feat other-apps 1 month ago

Roll a team forward, month by month

Fixes simulator to roll state forward month-by-month instead of independently querying the database for each month.

@saurabh6790 #247 Read
feat other-apps 1 month ago

Project a team's billing before it happens

Billing simulator showing invoices and next-state for any team and period without actually running the billing operation.

@saurabh6790 #245 Read
feat other-apps 1 month ago

Say why collection will fail, when the data already knows

Adds collection failure prediction with three modes (Optimistic, Assumed, Derived) so operators know when a team can't be billed.

@saurabh6790 #246 Read
feat other-apps 1 month ago

Split billing decisions from their effects

Separates billing decision functions (rating, dunning) from their effects so rules can be queried without performing them.

@saurabh6790 #243 Read
feat other-apps 1 month ago

Drive the host verbs over HTTP, not SSH

Moves every host verb onto daemon's HTTP surface with journaled transport.

@the-bokya #2 Read
feat other-apps 1 month ago

/watch reconciler hub, `boat pool` verb, and token rotation

Publishes reconciler observations to /watch, adds boat pool verb, and implements token rotation with hard-expiry and SIGHUP reload.

@the-bokya #1 Read
feat other-apps 1 month ago

Drive the host verbs over HTTP, not SSH

Migrates host verbs from SSH to boat daemon HTTP transport so retried Tasks replay through operation journal rather than running twice.

@the-bokya #138 Read
feat other-apps 1 month ago

Drive the standalone base-image ship over HTTP

Finishes SSH→HTTP migration by running standalone base-image export through boat daemon HTTP surface.

@the-bokya #139 Read
feat other-apps 1 month ago

Mint, store, install and read the per-host Boat token

Server gains boat_token and boat_token_expires_at fields; Atlas mints fresh tokens instead of relying on operator-placed config.

@the-bokya #140 Read
feat other-apps 1 month ago

Disable and enable apps on a site

Pilot integration for disabling/enabling apps: reads disabled state from Frappe and offers inline re-enable on app removal.

@tanmoysrt #356 Read
feat other-apps 1 month ago

Export host and per-VM metrics to datum (spec ch.34)

Atlas control-plane half of metrics export: mints RS256 JWTs per resource, builds token files, and refreshes them on schedule.

@the-bokya #141 Read
feat other-apps 1 month ago

Push host and per-VM metrics to datum (+ /metrics endpoint)

Exports host and per-VM metrics from the boat daemon to frappe/datum with Prometheus /metrics endpoint support.

@the-bokya #3 Read
feat other-apps 1 month ago

Add live host utilization metrics (memory used, CPU, network, disk)

Adds host memory, CPU busy seconds, and network/disk byte counters read from /proc, exported to both datum push and /metrics endpoint.

@the-bokya #4 Read
fix other-apps 1 month ago

Raise on JMAP method-level errors in changes calls

Fixes fetch_changes crashing with misleading KeyError when JMAP server returns method-level errors in response.

@s-aga-r #505 Read
fix other-apps 1 month ago

Prevent flashbang while theme switching

Prevent flashbang while theme switching

@siduck #367 Read
fix other-apps 1 month ago

Sticky headers blending with dialog

Fixes sticky headers blending with modal dialogs by applying proper stacking context.

@siduck #364 Read
fix other-apps 1 month ago

Improve grafana chart representation

improve grafana chart representation

@BreadGenie #509 Read
fix other-apps 1 month ago

Restrict user access endpoint

restrict user access endpoint

@BreadGenie #499 Read
fix other-apps 1 month ago

Queue share notifications

queue share notifications

@BreadGenie #500 Read
fix other-apps 1 month ago

Allow uploads with unknown MIME types

allow uploads with unknown MIME types

@BreadGenie #502 Read
fix other-apps 1 month ago

Normalize backend storage paths

normalize backend storage paths

@BreadGenie #503 Read
fix other-apps 1 month ago

Only render children/slots if they exist

Fixes Avatar fallback and component defaults by not always passing empty default slots.

@ruchamahabal #220 Read
fix other-apps 1 month ago

Constrain local file storage paths

constrain local file storage paths

@BreadGenie #508 Read
fix other-apps 1 month ago

Stop assigning the Tenant Administrator role on Stalwart

Removes unnecessary Stalwart admin role assignment since mail admin calls are proxied through configured credentials.

@s-aga-r #506 Read
fix other-apps 1 month ago

Improve local network indicator

Uses server score and WebRTC stats to better detect network problems in Meet.

@BreadGenie #511 Read
fix other-apps 1 month ago

Widen beautifulsoup4 pin to resolve with frappe

Widens beautifulsoup4 pin range so a strict resolver can install frappe and suite together.

@s-aga-r #512 Read
fix other-apps 1 month ago

Allow serving files from bench root to support worktrees

Expands vite fs.allow to include symlinked app folders so Studio can serve worktree components.

@ruchamahabal #222 Read
fix other-apps 1 month ago

Auto-revert when the update phase fails

Automatically reverts a failed update back to the previous revision without user intervention when app/validation phases fail.

@tanmoysrt #368 Read
fix other-apps 1 month ago

Correct the DB analyzer's PostgreSQL diagnostics

Fixes database analyzer showing blank processes, incomplete storage, and incorrect lock info on PostgreSQL by adding engine-specific query paths.

@mihir-kandoi #358 Read
fix other-apps 1 month ago

Clone apps with full history on a dev install

Fixes dev installs cloning apps with depth=1, leaving them unusable to work on.

@mihir-kandoi #359 Read
fix other-apps 1 month ago

Prune temp packs left by a killed fetch

Cleans up orphaned git temporary pack files left by killed fetches that accumulate indefinitely and fill storage.

@tanmoysrt #369 Read
fix ui-ux 1 month ago

Keep the clock live so today moves at midnight

Fixes Calendar staying on yesterday past midnight and current-time line not moving by reading from a shared ticking ref instead of computing new Date() inside computeds.

@krantheman #919 Read
fix ui-ux 1 month ago

Stop a cached doc overwriting fresher data in docStore

Ensures cached documents don't land after fresh server data and move docRef backwards in time.

@netchampfaris #921 Read
fix other-apps 1 month ago

Stop a late document publish overwriting what was typed

Fixes three locations where stale cached documents overwrote user input by using the synced-field pattern to order IndexedDB and network updates.

@netchampfaris #535 Read

Thursday, August 6

ERPNext 38.9k 5 updates
fix stock-manufacturing 1 month ago

Incorrect batch-wise valuation rate for entries with same posting datetime

Tiebreaker now uses correct timeline instead of mixing Stock Ledger and Serial/Batch creation times.

@rohitwaghchaure #57803 Read
fix accounting 1 month ago

Do not copy Blanket Order naming series to the mapped order

Sales Orders and Quotes from Blanket Orders now use their own series instead of inheriting.

@Pandiyan5273 #57810 Read
fix accounting 1 month ago

Validate Blanket Order item quantity is greater than zero

fix: validate Blanket Order item quantity is greater than zero

@Pandiyan5273 #57793 Read
feat stock-manufacturing 1 month ago

Validate stock value and stock closing entry before period closing

Period Closing Voucher now validates stock ledger value and requires completed Stock Closing Entry.

@rohitwaghchaure #57811 Read
fix stock-manufacturing 1 month ago

Respect Customize Form hidden setting on Update Stock

Field hidden via Customize Form no longer reappears on refresh.

@Henil666 #57818 Read
Frappe 10.7k 13 updates
fix ui-ux 1 month ago

Show warning over same label

Workspace shortcuts with duplicate labels now show a warning.

@sokumon #41061 Read
feat framework 1 month ago

Add depreacted flag for doctype

Deprecated badge shown on doctypes.

@sokumon #41601 Read
feat framework 1 month ago

Add between operator to evaluate_filters

Filters can now use the `between` operator for range queries.

@barredterra #41610 Read
fix framework 1 month ago

Key rate limits on the endpoint, not on `cmd`

fix: key rate limits on the endpoint, not on `cmd`

@ankush #41436 Read
fix ui-ux 1 month ago

Skip desktop icon creation when the label is already taken

fix: skip desktop icon creation when the label is already taken

@sokumon #41493 Read
fix framework 1 month ago

Render filters as plain txt

Prevents injection via dashboard chart filter values.

@AarDG10 #41595 Read
fix framework 1 month ago

Return `Self | None` type from `doc.get_latest()`

Fixes return type annotation for better IDE and type checker support.

@cogk #41604 Read
fix ui-ux 1 month ago

Form does not render when form sidebar is disabled

fix: form does not render when form sidebar is disabled

@kaulith #41605 Read
fix ui-ux 1 month ago

Keep quick-list controls buttons visible without hover

fix(quick-list-widget): keep quick-list controls buttons visible without hover

@KerollesFathy #41309 Read
fix framework 1 month ago

Only check for enabled users

Document follow notifications now skip disabled users.

@AarDG10 #41613 Read
fix framework 1 month ago

Virtulization and pagination issue due to variable card height

Kanban board with mixed-height cards broke virtualization math; fixed by normalizing card heights.

@sumitjain236 #41616 Read
fix framework 1 month ago

Add perm. chk. to get_email_template

Prevents unauthorized access to email templates.

@AarDG10 #41603 Read
fix framework 1 month ago

Bump cryptography past three advisories

Addresses CVE-2026-69247 (Bleichenbacher oracle in pkcs7_decrypt), CVE-2026-69248 (wildcard SAN escape), and a third advisory.

@shariquerik #41589 Read
HR 8.7k 3 updates
feat hr-payroll 1 month ago

Enhance Unpaid Expense Claim report

Company, Department, Branch filters; Group By with subtotals.

@akhtarmohsin #4994 Read
fix hr-payroll 1 month ago

Use date strings for mark attendance date

fix: use date strings for mark attendance date

@nareshkannasln #4949 Read
fix hr-payroll 1 month ago

Fix incorrect ctc in salary component formula

Statistical salary components now correctly evaluate ctc in formulas.

@iamkhanraheel #5050 Read
CRM 3.5k 1 update
fix crm-sales 1 month ago

UseUnsavedChangesWarning to throw warning for dirty form

Dirty form warnings added to lead and deal pages.

@ps173 #2618 Read
LMS 3.2k 1 update
fix other-apps 1 month ago

Quiz remount follow-ups, upload privacy, modal submits and lesson media rate limit

Quiz cleanup on unmount; upload privacy statements; media rate limiting.

@raizasafeel #2650 Read
Insights 1k 3 updates
fix other-apps 1 month ago

Show the accounting nudge on the Accounting workspace

fix: show the accounting nudge on the Accounting workspace

@nextchamp-saqib #1265 Read
fix other-apps 1 month ago

Chart breaks when the chart type changes

Switching chart types no longer empties config slots.

@nextchamp-saqib #1277 Read
fix other-apps 1 month ago

Apply user permissions in data source exploration

Data source endpoints (table preview, row count, schema) now enforce user permission filters; closes a hole where users could preview all rows they weren't authorized to see.

@nextchamp-saqib #1279 Read
p Press 563 3 updates
fix other-apps 1 month ago

Stop advanced charts re-rendering forever

Prevents re-render loop on finished event.

@balamurali27 #7114 Read
fix other-apps 1 month ago

Set docker MTU before the enqueued setup plays

MTU now configured before enqueued jobs instead of after.

@balamurali27 #7122 Read
fix other-apps 1 month ago

Record failure when agent returns a non-JSON body

Handles 502 HTML errors from nginx instead of crashing on JSON decode.

@balamurali27 #7119 Read
o Other 40 updates
fix other-apps 1 month ago

ServerListPanel conflict regression

fix(servers): ServerListPanel conflict regression

@prathameshkurunkar7 #239 Read
fix other-apps 1 month ago

Legible AppShell chips

Replaced undefined ink tokens with legible background colors.

@vibhavkatre #78 Read
fix other-apps 1 month ago

Rely on VS Code port forwarding

Adapted to Frappe's localhost-only dev server.

@DanielRadlAMR #1953 Read
fix other-apps 1 month ago

Broken ci and linter

CI and linter configuration fixed; pre-commit run across all files.

@prathameshkurunkar7 #209 Read
feat other-apps 1 month ago

Audio Recorder slice

Browser-native Web Audio API; stores as private Frappe File.

@vibhavkatre #74 Read
feat other-apps 1 month ago

Receipts — validated private image/PDF

Attach receipt images/PDFs (JPEG/PNG/GIF/WebP/PDF, max 10 MB).

@vibhavkatre #75 Read
feat other-apps 1 month ago

Live ECB base-currency conversion

Fetches reference cross-rates from ECB; pre-fills conversion rate.

@vibhavkatre #76 Read
feat other-apps 1 month ago

Personal Expenses core

Private, owner-scoped tracker with rule-based categorization.

@vibhavkatre #69 Read
feat other-apps 1 month ago

Trips/Projects, Budgets, and bulk actions

Project/trip grouping, budget tracking, bulk categorization.

@vibhavkatre #70 Read
feat other-apps 1 month ago

SSRF-guarded link metadata fetch

Validates DNS resolution and IP ranges to prevent SSRF.

@vibhavkatre #72 Read
feat other-apps 1 month ago

On-device Script Conversion

Deterministic script conversion between Indic scripts without network.

@vibhavkatre #73 Read
feat other-apps 1 month ago

Mention organization users inline

@-mentions in composer; mentions render as mailto: links in sent mail.

@krantheman #490 Read
feat other-apps 1 month ago

Suite setup

Setup wizard with welcome, workspace config, team invites, completion.

@GursheenK #96 Read
feat other-apps 1 month ago

Add Global search bar

feat(ui): Add Global search bar

@siduck #237 Read
feat other-apps 1 month ago

Add support for claims match

feat: Add support for claims match

@Aradhya-Tripathi #2 Read
fix other-apps 1 month ago

Cleaner Parent Node icon + rename the mind-map insert tile

Tile renamed from "Mind map" to "Parent Node".

@vibhavkatre #256 Read
fix other-apps 1 month ago

Node text renders live while typing

Text editor paints above shape layers.

@vibhavkatre #268 Read
fix other-apps 1 month ago

Mind-map branch connectors curve symmetrically up and down

fix: mind-map branch connectors curve symmetrically up and down

@vibhavkatre #277 Read
fix other-apps 1 month ago

Mind-map branch connectors are structural

Connectors no longer selectable/editable; colour tracks child node.

@vibhavkatre #278 Read
feat other-apps 1 month ago

Mind-map children aren't freely draggable; dragging a root moves the whole map

feat: mind-map children aren't freely draggable; dragging a root moves the whole map

@vibhavkatre #280 Read
feat other-apps 1 month ago

Mind-map & flowchart nodes select to a plain border

Auto-layout nodes show selection outline only, no resize handles.

@vibhavkatre #281 Read
feat other-apps 1 month ago

Subtle hover outline on the shape under the cursor

Blue halo indicates interactivity on hover.

@vibhavkatre #282 Read
feat other-apps 1 month ago

Dropping a Parent Node drops you straight into typing

"New idea" seeded and pre-selected.

@vibhavkatre #283 Read
feat other-apps 1 month ago

Mind-map gap-insertion add-node handles

Mind-map nodes show gap-insertion (+) handles for each insertion slot between children.

@vibhavkatre #286 Read
feat other-apps 1 month ago

Recorder polish — presets, device, live waveform, tags

Quality presets (Voice/Music, compact/standard/high), device selection, live waveform, tagging.

@vibhavkatre #85 Read
feat other-apps 1 month ago

Simple WAV editor / trimmer

Single-track audio editor built on browser-native Web Audio.

@vibhavkatre #87 Read
feat ai 1 month ago

Move the update prompt into the sidebar footer

PWA update prompt moved from floating card to compact sidebar pill.

@vibhavkatre #89 Read
feat ui-ux 1 month ago

Refactor(editor)!: open a suggestion menu with a command, not an export

refactor(editor)!: open a suggestion menu with a command, not an export

@netchampfaris #914 Read
fix ui-ux 1 month ago

Stop coercing neutral ink to a hue, and open suggestion menus from a button

Editor ink stays neutral; suggestion menus open from a toolbar button.

@netchampfaris #912 Read
feat other-apps 1 month ago

Atlas → Boat: the cutover

VM mechanics split into the Boat Go daemon.

@the-bokya #133 Read
feat other-apps 1 month ago

Upgrade an existing host's boat generation without a re-bootstrap

`Server.upgrade_boat()` brings a bootstrapped host up to the boat generation without full re-bootstrap.

@the-bokya #134 Read
feat other-apps 1 month ago

Backend notification layer

Unified dispatch engine with in-app feed API, per-user read state, and email audit logging.

@lrxyab #202 Read
feat other-apps 1 month ago

Mint metrics tokens for Datum

feat: Mint metrics tokens for Datum

@Aradhya-Tripathi #240 Read
fix other-apps 1 month ago

Run e2e tests as suite user

Tests now run as suite user instead of admin.

@BreadGenie #498 Read
fix other-apps 1 month ago

Add copy link action to creation toast

fix(meet): add copy link action to creation toast

@BreadGenie #497 Read
fix other-apps 1 month ago

Improve ui consistency

fix(drive): improve ui consistency

@BreadGenie #492 Read
fix other-apps 1 month ago

Keep bracketed addresses out of the HTML parser

Addresses like `` in message bodies no longer get dropped by the sanitizer.

@krantheman #491 Read
fix other-apps 1 month ago

Letterboxed, overflowing YouTube embeds on the public reader

YouTube embeds with mismatched aspect ratios now constrain to 16:9 and respect max-width.

@NagariaHussain #744 Read
fix other-apps 1 month ago

Assign Wiki User role without triggering nested User.save()

Prevents duplicate background task enqueues in multi-worker setups.

@ManyaGirdhar #734 Read
fix other-apps 1 month ago

Sanitize name and validate email before indexing addresses

Strips quote characters from display names and validates email syntax to prevent FTS index parsing errors.

@s-aga-r #495 Read

Thursday, July 30

ERPNext 38.9k 4 updates
fix accounting 1 month ago

Skip e-invoicing for opening invoices

fix(italy): skip e-invoicing for opening invoices

@krishna-254 #57314 Read
fix accounting 1 month ago

Let Purchase Receipt cancel defer to Frappe's linked-document check

Purchase Receipt cancellation now defers to Frappe's framework check for submitted linked documents instead of duplicating the guard.

@Jatin3128 #57592 Read
fix accounting 1 month ago

Don't require cancel and delete perms to remove items via Update Items

fix: don't require cancel and delete perms to remove items via Update Items

@mihir-kandoi #57601 Read
fix accounting 1 month ago

Don't require cancel and delete perms to remove items via Update Items

Removing rows in Update Items no longer requires Cancel and Delete permissions on the order; only Write is needed.

@kaulith #57419 Read
Frappe 10.7k 11 updates
feat ui-ux 1 month ago

Builder-like editing experience

Print format builder now matches Website Builder's editing feel with unified selection ring, proper layering, and draggable sections.

@iamejaaz #41319 Read
feat ui-ux 1 month ago

Print format builder editing UX polish

Print format builder now hides per-item toolbars during bulk selection, uses consistent selection ring across all elements, and adds bulk rename/delete.

@iamejaaz #41322 Read
fix framework 1 month ago

Check calendar date fields against the doctype schema

`get_events` now rejects field maps naming start/end fields that don't exist, giving clear error instead of database error.

@ankush #41324 Read
fix ui-ux 1 month ago

Clean up tab buttons and calendar UI

Refreshed tab button and calendar UI styling for consistency.

@nikkothari22 #41278 Read
fix framework 1 month ago

Keep the selection ring above field content

Print format builder selection ring now drawn as inset overlay instead of outline, and permission check falls back to boot.user when doctype meta unavailable.

@iamejaaz #41330 Read
fix ui-ux 1 month ago

Mobile list scrolling, large-list performance, and virtual skeletons

Fixed double scroll on mobile, pinned pagination to bottom, removed horizontal scroll on card layout, and improved virtual skeleton rendering.

@nikkothari22 #41333 Read
fix framework 1 month ago

Check permissions before returning a contact number for SMS

Contact number lookup now requires read access on both the contact and reference document.

@ankush #41327 Read
fix framework 1 month ago

Limit cross-user event lookups to System Manager

The `user` parameter of `get_events` now requires System Manager role; callers without it only see their own events.

@ankush #41326 Read
fix framework 1 month ago

Resolve inline email image paths inside the assets and site files directories

Inline image paths in outgoing email now resolve only inside the assets directory and site public/private files directories.

@ankush #41325 Read
fix framework 1 month ago

Limit Prepared Report access to the user who generated it

Prepared Report results now limit access to the owner based on user permissions; System Managers and explicitly shared documents unaffected.

@ankush #41328 Read
fix ui-ux 1 month ago

Require read access on the prepared report before queuing its CSV export

The `enqueue_json_to_csv_conversion` endpoint now checks read permission on the Prepared Report before queuing conversion.

@ankush #41329 Read
CRM 3.5k 8 updates
fix crm-sales 1 month ago

Make button direct child so trigger values are capturable

fix: make button direct child so trigger values are capturable

@ps173 #2570 Read
fix crm-sales 1 month ago

Misc frappe-ui fixes

Fixed massive Combobox width due to field description.

@shahzeelahmed #2578 Read
feat crm-sales 1 month ago

Capture new feature adoption daily

Daily feature adoption tracking captured when telemetry enabled.

@shahzeelahmed #2572 Read
fix crm-sales 1 month ago

Misc frappe-ui fixes

Multiple UI fixes including full-name column headers, ID icon in filter dropdown, full-width Field Combobox, and Combobox in filters.

@shahzeelahmed #2568 Read
fix crm-sales 1 month ago

Like button

fix: like button

@ps173 #2575 Read
fix crm-sales 1 month ago

Render saved-view lucide icons in the view dropdown

fix(views): render saved-view lucide icons in the view dropdown

@michellealva #2573 Read
fix crm-sales 1 month ago

App sidebar background in dark mode

fix: app sidebar background in dark mode

@ps173 #2582 Read
fix crm-sales 1 month ago

Support ERPNext v15's price list in deal view

fix: support ERPNext v15's price list in deal view

@shahzeelahmed #2585 Read
LMS 3.2k 5 updates
fix other-apps 1 month ago

Open link in new tab to avoid context

Links in lesson content now open in new tab via DOM sanitization on render.

@Bowrna #2621 Read
feat other-apps 1 month ago

Give every list page one declarative layout

List pages now use unified declarative layout components (ListPage, ListPageHeader, etc.) instead of hand-rebuilt duplicates, fixing mobile view.

@raizasafeel #2622 Read
feat other-apps 1 month ago

Make student view a real route instead of editor mode

Student view moved from CourseEditor second surface to a real route at /courses/:course/learn/:ch-:lesson, eliminating embedded preview surface.

@raizasafeel #2629 Read
fix other-apps 1 month ago

Accept any casing of an Indian state at checkout

Indian state field now uses a Combobox over the canonical list instead of free text validation, and includes all union territories that were missing.

@raizasafeel #2627 Read
fix other-apps 1 month ago

Batch fix_progress_percentage so migrate survives large sites

Migration patch that walked every LMS Enrollment and issued one set_value per row now batches counts into two queries, preventing TooManyWritesError on large sites.

@raizasafeel #2623 Read
b Builder 2.3k 1 update
fix ui-ux 1 month ago

Collapse empty Autocomplete instead of showing a blank sliver

Autocomplete now hides the container when search returns no matches instead of showing an empty bordered box.

@stravo1 #696 Read
Insights 1k 1 update
feat other-apps 1 month ago

Allow serving the app from a custom path

Insights can now serve from custom path via `insights_path` site config for sites that use /insights for something else.

@nextchamp-saqib #1262 Read
p Press 563 2 updates
fix other-apps 1 month ago

Keep one-time passwords out of Account Request

One-time passwords now stored in cache instead of Account Request, fixing login failures for teams created outside Team.create_new.

@ssiyad #7078 Read
fix other-apps 1 month ago

Encrypt TLS private keys at rest

TLS private keys stored plaintext in the database were encrypted at rest using Password fields, keyed by the site's encryption_key.

@regdocs #7065 Read
o Other 40 updates
fix other-apps 1 month ago

Wire up three unreachable UI affordances

Cross-link deletion, text resize via corner drag, and nested element selection now wired to UI.

@vibhavkatre #33 Read
fix other-apps 1 month ago

App install consistency

App Install dialog now reused everywhere for consistency.

@Aradhya-Tripathi #301 Read
fix other-apps 1 month ago

Add spacing between navlinks and btns in sidebar

Sidebar navlink items can now have custom classes for additional customization.

@siduck #203 Read
feat other-apps 1 month ago

Add binlog purge dialog and alert for server page

feat: add binlog purge dialog and alert for server page

@siduck #296 Read
feat other-apps 1 month ago

Add audit follow-ups

Added background migration notifications, hang-guard records, rollback safety, and parser hardening from product audit.

@parthgarachh #74 Read
fix other-apps 1 month ago

Trim the message content if it's too long in toast

fix(meet): trim the message content if it's too long in toast

@BreadGenie #376 Read
fix other-apps 1 month ago

Chat notifications and chat ordering

fix(meet): chat notifications and chat ordering

@BreadGenie #375 Read
fix framework 1 month ago

Skip worktrees

fix(dev): Skip worktrees

@ankush #1727 Read
fix other-apps 1 month ago

Point default-branch references at develop

Default branch updated from main to develop in install.sh and README.

@mihir-kandoi #299 Read
feat other-apps 1 month ago

Implement staging trial provisioning for teams

feat(staging_trial): implement staging trial provisioning for teams

@prathameshkurunkar7 #211 Read
feat other-apps 1 month ago

Add loan reporter role

feat: Add loan reporter role

@deepeshgarg007 #1358 Read
feat other-apps 1 month ago

Bootstrap enrollment for Central and Pilot

Provisioning now hands benches single-use bootstrap tokens instead of durable credentials; benches mint their own via `bench enroll`.

@prathameshkurunkar7 #116 Read
feat other-apps 1 month ago

Run Backup Site on a dedicated queue and worker

Backup Site now runs on its own `backup` queue and worker, preventing long backups from stalling other operations.

@balamurali27 #567 Read
feat other-apps 1 month ago

Installable PWA with iOS launch screens

Mail now installable as PWA with iOS launch screens; manifest and iOS metas attached only when on /mail route.

@krantheman #389 Read
fix other-apps 1 month ago

Admin bench create/drop accept install.sh's scoped nginx sudo grant

Admin API bench create/drop now check scoped nginx sudo grant instead of bare sudo, fixing bench operations on install.sh-provisioned hosts.

@tanmoysrt #305 Read
fix other-apps 1 month ago

Bench address/manager reflect config immediately, not after full setup

fix: bench address/manager reflect config immediately, not after full setup

@tanmoysrt #308 Read
fix other-apps 1 month ago

Safer db provisioning and port defaults

MariaDB/Postgres default ports changed to 3310/5450, fixed stale systemd unit survival, and added timeout error raising.

@tanmoysrt #312 Read
fix other-apps 1 month ago

Map domain-provider exit 2 to a declined conflict, not unavailable

Domain provider exit code 2 (declined) now raises DomainConflictError instead of DomainProviderError, mapping to 409 instead of vague unavailability.

@tanmoysrt #302 Read
fix other-apps 1 month ago

Show the declined-domain provider message to the caller

Admin API now shows actual provider error messages instead of one fixed generic string.

@tanmoysrt #303 Read
fix other-apps 1 month ago

Prevent NaN for storage stats for macos

fix(ui): Prevent NaN for storage stats for macos

@siduck #304 Read
fix other-apps 1 month ago

Shadow DOM with css tokens

Shadow DOM now ships with its own CSS tokens instead of depending on desk's.

@prathameshkurunkar7 #313 Read
fix other-apps 1 month ago

Restore live site (asset-hash mismatch) + cap fieldnames at 64 chars

Repointed forms.html to actually-committed asset hashes and capped fieldnames at 64 chars.

@AsifMulani1 #3 Read
fix other-apps 1 month ago

Surface JMAP errors from sieve script set calls

Sieve script create/update/delete now properly detects and surfaces JMAP method-level errors instead of silently dropping them.

@s-aga-r #374 Read
fix other-apps 1 month ago

Show description on hover of SPF, DKIM and DMARC result

Mail MIME view now includes parsed Authentication-Results for each check and shows it as a tooltip.

@s-aga-r #383 Read
fix other-apps 1 month ago

Keep attachment blob URLs alive so Safari can download them

Attachment blob URLs now revoked on a delay instead of immediately after anchor click, letting Safari fetch before revocation.

@krantheman #386 Read
fix other-apps 1 month ago

Focus subject input when its label is clicked

Composer subject row now wrapped in label so clicking "Subject" text focuses the input.

@krantheman #384 Read
fix other-apps 1 month ago

Classify ledgers under a renamed reserved Tally group

Ledger classification now uses a renamed reserved Tally group's internal ID instead of display name, preserving account_type.

@parthgarachh #72 Read
fix other-apps 1 month ago

Fix/unicommerce display order and invoice fixes

Invoice generation now handles Unicommerce rejections via SQL error handling, and Sync Old Orders backfills Display Order No.

@Bhavathariniya #457 Read
fix other-apps 1 month ago

Allow cancel of security amount Loan Refund

Loan Refund cancellation now skips available-amount check and correctly adds refund amount back to security deposit.

@Nihantra-Patel #1357 Read
feat other-apps 1 month ago

Name a thread row after everyone who wrote in it

Inbox thread rows now name participants in order they first wrote, with user's own addresses collapsed to `me`.

@krantheman #397 Read
fix other-apps 1 month ago

Keep the in-cell editor pinned to its cell

In-cell editor position now updates continuously instead of only on selection, keeping it pinned to the edited cell through scrolling and zoom.

@AsifMulani1 #373 Read
fix other-apps 1 month ago

Decide the layout tier once, at load

Mobile and desktop layout tiers now decided once at load instead of re-swapping on resize, preventing unmounting of open surfaces.

@krantheman #394 Read
fix other-apps 1 month ago

Stop filter/pivot range outline from displacing the grid

Filter and pivot range outline now drawn at viewport extent instead of full range extent, preventing grid displacement.

@AsifMulani1 #393 Read
fix other-apps 1 month ago

Skip stale accounts in automation sieve rebuild patch

Automation sieve rebuild patch now skips stale account rows from before the account reshape.

@s-aga-r #396 Read
fix other-apps 1 month ago

Show an error page when the mail server is unavailable

Mail server connection failures now show an error page instead of rendering a blank page or opaque 500 errors.

@s-aga-r #382 Read
fix other-apps 1 month ago

Generate DB credentials at bench init, not bench new

MariaDB/Postgres root passwords now generated at bench initialization instead of bench creation, fixing the setup wizard's "use existing database" false positive.

@tanmoysrt #307 Read
fix other-apps 1 month ago

Bench creation from a production sibling inherits its TLS choice

Bench creation now matches parent's admin.tls setting when unspecified and parent is production.

@tanmoysrt #306 Read
fix other-apps 1 month ago

Keep branch name attached after pinned-commit/tag checkout

App repos now land on their configured local branch after pinned-commit/tag checkout instead of detached HEAD.

@tanmoysrt #317 Read
fix other-apps 1 month ago

Hang-guard record identity + XML DOCTYPE/entity bypass

Fixed record identity lookup that misread Tally keys and added XML DOCTYPE/entity parsing guards to prevent bypass attacks.

@parthgarachh #73 Read
fix other-apps 1 month ago

Address audit findings across calendar, mail, store, suite_core and utils

Fixed privilege escalation to site takeover in admin member endpoints that accepted caller-supplied User names without permission checks.

@s-aga-r #380 Read

Wednesday, July 29

ERPNext 38.9k 28 updates
feat accounting 1 month ago

Taxable-base resolver hook for custom charge types

Allows custom taxable value calculation for taxes (e.g., tax on MRP in India, differently-determined taxes in Brazil).

@vorasmit #56175 Read
feat accounting 1 month ago

Add four Request for Quotation print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Request for Quotation.

@khushi8112 #57451 Read
feat accounting 1 month ago

Add four Quotation print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Quotation.

@khushi8112 #57450 Read
feat accounting 1 month ago

Add four POS Invoice print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to POS Invoice.

@khushi8112 #57449 Read
feat accounting 1 month ago

Add four Purchase Invoice print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Purchase Invoice.

@khushi8112 #57447 Read
feat accounting 1 month ago

Add four Purchase Order print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Purchase Order.

@khushi8112 #57446 Read
feat accounting 1 month ago

Add four Delivery Note print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Delivery Note.

@khushi8112 #57445 Read
feat accounting 1 month ago

Add four Sales Order print formats built with the print format builder

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Sales Order.

@khushi8112 #57437 Read
feat accounting 1 month ago

Add four Sales Invoice print formats

Four new print formats (Bordered, Classic, Modern, Modern with Images) added to Sales Invoice.

@khushi8112 #57430 Read
fix stock-manufacturing 1 month ago

Fall back to UOM Conversion Factor in Production Plan

Backport of UOM Conversion Factor fallback for v15-hotfix.

@mihir-kandoi #57554 Read
fix accounting 1 month ago

Stop the Subcontracting Receipt title from going stale

Subcontracting Receipt title now updates when the supplier changes instead of staying stale.

@mihir-kandoi #57522 Read
fix stock-manufacturing 1 month ago

Update cost of BOMs created via BOM Creator

BOMs created via BOM Creator can now have their costs updated via the Update Cost button or BOM Update Tool.

@mihir-kandoi #57532 Read
fix accounting 1 month ago

Stop storing raw title template on subcontracting orders

Subcontracting Order and Inward Order titles now render templates correctly instead of storing literal `{supplier_name}` / `{customer_name}`.

@Pandiyan5273 #57493 Read
fix stock-manufacturing 1 month ago

Scope manufacturing warehouse filters to company

Default WIP, Finished Goods and Scrap Warehouse fields now list only warehouses from the current company.

@mihir-kandoi #57540 Read
fix accounting 1 month ago

Recover failed POS closings

POS Closing Entry can now be cancelled and resubmitted when its status is Failed.

@krishna-254 #57203 Read
fix accounting 1 month ago

Correct description on deferred revenue/expense

Field descriptions now correctly explain deferred revenue vs. expense behavior.

@Shllokkk #57566 Read
fix accounting 1 month ago

Add permission check for `get_item_details`

Adds user permission validation to prevent unauthorized item detail access via the API.

@diptanilsaha #57515 Read
fix accounting 1 month ago

Clear deferred revenue/expense fields on uncheck

Service Start and End Date fields now clear when Deferred Revenue is unchecked on a Sales Invoice.

@ervishnucs #57140 Read
fix accounting 1 month ago

Replace incorrect usage of `frappe.in_test` with `frappe.flags.in_test`

Corrects test flag references in Purchase Price Change Validation.

@diptanilsaha #57579 Read
fix stock-manufacturing 1 month ago

Skip stock expense GL entries for non-stock items

Service items in Purchase Invoices no longer generate empty GL entries, fixing validation failures on stock expense accounts.

@rohitwaghchaure #57518 Read
fix stock-manufacturing 1 month ago

Fall back to UOM Conversion Factor in Production Plan

Production Plan now silently falls back to the UOM Conversion Factor doctype instead of throwing when an item lacks a purchase-UOM child row.

@mihir-kandoi #57553 Read
fix stock-manufacturing 1 month ago

Guard against None row in get_stock_balance_for

Batch-tracked items called via API with no row parameter no longer crash on `row.use_serial_batch_fields`.

@Pandiyan5273 #57567 Read
fix stock-manufacturing 1 month ago

Respect child warehouse account override in Stock and Account Value Comparison

Child warehouses that override their parent's account are now correctly scoped to their own account, preventing in-transit transfers from cancelling under the same account.

@Shllokkk #57552 Read
fix accounting 1 month ago

Stop storing "{supplier_name}" / "{customer_name}" as the document title

Purchase Order, Sales Order, and Subcontracting Order now render title templates correctly instead of storing the literal placeholder.

@mihir-kandoi #57524 Read
fix accounting 1 month ago

Update operating cost when propagating workstation hour rate to routing

Propagates workstation hour rate changes to operating_cost in linked Routing BOM Operation rows.

@Shllokkk #57471 Read
fix stock-manufacturing 1 month ago

Scope BOM Creator tree children to the parent row

When the same item is reused as a sub-assembly in multiple places, each occurrence now shows only its own raw materials instead of the union of all occurrences.

@mihir-kandoi #57528 Read
fix stock-manufacturing 1 month ago

Sum semi-FG qty across split job cards

Fixes second job card overwriting the first's quantity instead of accumulating; work order now correctly totals produced_qty across all split cards.

@mihir-kandoi #57521 Read
fix accounting 1 month ago

Stop swallowing exceptions silently in six places

Converted silent `except Exception: pass` handlers to proper logging or intentional raises across Pricing Rule conditions, Payment Request validation, Supplier Quotation, and others.

@mihir-kandoi #57535 Read
Frappe 10.7k 14 updates
feat framework 1 month ago

Add reload option to user dropdown menus

Hard reload option re-added to both sidebar and Desk avatar dropdown menus.

@Shllokkk #41277 Read
feat framework 1 month ago

Add in-app cloud settings embed

Desk now includes an in-app Frappe Cloud Settings dialog for billing, marketplace apps, domains, and advanced settings without leaving the app.

@prathameshkurunkar7 #41293 Read
feat ui-ux 1 month ago

Layers panel (drag-drop + hover) and builder UX cleanup

Print format builder now has a draggable Layers panel for reordering sections/fields, hover field outline, and drop-field overlay inset to page edge.

@iamejaaz #41316 Read
fix framework 1 month ago

Sanitize UTF-16 surrogate codepoints before FTS

Full-text search now handles UTF-16 surrogate codepoints without corruption.

@Bowrna #41271 Read
fix framework 1 month ago

Prevent Jump to Field dialog from stacking

Jump to Field dialog no longer stacks when opened multiple times.

@ankush #41151 Read
fix framework 1 month ago

Restructure restore without a copy and remove unused verbose

Database restore is now simpler and more efficient.

@Bowrna #41260 Read
fix framework 1 month ago

Role permissions manager breaks browser back navigation

Role Permissions Manager now preserves browser back history correctly when called from list view menu.

@Nihantra-Patel #41289 Read
fix framework 1 month ago

Isolate msgprint cases on a fresh page

Msgprint tests now run on isolated pages to prevent CI flakes from dialog state inheritance.

@kaulith #41306 Read
fix framework 1 month ago

Handle large int serialization

Large integers now serialize correctly in JSON responses (reverts orjson regression).

@ankush #41308 Read
fix ui-ux 1 month ago

None link handled and fixed except handler

Desktop icon with None link no longer crashes with unhandled exception.

@Bowrna #41296 Read
fix ui-ux 1 month ago

Run before_print in builder renderer; guest-only 403 login

Print builder renderer now runs before_print hooks and sets link titles for beta PDF downloads.

@iamejaaz #41290 Read
fix ui-ux 1 month ago

Don't assume frappe.app exists when checking session expiry

Session expiry checks no longer crash on requests fired before app boot.

@sokumon #41292 Read
fix framework 1 month ago

Publish last_query so assertQueryCount works on SQLite

SQLite driver now publishes `last_query` so assertQueryCount works on SQLite like it does on MariaDB and Postgres.

@netchampfaris #41315 Read
fix framework 1 month ago

Msgprint loses its message when a save response follows

Client-side msgprint no longer loses its body when a request completes immediately afterwards.

@kaulith #41244 Read
CRM 3.5k 8 updates
fix crm-sales 1 month ago

Improve `PrimaryDropdown` ux and new `IndicatorIcon`

PrimaryDropdown migrated to ItemListRow with inline actions and a new Indicator icon.

@ps173 #2552 Read
feat crm-sales 1 month ago

Migrate Autocomplete to Combobox

16 pickers migrated from old Autocomplete API to new Combobox with updated slot and event signatures.

@shahzeelahmed #2553 Read
feat crm-sales 1 month ago

Migrate to frappe-ui sidebar

CRM now uses frappe-ui sidebar component and updated to frappe-ui v1.0.0-beta.24.

@ps173 #2562 Read
feat crm-sales 1 month ago

Lucide icon picker for views

View modal now uses frappe-ui's searchable lucide icon picker with ~1000 icons instead of emoji-only picker.

@michellealva #2557 Read
fix crm-sales 1 month ago

Search and selector/dropdown widths

Search and dropdown components now render at correct widths.

@ps173 #2558 Read
fix crm-sales 1 month ago

Require a name to create/save a view

Save button is now disabled until the view label is non-empty (trimmed).

@michellealva #2560 Read
fix crm-sales 1 month ago

Play call recordings reliably

Call recordings now play with correct duration and seek support by streaming provider responses and forwarding HTTP Range headers.

@michellealva #2563 Read
fix crm-sales 1 month ago

Quick filters not working

Fixes TypeError when applying quick filters due to null reference in ViewControls.

@shahzeelahmed #2548 Read
Helpdesk 3.4k 1 update
fix other-apps 1 month ago

Move ticket's feedback to sidepanel

Ticket feedback UI now lives in the side panel for better UX.

@RitvikSardana #3631 Read
LMS 3.2k 1 update
fix other-apps 1 month ago

Lesson editor formatting, profile permissions, and Razorpay order creation

Bold formatting now works in all editor blocks, headings are single-line, profile IDOR closed, and Razorpay order ID extraction fixed.

@raizasafeel #2613 Read
b Builder 2.3k 1 update
fix ui-ux 1 month ago

Regenerate block ids when pasting at root with no selection

fix: regenerate block ids when pasting at root with no selection

@stravo1 #698 Read
Insights 1k 2 updates
feat other-apps 1 month ago

Reference lines, funnel-from-measures, percent measures

Charts now support horizontal reference lines, funnels from multiple measures, and percent-formatted measures.

@nextchamp-saqib #1260 Read
fix other-apps 1 month ago

Restore PNG export for dashboards and charts

PNG export now works by replacing unmaintained dom-to-image with html-to-image fork, which properly encodes SVG data URIs.

@nextchamp-saqib #1261 Read
p Press 563 6 updates
feat other-apps 1 month ago

Prebundle headless Chromium in prod bench image

feat(server): Prebundle headless Chromium in prod bench image

@regdocs #6904 Read
fix other-apps 1 month ago

Derive document ownership from a declared table

Document ownership rules now live in a declared table instead of field sniffing, covering partner records, SSH keys, firewalls, app plans, and child rows.

@ssiyad #7069 Read
feat other-apps 1 month ago

Add public IP for hetzner

Hetzner servers now support public IP configuration.

@20vikash #7070 Read
feat other-apps 1 month ago

Set docker MTU during Hetzner server creation

Docker MTU is now set during Hetzner server creation to match the 1450 MTU of Hetzner's private network.

@balamurali27 #7066 Read
fix other-apps 1 month ago

Refresh access token after app (re)installation

GitHub app reinstallation no longer leaves stale tokens; the callback now refreshes on `installation_id` even when no `code` is present.

@regdocs #6731 Read
fix other-apps 1 month ago

Accept team invite as Administrator so member side effects don't fail

Invited team members can now accept invites without permission errors from side effects like Email Group Member creation.

@regdocs #6934 Read
o Other 29 updates
fix other-apps 1 month ago

Misc fixes

fix: misc fixes

@ankush #57 Read
feat other-apps 1 month ago

Add "Published pages only" filter to Broken Links report

feat: add "Published pages only" filter to Broken Links report

@NagariaHussain #704 Read
feat other-apps 1 month ago

Storage cards in server page

feat: Storage cards in server page

@siduck #288 Read
feat other-apps 1 month ago

Add draft-security-advisory skill for writing GitHub Security Advisories

feat: add draft-security-advisory skill for writing GitHub Security Advisories

@diptanilsaha #10 Read
fix other-apps 1 month ago

Reload site uptime chart when site name changes

SiteUptime component now watches both siteName and window, matching the pattern used by SiteInsights.

@tanmoysrt #291 Read
fix other-apps 1 month ago

Keep a BOM when its Tally secondary allocations exceed 100%

BOM secondary allocations exceeding 100% are now capped at 100 to match ERPNext's constraints (Tally allows independent percentages that sum beyond 100).

@parthgarachh #70 Read
fix other-apps 1 month ago

Set the target company on company Bank Accounts

Company bank accounts imported from Tally now have the target company set instead of relying on ambient default.

@parthgarachh #68 Read
fix other-apps 1 month ago

Run the Step-1 file preview asynchronously so a large export cannot time out

Large Tally export preview now runs in background job instead of inline, preventing request timeouts.

@parthgarachh #67 Read
feat other-apps 1 month ago

Report backend and frontend test coverage in the README and on pull requests

Backend (545 tests, 83.7%) and frontend (33 specs / 78 tests, 65.3%) coverage now reported in README and PR comments.

@netchampfaris #524 Read
fix other-apps 1 month ago

Keep link hover card opaque on browsers without color-mix()

Link preview hover card now renders with a literal white fill for browser compatibility instead of relying on color-mix().

@AsifMulani1 #358 Read
feat other-apps 1 month ago

Import Tally BOM co-products, by-products, and scrap as secondary items

Tally BOM rows classified as Co-Product / By-Product / Scrap are now imported as ERPNext BOM secondary items (previously only Component rows were imported).

@parthgarachh #69 Read
feat other-apps 1 month ago

Configurable advance payment handling on loan product

Loan Product now has a "How to Handle Advance Payments" option to choose between reducing tenure (EMI fixed) or reducing EMI (tenure fixed).

@deepeshgarg007 #1353 Read
feat other-apps 1 month ago

Build out the Mail Admin Dashboard

Mail Admin Dashboard now includes detail pages for directory resources (members, groups, mailing lists, etc.) and Emails, Reports, Observability, and Actions sections.

@s-aga-r #357 Read
feat other-apps 1 month ago

Add option to revert page changes since last publish

Added Revert Changes option in the primary button dropdown to restore published state from draft changes.

@ruchamahabal #204 Read
feat other-apps 1 month ago

Refactor!: move the editor SPA from /wiki to /wiki-app

Wiki editor SPA moved from /wiki to /wiki-app so spaces can have pages at /wiki; squat removed from website_route_rules and can_render check.

@NagariaHussain #728 Read
feat other-apps 1 month ago

Send reader's Edit button straight to GitHub for synced spaces

On public reader pages of git-synced spaces, the Edit button now opens the page's source file in GitHub's web editor.

@NagariaHussain #706 Read
feat other-apps 1 month ago

Add cloud settings embed

Pilot now serves a cloud settings embed for Desk to load cross-origin with isolated styles.

@prathameshkurunkar7 #290 Read
feat other-apps 1 month ago

TOTP powered 2FA

Two-factor authentication now supports time-based one-time passwords (TOTP) with recovery code fallback.

@Aradhya-Tripathi #289 Read
fix other-apps 1 month ago

Address Greptile review findings on the recent PRs

Addresses review findings on BOM secondary allocation guard and related PRs.

@parthgarachh #71 Read
fix other-apps 1 month ago

Let paste/copy target the inline cell editor while editing

Copy/paste and cut operations now correctly target the in-cell editor instead of being hijacked to whole-cell operations.

@AsifMulani1 #363 Read
fix other-apps 1 month ago

Paint link hover card with a literal fill

Link preview hover card now renders opaque instead of transparent on all browsers.

@AsifMulani1 #362 Read
fix other-apps 1 month ago

Keep stock-account openings out of the opening JE under perpetual inventory

Stock account opening balances are now excluded from the opening journal entry under perpetual inventory to prevent validation failures.

@parthgarachh #66 Read
feat other-apps 1 month ago

List configured sites in `frappectl guide`

`frappectl guide` now prints configured site profiles with URLs, descriptions, and default/read-only tags for agent use.

@ankush #54 Read
fix other-apps 1 month ago

Published pages honour author blank lines

Blank lines and single newlines typed in the editor now render on published pages instead of being stripped.

@NagariaHussain #729 Read
fix other-apps 1 month ago

Grant the UI job contents: write so the frontend coverage badge publishes

Frontend coverage badge now publishes correctly with proper GitHub Actions permissions.

@netchampfaris #525 Read
fix other-apps 1 month ago

Seamless reconnects on network issue or stalls

Peer connection recovery now seamlessly reconnects on network stalls without user intervention.

@BreadGenie #364 Read
fix other-apps 1 month ago

Correct S3 presign region, push download status over socket

S3 presigned URLs are now signed in the bucket's real region (detected via `get_bucket_location`) instead of the client's default, fixing PermanentRedirect failures.

@safwansamsudeen #360 Read
fix other-apps 1 month ago

Resumable downloads + async folder-zip build

Fixes large folder zips truncating into corrupt archives and large files restarting on dropped connections by serving from storage with HTTP Range support and background job build.

@safwansamsudeen #359 Read
fix other-apps 1 month ago

Don't send empty api_key to Ollama

Prevents litellm.APIConnectionError when ollama connector is configured without an API key.

@rehanrehman389 #86 Read

Tuesday, July 28

ERPNext 38.9k 9 updates
feat stock-manufacturing 1 month ago

Book Expenses Added To Stock GL entries

Backport to v16 of the develop-branch GL composer for Expenses Added To Stock, enabling proper accounting of costs like freight or insurance bundled into finished goods.

@rohitwaghchaure #57503 Read
fix accounting 1 month ago

Incorrect creation time at cancellation

Creation time was being incorrectly set when cancelling an entry with the same posting datetime, causing data issues.

@ruthrakumar #57396 Read
fix accounting 1 month ago

Align Opportunity status checks with Quotation statuses

Opportunity status checks looked for the obsolete Quotation `Closed` status instead of `Cancelled` and `Expired`, and didn't recognize `Partially Ordered` quotations as ordered. Now treats the right statuses and marks Opportunities Converted as soon as a Sales Order is created against part of a Quotation.

@barredterra #57489 Read
fix stock-manufacturing 1 month ago

Pool batch slot values on every run, not only when negative

Batch slots' value differences were only spread across age slots when consumption had already driven one negative, leaving skewed splits (e.g., 10 units at 0 and 10 at 10 showing 0 and 100 instead of 50 each). Now pools slot values on every run.

@mihir-kandoi #57485 Read
fix stock-manufacturing 1 month ago

Flaky test in exchange rate revaluation

Exchange rate revaluation test was non-deterministic due to time-based ordering; stabilized by using fixed timestamps.

@ruthra-kumar #57484 Read
fix accounting 1 month ago

Release raw-material reservation when closing a subcontracting order

Bin.update_reserved_qty_for_sub_contracting() skipped closed Purchase Orders but not closed Subcontracting Orders, so closing a partially-received SCO kept the raw-material reservation for the unreceived qty. Applied the same status != "Closed" filter to both paths.

@Sudharsanan11 #57463 Read
fix stock-manufacturing 1 month ago

Value batched packed-item returns from the original bundle

Return Delivery Notes / Sales Invoices built via the use_serial_batch_fields path had incorrect bundle valuations because the return bundle's voucher_detail_no stayed the Packed Item instead of remapping to the parent DN/SI Item. Valuation lookup now resolves via the parent_detail_docname when the direct lookup fails.

@Sudharsanan11 #57327 Read
fix stock-manufacturing 1 month ago

Keep manufactured item rate at zero when inputs are free

When a finished item was manufactured from raw materials consumed at zero valuation, _set_incoming_item_rate treated zero cost as missing and fell back to the item's own valuation rate, inflating the finished good's value on every production run.

@Sudharsanan11 #57334 Read
fix accounting 1 month ago

Carry forward communications from opportunity

Quotations created from opportunities now inherit the opportunity's communications (emails, comments).

@diptanilsaha #57507 Read
Frappe 10.7k 11 updates
feat framework 1 month ago

Add support for async options in dropdown menu

Dropdown menu now supports asynchronously-loaded options.

@nikkothari22 #41258 Read
feat framework 1 month ago

Better read-only and impersonation banners

Improved visual design of read-only and impersonation banners on forms.

@nikkothari22 #41264 Read
feat framework 1 month ago

Consolidate view switching to single dropdown

List, kanban, and report views now use a single dropdown menu to select layout, available on mobile too (previously had separate dropdowns).

@nikkothari22 #41261 Read
fix ui-ux 1 month ago

Add order to desktop menu item

Desktop menu items can now have a specified order so logout can be positioned last.

@sokumon #41274 Read
fix framework 1 month ago

Constrain read-only Text Editor field height with scroll

Read-only Text Editor fields now scroll instead of expanding infinitely.

@nikkothari22 #41279 Read
fix framework 1 month ago

Don't show private custom workspaces on the dock

Private custom workspaces were showing on the app dock even though the new information architecture requires workspaces to be scoped under an app.

@sokumon #41255 Read
fix framework 1 month ago

Grid row selection on touch

Touch-based row selection wasn't working on grids due to event handling differences between touch and click.

@nikkothari22 #41252 Read
fix ui-ux 1 month ago

Stop build_index looping forever on an unindexable batch

SQLiteSearch.build_index advanced its pagination cursor only inside `if documents:`, so batches where all documents were rejected (no text-field content) never advanced the cursor and looped forever. Forward-port of #41249 from version-16-hotfix.

@netchampfaris #41284 Read
fix framework 1 month ago

Get_locale_value() crashes when no language is set

get_locale_value() assigned value only when lang was set but always returned it, raising UnboundLocalError when no language was configured (e.g., bench console on sites that never set a language). frappe.sendmail() failed rendering emails because date-format lookup crashed.

@kaulith #41257 Read
fix developer-experience 1 month ago

Drop client-side grant-all rights for Administrator

Reverts the blanket grant of all rights to Administrator at all permlevels on every doctype. Administrator was getting submit/cancel/amend buttons on non-submittable doctypes like Bin, and malformed update_child API requests.

@iamejaaz #41210 Read
fix framework 1 month ago

Validate HTTP method for document calls

Backport enforcing whitelisted methods' declared methods= on document-method routes (/api/v2/document/*/method/* and POST /api/resource/*/method routes), which was previously unenforced despite being enforced on /api/method/* and run_doc_method.

@netchampfaris #41265 Read
HR 8.7k 3 updates
fix hr-payroll 1 month ago

Resolve AttributeError in update_job_applicant_status exception handling

Fixed variable shadowing bug where the Document instance was overriding the string parameter job_applicant, and replaced job_applicant.log_error() with frappe.log_error() in the except block to handle empty/invalid strings.

@pratheep-bit #4996 Read
fix hr-payroll 1 month ago

Format earned leave schedule dates

Earned Leave Schedule dates in Leave Allocation now respect the System Settings date format instead of showing raw ISO dates.

@DanielRadlAMR #4995 Read
fix hr-payroll 1 month ago

Filter employees by company in Employee Leave Balance report

The Employee filter in the report now displays only employees belonging to the selected Company, preventing silent no-results when users pick employees from a different company.

@akhtarmohsin #4992 Read
CRM 3.5k 2 updates
fix crm-sales 1 month ago

Validate contact email/mobile and rework the primary dropdown

Draft states caused failures in contact email/mobile autosave. Consolidated duplicated contact panel logic from Contact.vue and MobileContact.vue into a shared util and reworked the primary dropdown.

@ps173 #2537 Read
fix crm-sales 1 month ago

Keep the Unpublished badge visible on row hover

The Unpublished badge's light-gray variant blended into the row's hover background. Switched to outline variant so it keeps a visible border.

@michellealva #2526 Read
Helpdesk 3.4k 4 updates
feat other-apps 1 month ago

First Ticket tag and tag charts on the dashboard

A "First Ticket" tag is now applied automatically to each requester's first ticket, plus two tag charts on the dashboard to surface patterns.

@RitvikSardana #3621 Read
fix other-apps 1 month ago

Convert link_filters to dict before search_link

Setting **Link Filters** on a Link-to-User field via Customize Form broke the New Ticket page; user_query expected a dict but received a list of lists from Customize Form.

@RitvikSardana #3625 Read
fix other-apps 1 month ago

Keep the last recent activity row out of the bottom fade

The last row in **My Recent Activity** was always rendered faded because the bottom scroll fade was pinned to the card with no notion of scroll position. Added padding to push content above the fade.

@RitvikSardana #3624 Read
fix other-apps 1 month ago

Show chart-specific empty states

All empty charts on the dashboard showed the same generic message; now each chart shows its own message and doesn't render skeleton bars where the chart header should be.

@RitvikSardana #3623 Read
LMS 3.2k 6 updates
fix other-apps 1 month ago

Drop the razorpay dependency

LMS pinned razorpay~=1.4.1 while payments (a required app) pins razorpay~=2.0.0 — disjoint ranges that bench only resolves by luck. Nothing in LMS imports the SDK; payments owns it. Dropped the dependency to stop chasing version ranges.

@raizasafeel #2604 Read
fix other-apps 1 month ago

Count a coupon redemption once per payment that was actually paid

Coupon redemptions were counted wrong (two concurrent redemptions both read the same count, one was lost), and gateway retries picked the wrong Integration Request. Fixed race condition with atomic update and used the correct request for retry.

@raizasafeel #2602 Read
fix other-apps 1 month ago

Resolve private lesson media whose file_url contains _ or %

Uploaded lesson PDFs failed to load (403) for enrolled students when the file name had an underscore or %. The access check escaped _/% in a way the query builder double-escaped, so it matched nothing and denied access. Used bound query to fix escaping.

@raizasafeel #2601 Read
fix other-apps 1 month ago

Seed Google Meet account form on mount

GoogleMeetSettings edit swapped list and form with v-if/v-else, mounting the form fresh on every open with accountID already set. The watcher had no `immediate` option so it never fired; saving also called rename_doc with an empty new_name.

@raizasafeel #2609 Read
fix other-apps 1 month ago

Broken access control

Added server-side authorization checks to get_profile_details (filters privileged roles from students), track_video_watch_duration (requires lesson access), and submit_quiz (requires quiz access).

@raizasafeel #2607 Read
breaking other-apps 1 month ago

Stop razorpay from breaking

Razorpay <2 imports pkg_resources at module level; setuptools 82 dropped it. LMS imported razorpay at module level in a hook that runs on every session, so any bench with setuptools ≥82 returned HTTP 500 for all requests including login and Desk. Bumped razorpay past the broken range and moved the import inside the get_client() call.

@raizasafeel #2603 Read
Insights 1k 1 update
fix other-apps 1 month ago

Incremental sync fails when a source table gains a column

Incremental syncs died at commit with a column count mismatch when the source gained a column since the last import. Backend.insert() now matches columns by name rather than positional order.

@nextchamp-saqib #1259 Read
p Press 563 1 update
feat other-apps 1 month ago

Add playbook to set docker MTU to 1450

Hetzner private networks run at MTU 1450; docker defaults to 1500, causing silent packet drops over the private network. Merges `"mtu": 1450` into /etc/docker/daemon.json and reboots if changed.

@balamurali27 #7063 Read
o Other 15 updates
feat other-apps 1 month ago

Replace centralized host mesh controller with ANCP (Atlas network control protocol)

Introduces `atlas-networkd` daemon using a distributed network protocol (ANCP) instead of a centralized controller for private networking.

@20vikash #123 Read
feat other-apps 1 month ago

Sleepy VMs: idle VMs sleep to free RAM and wake on the first inbound TCP connection

Puts an idle VM to sleep and resumes it on demand via host reboot recovery or — transparently — the first inbound TCP connection. Sleeping VMs keep their disk but release RAM to the host. Opt-in per VM via `sleep_on_idle`.

@the-bokya #126 Read
feat other-apps 1 month ago

Surface sheets in Drive as content files

Sheets are now a Drive content-app; each new Sheet creates a backing Drive File, so sheets show up in — and open from — Drive just like Writer and Slides.

@AsifMulani1 #355 Read
feat other-apps 1 month ago

TDS filing integration

Added TDS (Tax Deducted at Source) filing integration.

@deepeshgarg007 #62 Read
feat other-apps 1 month ago

Access slot props, pass dynamic slots, add components from context menu

Components inside a slot can now access slot scope/props, dynamic slots can be passed, and components can be added from the context menu.

@ruchamahabal #200 Read
feat other-apps 1 month ago

Card-per-question layout for the public form

Splits the single form card into one quiet card per question on the public respondent form, following the Google Forms pattern with hairline borders, 10px radius, generous padding.

@AsifMulani1 #1 Read
feat other-apps 1 month ago

Mobile PWA navigation shell and touch UX

Mobile-only revamp of Mail's chrome with a bottom tab bar (Mail, Screener, Search, Profile) and Compose FAB; desktop unchanged. Tab and FAB step aside in thread view, selection mode, and search.

@krantheman #346 Read
feat other-apps 1 month ago

Admin password reset

Added admin password reset and sessions management UI.

@Aradhya-Tripathi #287 Read
fix other-apps 1 month ago

Match Tally group names case- and whitespace-insensitively

Customer/Supplier classification was keyed on exact, case-sensitive match of Tally group names (e.g., `SUNDRY DEBTORS` vs `Sundry Debtors`), so mismatched groups silently imported parties as plain ledger Accounts instead.

@parthgarachh #65 Read
fix other-apps 1 month ago

Show all day event as all day event

All day events now display as "all day" instead of "12am - 12am".

@BreadGenie #354 Read
fix other-apps 1 month ago

Run invite account creation as Administrator

The invite/request-key endpoint runs as Guest but the setup it triggers (archive mailbox / automation sieve) resolved ownership from the session user, throwing "account does not belong to Guest" and rolling back, then every retry failed with primaryKeyViolation.

@krantheman #356 Read
fix ui-ux 1 month ago

Use semantic tokens instead of tailwind text classes

Replaced old text colors with semantic text-ink tokens in the button component to fix color contrast and accessibility issues.

@siduck #860 Read
fix ui-ux 1 month ago

Preserve caller aria-label; Checkbox: emit model updates once

Button was silently discarding caller-provided aria-label and overwriting it, and Checkbox was emitting model updates multiple times per change.

@netchampfaris #859 Read
fix other-apps 1 month ago

Use updated loan limit for disbursement

A secured term Loan could be submitted without a Maximum Loan Amount; adding it after submission didn't persist correctly and Loan Disbursement calculated available limit as zero, failing disbursement.

@Niraj1412 #1347 Read
fix other-apps 1 month ago

Do not refetch loan application values on already submitted loan

Loan onload always ran the loan_application autofill, even for submitted loans, overwriting fields like monthly repayment amount with old values and blocking updates.

@Nihantra-Patel #1352 Read

Saturday, July 25

ERPNext 38.9k 7 updates
feat accounting 1 month ago

Block sales invoice submit when customer overdue exceeds threshold

Backport of credit limit enforcement: blocks Sales Invoice submit when a customer's overdue amount exceeds configured limit unless the user holds a bypass role.

@Jatin3128 #57438 Read
fix accounting 1 month ago

Map pick list customer to delivery note when no sales order

fix: map pick list customer to delivery note when no sales order

@Pandiyan5273 #57420 Read
fix stock-manufacturing 1 month ago

Enable the 'Include Zero Stock Items' filter by default to show zero-stock items in the Stock Balance report

fix: enable the 'Include Zero Stock Items' filter by default to show zero-stock items in the Stock Balance report

@rohitwaghchaure #57458 Read
fix accounting 1 month ago

Map MT940 per-transaction reference from :61: customer_reference

MT940 import was using the statement-level reference for all rows (making them indistinguishable) instead of the per-transaction reference.

@khushi8112 #57382 Read
fix accounting 1 month ago

Respect user permissions in party dashboard company list

Party dashboards were bypassing user permissions and iterating over all companies, exposing restricted data on forms.

@Pandiyan5273 #57435 Read
fix accounting 1 month ago

Ignore permission while deleting user permission

fix: Ignore permission while deleting user permission

@deepeshgarg007 #57296 Read
breaking accounting 1 month ago

Accept list payload for trans_items in update_child_qty_rate

Frappe's type validation was rejecting legitimate JSON list payloads from clients, breaking the API despite the payload being valid.

@nabinhait #57452 Read
Frappe 10.7k 5 updates
feat ui-ux 1 month ago

Silent autosave status and lighter builder chrome

Print builder autosave is now silent when saved, shows brief "Saving…" only during requests, and sticky red "Save failed" on error; drops "Reset Changes" and one-item section headers.

@iamejaaz #41207 Read
feat ui-ux 1 month ago

Open builder preview in a modal instead of a dock

Print preview now opens as a centered modal over the builder instead of a docked rail; gives preview full width and matches on-demand UX.

@iamejaaz #41209 Read
fix framework 1 month ago

Move standard actions in the top

fix: move standard actions in the top

@sokumon #41219 Read
fix framework 1 month ago

Fix query conditions

fix(db_query): fix query conditions

@AarDG10 #41191 Read
fix framework 1 month ago

Export Link titles in Report View

Report exports were showing link field names instead of titles, mismatching what Report View displays.

@ShrihariMahabal #41213 Read
CRM 3.5k 1 update
fix crm-sales 1 month ago

Breadcrumb preserve query params, PrimaryDropdown Layout, box shadow in email activity card

fix: breadcrumb preserve query params, PrimaryDropdown Layout, box shadow in email activity card

@ps173 #2529 Read
Helpdesk 3.4k 1 update
fix other-apps 1 month ago

Attachment upload feedback + uploads while editing comments

File uploads now show visual feedback with a spinner and disable the send button; uploading while editing comments now works.

@aerodeval #3618 Read
LMS 3.2k 1 update
fix other-apps 1 month ago

Inline pdf.js PDF viewer for iOS Safari + macro fixes

PDFs now render via pdfjs-dist to `` instead of ``, enabling scroll on iOS; adds continuous scroll, zoom, pinch-zoom, and error states.

@raizasafeel #2592 Read
b Builder 2.3k 1 update
fix ui-ux 1 month ago

Use only shorthand properties for margin and padding

Blocks could accumulate conflicting shorthand and per-side margin/padding properties; spacing now uses only shorthand.

@stravo1 #693 Read
p Press 563 8 updates
feat other-apps 1 month ago

Add incident time and confirm noisy neighbours

Investigation now accepts optional `incident_time` for a centered 12-hour window (instead of trailing 24 hours), and confirms noisy neighbor detection.

@balamurali27 #7047 Read
fix other-apps 1 month ago

Explain what makes a frappe version range invalid

Error message for invalid version ranges didn't name the range or explain the cause; now clarifies what makes a range invalid.

@balamurali27 #7045 Read
fix other-apps 1 month ago

Set frappe requirement to >=15.0.0,<17.0.0

Prerelease version bounds were failing validation; corrected to use stable semver ranges.

@balamurali27 #7044 Read
fix other-apps 1 month ago

Reload bench apps page on deploy update

fix(ui): Reload bench apps page on deploy update

@siduck #7034 Read
breaking other-apps 1 month ago

Remove conflict markers from frappe version requirement

Backport merge left unresolved conflict markers in `pyproject.toml`, breaking TOML parsing and making bench unable to read the dependency.

@balamurali27 #7046 Read
fix other-apps 1 month ago

Enforce app-version compatibility on deploy

App compatibility was validated on every save, causing deadlock when a release group had multiple incompatible apps; moved check to deploy time.

@balamurali27 #7014 Read
fix other-apps 1 month ago

Fix branch-change tests broken

Tests were hitting the GitHub API and failing; mocked the `frappe/__init__.py` lookup so tests stay offline.

@balamurali27 #7030 Read
fix other-apps 1 month ago

Set team from site instead of session user

Offsite backup restores were failing because backup remote files were assigned to the wrong team (Administrator's) instead of the site's team.

@balamurali27 #7027 Read
o Other 16 updates
feat other-apps 1 month ago

Add more anonymized telemetry

feat(meet): add more anonymized telemetry

@BreadGenie #340 Read
feat other-apps 1 month ago

Add more frappe models

feat: Add more frappe models

@Aradhya-Tripathi #274 Read
feat other-apps 1 month ago

Google Sheets keyboard shortcuts + fix whole-line select anchor

Adds Shift+Space / Ctrl+Space / Ctrl+Shift+Space for row / column / whole-sheet select, Ctrl+Alt+=/- for insert/delete, and Ctrl+Shift+1…5 for format shortcuts; fixes Shift+Space anchor jumping.

@AsifMulani1 #335 Read
feat other-apps 1 month ago

Homepage list view — header sort, toolbar search, full-width scroll

Sheets homepage list now sorts from column headers (click to sort, click again to flip), toolbar search, and full-width scrolling; replaces separate "Sort by" dropdown.

@AsifMulani1 #344 Read
feat other-apps 1 month ago

Upgrade to frappe-ui v1

Upgraded Frappe Wiki to frappe-ui v1 (beta.25), migrated v1 component APIs, rebuilt editor chrome on frappe-ui atoms, and bumped tiptap to v3.

@NagariaHussain #695 Read
feat other-apps 1 month ago

Integrated Code Editor [Experimental]

Built with Monaco editor and frappe-ui; allows editing code directly in Pilot.

@tanmoysrt #277 Read
fix other-apps 1 month ago

Align CI and tests

CI and test base classes were misaligned with the version-2-beta branch; added correct Frappe/ERPNext versions and changed test cases to use FrappeTestCase.

@Nihantra-Patel #1343 Read
fix other-apps 1 month ago

Hide comment action if we are creating a comment

fix(writer): hide comment action if we are creating a comment

@BreadGenie #343 Read
fix other-apps 1 month ago

Update collaboration avatars in real time

Document loader wasn't shown on navbar due to missing reactivity; added `useCollaborationUsers` ref to track awareness users.

@BreadGenie #341 Read
fix other-apps 1 month ago

Include formula-cell values in selection Sum/Avg

Selection stats were miscounting formulas by reading raw cell content instead of computed values.

@AsifMulani1 #342 Read
fix other-apps 1 month ago

Handle errors when offline or server unreachable

fix: handle errors when offline or server unreachable

@nikkothari22 #80 Read
fix other-apps 1 month ago

Pass is_private as false correctly

fix(file): pass is_private as false correctly

@nikkothari22 #79 Read
fix other-apps 1 month ago

Paste without a priming click + refresh formula bar on paste

Paste did nothing unless the grid was focused, and the formula bar showed stale values right after a paste operation.

@AsifMulani1 #339 Read
breaking other-apps 1 month ago

Remove invalid doc.guardian reference breaking guardian search functionality

Guardian search was filtering with a nonexistent field, blocking users from linking Guardians to Students via the Relations tab.

@neha-t-swayalgo #468 Read
fix other-apps 1 month ago

Preserve repayment_type before building GL entries on repost

Loan Repayment Repost was rebuilding GL entries with the wrong account and voucher_subtype when `before_validate` hooks changed the repayment type.

@Nihantra-Patel #1340 Read
fix other-apps 1 month ago

Clear frappe cache around app install/uninstall

Frappe's install-app was reading stale module caches left by earlier calls, silently skipping doctype sync for newly installed apps.

@tanmoysrt #279 Read

Friday, July 24

ERPNext 38.9k 18 updates
feat accounting 2 months ago

Warn when a draft linked document already exists

When creating a follow-up document (e.g. Delivery Note from Sales Order), confirmation dialog warns if a draft linked to the same source already exists with clickable links.

@nabinhait #57299 Read
feat accounting 2 months ago

Make Shipping Rule Cost Center optional with company default fallback

Cost Center on Shipping Rule is now optional; falls back to company default, avoiding P&L account validation errors for income accounts.

@Jatin3128 #57355 Read
feat accounting 2 months ago

Proforma Invoice against Sales Order

New submittable, non-accounting `Proforma Invoice` doctype (posts no GL/stock) for advance payments, created only from Sales Order with per-line Quantity/Amount basis.

@nabinhait #57263 Read
fix accounting 2 months ago

Log exception instead of swallowing in notify_errors

Error logging now reports exceptions instead of silently swallowing them.

@mihir-kandoi #57384 Read
fix accounting 2 months ago

Restore Save button on reverse journal entry

Save button was missing from reverse journal entry form.

@krishna-254 #57379 Read
fix accounting 2 months ago

Incorrect creation time at the time cancelling an entry

Document creation time was incorrectly set when cancelling entries with same posting datetime.

@rohitwaghchaure #57380 Read
fix stock-manufacturing 2 months ago

Drop translation marking from default warehouse names

Warehouse names were marked for translation at creation but never actually display translated (docname carries untranslated company abbr); removed marking.

@mihir-kandoi #57409 Read
fix stock-manufacturing 2 months ago

Respect selected BOM when creating work order for variant item

Non-default BOM selection was silently reset to the variant's default BOM; now only substitutes for template BOMs.

@Shllokkk #57358 Read
fix accounting 2 months ago

Production Plan raw material qty calculation and bin reservation

When same raw material appears in multiple Production Plan rows, safety stock and MOQ were added per-row instead of once; now reserves it as a floor.

@mihir-kandoi #57399 Read
fix accounting 2 months ago

Map pick list customer to delivery note when no sales order

Creating a Delivery Note from a Pick List without a linked Sales Order left the Customer blank; now falls back to the Pick List's own Customer.

@Pandiyan5273 #57412 Read
fix accounting 2 months ago

Guard against missing is_your_company_address custom field on Address

Controller reads `is_your_company_address` as a bare attribute, crashing with AttributeError if the optional custom field is missing (e.g. after interrupted migration).

@Pandiyan5273 #57400 Read
fix stock-manufacturing 2 months ago

Rebalance batch slot values at the pooled rate when driven negative

Batch valuation showed small negative bucket values when consumption drove a slot negative; now spreads batch pool value across slots proportional to qty.

@mihir-kandoi #57403 Read
breaking stock-manufacturing 2 months ago

Create default warehouses with untranslated names

Warehouse names were translated at creation, breaking opening-stock fallback lookups from sessions in different languages.

@mihir-kandoi #57392 Read
fix accounting 2 months ago

Do not translate default record lookup keys

Company creation was looking up Department root via `_(\"All Departments\")`, missing it on non-English sites and corrupting the tree.

@mihir-kandoi #57389 Read
fix accounting 2 months ago

Do not translate root Item Group lookup key

Non-English setups stored the root under a translated name, making new groups save with blank parent and become uneditable second roots; now uses `get_root_of`.

@mihir-kandoi #57390 Read
breaking accounting 2 months ago

Accept dict target_doc in mapper endpoints

With native JSON request bodies, `map_docs` forwards `target_doc` as a dict, breaking all "Get Items From" buttons; now accepts dict/str/Document.

@mihir-kandoi #57388 Read
fix stock-manufacturing 2 months ago

TypeError in get_batches_by_oldest for mixed batch expiry

Fixes crash when a warehouse has both dated and non-expiring batches; expiry_date is nullable but sort was comparing directly.

@Pandiyan5273 #57413 Read
fix accounting 2 months ago

Gate company restriction fields behind permlevel 1

Restricts `restrict_to_companies` and `allowed_companies` fields to master-manager role (permlevel 1) instead of all write-access users on Item, Customer, and Supplier masters.

@mihir-kandoi #57383 Read
Frappe 10.7k 13 updates
feat ui-ux 2 months ago

Full screen toggle for the builder preview

Print builder preview can now toggle full-screen; same iframe grows to viewport with Esc or shrink button to restore dock.

@iamejaaz #41206 Read
fix framework 2 months ago

Update private workspaces on user rename

When a user's email changes, their private Workspace documents are now renamed and updated.

@KerollesFathy #39007 Read
fix framework 2 months ago

Re-hash vue-style bundle filenames after inlining CSS

CSS-only edits now mint new bundle URLs instead of shipping under browser-cached ones.

@iamejaaz #41204 Read
fix framework 2 months ago

Close the bordered child-table bottom and drop the doubled header line

Fixed child-table styling: bordered tables now close cleanly without doubled header line.

@iamejaaz #41202 Read
fix framework 2 months ago

Missing doctype name in breadcrumbs

Doctype name was missing from breadcrumb navigation.

@iamejaaz #41115 Read
fix framework 2 months ago

Notifications with the dock

Notification panel now shows up correctly with the dock.

@sokumon #41180 Read
fix framework 2 months ago

Remove hover effect from column/table resize handle

Column resize handle no longer darkens on hover, reducing visual noise.

@SandraFrappe #40983 Read
fix framework 2 months ago

Pass parent doctype when fetching child table link values

Fetching a Link field from a child-table row was failing permission check because parent doctype wasn't passed to `get_value`.

@kaulith #41153 Read
fix framework 2 months ago

Unbuffered sync from mariadb to duckdb

Batches rows into Apache Arrow columnar format for zero-copy DuckDB ingestion.

@ruthra-kumar #41150 Read
fix framework 2 months ago

Stable memory consumption while syncing

Large GL syncs (1.5M rows) to DuckDB were accumulating memory; now drops consumed objects.

@ruthra-kumar #41196 Read
fix framework 2 months ago

Get_list_context called twice when rendering a portal list

Portal list pages were calling the doctype's `get_list_context` hook twice, duplicating queries and sidebar work.

@kaulith #41025 Read
fix framework 2 months ago

Use a re-entry flag instead of freezing during mapped doc guard runs

Freeze overlay at z-index 2000 was covering confirmation dialogs from guards (at z-index 1140), blocking user interaction; replaced with re-entry flag.

@nabinhait #41200 Read
fix framework 2 months ago

Accept dict target_doc in get_mapped_doc

Companion fix for native JSON request bodies; dict targets were crashing at permission check.

@mihir-kandoi #41190 Read
CRM 3.5k 1 update
fix crm-sales 2 months ago

Load a single prosemirror-model in production builds

Production builds were loading multiple instances of prosemirror-model; now unified.

@ps173 #2524 Read
Helpdesk 3.4k 1 update
fix other-apps 2 months ago

Set default portal settings for existing sites

Fresh Helpdesk installs set `default_role` and `default_portal_home` but existing sites never received them; now applies via a patch.

@RitvikSardana #3610 Read
LMS 3.2k 1 update
feat other-apps 2 months ago

Raven membership integration

Raven integration for LMS: registers rule types (All Enrolled Students, Students of Courses/Batches, Staff), evaluator, and Raven sidebar panel.

@raizasafeel #2591 Read
p Press 563 3 updates
fix other-apps 2 months ago

Replace swap metrics with OOM for server health check

Server health monitoring now tracks OOM instead of swap metrics.

@AyshaHakeem #7024 Read
fix other-apps 2 months ago

Raven channel name for alerting server health

Channel name now follows slug convention: "frappe-cloud-server-alerts".

@AyshaHakeem #7028 Read
fix other-apps 2 months ago

Render err html with err component in addsites dialog

Error HTML in the add-sites dialog wasn't rendering properly.

@siduck #7031 Read
o Other 34 updates
feat ui-ux 2 months ago

Navbar refresh, fix blank Breadcrumbs page, and speed up dev cold load

Docs site polish: full-width navbar, sidebar styling, centered search, anchor link fixes, IntersectionObserver for active headings.

@netchampfaris #852 Read
feat other-apps 2 months ago

Actually unify sites and assets

Unified list view for sites and VMs removes confusion about where site creation happens (Pilot, not Central).

@prathameshkurunkar7 #188 Read
feat other-apps 2 months ago

Bench new-app command

New CLI command to create a Frappe app.

@tanmoysrt #258 Read
feat other-apps 2 months ago

Responsive sidebar

Mobile-responsive sidebar using frappe-ui desktop/mobile shell components and bottom-sheet for mobile.

@siduck #257 Read
feat other-apps 2 months ago

Meet links on existing events, richer meet row

Meet links can now be added to existing events via new `create_meet_link` endpoint; event updates now preserve existing links.

@krantheman #320 Read
feat other-apps 2 months ago

Meet stats for nerds

Developer stats panel for Meet showing detailed metrics.

@BreadGenie #321 Read
feat other-apps 2 months ago

Store Entry browser to browse Tantivy search indexes

Read-only Store Entry browser now extends to search indexes alongside Data/Blob stores using schema-agnostic `SearchIndexBrowser`.

@s-aga-r #317 Read
feat other-apps 2 months ago

Sheets homepage filters, recency groups, and server-side pagination

Sheets homepage upgraded: ownership tabs (All/My/Shared), sort control (Modified/Name/Owner), recency groups (Today/Previous Days/Earlier), server-side pagination.

@AsifMulani1 #319 Read
feat other-apps 2 months ago

Auto-link URLs and link preview hover card

URLs (https/www/common TLDs) auto-detect and auto-link in cells; hover card previews with quick actions.

@AsifMulani1 #322 Read
feat other-apps 2 months ago

Multi-line cells via Cmd+Enter with auto-growing rows

Sheets now support Google-Sheets-style multi-line cells; Cmd/Ctrl/Alt+Enter inserts newlines, rows auto-grow to fit.

@AsifMulani1 #323 Read
feat other-apps 2 months ago

Server overview metrics

Pilot integration for server overview metrics on the Central dashboard.

@prathameshkurunkar7 #190 Read
feat other-apps 2 months ago

Add Credentials settings tab to manage JMAP connection

New Credentials tab under Mail Settings lets users view/update JMAP connection fields (Username, App Password, Server URL); Password is never prefilled.

@s-aga-r #336 Read
feat ai 2 months ago

LLM integration

New LLM integration in settings with task debugging: setup in settings, explain/query errors with full context, stream output via SSE.

@Aradhya-Tripathi #259 Read
feat other-apps 2 months ago

Make a bench fully operable without root after install

Privileged operations (nginx, certbot, supervisor, modsecurity) now run once in root installer pass or through scoped sudoers; bench user no longer needs passwordless sudo.

@tanmoysrt #268 Read
feat other-apps 2 months ago

Versioned releases and in-app self-update

Moved from git-tracking to versioned releases with in-app updates; GitHub releases include prebuilt frontend, `install.sh` pulls latest, Settings shows version with check-for-updates.

@tanmoysrt #260 Read
fix other-apps 2 months ago

Misc fixes

Slide editor improvements.

@GursheenK #337 Read
fix other-apps 2 months ago

Render SVG at zoomed size

Server map SVG now renders at proper zoomed size.

@prathameshkurunkar7 #189 Read
fix other-apps 2 months ago

Active highlight for sidebar item

Sidebar active state highlighting now works correctly.

@siduck #271 Read
fix other-apps 2 months ago

Misc sidebar issues

Sidebar UI polish: fixed switch label colors and migration button spacing.

@siduck #261 Read
fix other-apps 2 months ago

Screener polish, Screener settings tab, iOS install banner

Mail screener UI polish: full-width explainer slab, Screener settings tab, iOS install banner as fixed bottom sheet.

@krantheman #333 Read
fix other-apps 2 months ago

Enable settings shortcuts

Settings shortcut (Meta+Shift+,) now works across all apps.

@BreadGenie #327 Read
fix other-apps 2 months ago

Refine device audio controls

Polish to audio control UI.

@BreadGenie #326 Read
fix other-apps 2 months ago

Ignore paused producers in stall detection

Meet stall detection was flagging paused video/audio producers as stalled.

@BreadGenie #325 Read
fix other-apps 2 months ago

Anchor release tarball excludes to repo root

`tar --exclude` was matching patterns globally (e.g. `--exclude=benches` also matched `admin/backend/api/v1/benches/`), shipping incomplete tarballs.

@tanmoysrt #262 Read
fix other-apps 2 months ago

Install Redis system-wide from the installer

Every bench runs its own Redis, but the installer never installed it system-wide; `RedisManager.install()` tried to sudo-install at bench-init, failing without passwordless sudo.

@tanmoysrt #266 Read
fix other-apps 2 months ago

Enable lingering in the root pass, verify it in the bench-user pass

Follow-up fix: moved lingering enable to root installer pass (where it belongs) and added verification in bench-user pass.

@tanmoysrt #265 Read
fix other-apps 2 months ago

Enable systemd lingering for the bench user at install time

Bench services run as systemd user units, but lingering was only enabled after MariaDB provisioning (the first `systemctl --user` caller), causing install to crash.

@tanmoysrt #264 Read
fix other-apps 2 months ago

Skip frontend Node deps on released installs

Released installs were pulling `node_modules` for the admin frontend despite never compiling it; now gates on `is_dev_install`.

@tanmoysrt #270 Read
fix other-apps 2 months ago

Serve bundled admin UI on released installs instead of rebuilding

Released installs were rebuilding the admin UI on every `bench init`, even though the tarball ships it prebuilt; now decides by version flag.

@tanmoysrt #269 Read
fix other-apps 2 months ago

Show real sheet owner in Share dialog instead of current viewer

Shared sheet's Share dialog mislabeled the real owner as yourself; `get_sheet` never returned `owner` field.

@AsifMulani1 #329 Read
fix other-apps 2 months ago

Re-baseline undo history after load so insert-column undo doesn't blank the sheet

Inserting a column and pressing Undo blanked the grid; history baseline was initialized before sheet data loaded, capturing empty state.

@AsifMulani1 #328 Read
fix other-apps 2 months ago

Keep renamed sheet tab in place instead of jumping to the end

Renaming a sheet tab moved it to the last position; now preserves position by restructuring the sheets object carefully.

@AsifMulani1 #330 Read
fix other-apps 2 months ago

Import context menu in grid view

Missing context-menu import in Drive grid view prevented it from opening.

@BreadGenie #332 Read
fix other-apps 2 months ago

False-positive page conflict error due to stale modified timestamp on resource/variable CRUD

Resource and variable CRUD was triggering false-positive page-conflict errors.

@ruchamahabal #203 Read

Thursday, July 23

ERPNext 38.9k 5 updates
feat accounting 2 months ago

Made territory field multi select

Territory field on accounts receivable reports now accepts multiple selections.

@Jatin3128 #57322 Read
fix stock-manufacturing 2 months ago

Get reserved batch qty precision from settings (v16)

V16 backport of reserved batch qty precision fix.

@mihir-kandoi #57354 Read
fix stock-manufacturing 2 months ago

Get reserved batch qty precision from settings

Reserved batch comparison now respects field precision instead of hardcoding 6 decimal places.

@mihir-kandoi #57353 Read
fix accounting 2 months ago

Seed cancelled voucher replay from before its posting datetime (v15)

Cancelled voucher replay now uses the correct previous balance, preventing double-counting when SLEs share the same posting datetime.

@mihir-kandoi #57347 Read
fix accounting 2 months ago

Enforce company restrictions at transaction level

Masters restricted via Restrict to Companies now validate on transaction save, preventing items/customers/suppliers from being used in unauthorized company transactions.

@mihir-kandoi #57352 Read
Frappe 10.7k 10 updates
fix developer-experience 2 months ago

Disable Werkzeug debugger

Development server no longer exposes Werkzeug interactive debugger.

@ankush #41149 Read
fix framework 2 months ago

Remove s3/gh code assets fetching logic

Removed unused S3/GitHub code asset fetching that was causing 1-2s build delay.

@ankush #41166 Read
feat framework 2 months ago

Add guard hooks to open_mapped_doc

Adds sanctioned extension point with `add_mapped_doc_guard()` and `should_open_mapped_doc()` to intercept before opening mapped documents.

@nabinhait #41079 Read
fix ui-ux 2 months ago

Duplicate title in list view settings dialog

Removed duplicate title in list view settings dialog.

@kaulith #41102 Read
fix ui-ux 2 months ago

Detach duration picker to avoid css issue

Duration picker now renders detached to avoid CSS stacking context issues.

@Bowrna #41109 Read
fix ui-ux 2 months ago

Preview in print format builder for cancelled documents

When print format settings disable printing cancelled/draft documents, those documents no longer appear in the preview filter.

@nishkagosalia #41161 Read
fix framework 2 months ago

Awesombar should up only once

Awesomebar modal no longer renders twice.

@sokumon #41172 Read
fix framework 2 months ago

Handle orphan doctypes doctypes

Orphaned doctypes no longer cause errors during sync operations.

@sokumon #41137 Read
fix framework 2 months ago

Store OAuth state server-side instead

Google OAuth hardening with server-side state storage instead of JSON encoding.

@AarDG10 #41076 Read
fix framework 2 months ago

Harden OAuth login

Replaces JSON-encoded state parameter with server-side cache and random single-use tokens to prevent OAuth state injection attacks.

@AarDG10 #40962 Read
HR 8.7k 1 update
feat hr-payroll 2 months ago

Add Contract link in Employee Connections section

Contract doctype now appears in Employee connections dashboard.

@akhtarmohsin #4984 Read
Helpdesk 3.4k 4 updates
feat other-apps 2 months ago

Display ticket priority as icon and level

Replaces arbitrary `integer_value` on HD Ticket Priority with purposeful `level` field (Urgent/High/Medium/Low) and renders as icon + name.

@RitvikSardana #3604 Read
feat other-apps 2 months ago

Rtl support

RTL support backport with physical-to-logical Tailwind utilities and directional icon rotations.

@aerodeval #3605 Read
feat other-apps 2 months ago

Recent Activity card on Home dashboard

Agents now see a Recent Activity card on home showing recently-acted tickets with action types (Replied, Commented, etc) and clickable rows.

@RitvikSardana #3607 Read
fix other-apps 2 months ago

Unable to remove attachment

Removed `.self` event modifier from attachment removal handler so clicks on nested SVG paths are captured correctly.

@RitvikSardana #3608 Read
b Builder 2.3k 4 updates
feat ui-ux 2 months ago

Load real italic faces through the ital axis

Google Fonts loader now requests italic axis alongside weight, so italic text renders with real italic faces instead of browser-synthesised slant.

@surajshetty3416 #682 Read
feat ui-ux 2 months ago

Align border control with spacing split-mode inputs

Border control now supports split-mode inputs (top/right/bottom/left) matching spacing and border radius layout.

@SmrutiSawant #686 Read
feat ui-ux 2 months ago

Invite users to Builder

Site members can now be invited to Builder by email without going through Desk; invitees get Website Manager role on accepting.

@surajshetty3416 #688 Read
feat ui-ux 2 months ago

Inform users when the site is in read-only mode

Builder now shows a message when the site enters read-only maintenance mode instead of silently failing saves.

@surajshetty3416 #687 Read
o Other 22 updates
feat other-apps 2 months ago

Add greptile rules

feat: Add greptile rules

@tanmoysrt #253 Read
feat other-apps 2 months ago

Default screening on only for personal accounts

Email screening now defaults to off; only personal accounts get it on by default, shared/delegated stay off.

@s-aga-r #310 Read
feat other-apps 2 months ago

Forward Deployment

Adds forward deployment feature to Pilot.

@tanmoysrt #249 Read
feat other-apps 2 months ago

Enable hot reload by default on dev benches

Dev benches now hot-reload both Python and JavaScript by default without explicit bench.toml settings.

@Aradhya-Tripathi #250 Read
feat other-apps 2 months ago

Slicers — floating value-filter controls

Draggable in-sheet panels that filter by column values via checklist, reusing the existing sortFilter engine.

@AsifMulani1 #256 Read
feat other-apps 2 months ago

Recoverable trash for deleted sheets

Soft-deletes sheets to trash instead of hard-deleting; 30-day retention with recovery like Google Drive/Figma.

@AsifMulani1 #204 Read
feat ai 2 months ago

Complete llm hosting

Completes LLM hosting service with console activation, API key issuance, and per-site enable via Pilot.

@prathameshkurunkar7 #186 Read
feat other-apps 2 months ago

Keep forwarded emails in the same thread

New per-account setting to add `In-Reply-To` headers to forwarded emails so they thread with originals.

@s-aga-r #316 Read
feat other-apps 2 months ago

Add basic DB analyzer support

Basic database analyzer support with lock wait timeouts, active connections, and process list tasks.

@Aradhya-Tripathi #254 Read
feat other-apps 2 months ago

Databse Insights

Adds database insights with lock wait timeouts, active connection counts, binlog purge information, and process list.

@tanmoysrt #255 Read
fix other-apps 2 months ago

Name the bench in the wizard's finish hints

Setup wizard now names the bench in finish commands when multiple benches exist.

@AryamanSharma14 #245 Read
fix other-apps 2 months ago

Stop tooltip clip

Tooltips no longer clip.

@Aradhya-Tripathi #248 Read
fix other-apps 2 months ago

Install app regressions

Fixes installation regressions.

@Aradhya-Tripathi #252 Read
fix ui-ux 2 months ago

Use alpha gray for focus and open item backgrounds

Menu background no longer shifts when a submenu opens; focused and open states now both use alpha tokens.

@stravo1 #850 Read
fix other-apps 2 months ago

Properties panel stealing focus from text editor

Properties panel writes no longer steal focus; color picker can be dragged, text highlighting persists, and arrow keys work in numeric inputs.

@GursheenK #313 Read
fix other-apps 2 months ago

Stack avatar group to the right

Avatar group now stacks to the right for better layout.

@BreadGenie #312 Read
fix other-apps 2 months ago

Allow moving a block inside a slot and deleting a slot from layers panel

Layers panel now supports moving blocks into slots and deleting slots, helpful when the UI drop target is too small.

@ruchamahabal #201 Read
fix other-apps 2 months ago

Fix notifications empty state alignment

Notifications empty state now aligns with tab buttons via responsive left margins.

@netchampfaris #520 Read
fix other-apps 2 months ago

Preserve tree expand/collapse state on column freeze

Tree expansion state is now retained when freezing/unfreezing columns.

@Shllokkk #238 Read
fix other-apps 2 months ago

Punctuation jumping when editing text elements

Enabled contextual alternates on ProseMirror editor and fixed text run shaping to prevent punctuation from jumping vertically during editing.

@GursheenK #315 Read
fix ui-ux 2 months ago

Mention dropdown stays dead after typing a name with no match

Mention suggestions dropdown now re-opens after typing a non-matching query and deleting back to a matching prefix; was failing due to conditional root element rendering detaching popover content.

@kaulith #845 Read
fix other-apps 2 months ago

Don't save -> write page on load

Multiple `setPage` calls during page load were triggering unintended saves; now gates secondary setups behind a completion check.

@ruchamahabal #202 Read

Wednesday, July 22

ERPNext 38.9k 6 updates
fix accounting 2 months ago

Ensure payments app installed on the site in payment_app_import_guard

Prevents errors when payment operations run before the payments app is installed.

@diptanilsaha #57342 Read
fix accounting 2 months ago

Sync process loss percentage when FG qty changes

Manufacturing rework now re-derives stale process loss percentage when finished goods qty changes.

@Shllokkk #57063 Read
fix accounting 2 months ago

Show transaction currency symbol in Payment Request schedule dialog and reference table

Multi-currency Payment Requests were showing company currency symbol instead of transaction currency.

@Henil666 #57050 Read
breaking stock-manufacturing 2 months ago

Read serial and batch flags from Item in Stock Balance's SLE query

Stock Balance query was missing `has_batch_no` and reading `has_serial_no` from wrong column, breaking batch/serial consumption matching.

@mihir-kandoi #57326 Read
fix stock-manufacturing 2 months ago

Rescale stock ageing FIFO slot values on stock reconciliation

Stock Ageing showed negative bucket values when revaluing existing stock; each slot's value is now re-derived as qty × valuation_rate.

@mihir-kandoi #57316 Read
fix accounting 2 months ago

Apply default accounting dimensions reliably on new documents

Accounting dimensions weren't populated on new Sales Orders due to timing race with async fetch; now applied via callback.

@khushi8112 #57309 Read
Frappe 10.7k 28 updates
feat framework 2 months ago

QUERY HTTP method (RFC 10008)

Frappe API now supports RFC 10008 QUERY HTTP method for GET-like transaction semantics with POST-like body handling.

@ankush #41135 Read
feat ui-ux 2 months ago

Store builder snippets in a DocType

Print Format snippets moved from localStorage to a DocType, making them exportable and shareable across sites/devices.

@iamejaaz #41086 Read
feat framework 2 months ago

Web Form: add request-key access for one-time links

Web forms can now be shared via one-time private links with pre-filled context, enabling secure workflows for non-users.

@ankush #39194 Read
feat framework 2 months ago

Resend user invitation

API added for resending user invitations.

@ankush #38827 Read
feat framework 2 months ago

Add print option in form menu on mobile

Print action now appears in form menu on mobile devices for easier access.

@kaulith #41042 Read
fix framework 2 months ago

Rename hook to add_app_to_dock

Hook renamed for consistency.

@sokumon #41105 Read
fix framework 2 months ago

Rename to add_to_workspace_dock

Hook renamed for semantic clarity.

@sokumon #41106 Read
fix framework 2 months ago

Collapse interaction for dock

Workspace dock collapse interaction is now working.

@sokumon #41119 Read
fix framework 2 months ago

Multiple changes in duckdb sync

DuckDB sync now uses db_port from frappe.conf, shows filenames, ignores links on cancel, and doesn't set primary key.

@ankush #40929 Read
fix framework 2 months ago

Give datatable a definite height on mobile

Query reports on mobile now render with proper datatable height so HyperList virtual scrolling works.

@Jatin3128 #40441 Read
fix framework 2 months ago

Add ignore_permission param to remove_user_permission util

User permission removal now accepts ignore_permission parameter.

@deepeshgarg007 #41073 Read
fix framework 2 months ago

Rename workspace missing icon in db

Workspace icon naming is corrected in database.

@Bowrna #41098 Read
fix framework 2 months ago

Make the create new button subtle

Create new button styling is now more subtle.

@sokumon #41113 Read
fix framework 2 months ago

Make shell selection module first

Sidebar selection is now module-based instead of role-based.

@sokumon #41114 Read
fix framework 2 months ago

Check image before trying to load in print

Print formats now skip empty image attachments instead of attempting to load them.

@krishna-254 #40928 Read
fix framework 2 months ago

Restore compact email button size

Email button sizing regression from spacing redesign is reverted while keeping dark colors.

@iamejaaz #41132 Read
fix ui-ux 2 months ago

Don't flag builder blocks as missing fields in the outline

Builder-only fieldtypes (Repeater, Spacer, Divider) no longer wrongly report as missing fields.

@iamejaaz #41108 Read
fix framework 2 months ago

Respect select field ordering

System console output columns are no longer forced to sorted order.

@ankush #41123 Read
fix framework 2 months ago

Show a session expired message and redirect to login instead of "Method Not Allowed"

Expired sessions now show a clear message and redirect to login instead of cryptic "Method Not Allowed" errors.

@Jatin3128 #40978 Read
fix ui-ux 2 months ago

List view filter on child table link field with ignore user permissions

Filtering by child-table Link fields with Ignore User Permissions no longer fails validation.

@kaulith #41027 Read
fix framework 2 months ago

Dock the preview, move print settings to a dialog, section radius

Print Format Builder preview now docks beside the canvas with live refresh and improved print settings UI.

@iamejaaz #41129 Read
fix framework 2 months ago

Fix pytz to filter out deprecated timezones

Timezone API now excludes deprecated entries like Asia/Calcutta using pytz instead of zoneinfo.

@AarDG10 #38751 Read
fix framework 2 months ago

Broken spacing in email templates

Redesigned email containers with proper card layout, padding, and typography.

@iamejaaz #41026 Read
fix framework 2 months ago

Persist allow_bulk_edit for custom table fields

Allow Bulk Edit checkbox was auto-unchecking on save for custom fields; added missing column to Custom Field doctype.

@ankush #39928 Read
fix ui-ux 2 months ago

Empty state text for list views

Fixed button styling and simplified empty state messaging in list views.

@nikkothari22 #41138 Read
fix framework 2 months ago

Connected app: add permission check & sanitize redirects

Prevents redirect injection and unauthorized app flows.

@ankush #41065 Read
fix framework 2 months ago

Add permission checks to prepared_report & query_report

Hardens report access by adding permission validation to prevent unauthorized access.

@AarDG10 #41095 Read
fix framework 2 months ago

Redact email message after it is sent

Sensitive content in welcome and password reset emails is now redacted from the Email Queue after successful delivery, preventing password setup links from sitting in the database.

@gajjug004 #40925 Read
HR 8.7k 7 updates
feat hr-payroll 2 months ago

Filter system users in department approver tables

Department approver fields now filter to show only System Users, preventing Website Users from being selected.

@akhtarmohsin #4971 Read
fix hr-payroll 2 months ago

Doctype settings map

Standardizes doctype settings metadata across HRMS.

@deepeshgarg007 #4945 Read
fix hr-payroll 2 months ago

Skip expire_allocation for already-cancelled Leave Allocations

Leave expiry no longer processes cancelled allocations.

@pratheep-bit #4969 Read
fix hr-payroll 2 months ago

Exclude cancelled Vehicle Log records from service expense report

Service expense totals no longer inflate from cancelled vehicle logs.

@pratheep-bit #4966 Read
fix hr-payroll 2 months ago

Exclude cancelled Attendance records from employee timeline

Employee dashboard timeline now filters out cancelled attendance entries.

@pratheep-bit #4967 Read
fix hr-payroll 2 months ago

Exclude disabled users from approver list

Disabled users no longer appear in leave, expense, and shift approval searches.

@pratheep-bit #4943 Read
fix hr-payroll 2 months ago

Correct salary slip naming when created via data import

Data Import was generating wrong salary slip names (e.g., `Sal Slip/None/00001`) because default_series read unset employee field; now lazily evaluated.

@akhtarmohsin #4980 Read
CRM 3.5k 3 updates
fix crm-sales 2 months ago

Allow manual product sync regardless of bidirectional toggle

Manual product sync is now always available independent of bidirectional setting.

@shahzeelahmed #2512 Read
fix crm-sales 2 months ago

Lead/deal report 500s when a child-table column is selected

Permission conditions now properly qualify column names to avoid ambiguity when child tables join.

@kaulith #2516 Read
fix crm-sales 2 months ago

Upgrade frappe-ui to beta.24 and resolve UI regressions

Button icon handling, list controls, text inputs, and settings pages fixed after frappe-ui upgrade.

@ps173 #2510 Read
Insights 1k 1 update
fix other-apps 2 months ago

Respect Week Starts On in timespan filters

Week filter boundaries now use Insights Settings week_starts_on instead of System Settings, ensuring consistent week grouping.

@nextchamp-saqib #1252 Read
p Press 563 9 updates
feat other-apps 2 months ago

Add playbook to update ProxySQL on proxies

Playbook added to upgrade ProxySQL from 2.3.2 to 3.0.9 across all proxies with atomic backup and rollback.

@balamurali27 #7003 Read
feat other-apps 2 months ago

Allow more actions on inactive sites

Inactive sites now support reinstall, restore, migrate, and update operations; update_without_backup now matches schedule_update allowed states.

@balamurali27 #7005 Read
fix other-apps 2 months ago

Ignore failed-over proxies in wildcard skip check

Wildcard DNS check no longer counts failed-over proxies as active, preventing per-site record misplacement.

@balamurali27 #7002 Read
fix other-apps 2 months ago

Make partner lead page a lil responsive

Partner lead page now renders functional layouts on mobile.

@siduck #7009 Read
fix other-apps 2 months ago

Improve app-mismatch error when moving a site

App mismatch errors now bold offending app names and link to documentation.

@balamurali27 #7008 Read
fix other-apps 2 months ago

Branch change for framework

Framework branch changes are now allowed if major version matches the release group.

@Aradhya-Tripathi #7015 Read
fix other-apps 2 months ago

Determine post-login redirect route entirely in backend

Login flow now determines redirect route server-side instead of trusting frontend logic.

@siduck #6998 Read
fix other-apps 2 months ago

Send already-logged-in product signup through quickstart

Logged-in users completing product signup are now routed through quickstart flow.

@siduck #7020 Read
fix other-apps 2 months ago

Continue to existing trial site btn instead of new site

Quickstart now correctly shows "Continue" for users with existing trial sites instead of "Create".

@siduck #7022 Read
o Other 29 updates
feat other-apps 2 months ago

Add read-only SQL query command

CLI tool now includes read-only SQL query command with interactive table results and piped/JSON output support.

@ankush #51 Read
feat other-apps 2 months ago

Slugify server subdomains

Server subdomains are now automatically slugified and polished UI added for new server page.

@prathameshkurunkar7 #185 Read
feat other-apps 2 months ago

Add missing indexes

Performance indexes added for Invoice, Payment Attempt, Usage Rollup, Subscription, and Credit Ledger Entry queries.

@saurabh6790 #182 Read
feat other-apps 2 months ago

Unified assets list view

Servers and sites now unified in single console map + list view, allowing single-site users to find their site and multi-site owners to see everything at once.

@prathameshkurunkar7 #180 Read
feat other-apps 2 months ago

Rollback imports on failure

JMAP importers (Mail, Calendar, Exchange) now stage imports atomically; failure at any point rolls back the entire batch.

@s-aga-r #260 Read
feat other-apps 2 months ago

Custom event invitation emails with RSVP links

Calendar now sends custom invitation emails with HTTP RSVP links, with configurable Mail Settings toggle.

@s-aga-r #257 Read
feat other-apps 2 months ago

Add Sentry error tracking

Error tracking now integrated with Sentry.

@BreadGenie #299 Read
feat other-apps 2 months ago

Add Suite User and Suite Admin roles, simplify Mail/Calendar permissions

New Suite User and Suite Admin roles replace blanket All role with owner-scoped, role-based permissions for Mail and Calendar.

@s-aga-r #298 Read
feat other-apps 2 months ago

Draggable corner radius handle

Slides designer now offers draggable corner handles for round rectangles, images, and videos.

@GursheenK #295 Read
feat other-apps 2 months ago

Redesign event modal

Calendar event creation modal redesigned with two-pane layout, grouped date/time card, participants rail, and human-readable repeat rules.

@krantheman #297 Read
feat other-apps 2 months ago

Google-Sheets formula UX — click-to-range, auto-close parens, range suggestion

Sheets formula editor now supports Google Sheets parity features: click-to-extend ranges, auto-closing parentheses, and range suggestions.

@AsifMulani1 #303 Read
feat other-apps 2 months ago

Writer-style share dialog redesign

Sheets share dialog now matches Frappe Writer/Drive style with unified typography and consistent design language.

@AsifMulani1 #306 Read
fix other-apps 2 months ago

Harden ingest: validation, dedup, capture rules, event catalog

Event ingestion validation hardened with dedup logic, capture rules, and event catalog.

@nextchamp-saqib #12 Read
fix other-apps 2 months ago

Namespace gateway payment id by provider

Gateway payment IDs are now scoped by provider to prevent ID collisions across multiple gateways.

@saurabh6790 #184 Read
fix other-apps 2 months ago

Add tsconfig for type stuff in admin dashboard

TypeScript configuration added for admin dashboard.

@siduck #237 Read
fix other-apps 2 months ago

Implicitly allow dropping in a component that has a default slot + other slot fixes

Components with default slots can now wrap other components without explicit slot passing.

@ruchamahabal #199 Read
fix ui-ux 2 months ago

Forward sidebar-item slot to SidebarSection

Sidebar component now properly forwards slot when using sections API.

@krantheman #841 Read
fix other-apps 2 months ago

Fill unpinned column before creating a 2nd column

Meet video grid now fills a single column before wrapping to multiple columns.

@BreadGenie #296 Read
fix other-apps 2 months ago

Ask for device perms on demand in device settings

Frappe Meet now requests device permissions on-demand in settings instead of upfront.

@BreadGenie #293 Read
fix other-apps 2 months ago

Unify sidebar state and hide storage labels on collapsed

Sidebar state is now consistent across sections and labels hide when collapsed.

@BreadGenie #283 Read
fix other-apps 2 months ago

Stop the login layout from shadowing bare /mail

Bare `/mail` URL no longer shows empty account creation card for logged-in users.

@krantheman #285 Read
fix other-apps 2 months ago

Reset stalled receive connection

Frappe Meet connection stalls are now recovered.

@BreadGenie #304 Read
fix other-apps 2 months ago

Smooth, tight-fitting document title input

Sheets document title input no longer jitters on keystroke by removing width animation and using native input sizing.

@AsifMulani1 #307 Read
fix other-apps 2 months ago

Resolve event masters via baseEventId so fresh events can be edited

Freshly created calendar events can now be edited immediately by resolving masters via baseEventId instead of stale search index.

@krantheman #287 Read
fix other-apps 2 months ago

Allow site operations in production

Site operations now work in production by allowing passwordless sudo access to nginx.

@Aradhya-Tripathi #236 Read
fix other-apps 2 months ago

Drop certbot quotes

Certbot configuration no longer includes unnecessary quote escaping.

@Aradhya-Tripathi #239 Read
fix other-apps 2 months ago

Certfile test is root-only

TLS certificate tests now handle permission-denied gracefully in non-root runs.

@Aradhya-Tripathi #240 Read
fix other-apps 2 months ago

SSL flag

Removing SSL ready flag no longer takes away HTTPS from other sites.

@Aradhya-Tripathi #241 Read
fix other-apps 2 months ago

Monitoring fixes

Ensures ping method is not tracked in frequent paths and missing data in uptime is correctly represented.

@Aradhya-Tripathi #246 Read

Sunday, July 19

ERPNext 38.9k 2 updates
fix stock-manufacturing 2 months ago

Scope current serial nos to the selected batch in stock reconciliation

Serial numbers in stock reconciliation now scoped to selected batch instead of pulling from all batches in warehouse.

@mihir-kandoi #57256 Read
fix accounting 2 months ago

Exclude transferred_qty from work order item to pick list item matching

Work orders can now produce in multiple batches even after partial production; transferred quantities excluded from matching.

@Pandiyan5273 #57253 Read
Frappe 10.7k 7 updates
feat ui-ux 2 months ago

Live preview renders unsaved edits through the print pipeline

Live preview now renders unsaved edits via the print pipeline; canvas values from server's `get_formatted` kill preview↔print drift (address `
`, currency, links).

@iamejaaz #41001 Read
fix developer-experience 2 months ago

Custom permission types denied for Administrator on client

Restores evaluation of custom permission types for Administrator on client after merge conflict from backport.

@kaulith #40994 Read
fix ui-ux 2 months ago

Make builder preview pixel-match print output

Aligns print format builder preview styling with print output (light-theme lock, token values, gray palette).

@iamejaaz #40999 Read
fix framework 2 months ago

Preserve numeric values across locale formats

Numeric filter values (e.g., 7.95) are preserved across locale-sensitive number formats instead of being truncated to integers.

@barredterra #41009 Read
fix framework 2 months ago

Scope preview cleanup to generated files only

Prevents deletion of user-attached files when regenerating print format previews; saves new preview before cleaning stale ones.

@iamejaaz #41018 Read
fix framework 2 months ago

Sweep all stale preview images on regenerate

Sweeps all pf-preview-* files before saving fresh preview, preventing orphaned files from interrupted renders.

@iamejaaz #41013 Read
fix framework 2 months ago

Create notification settings during boot if missing

User lockout during boot if Notification Settings doc is missing; auto-creates it on first read with rollback safety.

@iamejaaz #40778 Read
CRM 3.5k 2 updates
fix crm-sales 2 months ago

Exclude Closed status ToDos from get_assigned_users

Syncs assigned users between single page and list page by excluding closed status todos.

@ps173 #2499 Read
fix crm-sales 2 months ago

Description rendering — preserve line breaks + reliable auto-size

Form descriptions preserve line breaks and textarea reliably auto-sizes on load.

@michellealva #2492 Read
o Other 7 updates
feat other-apps 2 months ago

Add thin Central proxy + JWKS-based bench↔Central auth

Central billing client and site-billing admin routes with JWKS authentication; usage meters composed server-side.

@prathameshkurunkar7 #164 Read
feat other-apps 2 months ago

Add template renderer

Minimal Jinja2-like template renderer to simplify nginx config code and reduce f-string complexity.

@tanmoysrt #221 Read
feat other-apps 2 months ago

Readable Flow Session transcript, Flow Run tweaks

Flow Session transcript renders as readable HTML instead of raw grid; Flow Run Input field read-only, Output trimmed on display.

@ShrihariMahabal #79 Read
feat other-apps 2 months ago

Show failed tool calls in activity timeline

Surfaces a "Failed" badge on tool calls whose result is an error payload; message shown in dropdown.

@ShrihariMahabal #80 Read
feat other-apps 2 months ago

Frappe Draw: unified-canvas polish (minimap coverage + library type filter)

Minimap now shows all content (block shapes, whiteboard objects, frames) on unified docs; "Drawing" type added to library filter.

@vibhavkatre #17 Read
feat other-apps 2 months ago

Frappe Draw: in-frame editing (double-click a frame to edit it)

Double-click a mind-map or flowchart frame to enter it; the editor becomes that frame's single-type editor, with keyboard + contextual toolbar; "Back to canvas" bar returns to composed view.

@vibhavkatre #16 Read
fix other-apps 2 months ago

Render multi-line and long text as a code block

Multi-line/long string fields no longer truncated to one line in record titles.

@ShrihariMahabal #78 Read

Saturday, July 18

ERPNext 38.9k 13 updates
feat stock-manufacturing 2 months ago

Automatically link portal users to their associated contact profiles for customers and suppliers

Portal users added to a Customer or Supplier now automatically link their existing Contact, making portal-visible records accessible.

@diptanilsaha #57210 Read
feat accounting 2 months ago

Block sales invoice submit when customer overdue exceeds threshold

Opt-in per-customer Overdue Billing Threshold blocks Sales Invoice submit unless the user holds a configured bypass role.

@Jatin3128 #57230 Read
fix stock-manufacturing 2 months ago

Batch operation batch-size flag lookups to avoid n+1 query in work order

Batches operation batch-size lookups instead of querying per-row for every exploded BOM node.

@Pandiyan5273 #57194 Read
fix accounting 2 months ago

Add fetch from in production plan material request child table

Adds fetch_from mapping for Production Plan Material Request items.

@mihir-kandoi #57249 Read
fix accounting 2 months ago

Strip account number when building account name in COA importer

Chart of Accounts importer strips leading numbers from account names.

@mihir-kandoi #57218 Read
fix accounting 2 months ago

Include on hold status in project filters and reports

On hold projects are now filtered correctly in Task/Timesheet selectors and appear in the Project Summary report.

@Sudharsanan11 #57223 Read
fix accounting 2 months ago

Remove duplicate links from home and projects workspaces

Removes duplicate entries that appeared after workspace re-export in #56864, fixing doubled links in desk.

@mihir-kandoi #57225 Read
fix stock-manufacturing 2 months ago

Fall back to the company in-transit warehouse

`set_transit_warehouse` now falls back to the company's default when the source warehouse has no in-transit default.

@mihir-kandoi #57228 Read
fix accounting 2 months ago

Replace column-literal work order filter with server-side query

Stock Entry's work_order link filter now uses a proper server-side query instead of a broken column-literal comparison that silently degraded.

@mihir-kandoi #57233 Read
fix accounting 2 months ago

Parallel reposting stalls between scheduler ticks

Enables continuous reposting by enqueueing the next batch immediately instead of stalling between 30-minute scheduler ticks, fixing throughput regression with large backlogs.

@rohitwaghchaure #57220 Read
fix accounting 2 months ago

Validate buying price list on material request and update item rates on change

Defaults `buying_price_list` only when user has read permission, clears it on validate if not a buying list, and refreshes item rates when the list changes.

@mihir-kandoi #57241 Read
fix accounting 2 months ago

Force-delete repost data file during cleanup

Passes `force=True` when deleting attached Files during reposting cleanup so File deletion guard from frappe#40812 doesn't block the operation.

@kaulith #57245 Read
fix accounting 2 months ago

Clear linked comments, versions and attachments with old logs

Repost Item Valuation and BOM Update Log cleanup now deletes attached Files first and sweeps child records properly, fixing orphaned Comments, Versions, ToDos, DocShares, and file leaks.

@mihir-kandoi #57244 Read
Frappe 10.7k 17 updates
fix framework 2 months ago

Add missing DF types for controller annotations

Type-annotates Geolocation, Signature, Icon, and Long Int fields.

@barredterra #40992 Read
feat framework 2 months ago

Add N_ noop for translation extraction

`N_()` marks strings for gettext extraction without translating at call time.

@barredterra #40984 Read
feat framework 2 months ago

Revoke old token after refreshing

Old token is now revoked after refresh.

@ankush #40968 Read
feat framework 2 months ago

Repeater row conditions and merged-column direction toggle

Print-format Repeater rows can now be conditionally shown with a Jinja expression; merged columns support LTR/RTL direction.

@iamejaaz #40966 Read
feat ui-ux 2 months ago

Composer — EmailComposer & CommentComposer

Two ready-to-use message composers: EmailComposer with headers/attachments/quoted replies, CommentComposer with @-mentions.

@aerodeval #40280 Read
feat framework 2 months ago

Virtualization

Windowed rendering for 2000+ row lists keeps only visible rows (+ buffer) in the DOM, preserving column widths and bulk selection across scroll/pagination/resize.

@sumitjain236 #40238 Read
fix developer-experience 2 months ago

Translate description in info card when `show_description_on_click` is set

Info card descriptions are now translated when the toggle is set.

@naraitua #40944 Read
fix framework 2 months ago

Allowlist print settings overrides to the doctype's print toggles

Caller-supplied print-preview overrides are now restricted to fields the doctype actually exposes.

@iamejaaz #40967 Read
fix framework 2 months ago

Use normal exception instead of assert

Replaces assertions with proper exceptions for validation errors.

@ankush #40981 Read
fix framework 2 months ago

Fix!: Don't run frappe under optimize flag

Removes `-O` optimize flags which disable assertions without real benefit.

@ankush #40982 Read
fix framework 2 months ago

Notification dot styles

Notification dot styling corrected.

@sokumon #40974 Read
fix ui-ux 2 months ago

Column resizing in list view and child tables for RTL layouts

Column resizing now works correctly in right-to-left layouts.

@Vibhuti410 #40985 Read
fix framework 2 months ago

Pass parent_doctype when fetching Has Role in Role form tabs

Passes `parent_doctype` to `frappe.db.get_list("Has Role", ...)` in Role form tabs, fixing "Insufficient Permission" errors for non-Administrators.

@khushi8112 #40973 Read
fix framework 2 months ago

Sync comment cache on relink

Syncs comment cache on both old and new parents when relinking, fixing comment count mismatches on relayed Communications.

@iamejaaz #40871 Read
fix framework 2 months ago

Blank columns when field is not in_list_view

Fetches configured columns that aren't in the default in_list_view set, waits for that before refresh so link titles don't lag.

@sumitjain236 #40987 Read
fix framework 2 months ago

Workspace save fails when adding a new chart or widget

Uses `frappe.parse_json()` in `save_new_widget` instead of re-parsing already-parsed `new_widgets`, fixing TypeError when saving workspace changes.

@kaulith #40969 Read
fix framework 2 months ago

Grid row dependencies leaking across rows when columns are configured

Shared `DocField` objects now use a per-row dependency context, so hidden/required/read-only state no longer leaks across rows in user-configured grids.

@kaulith #40869 Read
HR 8.7k 3 updates
feat hr-payroll 2 months ago

Schedule interview dialog on job applicant form

"Schedule Interview" dialog collects all details in one place with auto-populated interviewers from Interview Type.

@iamkhanraheel #4947 Read
fix hr-payroll 2 months ago

Checkin button no longer defaults to IN while loading

Checkin button stays disabled until the last check-in loads instead of defaulting to IN.

@iamkhanraheel #4934 Read
fix hr-payroll 2 months ago

Avoid lambda in safe_eval

Removes unsafe lambda usage in safe_eval.

@ankush #4955 Read
CRM 3.5k 6 updates
feat crm-sales 2 months ago

Prefill custom fields in lead to deal conversion form

Lead-to-deal conversion now pre-fills custom fields alongside default fields.

@shahzeelahmed #2497 Read
feat crm-sales 2 months ago

Sitemap seeding and extraction fixes

Crawl queue seeded from site sitemaps; also fixes extraction and follows nested sitemapindex files.

@ps173 #2484 Read
feat crm-sales 2 months ago

Capture feature adoption using pulse

Telemetry events track adoption of web forms, domain enrichment, and ERPNext integration features.

@shahzeelahmed #2488 Read
feat crm-sales 2 months ago

Refactor ERPNext product sync settings

Splits ERPNext product sync into two directions: Items always pull into CRM Products, pushing back is now opt-in via "Bidirectional Product Sync" toggle; adds Manual Sync button and sync logs.

@shahzeelahmed #2487 Read
fix crm-sales 2 months ago

Create product in CRM if opted out of bi-directional sync

Respects bidirectional product sync opt-out and doesn't redirect to ERPNext to create items.

@shahzeelahmed #2493 Read
fix crm-sales 2 months ago

Misc frappe-ui fixes

Fixes unable to resize columns, context menu not appearing in view settings, and removed usage of `ghosted` button variant.

@shahzeelahmed #2489 Read
Helpdesk 3.4k 5 updates
feat other-apps 2 months ago

Onboarding persona questionnaire

New admins see a one-time stepper collecting org name, team size, tooling, challenges, and goals; answers sent to telemetry.

@aerodeval #3538 Read
fix other-apps 2 months ago

Strip html comments from agent reply email content

Removes MSO conditional comments and other HTML comments from email replies before sending so markdown2 doesn't break them.

@aerodeval #3563 Read
fix other-apps 2 months ago

Make headers sticky in TicketsTab

Column headers in the Tickets Tab of Customer and Contact pages stay fixed when scrolling.

@RitvikSardana #3565 Read
fix other-apps 2 months ago

SidebarItem overflow

Sidebar items are no longer cut off on the x-axis.

@RitvikSardana #3568 Read
fix other-apps 2 months ago

Reuse existing contact as customer primary contact & accurate ticket counts

`create_customer` now reuses existing Contacts by email and routes through `add_contacts`, fixing duplicate Contact creation; Tickets tab now counts accurately.

@RitvikSardana #3562 Read
LMS 3.2k 1 update
fix other-apps 2 months ago

Checkbox toggle doesn't render until another field changes

Settings checkboxes now bind `data[field.name]` directly and toggle immediately.

@raizasafeel #2581 Read
b Builder 2.3k 3 updates
feat ui-ux 2 months ago

Dim images by default in dark mode

Images without dark variants now apply subtle default dim (brightness 0.85, contrast 1.05) in dark mode.

@surajshetty3416 #677 Read
feat ui-ux 2 months ago

Added per-corner control for spacing and border-radius

Split/uniform inputs for spacing and border-radius now allow per-corner control with label dragging.

@stravo1 #666 Read
fix ui-ux 2 months ago

Declare color-scheme in head to avoid light flash on dark pages

Color-scheme declaration moved to `` so dark pages don't flash white before styles load.

@surajshetty3416 #678 Read
p Press 563 3 updates
feat other-apps 2 months ago

Add quickstart page for new onboarders

New onboarders with ≤3 sites see a quickstart page after login.

@siduck #6977 Read
feat other-apps 2 months ago

Report public server pool health

Hourly job monitors public primary servers, fetches Prometheus metrics in bulk, chooses best server per cluster, and reports health via Raven.

@AyshaHakeem #6990 Read
fix other-apps 2 months ago

Block updates on sites with database over 100 GB

Blocks site updates on very large databases that would likely fail midway, directing customers to support.

@balamurali27 #6994 Read
o Other 33 updates
feat other-apps 2 months ago

Structured -F values (key:=json), fix GET --input

`-F key:=json` now parses JSON values; fixes `GET --input`.

@ankush #47 Read
fix other-apps 2 months ago

Drop the "mutations run without confirmation" tip

Removes misleading guide text about mutations.

@ankush #48 Read
fix other-apps 2 months ago

Let user know we are waiting for cache fill

User-facing message when waiting for cache fill.

@ankush #49 Read
feat other-apps 2 months ago

Custom rules

Custom WAF rules UI added.

@ssiyad #212 Read
fix other-apps 2 months ago

Replace whole roles field instead of patching union discriminator

Stalwart account role assignment now patches the whole roles field instead of sub-paths.

@s-aga-r #244 Read
feat other-apps 2 months ago

Show plain-English intent for execute tool confirmations

Execute tool approval card now shows one-line `description` of intent as title with code below.

@ShrihariMahabal #74 Read
feat other-apps 2 months ago

Add Frappe server-tests job

Adds Python doctype test gating to Draw CI.

@vibhavkatre #6 Read
feat other-apps 2 months ago

Canvas unification — Phase 3b: remove type selector, land on canvas

New diagrams are unified canvas by default; type selector removed and users land on blank editor immediately.

@vibhavkatre #5 Read
feat other-apps 2 months ago

Canvas unification — Phase 4a: frame origin data model

Unified documents add `origin` {x,y} to mind maps and flowcharts; legacy single-type docs unaffected.

@vibhavkatre #7 Read
feat other-apps 2 months ago

Canvas unification — Phase 4b: render mind map & flowchart as frames

Mind maps and flowcharts render as positioned frames on the unified canvas alongside block shapes and whiteboard ink.

@vibhavkatre #8 Read
feat other-apps 2 months ago

Canvas unification — Phase 4d: Templates/Insert menu for frames

Insert menu adds starter mind maps or flowcharts to the unified canvas.

@vibhavkatre #9 Read
feat other-apps 2 months ago

Canvas unification — Phase 4c: select & move frames

Mind map and flowchart frames are now first-class selectable/draggable objects on the unified canvas.

@vibhavkatre #10 Read
feat other-apps 2 months ago

Frappe Draw: Writer-style diagram sharing (view/comment/edit) — backend

Diagram sharing built on Frappe core DocShare + custom "comment" permission type, no Drive dependency.

@vibhavkatre #12 Read
feat other-apps 2 months ago

Frappe Draw: Share dialog UI wired to sharing backend (view/comment/edit)

Share dialog now wired to `draw.api.share.*`, adds comment-level access, and user-search endpoint for invites.

@vibhavkatre #13 Read
feat other-apps 2 months ago

Frappe Draw: optional Frappe Drive integration (register diagram as a Drive file)

Diagrams can be registered as Frappe Drive native documents; soft-coupled with no Drive dependency.

@vibhavkatre #14 Read
feat other-apps 2 months ago

Template library: 17 new template groups

Grows template catalog from 11 to 27 groups across Fashion, Portfolio, Technology, and Marketing.

@surajshetty3416 #7 Read
feat other-apps 2 months ago

Scope screening backfill to active, configured, fetching users

Screening patch now targets a precise set of active users with JMAP configured, avoiding redundant backfill.

@s-aga-r #247 Read
feat other-apps 2 months ago

Enable screening by default for new accounts

New JMAP Accounts start with screening enabled instead of requiring manual opt-in.

@s-aga-r #245 Read
feat other-apps 2 months ago

Collapse consecutive mails from the same sender in list view

3+ adjacent threads from one sender on one day render as a single expandable row, reducing list clutter (measured: 300 threads fold to 19 stacks).

@krantheman #258 Read
feat other-apps 2 months ago

Local email-address suggestions (Tantivy)

Local per-account full-text index powers email-address suggestions from cached messages and contacts without JMAP round-trip.

@s-aga-r #239 Read
feat other-apps 2 months ago

Protected cell ranges and sheet lock

Protected ranges and whole-sheet lock enforced across all write paths; ranges shift correctly on row/col insert/delete.

@AsifMulani1 #243 Read
feat other-apps 2 months ago

Lossless XLSX import/export

XLSX round-trip now preserves formulas, number formats, merges, and all sheets; replaces string-only bridge.

@AsifMulani1 #246 Read
feat other-apps 2 months ago

Threaded, resolvable cell comments

Cell comments turn into threaded discussions with resolve/reopen, @-mentions, and timestamps.

@AsifMulani1 #249 Read
feat other-apps 2 months ago

In-cell SPARKLINE mini-charts

`SPARKLINE(data_range, [type], [color])` formula renders line or column mini-charts in cells, inheriting recompute-on-change from the formula engine.

@AsifMulani1 #254 Read
fix other-apps 2 months ago

Editor layout, comments & read-only selection; drive dialog fixes

Unified editor scrolling, permanent comment gutter, restored text selection in read-only, and dialog fixes.

@safwansamsudeen #218 Read
fix other-apps 2 months ago

Flexible comment layout with chips and mobile support

Writer comments now use a symmetric grid with mobile-responsive chips and bottom sheet.

@safwansamsudeen #248 Read
fix other-apps 2 months ago

Fix move toast and move-dialog button state

Move operation now shows correct filename in toast and button state works when moving within same team.

@safwansamsudeen #252 Read
fix other-apps 2 months ago

Consistent empty states across pages

Unified empty-state rendering and copy across Attachments, Notifications, and other Drive pages.

@safwansamsudeen #251 Read
fix other-apps 2 months ago

Cancel error on loan security assignment when loan value is empty

Cancel no longer crashes when loan amount is None.

@Nihantra-Patel #1330 Read
fix other-apps 2 months ago

Keep execute description required so the model always supplies intent

Reverts default on execute tool description so the model always supplies intent text.

@ShrihariMahabal #75 Read
fix other-apps 2 months ago

Make Flow installable on Frappe Cloud and v16

Adds `[tool.bench.frappe-dependencies]` and pins litellm to support Python 3.14 and Frappe v16.

@ShrihariMahabal #77 Read
fix other-apps 2 months ago

Preserve custom keys in common_site_config.json

`write_common_site_config()` now merges over existing file instead of replacing it, preserving keys added via `bench set-config`.

@mihir-kandoi #218 Read
fix other-apps 2 months ago

Audit authz

Fixes ten security findings from the July billing audit: domain-layer functions lacked authorization checks, allowing any logged-in user to call credit/payment/plan APIs for any team; money paths and team access are now gated at the auth layer.

@saurabh6790 #173 Read

Friday, July 17

ERPNext 38.9k 6 updates
feat stock-manufacturing 2 months ago

Automatically link portal users to associated contact profiles for customers and suppliers

Automatically detects and links existing Contact records when portal users are added to Customers/Suppliers.

@Sudharsanan11 #57179 Read
feat stock-manufacturing 2 months ago

Book Expenses Added To Stock GL entries for stock vouchers

Books GL entries for expenses added to stock value movement, mirroring Purchase Expense pattern and making the feature configurable.

@rohitwaghchaure #57190 Read
feat accounting 2 months ago

Map settings for DocTypes to show on settings dialog

Maps DocType settings to display in the DocType settings dialog General tab.

@nishkagosalia #57025 Read
fix accounting 2 months ago

Consider min order qty in the purchase/transfer flow of production plan

Ensures minimum order quantity is respected when splitting purchase and transfer allocations in production planning.

@mihir-kandoi #57204 Read
fix stock-manufacturing 2 months ago

Serialize postgres stock writes per (item, warehouse)

Adds transaction-scoped advisory locking for concurrent stock writes in postgres to prevent serialization failures and incorrect inventory.

@mihir-kandoi #57202 Read
fix accounting 2 months ago

Strip account number when building account name in COA importer

Strips account numbers from account names during Chart of Accounts import.

@Shllokkk #57198 Read
Frappe 10.7k 22 updates
feat framework 2 months ago

New control "Attachment Gallery"

Adds standard form control for viewing, uploading, previewing, and deleting attachments with optional filtering.

@barredterra #40781 Read
fix developer-experience 2 months ago

Translate description in info card when show_description_on_click is set

Translates field descriptions in info cards when show_description_on_click is enabled.

@KerollesFathy #40940 Read
fix framework 2 months ago

Center the close button

Centers the close button in modal headers for better visual alignment.

@sokumon #40950 Read
fix ui-ux 2 months ago

Independent table style controls in print format builder

Decouples table style controls so Style controls only lines/stripes, Bordered controls column lines, and header controls header row independently.

@khushi8112 #40892 Read
fix framework 2 months ago

Report why chromium failed to start instead of a blanket timeout

Reports actual Chromium startup failures instead of generic timeout message, improving CI debugging.

@iamejaaz #40895 Read
fix framework 2 months ago

Honour print settings pdf generator for standard printing

Respects Print Settings > PDF Generator selection for standard printing instead of forcing Chromium, allowing wkhtmltopdf fallback.

@iamejaaz #40896 Read
fix framework 2 months ago

Truncate MultiSelectList status text within the control box

Truncates long selected labels in MultiSelectList controls to fit within the component instead of overflowing.

@Shllokkk #40865 Read
fix framework 2 months ago

Batch child-table fetch in data export

Batches child-table fetches during data export to improve performance and reduce database queries.

@ShrihariMahabal #40927 Read
fix framework 2 months ago

Render Markdown Editor standard filters as text search

Renders Markdown Editor standard filters as text search instead of complex filter UI.

@KerollesFathy #40883 Read
fix framework 2 months ago

Duplicate intro messages on first save of a new document

Fixes frm.set_intro() appending duplicate messages on first save by clearing previous message instead of always appending.

@kaulith #40842 Read
fix framework 2 months ago

Guard against missing old_doc in validate_snapshot_reports

Adds guard to prevent AttributeError when System Settings is inserted fresh with no prior document to compare.

@ShrihariMahabal #40908 Read
fix ui-ux 2 months ago

Various issues in sidebar

Addresses multiple sidebar UI issues including button centering and alignment.

@sokumon #40924 Read
fix framework 2 months ago

Don't emit column fieldname as a CSS class

Prevents column fieldnames from being emitted as CSS classes, which could cause unintended styling or DOM pollution.

@ShrihariMahabal #40936 Read
fix framework 2 months ago

Do not translate empty string

Prevents translation of empty strings which was causing issues with gettext extraction.

@Abdeali099 #40899 Read
fix framework 2 months ago

Add a perm. chk for ref. document to update_reference method

Adds permission check for referenced documents to update_reference method, closing Ticket 72600.

@AarDG10 #40946 Read
fix ui-ux 2 months ago

Field inspector label and align/spacing conflict in print format builder

Shows field's real doctype label in inspector instead of custom print label; resolves Align/Spacing control conflict where Spacing silently overwrote Align.

@khushi8112 #40916 Read
fix framework 2 months ago

Hide submit button for non-submittable documents

Removes the submit button from form toolbar for non-submittable doctypes, preventing UI confusion.

@KerollesFathy #40891 Read
fix framework 2 months ago

Escape template context values before rendering

Escapes template context values to prevent XSS in dynamic template rendering.

@AarDG10 #40897 Read
fix framework 2 months ago

Escape list filter values before rendering

Escapes list filter values before rendering to prevent XSS through filter UI.

@AarDG10 #40902 Read
fix framework 2 months ago

Allow safe tags only in discussion reply md

Restricts HTML tags in discussion replies to a safe allowlist, blocking XSS.

@AarDG10 #40934 Read
fix framework 2 months ago

Escape script context values before rendering

Escapes script context values in form rendering to prevent XSS attacks.

@AarDG10 #40920 Read
fix framework 2 months ago

Sanitize frappe.markdown

Sanitizes markdown rendering to prevent XSS injection via untrusted markdown input.

@ShrihariMahabal #40951 Read
HR 8.7k 4 updates
feat hr-payroll 2 months ago

Capture HR product usage & activation telemetry

Adds anonymous site-scoped telemetry to measure HR feature usage and post-install activation funnel.

@deepeshgarg007 #4928 Read
feat hr-payroll 2 months ago

Schedule interview dialog on job applicant form

Replaces broken "Create Interview" button with "Schedule Interview" dialog that collects all details and creates the interview directly.

@iamkhanraheel #4857 Read
feat hr-payroll 2 months ago

Show Holiday List Assignment in Employee connections tab

Adds Holiday List Assignment to Employee document's Connections tab so HR users can see assigned holiday lists without navigating away.

@akhtarmohsin #4932 Read
fix hr-payroll 2 months ago

Update mandatory_depends_on for payable account

Adds mandatory_depends_on constraint for payable account field to ensure proper field dependency rendering.

@nareshkannasln #4909 Read
CRM 3.5k 2 updates
fix crm-sales 2 months ago

Builder UI polish + settings consistency

Polishes Forms builder UI to match SLA/Assignment Rule settings pages and fixes minor UX issues.

@michellealva #2482 Read
fix crm-sales 2 months ago

Reorder Address Quick Entry layout so Country precedes State

Reorders Address Quick Entry fields so Country appears before State, allowing India Compliance's country-dependent state list to apply before user input; adds migration for existing saved layouts.

@ps173 #2485 Read
Helpdesk 3.4k 1 update
fix other-apps 2 months ago

Replace emojis with icons for custom views

Replaces emoji picker with frappe-ui icon picker and updates saved view icons to use lucide icons.

@RitvikSardana #3555 Read
LMS 3.2k 1 update
feat other-apps 2 months ago

Redesign onboarding as a data-driven card flow

Redesigns persona UI onboarding into compact card flow where steps are data-driven and can be reordered by configuration.

@raizasafeel #2574 Read
Insights 1k 1 update
fix other-apps 2 months ago

Polish workbook library dialog

Polishes Workbook Library dialog with clearer copy, taller preview area, and tighter header spacing.

@nextchamp-saqib #1244 Read
p Press 563 4 updates
fix other-apps 2 months ago

Add fields to store Raven keys in Press Settings

Adds fields to Press Settings for storing Raven keys.

@AyshaHakeem #6984 Read
fix other-apps 2 months ago

Fix conflict, plans section fields got added twice

Fixes press_settings.json conflict where plans section fields were duplicated.

@AyshaHakeem #6981 Read
fix other-apps 2 months ago

Match correct column name to avoid null

Fixes column name mismatch in signup flow that was causing null errors.

@shadrak98 #6978 Read
fix other-apps 2 months ago

Stop fatal updates pinning benches they cannot help

Removes unnecessary bench retention from fatal site updates that can no longer provide rollback value.

@balamurali27 #6983 Read
o Other 27 updates
feat other-apps 2 months ago

Misc features

Adds method call verb, drops confirmation prompts, improves default behavior and debug hints.

@ankush #43 Read
fix ai 2 months ago

Remove claude's system prompt in assistant mode

Removes Claude system prompt from frappectl assistant mode.

@ankush #42 Read
fix other-apps 2 months ago

Add frappe-ui molecules directory to tailwind content glob

Adds frappe-ui molecules to Tailwind content glob so utility classes are generated.

@shariquerik #195 Read
feat other-apps 2 months ago

Remember selected panels & open file in editor

Persists selected panels and open file in Studio editor across page refresh.

@ruchamahabal #194 Read
feat other-apps 2 months ago

Roll back failed and cancelled app/site tasks via callbacks

Extends task manager callbacks so failed or cancelled tasks roll back to clean state instead of leaving orphans.

@AryamanSharma14 #136 Read
fix other-apps 2 months ago

Durable payment intent

Improves payment intent durability in Central.

@saurabh6790 #172 Read
feat other-apps 2 months ago

Billing invariant audit

Adds billing invariant violations report that surfaces rows with inconsistent team/amount pairs for audit verification.

@saurabh6790 #171 Read
feat other-apps 2 months ago

Add "Filter messages like this" action

Adds "Filter Messages Like This" action to message more-actions menu to scope mailbox to sender, matching Gmail's feature.

@krantheman #231 Read
feat other-apps 2 months ago

Read-only mode for view-only access

Surfaces write permission at load time and renders proper read-only mode for view-only access instead of misleading editable UI.

@AsifMulani1 #233 Read
feat other-apps 2 months ago

Outline the active filter's range on the grid

Draws Google-Sheets-style outline around active filter's rectangle to visually indicate which cells are filtered.

@AsifMulani1 #205 Read
feat other-apps 2 months ago

The core ↔ service boundary — VMService seam + satellite

Lands phase 0 of core/service boundary: Atlas core keeps VM existence; service-specific logic attaches via explicit registry.

@the-bokya #115 Read
feat framework 2 months ago

Add filesystem path tab completion

Adds filesystem path tab completion for bench commands like restore, backup, and data-import.

@barredterra #1723 Read
feat other-apps 2 months ago

XLOOKUP, in-cell parameter help, and warn-severity validation

Adds XLOOKUP function with exact/next-larger/next-smaller modes, in-cell parameter hints, and validation with warning severity.

@AsifMulani1 #240 Read
feat other-apps 2 months ago

Custom Excel-style number formats

Adds custom number format type allowing Excel-style format codes beyond built-in presets with interpreter covering common codes.

@AsifMulani1 #241 Read
feat other-apps 2 months ago

Web Application Firewall

Implements web application firewall functionality for Pilot.

@ssiyad #209 Read
feat other-apps 2 months ago

Canvas unification — Phase 3a: unified toolbar + drawable whiteboard

Makes unified canvas fully drawable by showing both block creation and whiteboard annotation tools in bottom palette with shared tool namespace.

@vibhavkatre #4 Read
feat other-apps 2 months ago

Canvas unification — Phase 2b: simultaneous block + whiteboard rendering

First visible step of canvas unification: renders shared block substrate and whiteboard layer together so shapes and ink coexist on one canvas.

@vibhavkatre #3 Read
feat other-apps 2 months ago

Canvas unification — Phase 2a: tool-keyed interaction dispatcher

Converts surface interaction registration from single-slot ref into layer-keyed registry resolved by active tool.

@vibhavkatre #2 Read
feat other-apps 2 months ago

Canvas unification — Phase 1: unified-document data model

Introduces unified data model for all diagram types (blocks, shapes, whiteboard ink, stickies) as first phase of canvas unification.

@vibhavkatre #1 Read
fix other-apps 2 months ago

Re-parse a released source instead of serving it from cache

Repurses FileTallySource after release instead of serving stale cache, fixing buffer reuse bugs on re-runs in same worker.

@parthgarachh #64 Read
fix other-apps 2 months ago

Don't nest stale params into contact search filter

Fixes malformed JMAP filter in contact autocomplete where search text was being replaced by stale params object.

@s-aga-r #228 Read
fix other-apps 2 months ago

Mount FrappeUIProvider in slides shell

Mounts FrappeUIProvider in slides shell and migrates deprecated toast.create calls to new toast API.

@GursheenK #234 Read
fix ui-ux 2 months ago

Don't apply hover bg when row is fully overridden via slot

Prevents tree component from applying default hover background when row content is fully customized via slot.

@ruchamahabal #843 Read
fix other-apps 2 months ago

Cap stored attachment text to avoid exceeding max_allowed_packet

Caps attachment text storage to inline-injection threshold while preserving full text in memory for retrieval and embedding.

@ShrihariMahabal #72 Read
fix other-apps 2 months ago

Wrap inline images in multipart/related

Restructures MIME message layout to wrap inline images in multipart/related, resolving AWS Trust & Safety rejection of mail replies.

@s-aga-r #230 Read
fix other-apps 2 months ago

Credits negative balance

Fixes currency-blind credit anchor that allowed per-currency balances to go negative while the guard approved debits.

@saurabh6790 #161 Read
fix other-apps 2 months ago

A team can no longer be billed twice for one period

Adds database locking to prevent race condition where concurrent billing runs could invoice a team twice for the same period.

@saurabh6790 #170 Read

Thursday, July 16

ERPNext 38.9k 9 updates
feat accounting 2 months ago

Add on hold status to project

New Project status for temporarily pausing a project without marking it cancelled.

@Sudharsanan11 #57137 Read
fix stock-manufacturing 2 months ago

Name every conflicting voucher in the reserved batch error

Reserved Batch Conflict error named only the first conflicting voucher; now lists every voucher with an outstanding claim.

@mihir-kandoi #57174 Read
fix stock-manufacturing 2 months ago

Allow delivery when a batch is reserved across multiple sales orders

Delivering one order's own reserved batch unit threw Reserved Batch Conflict when another order's reservation exactly matched the remainder; now aggregates outstanding reserved qty across all orders.

@mihir-kandoi #57169 Read
fix accounting 2 months ago

Set correct currency in supplier quotation net rate field

Supplier quotation net rate field used the wrong currency context, showing values in the wrong denomination.

@mihir-kandoi #57164 Read
fix accounting 2 months ago

Hide job card field in purchase order item

fix: hide job card field in purchase order item

@mihir-kandoi #57163 Read
fix accounting 2 months ago

Validate mandatory date filters in reports

Dashboard charts on reports lacking mandatory date filters raised TypeError instead of displaying a user-friendly validation message.

@ervishnucs #56884 Read
fix accounting 2 months ago

Apply user permissions via build_match_conditions

`sales_person_wise_transaction_summary` report broke after backport #56429; rebuilt filters using plain dicts and `build_match_conditions` for compatibility.

@ervishnucs #57043 Read
fix accounting 2 months ago

Skip redundant reposting of dependent items

Cascading reposting of dependent items after a backdated entry caused items to repost multiple times if they had their own queued repost records.

@rohitwaghchaure #57092 Read
fix accounting 2 months ago

Improved access control for project users

Implemented access control for ProjectUsers who don't have the formal Projects User role.

@diptanilsaha #56675 Read
Frappe 10.7k 11 updates
fix ui-ux 2 months ago

Preserve UI sorting in report view export

Report export now preserves the sort order from the UI by passing visible column indices to the backend.

@Bowrna #40854 Read
fix ui-ux 2 months ago

Remove icon from sidebar label

fix: remove icon from sidebar label

@sokumon #40885 Read
fix ui-ux 2 months ago

Remove sidebar collapse

fix: remove sidebar collapse

@sokumon #40882 Read
feat framework 2 months ago

Barcode scanner enhancements

Added flashlight toggle, zoom in/out, and keep-scanner-open options for mobile barcode scanning.

@rohitwaghchaure #40615 Read
feat ui-ux 2 months ago

Feat!: move classic print formats to the new builder and remove the classic builder

Default printing now renders via the beta Chromium-based builder; classic layouts auto-convert on migrate with reversibility via `classic_format_data`.

@iamejaaz #40805 Read
fix framework 2 months ago

Center selected-icon with input text

fix(icon-field): center selected-icon with input text

@KerollesFathy #40775 Read
fix framework 2 months ago

Add more assertions

fix: Add more assertions

@ankush #40554 Read
fix framework 2 months ago

Don't crash query validation on large generated queries

Query validation crashed on large `IN (...)` filters exceeding sqlparse's `MAX_GROUPING_TOKENS` cap; now raises a clearer error.

@ShrihariMahabal #40886 Read
fix framework 2 months ago

Evaluate creation-based SQL cutoffs against the system timezone clock

Raw SQL queries compared timestamps against `NOW()` in DB timezone instead of system timezone, causing mismatches when the two differed.

@kaulith #40858 Read
fix framework 2 months ago

Batch name lookups in get_data_for_custom_field

Custom report link columns with thousands of values exceeded sqlparse's token limit, crashing with SQLParseError; now batches lookups per 1000 names instead of one query per list.

@ShrihariMahabal #40877 Read
fix framework 2 months ago

Masked child table and link fields leak when selected through dot notation

Masked fields in child tables and link fields were being returned unmasked when selected through dot notation in queries, bypassing permission checks.

@kaulith #40803 Read
HR 8.7k 6 updates
fix hr-payroll 2 months ago

Skip push notification config fetch without relay

Every HRMS PWA tried to fetch the notification relay config even when unconfigured (common on self-hosted instances), raising an error.

@DanielRadlAMR #4884 Read
fix hr-payroll 2 months ago

Quote from_date and to_date to resolve reserved word errors

MariaDB 12.3+ treats `to_date` and `from_date` as reserved words, causing 1064 Syntax Errors in raw SQL queries; now backtick-quoted.

@pratheep-bit #4891 Read
fix hr-payroll 2 months ago

Default amount incorrectly prorated in formula-based components

Default component amounts were incorrectly recalculated using payment days instead of total working days when LWP or absences affected payment days.

@iamkhanraheel #4888 Read
fix hr-payroll 2 months ago

Cancelled Shift Assignments silently block new shift creation via Roster API

Cancelled shifts kept their `status = 'Active'`, so the adjacency filter still matched them, blocking new shifts; now updates status on cancel.

@pratheep-bit #4890 Read
fix hr-payroll 2 months ago

Half-yearly earned leave schedule for joining date based assignments

Half-yearly leave allocation calculated period boundaries against the calendar year instead of the employee's actual joining date.

@iamkhanraheel #4847 Read
fix hr-payroll 2 months ago

Cap OT slip end_date at relieving_date for mid-month leavers

Overtime slip end_date wasn't capped at relieving_date for employees who left mid-month, including unearned overtime in the calculation.

@Dr-Blank #4800 Read
CRM 3.5k 3 updates
feat crm-sales 2 months ago

Web Form Builder in Frontend

Built-in form builder for CRM to create public forms that collect leads and deals directly from websites, with visual builder, field selection, and automation.

@michellealva #2474 Read
fix crm-sales 2 months ago

Normalize user names for mentions

Mentions in comments broke in prod builds due to missing username normalization.

@shahzeelahmed #2478 Read
fix crm-sales 2 months ago

Refetch cached list resource on remount

Cached list data remained stale when returning to a list after editing elsewhere (e.g., `assigned_to`), with no refetch guarantee.

@ps173 #2477 Read
Helpdesk 3.4k 2 updates
fix other-apps 2 months ago

Ticket SLA policy application

Enabled SLAs with a blank condition matched every ticket, silently overriding the default SLA.

@aerodeval #3547 Read
fix other-apps 2 months ago

Agent reply fails on tickets with no prior communication

Replying from agent portal returned 500 for tickets with no Communication, dereferencing `last_communication.name` before null check.

@kaulith #3540 Read
LMS 3.2k 5 updates
feat other-apps 2 months ago

Add 'how did you hear about us' question

feat(persona): add 'how did you hear about us' question

@raizasafeel #2567 Read
fix other-apps 2 months ago

Don't send null docname on lesson file upload

File uploads on unsaved lessons failed with HTTP 417; now uploads as standalone files until the lesson is saved.

@raizasafeel #2570 Read
fix other-apps 2 months ago

Stop fetching the outline before the course loads

Course outline fetch fired before course name was available, returning 500 and never retrying; now uses a watcher that fetches only once course data loads.

@raizasafeel #2566 Read
fix other-apps 2 months ago

Miscellaneous fixes across payments, jobs, assignments, batches, and editor

Fixed 7 bugs: payment gateway validation, applicant count sync, assignment deadline, batch creation, and lesson editor field visibility.

@raizasafeel #2569 Read
fix other-apps 2 months ago

Harden access-control checks

Enforces server-side authorization on LMS endpoints to restrict access to enrolled courses, instructor-only fields, and assignment grading.

@raizasafeel #2568 Read
Insights 1k 5 updates
fix other-apps 2 months ago

Rebuild sales quotation funnel with builder ops

Only raw-SQL query across shipped templates; rebuilt as 100% builder-native ops mirroring existing accounting patterns.

@nextchamp-saqib #1239 Read
fix other-apps 2 months ago

Re-base accounting AR/AP on Payment Ledger Entry

AR/AP Open Invoices queries scanned unbounded GL Entry (tens of millions of rows); rebased on smaller Payment Ledger Entry.

@nextchamp-saqib #1236 Read
fix other-apps 2 months ago

Lower default query timeout to 60s

Interactive query timeout reduced from 180s to 60s to prevent stalled workers and unnecessary OLTP load; timeout now routes through a single helper.

@nextchamp-saqib #1235 Read
feat other-apps 2 months ago

Nudge Insights Admins to prebuilt module dashboards

Dismissible banner in ERPNext module workspaces (Selling, Buying, Stock, Financial Reports) linking Insights Admins to prebuilt dashboards for each module.

@nextchamp-saqib #1232 Read
fix other-apps 2 months ago

Funnel chart drill-down

Funnel chart drill-down didn't work because the custom series had no `name` property, so the lookup returned undefined.

@nextchamp-saqib #1233 Read
p Press 563 5 updates
feat other-apps 2 months ago

Allow multiple selection for apps removal in benches page

feat(ui): Allow multiple selection for apps removal in benches page

@siduck #6966 Read
fix other-apps 2 months ago

Check the public ip address field instead of check box

fix(sync): Check the public ip address field instead of check box

@20vikash #6975 Read
fix other-apps 2 months ago

Tolerate a missing unit

fix(wazuh): Tolerate a missing unit

@ssiyad #6972 Read
fix other-apps 2 months ago

Decouple the lead owners list

fix(prm): Decouple the lead owners list

@shadrak98 #6968 Read
fix other-apps 2 months ago

Stop invoice CSV download logging out non-system users

Non-system users were silently logged out when downloading invoices as CSV due to auth hook rejecting `frappe.client.get_value` calls outside the API namespace.

@balamurali27 #6973 Read
o Other 16 updates
fix other-apps 2 months ago

Repair resize tests for the host memory reserve + satisfy pinned ruff

Greened failing Server and Frappe Linter CI jobs after placement's host memory reserve change; fixed resize capacity tests and ruff violations.

@the-bokya #119 Read
fix other-apps 2 months ago

Clarify external vs pilot-managed DB in setup wizard

Root password field now describes three cases (fresh, pilot-managed, external); prefills host/port for external databases.

@Aradhya-Tripathi #200 Read
feat other-apps 2 months ago

Connect setup wizard to an external database server

Optional toggle to connect to external database (RDS, etc.) instead of spawning a pilot-owned MariaDB/PostgreSQL; explicit stored choice with prefilled defaults.

@Aradhya-Tripathi #199 Read
feat other-apps 2 months ago

Show repeater icon on a repeater/repeated block to visually identify them

feat: show repeater icon on a repeater/repeated block to visually identify them

@ruchamahabal #193 Read
feat other-apps 2 months ago

Show tool calls immediately while streaming

Tool cards appear immediately mid-stream with the call name, then re-emit with full arguments once they finish streaming.

@ShrihariMahabal #70 Read
feat other-apps 2 months ago

Redesign marketplace page

Visual redesign with category pills (7 buckets from registry), "Works with" filter for Frappe-made apps, import button in filter row, and grid improvements.

@pragati-k-13 #163 Read
feat other-apps 2 months ago

Archive shortcuts + optimistic theme cycling & undo-toast cleanup

Added `G` then `A` shortcut to Archive mailbox and documented both Archive shortcuts; plus optimistic theme cycling and undo-toast cleanup.

@krantheman #221 Read
feat other-apps 2 months ago

Search across accounts

Opt-in toggle to search across all JMAP accounts the user owns, with results merged newest-first.

@s-aga-r #211 Read
feat other-apps 2 months ago

Search filter chips, quick filters & inline editing

Mail search UX overhaul with redesigned results header, active-filter chips, inline operator autocomplete (for folders, contacts), and quick-filter bar.

@krantheman #224 Read
feat other-apps 2 months ago

RS256/JWKS trust anchor + bootstrap-token enrollment

Central mints a single RSA signing key for JWT tokens benches trust, with a JWKS endpoint and bootstrap-token enrollment flow.

@prathameshkurunkar7 #164 Read
feat other-apps 2 months ago

Get app validations

Refactored app validator into a pluggable package with checks for repo structure, syntax, dependency declarations, and static import resolution.

@Aradhya-Tripathi #203 Read
feat other-apps 2 months ago

Managed add on services

Adds Services module to Central for team-level add-ons, starting with LLM Hosting (Grove-backed) with catalogue, entitlements, credentials, and billing.

@prathameshkurunkar7 #169 Read
fix other-apps 2 months ago

Raise toast z-index above sticky columns

fix: raise toast z-index above sticky columns

@Shllokkk #237 Read
fix other-apps 2 months ago

Print exceptions

fix: print exceptions

@ankush #41 Read
fix other-apps 2 months ago

Allow deleting Flow Model despite Session/Agent references

Sessions and Agents held historical links to Flow Models, blocking deletion; added them to `ignore_links_on_delete`.

@ShrihariMahabal #71 Read
fix other-apps 2 months ago

Serve template pages with a frame-ancestors CSP

Template pages now serve with `Content-Security-Policy: frame-ancestors *` to allow embedding in the builder picker's inline preview on non-Frappe Cloud sites.

@surajshetty3416 #6 Read

Wednesday, July 15

ERPNext 38.9k 10 updates
fix stock-manufacturing 2 months ago

Batch BOM source warehouse lookup in get_production_items to avoid N+1

Fetches all BOM source warehouses in a single query instead of one per Production Plan item row.

@Pandiyan5273 #57154 Read
feat accounting 2 months ago

Make naming series based on posting datetime on by default on new sites

New ERPNext v17 sites now have posting-datetime-based naming series enabled by default.

@mihir-kandoi #57127 Read
feat accounting 2 months ago

Company-wise restriction for Item, Customer and Supplier masters

Item, Customer, and Supplier now support company-wise restriction; masters are hidden from users limited by Company User Permissions when feature is enabled.

@mihir-kandoi #57124 Read
fix accounting 2 months ago

Duplicate scorecard period when supplier is created on a month end

Supplier scorecards created on month-end dates no longer generate duplicate periods.

@mihir-kandoi #57115 Read
fix accounting 2 months ago

Permission issue

fix: permission issue

@rohitwaghchaure #57112 Read
fix accounting 2 months ago

Prevent duplicate material request items in purchase order

Purchase Orders created from Material Requests now allow the same item in multiple rows with different rates, matching Sales Order from Quotation behavior.

@SandraFrappe #57129 Read
fix stock-manufacturing 2 months ago

Preserve job card transferred quantity

Job card quantity is now preserved during transfer operations.

@Sudharsanan11 #57126 Read
fix stock-manufacturing 2 months ago

Set stock_uom on transferred Stock Reservation Entries

Transferred Stock Reservation entries now correctly copy stock_uom, preventing silent UOM mismatches on items with non-default stock UOMs.

@mihir-kandoi #57113 Read
fix accounting 2 months ago

Added permission checks on `get_account_balances_coa`

Adds missing permission enforcement to Chart of Accounts balance endpoint.

@diptanilsaha #57107 Read
fix stock-manufacturing 2 months ago

Fix sqlparse token limit in get_bundle_wise_serial_nos

Fixes Stock Entry submission failures on sites with thousands of bundles when SQL token limits exceed parseable range.

@Sudharsanan11 #57116 Read
Frappe 10.7k 10 updates
feat framework 2 months ago

Workspace rail

Adds workspace dock on the sidebar for displaying and navigating workspaces.

@sokumon #40829 Read
feat ui-ux 2 months ago

Add Letter Head to Printing workspace sidebar

Letter Head doctype now appears in the Printing workspace sidebar.

@gajjug004 #40873 Read
fix framework 2 months ago

Bump phonenumbers to ~=9.0.23

Upgrades phonenumbers library to correctly validate Saudi Arabia phone numbers with widened mobile pattern.

@gajjug004 #40779 Read
fix framework 2 months ago

Ignore not nullable and v15 specific module fetching

Fixes database column handling and v15-specific report module fetching logic.

@ruthra-kumar #40847 Read
fix framework 2 months ago

Consider ownership check & perms. when using dot notation

Database queries using dot notation now properly enforce ownership and permission checks.

@AarDG10 #40738 Read
fix framework 2 months ago

Allow child tables to be used in dashboard charts

Chart Dashboards on child doctypes are now accessible to users with appropriate permissions.

@safwansamsudeen #37639 Read
fix ui-ux 2 months ago

Preserve ui sort order for query report

Query reports now preserve user-set sort order instead of resetting to default.

@Bowrna #40835 Read
fix framework 2 months ago

Update category retrieval to use `form_dict` pathname

Help article categories are now correctly retrieved when accessed via URL routing.

@KerollesFathy #40793 Read
fix framework 2 months ago

Guard against invalid navigator.language in alt shortcuts

Alt shortcut initialization no longer crashes when browsers return invalid BCP-47 language tags.

@kaulith #40838 Read
fix framework 2 months ago

Cascading 503 Multiple MAIL commands not allowed after failed SMTP Send

SMTP connections left in an inconsistent state after mid-transaction errors are now reset before reuse, preventing cascading send failures.

@iamejaaz #40837 Read
CRM 3.5k 1 update
fix crm-sales 2 months ago

Commentbox regressions after frappe-ui update

Users can now be mentioned in comments and comments appear immediately without requiring page reload.

@shahzeelahmed #2469 Read
Helpdesk 3.4k 1 update
fix other-apps 2 months ago

Bump frappe UI to beta-24

Resolves component API regressions introduced by frappe-ui beta update.

@RitvikSardana #3549 Read
LMS 3.2k 1 update
fix other-apps 2 months ago

Fire on_update hook on enrollment progress update

LMS enrollment progress updates now fire on_update and on_change hooks, enabling webhooks and DocType events.

@raizasafeel #2557 Read
b Builder 2.3k 1 update
feat ui-ux 2 months ago

Add 4 corner resize controls and rotation handler

Block builder now supports rotation via 4 corner grips (with Shift for 15° snaps) and rotation-aware resize/padding/margin handlers.

@stravo1 #665 Read
Insights 1k 3 updates
fix other-apps 2 months ago

Restore telemetry via boot_config + track library adoption

Telemetry now works via boot_config pulse client, independent of frappe-ui v1 migration.

@nextchamp-saqib #1229 Read
feat other-apps 2 months ago

Workbook template updates via version + checksum

Workbook templates can now update in-place from the library; pristine copies auto-update on migrate, edited copies get warned manual updates.

@nextchamp-saqib #1228 Read
fix other-apps 2 months ago

Minor issues

Clarifies Allow Data Download interaction with per-role export permissions and fixes drag-drop on touch devices.

@nextchamp-saqib #1225 Read
p Press 563 3 updates
feat other-apps 2 months ago

Deploy Wazuh

Adds Wazuh security monitoring deployment to Press servers.

@ssiyad #6951 Read
feat other-apps 2 months ago

Add support for freemium plan

Site plans now support lifetime free subscriptions via negative trial days in product trials.

@tanmoysrt #6958 Read
fix other-apps 2 months ago

Don't allow Press User role to access internal plans

Internal site plans are no longer visible to Press User role.

@tanmoysrt #6961 Read
o Other 21 updates
feat other-apps 2 months ago

Infinite scroll for All Inboxes

All Inboxes view now uses infinite scroll instead of offset pagination with collapsible date groups.

@s-aga-r #210 Read
feat other-apps 2 months ago

Add find-doc-save-hooks.sh

Utility script surfaces app-side document save hooks that impact performance.

@balamurali27 #19 Read
feat other-apps 2 months ago

Load-aware host selection (part 1) for the proportional size ladder

VM placement now scores feasible Active hosts under operator-chosen strategies (Spread by default) and selects the best.

@the-bokya #30 Read
feat other-apps 2 months ago

Optimistic UI for thread & message actions

Mail actions (archive, trash, star, read, move, etc.) now update UI before server confirms, with automatic rollback on failure.

@krantheman #215 Read
feat other-apps 2 months ago

Backup retention management and audit logging

Adds backup retention policies and audit logging for backup management operations.

@tanmoysrt #194 Read
feat other-apps 2 months ago

Template categories, responsive layout fixes, and catalog cleanup

Template picker now organizes templates into four categories (Marketing, Portfolio, Editorial, Local Business) with responsive improvements.

@surajshetty3416 #5 Read
feat other-apps 2 months ago

Select & edit multiple blocks

Multiple blocks can now be selected with Shift+Click (range) or Cmd/Ctrl+Click (toggle) and edited together if same component type.

@ruchamahabal #191 Read
feat other-apps 2 months ago

Set Route Variables for editing/testing dynamic route pages

Studio now allows setting route variables for testing dynamic pages, replacing non-deterministic first-document fallback.

@ruchamahabal #192 Read
feat other-apps 2 months ago

Note server scripts requirement for script tools and conditions

Adds documentation that Flow script tools and conditions require `server_script_enabled`.

@ShrihariMahabal #68 Read
feat other-apps 2 months ago

Sandboxed trigger conditions and a Run As identity

Flow trigger conditions now run in server-script sandbox (multi-line scripts with result variable) and triggers can run as a specified identity.

@ShrihariMahabal #66 Read
feat other-apps 2 months ago

Back up VM snapshots to S3 and restore them

Adds off-host durability for VM snapshots via point-in-time S3 backup/restore, supporting both cold (disk) and warm (memory + signature) snapshots for clone rehydration.

@the-bokya #117 Read
fix other-apps 2 months ago

Install base packages on macOS via Homebrew too

macOS now installs base tools, databases, and Node through Homebrew with proper sudo prompting and download validation.

@Aradhya-Tripathi #197 Read
fix other-apps 2 months ago

Bench new picks a MariaDB port macOS will never actually bind to

Bench new on macOS no longer picks custom MariaDB ports that Homebrew won't use.

@Aradhya-Tripathi #196 Read
fix other-apps 2 months ago

MacOS is_provisioned() always False, silently resetting a secured DB password

Database provisioning checks on macOS now work correctly, preventing silent password resets on second bench init.

@Aradhya-Tripathi #195 Read
fix other-apps 2 months ago

Fail the bake loud when the freshen unit isn't live at capture

VM snapshot bake now fails loudly if freshen unit isn't alive, preventing silent guest reachability issues.

@the-bokya #118 Read
fix other-apps 2 months ago

Cap old-order sync at 31 inclusive days with precise day bounds and tests

Old order sync respects Unicommerce's 31-day search limit with precise day boundaries and client-side validation.

@Bhavathariniya #452 Read
fix other-apps 2 months ago

Restore screen share after recovery

Screen sharing is now restored after video meeting recovery.

@BreadGenie #219 Read
fix other-apps 2 months ago

Route reconnect lifecycle events

Media reconnection events are now correctly routed after connection recovery.

@BreadGenie #212 Read
fix other-apps 2 months ago

Bound SFU request acknowledgements

Prevents unbounded SFU request acknowledgement queues in video meetings.

@BreadGenie #213 Read
fix other-apps 2 months ago

Recover media after signaling and ICE failures

Video meetings now independently recover transports after signaling and ICE failures, resync participants, and preserve E2EE state.

@BreadGenie #217 Read
feat other-apps 2 months ago

Permission-respecting sandbox for the execute tool

Replaces permissionless Frappe safe_exec with an allowlisted sandbox that enforces the running user's permissions on all reads and writes.

@ShrihariMahabal #67 Read

Tuesday, July 14

ERPNext 38.9k 4 updates
fix accounting 2 months ago

Using get_cached_doc to retrieve template for get_terms_and_conditions

fix(tnc): using get_cached_doc to retrieve template for get_terms_and_conditions

@diptanilsaha #57096 Read
fix stock-manufacturing 2 months ago

Preserve job card transferred quantity

Work Orders with multiple Job Cards showed incorrect quantity in progress by adding quantities from every card instead of using the final effective quantity.

@Sudharsanan11 #57101 Read
fix accounting 2 months ago

Restrict jinja globals in process statement of accounts templates

fix: restrict jinja globals in process statement of accounts templates

@Shllokkk #56458 Read
fix accounting 2 months ago

Get_terms_and_conditions render_template with safe_exec

fix(tnc): get_terms_and_conditions render_template with safe_exec

@diptanilsaha #56977 Read
Frappe 10.7k 15 updates
fix framework 2 months ago

Match quoted and unquoted sort/group references to child tables

fix: match quoted and unquoted sort/group references to child tables

@mihir-kandoi #40809 Read
feat framework 2 months ago

Discover methods

API discovery now includes controller methods alongside RPC methods with tagged union to distinguish.

@ankush #40824 Read
feat framework 2 months ago

Retry failed deliveries on a backoff schedule

Webhook retries now use separate background jobs with increasing backoff instead of sleeping in same job; prevents worker blocking.

@kaulith #38913 Read
feat ui-ux 2 months ago

Virtualization and pagination in kanban board

Kanban board now virtualizes and paginates instead of loading all documents at once; solves initial load slowness and freeze on scroll for large datasets.

@sumitjain236 #40343 Read
feat framework 2 months ago

Add SafeDoc class

SafeDoc class extends _dict with internal Document methods for safer eval contexts.

@AarDG10 #40687 Read
fix framework 2 months ago

Keep response agnostic

fix(pddr): keep response agnostic

@AarDG10 #40787 Read
fix ui-ux 2 months ago

UX misleading as there is no cap in backend

fix(email_report): UX misleading as there is no cap in backend

@Bowrna #40827 Read
fix framework 2 months ago

Warn and auto-clear disabled default print format

Disabling a default Print Format left it silent and confusing; now warns via confirm and auto-clears on save.

@KerollesFathy #40531 Read
fix framework 2 months ago

Prevent child row identity corruption on sync after reorder

Child table rows could become misaligned after save if backend reordered or removed rows; reconciliation now matches by document name instead of array index.

@kaulith #40656 Read
fix framework 2 months ago

Avoid false matching custom queue name with default ones

Custom queue named `schedulelong` would false-match under `queue=long` via endswith check; switched to exact match.

@Bowrna #40822 Read
fix framework 2 months ago

Password strength check fails on long random passwords

Pasting long passwords (like manager-generated ones) caused 500 error because error response itself failed to serialize.

@kaulith #40783 Read
fix framework 2 months ago

List toolbar keeps mobile layout after the viewport gets wider

Layout decision was made once at construction time; resizing window or rotating phone left toolbar stuck in original layout.

@kaulith #40811 Read
fix framework 2 months ago

Don't block logged-in users from commenting

Bad conflict resolution in backport kept guest-only anti-spoof check in logged-in branch; every logged-in comment was incorrectly rejected with "Please login".

@iamejaaz #40833 Read
fix framework 2 months ago

Validate HTTP method for document calls

fix(api): validate HTTP method for document calls

@ankush #40819 Read
fix framework 2 months ago

Data masking ignores role permissions for child table fields

Masking code never passed parenttype to Meta.get_permissions(), causing child fields to always appear masked regardless of role permissions.

@kaulith #40800 Read
CRM 3.5k 2 updates
feat crm-sales 2 months ago

Data Enrichment for CRM Lead, Deal and Organization

First-party domain enrichment; crawls company website and extracts structured facts (JSON-LD, Open Graph, meta tags) to enrich CRM records without third-party APIs.

@ps173 #2445 Read
breaking crm-sales 2 months ago

Scope state-lookup failure test to get_state_options only

Test patching was breaking earlier boot steps; scoped patch to only the affected function.

@ps173 #2458 Read
Helpdesk 3.4k 3 updates
fix other-apps 2 months ago

Recent tickets alignment

fix: recent tickets alignment

@RitvikSardana #3543 Read
fix other-apps 2 months ago

Customer portal permission banner

Dialog to revert end users to access each other's tickets.

@RitvikSardana #3541 Read
fix other-apps 2 months ago

Preserve formatting for thunderbird received emails

Mails from Thunderbird use `\n` for spacing but lacked HTML formatting; now renders with proper line breaks.

@aerodeval #3530 Read
LMS 3.2k 1 update
feat other-apps 2 months ago

Build and upload prebuilt assets on push

Builds JS/CSS + Vue SPA on push to develop/main/version-* and uploads as rolling `assets-` release for benches to download prebuilt assets.

@AryamanSharma14 #2515 Read
p Press 563 3 updates
feat other-apps 2 months ago

Gate local payment tabs behind role permission

feat(partner): Gate local payment tabs behind role permission

@shadrak98 #6933 Read
feat other-apps 2 months ago

Improve partner onboarding

Added approved_on field, company logo upload, link to Frappe School batches, sales contact in sidebar.

@prathameshkurunkar7 #6932 Read
feat other-apps 2 months ago

Add signup-method and create-site-failed funnel events

Extended SaaS signup funnel with client-side signals: signup_via_email/google and trial_create_site_failed.

@nextchamp-saqib #6943 Read
o Other 20 updates
fix other-apps 2 months ago

Update release version

fix: update release version

@asmitahase #56 Read
feat other-apps 2 months ago

Merge develop to main

Merge develop to main

@prathameshkurunkar7 #136 Read
feat other-apps 2 months ago

Pull @framework/ui components and upgrade frappe-ui to beta 24

feat: pull @framework/ui components and upgrade frappe-ui to beta 24

@ruchamahabal #189 Read
feat other-apps 2 months ago

Add categories to template group manifests and catalog

Templates can now belong to multiple categories (e.g. Portfolio + Marketing) passed through in catalog for consumer filtering.

@surajshetty3416 #4 Read
feat other-apps 2 months ago

Declare Frappe Cloud version compatibility

Added [tool.bench.frappe-dependencies] to pyproject.toml so Frappe Cloud validates app compatibility during installs/updates.

@parthgarachh #60 Read
feat other-apps 2 months ago

Support Debian, Fedora and Arch alongside Ubuntu and Alpine

Installer now detects distro from /etc/os-release and uses per-distro package primitives (apt/dnf/pacman/xbps/apk).

@ssiyad #177 Read
feat other-apps 2 months ago

JWKS-based remote session login

Central can mint tokens for bench login and generate site-login SID via dummy JWKS server.

@tanmoysrt #190 Read
feat other-apps 2 months ago

SSH Key Management

feat: SSH Key Management

@tanmoysrt #193 Read
feat other-apps 2 months ago

Gate multi-bench UI/API behind admin.allow_bench_management

feat: Gate multi-bench UI/API behind admin.allow_bench_management

@tanmoysrt #188 Read
fix other-apps 2 months ago

Trusted-proxy nginx gating and local domain validation

fix: trusted-proxy nginx gating and local domain validation

@tanmoysrt #189 Read
fix other-apps 2 months ago

Update via PyPI

fix: update via PyPI

@ankush #40 Read
feat other-apps 2 months ago

Discover and invoke doctype methods

Extends API discovery to include controller methods; frappectl method list/search now cover new surface.

@ankush #38 Read
breaking other-apps 2 months ago

Protect system-generated rows

Lets apps ship builtin knowledge and system rows managed via migrate-time sync without users breaking them from the Desk.

@ShrihariMahabal #65 Read
feat other-apps 2 months ago

Stop response

Stop button while response streams to abort and finalize run; deny tool-approval now ends turn instead of continuing.

@ShrihariMahabal #64 Read
feat other-apps 2 months ago

Import & Export Contacts (JMAP + .vcf)

Submittable Contacts Exchange DocType for background import/export with jmap (round-trippable JSContact) and .vcf (vCard 4.0) formats.

@s-aga-r #170 Read
feat other-apps 2 months ago

All Inboxes — unified inbox across all accounts

Merges Inbox of every linked account into single newest-first list for viewing personal and shared accounts together.

@s-aga-r #207 Read
feat other-apps 2 months ago

Replace mailbox pagination with infinite scroll

Next batch appends as you scroll instead of refetching 25-row pages; already-loaded rows never re-fetched.

@krantheman #208 Read
fix other-apps 2 months ago

Preserve party contacts and addresses on dirty phone / GSTIN data

Invalid phone fields and GSTIN state code mismatches were silently losing party email/name on import; now salvaged with validation.

@parthgarachh #61 Read
fix other-apps 2 months ago

Base amount for EPF calculation

fix: Base amount for EPF calculation

@deepeshgarg007 #60 Read
fix other-apps 2 months ago

Multiple writer issues

Fixed font size and family features being broken, and redone layout for Writer to fix scroll issue.

@safwansamsudeen #202 Read

Monday, July 13

ERPNext 38.9k 6 updates
fix accounting 2 months ago

Make represents company field in purchase invoice ignore user pe…

fix: make represents company field in purchase invoice ignore user pe…

@mihir-kandoi #57073 Read
fix accounting 2 months ago

Allow asset repair creation for fully depreciated assets

Removed restriction preventing asset repairs on fully depreciated assets to allow expense tracking for still-active assets.

@ssakthivelmurugan #55276 Read
fix stock-manufacturing 2 months ago

Propagate project from job card to stock entry

Added missing project field copy from job card to stock entry in pick list workflow.

@mihir-kandoi #57069 Read
fix stock-manufacturing 2 months ago

Link job card in stock entry created from pick list

Stock entries created from pick lists against job card material requests now properly set job_card, job_card_item, and fg_completed_qty so the job card recognizes the transfer.

@mihir-kandoi #57044 Read
fix accounting 2 months ago

Accounting dimension search matching unrelated records

Fixed search matching for check-type dimension fields (e.g., Cost Center) that incorrectly matched unrelated records due to type coercion on non-numeric input.

@mihir-kandoi #57070 Read
fix accounting 2 months ago

Enforce read permission on ledger preview endpoints

Ledger preview endpoints were missing permission checks, allowing any authenticated user to read GL/SL data for documents they lack access to.

@rohitwaghchaure #57039 Read
Frappe 10.7k 9 updates
feat ui-ux 2 months ago

Zone divider polish, inline title row, drag-resize table columns

Print format builder improvements: zone dividers now show as light-gray labels with "repeats on all pages" hints; inspector controls are inline; table columns support drag-to-resize.

@iamejaaz #40794 Read
feat ui-ux 2 months ago

Empty state component

New standard empty state component for list views, dashboards, and reports; replaces duplicate implementations in embedded lists and DocType settings.

@nikkothari22 #40799 Read
feat ui-ux 2 months ago

Component library

Added a new component library to Frappe Framework with accessibility and security baked in, matching the Espresso design system; includes a Component Explorer page for viewing all variations and sample code.

@nikkothari22 #40758 Read
fix framework 2 months ago

Fold table colour controls into the style section

Moved table header/border color pickers into Style section alongside field controls; fixed label alignment issues.

@khushi8112 #40780 Read
fix ui-ux 2 months ago

Pixel parity between builder canvas and print output

Converted stylesheet spacing from rem to compensated em to match builder canvas rendering against wkhtmltopdf and Chrome output.

@iamejaaz #40782 Read
fix developer-experience 2 months ago

Close color picker on outside click and swatch pick

Color picker popovers now properly close on outside clicks and swatch selection; consolidated duplicate color-control mount logic.

@iamejaaz #40801 Read
fix ui-ux 2 months ago

Render rating stars from fraction values

Fixed rating field rendering in print builder; values stored as 0-1 fractions now correctly scale to star counts per field options instead of crashing.

@iamejaaz #40796 Read
fix ui-ux 2 months ago

Postgres GroupingError when filtering list views by child-table fields

Fixed postgres query generation when filtering by child-table fields with linked reference titles; now properly aggregates or includes link-table columns in GROUP BY.

@mihir-kandoi #40602 Read
fix framework 2 months ago

Respect user permissions in get_user_defaults

Permission filter in get_user_defaults was discarding results; now properly prevents auto-setting default values that the user has no User Permission for.

@deepeshgarg007 #40750 Read
b Builder 2.3k 1 update
feat ui-ux 2 months ago

Re-arrange blocks right from canvas just by dragging

Users can now drag and reorder blocks directly on the canvas without jitter or layout shifts.

@surajshetty3416 #667 Read
o Other 3 updates
fix other-apps 2 months ago

Correct DocType casing in read tool label

fix: correct DocType casing in read tool label

@ShrihariMahabal #63 Read
feat other-apps 2 months ago

App validation

Pre-install app validations to ensure internal and external imports are accounted for and directory structure is correct.

@Aradhya-Tripathi #175 Read
fix ui-ux 2 months ago

Avoid circular imports of chunks

fix: avoid circular imports of chunks

@BreadGenie #834 Read

Sunday, July 12

ERPNext 38.9k 8 updates
feat accounting 2 months ago

Explain FIFO allocation of fixed Discount Amount on Sales Order

Add an informational description to the Additional Discount Amount field explaining how fixed discounts behave across multiple deliveries and invoices.

@umairsy #56436 Read
fix accounting 2 months ago

Allow negative balance in bank statement import

Accept negative opening balances during bank statement imports.

@nikkothari22 #56959 Read
fix accounting 2 months ago

Update events order by date ascending

Sort Lead activities by due date instead of arbitrary order.

@Pandiyan5273 #56963 Read
fix accounting 2 months ago

Render columnar financial statements

Display data in the Horizontal Balance Sheet columnar report template instead of showing empty results.

@ervishnucs #56921 Read
fix accounting 2 months ago

Read user permissions from current session user in payment reconciliation

Refresh user permission filters at reconciliation time instead of capturing them at document creation, fixing filters when the session user changes.

@ervishnucs #56782 Read
fix stock-manufacturing 2 months ago

Map stock_qty in apply_price_list_on_item

Convert transaction quantity to stock quantity before evaluating Pricing Rules when items use alternative UOMs, preventing quantity-band rules from being inconsistently applied.

@ervishnucs #56869 Read
fix accounting 2 months ago

Remove incorrect Payable account_type from Customer Deposits in Philippines CoA

Fix non-deterministic default payable account selection caused by duplicate account_type in the Philippines Chart of Accounts template.

@raghavisruia #57018 Read
fix accounting 2 months ago

Retain invoice table on opening invoice creation error

Preserve invoice data instead of clearing the table when opening invoice validation fails, avoiding forced re-entry.

@Pandiyan5273 #56353 Read
Frappe 10.7k 15 updates
feat ui-ux 2 months ago

Print format builder colour styling + copy/paste

Add colour styling for table headers/borders and field text, plus copy/paste support for fields and sections in the print format builder.

@khushi8112 #40754 Read
feat framework 2 months ago

Min_value and max_value properties for numeric fields

Allow Int, Float, Currency, and Percent fields to declare validation bounds in DocType and Customize Form, with validation running on save.

@kaulith #40595 Read
fix framework 2 months ago

Auto-assignment fails to follow document when triggered by web user

Apply ignore_permissions when creating follow entries during auto-assignment from web user submissions.

@kaulith #40503 Read
fix ui-ux 2 months ago

Print format builder table + preview fixes

Center serial-number columns, round section backgrounds in print output, and keep preview document selection in sync.

@khushi8112 #40751 Read
fix framework 2 months ago

Assign to filter fails with type validation error on strict stacks

Accept current_filters as either string or list to fix type validation when toggling the Group By dropdown in the Assign To filter.

@kaulith #40764 Read
fix framework 2 months ago

Return consistent request ID

Return a consistent request ID to allow tools to query recordings easily.

@ankush #40767 Read
fix framework 2 months ago

"Show all activity" toggle showing white when enabled

Fix toggle appearance when the "Show all activity" filter is enabled.

@KerollesFathy #40760 Read
fix framework 2 months ago

Duration picker opens away from the field in scrolled grids

Position the duration picker using viewport coordinates and keep it anchored while scrolling or resizing.

@kaulith #40766 Read
breaking framework 2 months ago

Re-evaluate link_filters per search without breaking doc-based get_query

Fix crashes when Link fields have both Customize Form filters and programmatic set_query reading the document.

@gajjug004 #40413 Read
fix framework 2 months ago

Guard against None table field in load_doc_before_save

Default to an empty list when child table fields are None to prevent TypeError during pre-save processing.

@kaulith #40598 Read
fix framework 2 months ago

Clear if_owner on permission rows above level 0

Validate and clear if_owner flags on higher permission levels where they are ignored, aligning stored permissions with framework behavior.

@kaulith #40291 Read
fix framework 2 months ago

Translations not applied in background jobs

Set frappe.local.lang after initializing the job user so translations use the job user's language instead of the site default.

@kaulith #40637 Read
fix ui-ux 2 months ago

Harden DCR and cleanup OAuth authorization UI

Improve OAuth Device Code Request security and align UI with design standards.

@ankush #40770 Read
fix framework 2 months ago

Add egress URL validation for server-side fetches

Validate egress URLs for server-side fetches to prevent SSRF attacks.

@AarDG10 #40542 Read
fix framework 2 months ago

Hash bearer tokens at rest

Store OAuth access and refresh tokens as SHA-256 digests instead of plaintext, decoupling document names from tokens and adding index coverage for lookup.

@ankush #40762 Read
CRM 3.5k 1 update
fix crm-sales 2 months ago

Date 'Between' filter throws 'split is not a function'

Handle DateRangePicker's array value format instead of expecting a string for date range filters.

@michellealva #2442 Read
b Builder 2.3k 1 update
fix ui-ux 2 months ago

Remove clientScript from page's block JSON

Stop duplicating clientScript in page block JSON when extending from a component.

@stravo1 #663 Read
o Other 5 updates
fix other-apps 2 months ago

Remove root redirect from website redirects

Stop redirecting the root path to allow users to set their default home URL.

@diniemasjuki #175 Read
fix other-apps 2 months ago

Don't override favicon for mail and calendar

Preserve app-specific favicons instead of overriding them globally.

@BreadGenie #197 Read
fix other-apps 2 months ago

Don't reload on switching apps

Stop reloading the page when switching between suite apps.

@BreadGenie #198 Read
fix ui-ux 2 months ago

Bump reka-ui to 2.9.9 so dialog inputs focus on mouse click

Upgrade reka-ui to fix a regression where dialog overlays suppressed focus on mouse clicks to inputs and contenteditable regions.

@mvanhorn #831 Read
fix other-apps 2 months ago

Harden API paths, config updates, and downloads

Harden API paths and configuration handling in frappe-cli.

@ankush #34 Read

Saturday, July 11

ERPNext 38.9k 8 updates
fix stock-manufacturing 2 months ago

Correct stock ageing value for moving average and lifo items

Stock Ageing report values are now correct for Moving Average and LIFO valuation methods; each remaining slot is revalued to qty × current rate.

@Sudharsanan11 #56693 Read
fix stock-manufacturing 2 months ago

Pick list serial batch posting date

Pick list serial/batch handling during posting now correctly applies posting dates.

@Pandiyan5273 #57015 Read
fix stock-manufacturing 2 months ago

Pick list serial batch posting date

Pick list serial/batch posting dates are now handled correctly.

@Pandiyan5273 #57014 Read
fix accounting 2 months ago

Validate planned end date is not before planned start date in wo…

Work Order now validates that planned end date is not before planned start date.

@Pandiyan5273 #57019 Read
fix accounting 2 months ago

Make trend report based-on and group-by column labels translatable

Trend report column labels for based-on and group-by are now translatable.

@Pandiyan5273 #57027 Read
fix stock-manufacturing 2 months ago

Link job card in stock entry created from pick list

Stock Entries created from Pick Lists against Job Card Material Requests now properly set job_card and related fields, so the Job Card recognizes the material transfer.

@mihir-kandoi #57031 Read
fix accounting 2 months ago

Fetch payment entry reference amounts from invoice

Payment Entry created from a Payment Request now correctly shows the full invoice amount in the Payment References table instead of only the paid amount from the request.

@ervishnucs #56928 Read
fix accounting 2 months ago

Use correct mapper path for make_work_orders call

Work Order creation from Sales Order was broken because the JS call still resolved to the old sales_order.py path instead of the new mapper.py location.

@Shllokkk #57045 Read
Frappe 10.7k 16 updates
feat ui-ux 2 months ago

Add generic utilities for styling and layout

Added generic utility classes for styling and layout based on the Espresso design system.

@nikkothari22 #40755 Read
feat framework 2 months ago

Add hook to allow drive to overwrite file perms

Added hook to allow Drive to override File permissions independent of Framework defaults.

@safwansamsudeen #40752 Read
feat framework 2 months ago

Expose source code over discovery API

Framework now exposes source code over the discovery API.

@ankush #40757 Read
fix framework 2 months ago

Collapsible section collapses while typing in a child table row form

Editing a field in a collapsible section of a grid row was causing the section to collapse; now preserves expansion state during refresh.

@kaulith #40711 Read
fix framework 2 months ago

Child table header background/radius scoped to row, not cells

Child table header styling now applies to the row instead of individual cells, enabling proper border radius on a rounded container.

@iamejaaz #40729 Read
fix ui-ux 2 months ago

Contrast on custom HTML sidebar field in print format builder

Print format builder custom HTML sidebar field now has proper contrast in dark mode.

@KerollesFathy #40641 Read
fix ui-ux 2 months ago

Dashboard quick list check filter drops "= No"

Dashboard quick list check filters with "= No" were being dropped because standard checkboxes couldn't distinguish unchecked from no-filter; now kept as regular filters.

@kaulith #40635 Read
fix framework 2 months ago

Bind inline edit to row at edit start, not submit

Report View inline edits were saving to the wrong record if a quick filter changed while editing; now binds to the row captured at edit start.

@kaulith #40617 Read
breaking framework 2 months ago

Scope index subquery to current schema in get_table_co…

MariaDB index metadata lookup was reading from all databases with matching table names instead of just the current schema, breaking multi-site migrations.

@kaulith #40519 Read
fix framework 2 months ago

Preserve guest-submitted name/email

Guest comments were being overwritten with "Guest" because an anti-spoofing override ran above the guest check; now scoped to logged-in users only.

@surajshetty3416 #40739 Read
fix framework 2 months ago

Don't mutate caller's get_query().filters in MultiSelectDialog

MultiSelectDialog was mutating the caller's shared filters object when reused across searches; now works with immutable filters.

@KerollesFathy #40618 Read
fix framework 2 months ago

Only allow text in description

Description field now restricts input to plain text only.

@sokumon #40748 Read
fix ui-ux 2 months ago

Escape computed url in EmbeddedList link column

Escape computed URLs in EmbeddedList link columns to prevent XSS.

@diptanilsaha #40749 Read
fix framework 2 months ago

Revert "fix: make postgres transactions read committed by default"

Reverted postgres transaction isolation level change.

@mihir-kandoi #40753 Read
fix ui-ux 2 months ago

Use static ?url imports for Leaflet images so the rolldown build can resolve them

Studio build was failing because rolldown couldn't resolve Leaflet image imports; switched to static ?url imports.

@ruchamahabal #40759 Read
fix framework 2 months ago

Allow loopback redirect URIs

Enables HTTP on loopback URIs (127.0.0.1/localhost) for OAuth redirects in native apps, per RFC 8252.

@ankush #40761 Read
CRM 3.5k 1 update
feat crm-sales 2 months ago

Render state options on address form when India Compliance is installed

CRM Address form now renders state field as an autocomplete when India Compliance is installed, matching Desk behavior.

@ps173 #2435 Read
Helpdesk 3.4k 1 update
fix other-apps 2 months ago

Prevent AssignTo crash when current user is the only agent

AssignTo dropdown was crashing when the session user was the only agent; fixed variable rename that left `seen` undefined.

@aerodeval #3534 Read
Insights 1k 1 update
fix other-apps 2 months ago

Get_list dashboards and queries

Fixed get_list endpoints for dashboards and queries.

@nextchamp-saqib #1224 Read
p Press 563 4 updates
fix other-apps 2 months ago

Use host name if present when trying to notify users of incoming site archival

Site archival notifications now use the host name when present for better user clarity.

@phot0n #6924 Read
fix other-apps 2 months ago

Exclude archived sites' updates from archive block

Bench archival was incorrectly blocked if a site that had been involved in a fatal update was later archived; the guard now excludes archived sites.

@regdocs #6927 Read
fix other-apps 2 months ago

Remove duplicate primary btn in CommunicationInfoDialog

Removed visually duplicate primary button from communication info dialog.

@siduck #6929 Read
fix other-apps 2 months ago

Scope plan fallback to server's own cluster

Database servers on legacy plans were shown all enabled plans across all regions instead of just their own; now only platform filter is relaxed during fallback, never cluster.

@tanmoysrt #6931 Read
o Other 13 updates
fix other-apps 2 months ago

Trim guide for agents

CLI guide now focuses exclusively on agent use cases; removed human-centric auth and profile management instructions.

@ankush #36 Read
feat other-apps 2 months ago

Disable mail account

Users can now disable their mail account; when disabled, an optional Stalwart role from Mail Settings is applied to restrict mail server access.

@s-aga-r #174 Read
feat other-apps 2 months ago

Launch CLI coding agents wired up for Frappe

Added frappe-cli assistant command to launch CLI coding agents (pi, claude, codex) with Frappe-specific system prompts and site context.

@ankush #28 Read
feat other-apps 2 months ago

Add self-upgrade command

CLI can now self-upgrade using the original installation backend (uv tool, pipx, pip) with automatic detection of the installer.

@ankush #29 Read
feat other-apps 2 months ago

Notify when a newer version is available

CLI now passively notifies users when a newer version is available via a one-line stderr nudge, leveraging the existing update command.

@ankush #30 Read
feat ui-ux 2 months ago

Introduce themes for avatar

Avatar component now supports themes with deterministic color assignment by label, defaulting to gray with overrideable options.

@BreadGenie #828 Read
feat other-apps 2 months ago

Add manual refresh button for new emails

Mail UI now has a manual refresh button for on-demand email fetching instead of waiting for polling.

@s-aga-r #189 Read
feat other-apps 2 months ago

Route accepted senders to Inbox and let spam fall through screening

Mail screening gate now routes accepted senders straight to Inbox while letting unrecognized mail fall through to server-side spam filtering.

@s-aga-r #190 Read
feat other-apps 2 months ago

Feat(meet-sfu)!: use `webRtcServer` for minimising port usage

SFU now uses webRtcServer with one port per worker instead of one per transport, dramatically reducing open ports on the server.

@BreadGenie #191 Read
feat other-apps 2 months ago

Fetch source if available

CLI now fetches source code when available for enhanced introspection.

@ankush #31 Read
feat other-apps 2 months ago

Add OAuth 2.0 browser login

Added OAuth 2.0 authorization-code + PKCE flow for interactive browser login; access token refreshes automatically and no secret is stored locally.

@ankush #33 Read
fix ui-ux 2 months ago

Dark-mode event colors

Calendar event colors now render correctly in dark mode.

@BreadGenie #827 Read
fix other-apps 2 months ago

Block disabled admins from admin endpoints

Disabled Mail Admins or System Managers with valid sessions or API keys could restore their own access by calling enable_members without involving another admin; the fix scopes the override to logged-in users only.

@s-aga-r #188 Read

Friday, July 10

ERPNext 38.9k 17 updates
feat stock-manufacturing 2 months ago

Support partial transfer from pick list

Pick list now supports partial transfers with Work Order status updates on each partial completion.

@Sudharsanan11 #56701 Read
feat stock-manufacturing 2 months ago

Create material request for raw materials from work order

Work Order form now includes button to create Material Request for raw materials, adding requisition step before transfer.

@Pandiyan5273 #56961 Read
feat stock-manufacturing 2 months ago

Confirmation dialog when enabling negative stock on Item

Item-level negative stock toggle now shows same compliance warning as global setting, alerting users to FIFO/valuation implications.

@raghavisruia #56428 Read
feat stock-manufacturing 2 months ago

Allow group warehouse for raw material availability in production plan

Production Plan now accepts optional group warehouse for raw material availability checks, allowing stock assessment across sibling warehouses while receiving into leaf warehouse.

@Sudharsanan11 #56948 Read
fix accounting 2 months ago

Patch moved create_company_custom_fields from pre_model_sync to post_model_sync

Company custom field creation patch moved to post_model_sync for correct execution order.

@diptanilsaha #56962 Read
fix accounting 2 months ago

Match depreciation schedule rows at currency precision to avoid duplicate JEs

Depreciation schedule now matches rows at currency precision instead of exact float equality, preventing duplicate journal entries for assets with many decimal places.

@khushi8112 #56964 Read
fix accounting 2 months ago

Skip allowed users check when frappe crm is installed locally

CRM sync now handles local CRM installation alongside remote, skipping user allowlist validation and auto-cleaning settings on app install/uninstall.

@diptanilsaha #56674 Read
fix accounting 2 months ago

Revert "refactor(sales_person_wise_transaction_summary)"

Sales Person-wise Transaction Summary reverted to SQL from query builder to fix v15 compatibility (ignore_permissions not supported).

@ervishnucs #56924 Read
fix accounting 2 months ago

Use company currency instead of global default in report

Trend reports now display company currency symbol instead of global default, fixing symbol mismatches in multi-company environments.

@ervishnucs #56561 Read
fix accounting 2 months ago

Make trend report column labels translatable

Trend report headers (Item, Item Name, Customer, Currency, etc.) now translatable instead of hardcoded English.

@Pandiyan5273 #56913 Read
fix stock-manufacturing 2 months ago

Pick list serial batch posting date

Pick list posting date handling fixed to prevent TypeError and date validation errors in serial/batch operations.

@Pandiyan5273 #56957 Read
fix stock-manufacturing 2 months ago

Stock entry handler and transaction controller fixes

Type-hint and module refactors fixed to restore client-side whitelisted method calls for apply_price_list and stock_entry_handler.

@Sudharsanan11 #56984 Read
fix accounting 2 months ago

Validate planned end date is not before planned start date in work order

Work Order validation now prevents end date before start date.

@Pandiyan5273 #56932 Read
fix stock-manufacturing 2 months ago

Rename variant item_code/item_name when attribute abbreviation changes

Item variant codes and names now update when parent attribute abbreviation changes, keeping variants in sync with attribute configuration.

@Pandiyan5273 #56909 Read
fix stock-manufacturing 2 months ago

Update BOM operations when routing is changed

BOM operations table now updates when routing is changed on a new version, no longer showing stale operations from original BOM.

@harisansari008 #56979 Read
fix accounting 2 months ago

Partial delivery note against pick list

Partial deliveries against pick lists now handled correctly.

@rohitwaghchaure #56985 Read
fix accounting 2 months ago

Display outstanding amount using company default currency

Opening Invoice Creation Tool now displays outstanding amount in company's default currency instead of global default, fixing currency symbol in multi-company setups.

@ervishnucs #56785 Read
Frappe 10.7k 27 updates
feat framework 2 months ago

Surface data import failures in log files

Data import row errors now logged via frappe.logger() for visibility in frappe.log and external log aggregation, complementing Data Import Log.

@kaulith #40596 Read
feat framework 2 months ago

Basic error analysis

Error analysis UI added for better error visibility and debugging.

@ankush #40462 Read
fix framework 2 months ago

Show deferred error insert

Developer experience improvements for error handling.

@ankush #40733 Read
fix framework 2 months ago

Postgres Time columns read back with their precision

PostgreSQL Time columns now read back with full precision specification, preventing false type-change detection on every migrate.

@mihir-kandoi #40698 Read
fix framework 2 months ago

Prevent broken pipe from aborting dashboard sync during setup

Dashboard sync now continues if progress stdout fails, making output best-effort instead of aborting setup wizard.

@kaulith #40599 Read
fix framework 2 months ago

Hide Download Report button without read permission

Download Report button now hidden when user lacks read permission.

@KerollesFathy #40594 Read
fix framework 2 months ago

Show table field label instead of doctype name in filter dropdown

Child table filters now show parent table label instead of internal doctype name, improving UX discoverability.

@Abdeali099 #39729 Read
fix framework 2 months ago

Timeline make cards respect full-width toggle

Timeline comment cards now respect full-width toggle setting.

@KerollesFathy #40666 Read
fix framework 2 months ago

Don't auto-set default on every save, only on create

Letterhead default no longer resets on every save, only on initial creation.

@KerollesFathy #40601 Read
fix framework 2 months ago

Normalize Check formatter value with cint to prevent 0 rendering as checked

Check field grid cells now normalize string "0" to integer 0 before rendering, preventing false "checked" state in web form grids.

@gajjug004 #40653 Read
fix framework 2 months ago

Apply cint to Int fieldtype in format_value

Int columns now consistently formatted with cint on server side, matching client-side formatter and fixing PDF/email report decimal display.

@gajjug004 #39698 Read
fix framework 2 months ago

Icon label styles

Icon label styling fixed.

@sokumon #40699 Read
fix ui-ux 2 months ago

Remove border from filled search bar

Search bar border removed from filled state, eliminating double edge against navbar background.

@kaulith #40686 Read
fix framework 2 months ago

Misc error log fixes

Error logging improvements for DX.

@ankush #40730 Read
fix framework 2 months ago

Queued telemetry events must survive clear_cache()

Telemetry events persisted across cache clear operations.

@nextchamp-saqib #40722 Read
fix ui-ux 2 months ago

Dont explode plucked scalars on masked doctypes

Query builder now handles masked doctypes correctly without exploding scalar results.

@Bowrna #40654 Read
fix framework 2 months ago

Handle orphan module

Setup now handles orphan modules without failing.

@sokumon #40674 Read
fix framework 2 months ago

Allow missing link_filters in validate_fields function

Patch compatibility restored for ≤v14 databases where link_filters column doesn't exist during pre_model_sync.

@barredterra #40704 Read
fix framework 2 months ago

Child table numeric filters generate invalid postgres query

Nullability checks now performed against resolved child DocType, preventing invalid COALESCE wrapping on PostgreSQL numeric fields.

@kaulith #40636 Read
fix framework 2 months ago

Xls file import fails with "startswith first arg must be str or a tuple of str, not bytes"

Legacy .xls OLE2 files now preserved as binary, fixing xlrd parsing that failed on text-decoded data.

@kaulith #40619 Read
fix framework 2 months ago

Code fields show stale value after navigating between documents

Code field editors now repaint when expanded from collapsed sections, fixing display of stale content from previous documents.

@kaulith #40620 Read
fix ui-ux 2 months ago

Form does not render when form sidebar is disabled

Web Page form rendering fixed when form_sidebar user setting is disabled, preventing TypeError in add_web_link.

@kaulith #40708 Read
fix framework 2 months ago

Print view is unusable on mobile

Print preview iframe now pinned to actual page width and toolbar repositioned for mobile, preventing content overflow and improving usability.

@kaulith #40709 Read
fix framework 2 months ago

Notification subject shows "None" when the title field is empty

Notification subjects now use document name fallback instead of literal "None" when configured title field is empty.

@kaulith #40713 Read
fix ui-ux 2 months ago

Kanban board leaks memory and hangs on repeated re-render

Kanban watchers now properly unsubscribe on re-initialization, preventing memory leak and performance degradation on repeated refreshes.

@kaulith #40626 Read
fix ui-ux 2 months ago

Restrict print format builder preview to sys. man.

Print format builder API restricted to System Manager role, preventing unauthorized access via preview endpoint.

@AarDG10 #40710 Read
fix framework 2 months ago

Hardening oauth endpoints

Approve endpoint restricted to POST-only with CSRF token hardening in OAuth confirmation flow.

@AarDG10 #40073 Read
HR 8.7k 5 updates
fix hr-payroll 2 months ago

Link field clears when selected value is outside default options page

Link field values now persist when selected value falls outside default page by injecting value into options and reloading on clear.

@iamkhanraheel #4808 Read
fix hr-payroll 2 months ago

Resolve blank employee number and reports_to in Profile

PWA Profile now displays employee_number (when using name-based IDs) and reports_to by bypassing desk-side hiding and permission restrictions.

@iamkhanraheel #4833 Read
fix hr-payroll 2 months ago

Implement close warning for job openings and related validation.

Job Opening close now shows confirmation warning if linked Staffing Plan still has unfilled positions, while still allowing close if needed.

@krishna-254 #4798 Read
fix hr-payroll 2 months ago

Include expense claim line projects in project total expense claim

Project total expense claim calculation now includes expense claim lines linked at the detail level, not just document-level project links.

@ervishnucs #4865 Read
fix hr-payroll 2 months ago

Add permission check for half-day attendance updates

Half-day attendance mutations now require write permission on Attendance doctype, closing permission bypass in mark_employee_attendance.

@pratheep-bit #4739 Read
Helpdesk 3.4k 1 update
fix other-apps 2 months ago

Display proper labels for time elapsed

Activity timeline now displays correct relative date labels (e.g. "2 days ago" instead of "yesterday" for 40+ hour intervals).

@aerodeval #3529 Read
LMS 3.2k 1 update
fix other-apps 2 months ago

Resolve race condition hiding course outline for non admins

Course outline loading skeleton added to prevent race condition rendering for non-admin users.

@raizasafeel #2556 Read
b Builder 2.3k 1 update
fix ui-ux 2 months ago

Prevent arrow keys clobbering text InlineInput fields

Arrow key stepping logic now gated to numeric-only inputs, preventing text field values from being replaced with NaN.

@dhruv2x #661 Read
Insights 1k 1 update
feat other-apps 2 months ago

ERPNext workbook templates + prebuilt dashboard gallery

Ships four prebuilt ERPNext dashboards (Sales, Purchasing, Receivables/Payables, Inventory) importable from a Library as cross-app contract via insights_workbooks hook.

@nextchamp-saqib #1220 Read
p Press 563 2 updates
fix other-apps 2 months ago

Show remaining wait time instead of elapsed time for disk resize

Disk resize wait messages now show remaining time (decreasing) instead of elapsed time (increasing), matching user expectations for cooldown UX.

@iamimmanuelraj #6873 Read
fix other-apps 2 months ago

Properly match githuburl in add apps dialog

GitHub URL regex matcher now handles github.com URLs without requiring https:// prepend.

@siduck #6925 Read
o Other 12 updates
feat other-apps 2 months ago

Add Push Subscription tab to Settings

Mail UI Settings now includes Push Subscriptions tab where users can create, view, renew, and delete JMAP subscriptions in bulk.

@s-aga-r #182 Read
feat other-apps 2 months ago

Show SMTP/IMAP/POP details for third-party clients

Mail Settings now displays SMTP/IMAP/POP configuration for third-party mail clients (Thunderbird, Gmail app), configurable via admin Mail Client Configuration table.

@s-aga-r #181 Read
feat other-apps 2 months ago

Add push encryption toggle and fix encrypted push decoding

JMAP push encryption now toggleable (unencrypted by default), and encrypted push decoding fixed to handle base64 body with JSON content-type.

@s-aga-r #184 Read
feat other-apps 2 months ago

Add daily job to renew expiring JMAP push subscriptions

Daily scheduled job now renews JMAP push subscriptions within 3-day expiry threshold, preventing subscription lapse.

@s-aga-r #185 Read
feat other-apps 2 months ago

Add read-only profiles

CLI profiles now support --read-only flag to restrict operations to GET requests only, preventing accidental writes.

@ankush #27 Read
fix other-apps 2 months ago

Unnecesary styling

Unnecessary styling removed.

@asmitahase #44 Read
fix other-apps 2 months ago

Use indiacator pill for styling status fields

Status field styling now consistent using indicator pill component.

@asmitahase #42 Read
fix other-apps 2 months ago

Remove non-standard "Payroll Manager" role from reports

Non-standard "Payroll Manager" role removed from lwf_register, esic_register, bank_mandate_report, and employee_provident_fund_register permissions.

@dhruvpatel374 #39 Read
fix other-apps 2 months ago

Resolve lock-wait timeouts and cut repost overhead in loan write off and repayment repost

Bulk loan write off and repayment repost operations now execute with batching and async reposting instead of single long transaction, eliminating lock timeouts and reducing runtime from hours.

@Nihantra-Patel #1315 Read
fix other-apps 2 months ago

Resolve avatar/presence user from shared session store

Sheets app avatar now displays correct user initials instead of literal "U" by resolving session from shared store instead of window.frappe.

@AsifMulani1 #183 Read
fix other-apps 2 months ago

Relocate email templates to suite app root

Email template loading fixed by relocating templates to app root, restoring frappe.sendmail(template=...) functionality.

@s-aga-r #186 Read
fix other-apps 2 months ago

Validate user login

CLI now validates actual user login instead of accepting Guest or HTML responses.

@ankush #26 Read

Thursday, July 9

ERPNext 38.9k 2 updates
feat accounting 2 months ago

Add grouping by dimension functionality in financial reports

Financial reports now support grouping rows by custom dimensions.

@Abdeali099 #54650 Read
feat accounting 2 months ago

Filter service level agreement link by document type

Service Level Agreement field now filters to show only SLAs configured for that document type.

@barredterra #56954 Read
Frappe 10.7k 5 updates
feat developer-experience 2 months ago

Move microbenchmarks to Frappe project

feat: Move microbenchmarks to Frappe project

@ankush #40671 Read
feat framework 2 months ago

Add validation for link filters to ensure valid JSON format and structure

Added backend validation for link_filters on fields to ensure valid JSON structure.

@barredterra #40667 Read
fix framework 2 months ago

Show link filters if fieldtype is Link

Link filters field now appears in Custom Field configuration when fieldtype is Link.

@barredterra #40663 Read
fix framework 2 months ago

Apply default ordering in v1 & v2 list endpoints

REST list endpoints now apply stable default sort order instead of returning records in undefined order.

@ankush #40670 Read
fix framework 2 months ago

Remove duplicate ellipsis menu button on repeated edit-save

Fixed duplicate menu button creation on repeated workspace edit-save cycles.

@KerollesFathy #40661 Read
Helpdesk 3.4k 1 update
fix other-apps 2 months ago

Redirect responses to correct merged ticket

Responses to merged/closed tickets now append to the target ticket they were merged into instead of reopening the original.

@aerodeval #3506 Read
Insights 1k 2 updates
fix other-apps 2 months ago

Fix German translation for 'Host'

Fix German translation for 'Host'

@ews-pgasser #1217 Read
fix other-apps 2 months ago

Keep POT updates in a single self-updating PR

Weekly POT regeneration now reuses a single stable branch, eliminating accumulating stale PRs with conflicts.

@nextchamp-saqib #1219 Read
o Other 9 updates
feat other-apps 2 months ago

Add Verify SSL option for JMAP connection

Added Verify SSL checkbox to Mail Settings for JMAP, enabling local development with self-signed certificates.

@s-aga-r #176 Read
feat other-apps 2 months ago

Add date-range old-order sync with paginated fetch and duplicate-safe creation

New on-demand backfill job fetches and syncs Unicommerce orders within a date range with pagination and duplicate safety.

@Bhavathariniya #441 Read
feat other-apps 2 months ago

Add --debug to trace requests and server SQL

Global `--debug` flag now traces HTTP traffic and server SQL to stderr (with API keys redacted).

@ankush #22 Read
feat ui-ux 2 months ago

Markdown format for useEditor and

Markdown-backed apps (wikis, docs) can now use `format: 'markdown'` with content carried as markdown string.

@NagariaHussain #824 Read
fix other-apps 2 months ago

Default list sort to 'creation desc'

`frappe doc list` now defaults to newest documents first unless otherwise specified.

@ankush #23 Read
fix other-apps 2 months ago

Map PY state to Puducherry to match ERPNext state list

Unicommerce orders shipping to Puducherry now map to the correct ERPNext state name.

@Bhavathariniya #443 Read
fix other-apps 2 months ago

Refresh access token on 401 and retry once so long-running syncs survive token expiry

Long-running Unicommerce sync jobs now refresh expired tokens on HTTP 401 and retry instead of aborting.

@sudarsan2001 #442 Read
fix other-apps 2 months ago

Bump `dnspython` to ~=2.6.1 (PYSEC-2026-1307)

fix: bump `dnspython` to ~=2.6.1 (PYSEC-2026-1307)

@s-aga-r #177 Read
fix other-apps 2 months ago

Enforce Flow Model permission at runtime

Model selection now enforces User Permissions at runtime, allowing admins to restrict which Flow Models users can run.

@ShrihariMahabal #62 Read

Wednesday, July 8

ERPNext 38.9k 4 updates
fix accounting 2 months ago

Precision issue causing reconciliation error

Fixes floating-point precision errors that blocked account reconciliation. Backported to #56937, #56938.

@rtdany10 #54043 Read
fix accounting 2 months ago

Validate template and its variant in the same Pricing Rule

Prevents false "Multiple Price Rules exist" error when both a template and its variant are added to the same rule, with a save-time validation block.

@Shllokkk #56926 Read
fix accounting 2 months ago

Added permission checks on various whitelisted functions

Adds read permission validation to payment entry detail lookups, bank account, and party account whitelisted functions.

@diptanilsaha #56745 Read
fix accounting 2 months ago

Get_terms_and_conditions render_template with safe_exec

Hardens terms and conditions rendering against code injection by using safe_exec instead of bare render_template.

@diptanilsaha #56944 Read
HR 8.7k 1 update
fix hr-payroll 2 months ago

Include carry forwarded leaves in allocation calculations

Leave allocations now correctly include carry-forwarded leaves from prior periods in the balance calculation.

@krishna-254 #4861 Read
CRM 3.5k 1 update
fix crm-sales 2 months ago

ERPNext Item sync fails in ERPNext v15

Handles v15's tuple-based and v16+'s dict-based price query results for seamless ERPNext integration across versions. Backported to #2420.

@shahzeelahmed #2419 Read
LMS 3.2k 1 update
fix other-apps 2 months ago

Emit images inside pasted list items as image blocks

Images pasted into list items are no longer silently dropped; they're emitted as standalone blocks after the list. Backported to #2551.

@raizasafeel #2550 Read
b Builder 2.3k 1 update
fix ui-ux 2 months ago

Update frappe-ui to v1.0.0-beta.21

Upgrades frappe-ui submodule with 20 typography token migrations across 16 files and Popover component adaptations. Backported to #662.

@surajshetty3416 #659 Read
p Press 563 6 updates
fix other-apps 2 months ago

Remove unnecessary validation in Release Group doctype

Removes an overly restrictive validation check in Release Group. Backported to #6918.

@AyshaHakeem #6917 Read
feat other-apps 2 months ago

Add Plan History tab to site detail page

Shows chronological log of all plan changes with plan details, who changed it, and colour-coded change type (Initial/Upgrade/Downgrade).

@huzan-kazi #6834 Read
feat other-apps 2 months ago

Add a Subscriptions tab to view the team's subscriptions

Adds consolidated Subscriptions view under Billing, grouped by type (sites, servers, marketplace apps), showing plan and installed-site tracking. Backported to #6915.

@Shariqk3 #6836 Read
fix other-apps 2 months ago

Add missing dependent apps to release group

Automatically appends required dependent apps to release groups if missing, preventing manual configuration gaps. Backported to #6916.

@AyshaHakeem #6892 Read
feat other-apps 2 months ago

Sync app source versions from repo on branch change

Automatically syncs app source versions when branches are switched. Backported to #6920.

@siduck #6919 Read
fix other-apps 2 months ago

Only hand out standby sites on the latest bench

Trial sites now receive the latest app builds instead of potentially weeks-old deployments waiting on async migrations. Backported to #6914.

@regdocs #6905 Read
o Other 3 updates
fix other-apps 2 months ago

Generate preview from HTML body

Enables preview generation from HTML body content in email and calendar exports.

@s-aga-r #173 Read
fix other-apps 2 months ago

Mail and calendar export

Restores export functionality for mail and calendar items.

@s-aga-r #172 Read
fix other-apps 2 months ago

Update erpnext helper imports to their new mapper and service modules

Updates imports to ERPNext develop's relocated modules and resolves test suite failures for v17 compatibility.

@Bhavathariniya #445 Read

Tuesday, July 7

ERPNext 38.9k 1 update
fix stock-manufacturing 2 months ago

Workspace for stock and manufacturing

fix: workspace for stock and manufacturing

@rohitwaghchaure #56906 Read
Frappe 10.7k 2 updates
fix framework 2 months ago

Map query timeout and deadlock errors to 508

Aligns error responses with Frappe's concurrent-transaction retry convention for consistent client handling.

@barredterra #40639 Read
fix framework 2 months ago

Remove attribution link from about dialog

fix: remove attribution link from about dialog

@Abdeali099 #40627 Read
HR 8.7k 1 update
fix hr-payroll 2 months ago

Include carry forwarded leaves in allocation calculations

fix(employee_leave_balance): include carry forwarded leaves in allocation calculations

@krishna-254 #4860 Read
CRM 3.5k 3 updates
fix crm-sales 2 months ago

Prefill value from lead while converting to deal

Prefills conversion modal with lead data to reduce data mismatch risk and improve UX.

@shahzeelahmed #2411 Read
fix crm-sales 2 months ago

Remove deprecated pulse api

fix: remove deprecated pulse api

@shahzeelahmed #2408 Read
fix crm-sales 2 months ago

Pass frappe._dict to get_item_price in Item sync (fixes AttributeError on Item insert)

Fixes crash when syncing items by passing frappe._dict (attribute-accessible) instead of plain dict to ERPNext's get_item_price().

@srujan00123 #2407 Read
LMS 3.2k 1 update
fix other-apps 2 months ago

Add json guard on course lesson content

Prevents 500 errors when non-EditorJS content (e.g. raw YouTube URLs) is pasted into course lessons; adds get_editorjs_blocks() helper reused across course outline, quiz, and export flows.

@raizasafeel #2546 Read
Insights 1k 1 update
fix other-apps 2 months ago

Enforce per-role export permission on query download

Fixes RBAC enforcement on query downloads by checking the DocPerm export bit; previously only checked global settings and team membership, rendering Role Permissions Manager's role-level toggle ineffective.

@manish31-oss #1212 Read
o Other 9 updates
feat ai 2 months ago

Agentic ops, Code & Data wiring

feat(AI Integration): Agentic ops, Code & Data wiring

@ruchamahabal #188 Read
feat ui-ux 2 months ago

Recipes gallery homepage + frappe-ui design skill

Adds homepage gallery with eight full-page app screens in desktop and mobile variants, live preview/code switcher, and frappe-ui design guidance.

@netchampfaris #825 Read
fix ai 2 months ago

"Open in ChatGPT/Claude" uses wrong page URL after sidebar navigation

Makes AI share link URLs reactive to SPA navigation instead of binding once at render.

@NagariaHussain #700 Read
fix other-apps 2 months ago

Set max sub category or category max amount while declaring exemptions

fix: set max sub category or category max amount while declaring exemptions

@asmitahase #40 Read
fix other-apps 2 months ago

Recover from malformed tool-call arguments

Treats invalid JSON in tool-call arguments as an error result instead of crashing the Flow Run, allowing weaker models to retry.

@ShrihariMahabal #56 Read
fix other-apps 2 months ago

Report dynamically-mandatory fields in read_screen

Reports fields made mandatory at runtime (via toggle_reqd or mandatory_depends_on) by reading live docfield state instead of static metadata.

@ShrihariMahabal #57 Read
fix other-apps 2 months ago

Don't flag valid third-party links as broken (#575)

Adds User-Agent header to requests and treats 401/403/429 auth wall responses as valid links rather than dead links.

@NagariaHussain #702 Read
fix accounting 2 months ago

Fix(SendCloud)!: update deprecated endpoint and parcel validations

Updates deprecated SendCloud endpoint and removes strict parcel dimension validation that blocked rate fetch and label creation for carriers with flexible requirements.

@MarcCon #90 Read
fix other-apps 2 months ago

Hide unpublished content from search results

Adds is_published check for spaces and handles unpublished page re-indexes immediately instead of through a 5-minute scheduler queue that could back up indefinitely.

@NagariaHussain #701 Read

Monday, July 6

ERPNext 38.9k 11 updates
fix stock-manufacturing 2 months ago

Keep bom_no/is_phantom_item pair coherent in get_bom_items_as_dict

When a BOM lists the same item via both phantom and non-phantom sub-BOMs, independent Max() aggregations could pair one line's phantom flag with another line's bom_no, exploding the wrong sub-BOM.

@mihir-kandoi #56893 Read
fix accounting 2 months ago

Compute budget requested amount per row

Budget checking was computing Sum(qty) × Max(rate) over all matched Material Request items, fabricating totals when items had different rates; now sums per-row (qty × rate).

@mihir-kandoi #56895 Read
fix accounting 2 months ago

Dark theme shop floor

Dark theme styling fix for shop floor.

@rohitwaghchaure #56887 Read
fix accounting 2 months ago

Make Procurement Tracker rows coherent PO lines

Multi-line POs with blank material request items were fabricating rows by pairing one line's item with another line's qty and amount; now uses a subquery to pick the representative line per group.

@mihir-kandoi #56894 Read
fix accounting 2 months ago

Show earliest schedule date as required date

When a Material Request lists the same item on multiple rows with different schedule dates, the consolidated Requested Items report now shows the earliest date instead of the latest, correctly reflecting urgency.

@mihir-kandoi #56897 Read
fix accounting 2 months ago

Campaign with a naming series breaks the UTM Campaign link

When a Campaign uses a naming series, linking to the mirrored UTM Campaign would fail because the link pointed to `campaign_name` instead of the actual document `name`.

@nabinhait #56881 Read
fix accounting 2 months ago

Use transaction-currency outstanding on Dunning for foreign-currency invoices

When a Sales Invoice is posted in a foreign currency against a receivable account in the company currency, creating a Dunning now shows the correct outstanding amount in the transaction currency instead of the party account currency.

@nabinhait #56883 Read
fix stock-manufacturing 2 months ago

Stock Closing Entry duplicate check misses contained date ranges

The duplicate-date validation had a logically inert third condition that never fired, allowing a new date range fully contained within an existing entry to slip through.

@nabinhait #56849 Read
fix stock-manufacturing 2 months ago

Close postgres locking races; gate batch valuation with a txn advisory lock

Fixes two phantom-insert races where concurrent operations could create duplicate stock entries on postgres; gates batch valuation with transaction-scoped advisory locks.

@mihir-kandoi #56905 Read
fix accounting 2 months ago

Scope Production Planning arrival qty to open POs

The report's Arrival Quantity was summing every submitted PO line ever created including fully received ones, overstating incoming stock; now sums only open POs.

@mihir-kandoi #56896 Read
fix accounting 2 months ago

Guard empty group-by detail row in trends

After adding an explicit GROUP BY, a zero-match detail query returns no rows instead of one all-NULL row, which would raise IndexError when accessed; now skipped safely.

@mihir-kandoi #56898 Read
Frappe 10.7k 9 updates
feat framework Editor's pick 2 months ago

Add v2 discovery API

Internal (WIP, no-docs) API v2 endpoints for programmatic endpoint discovery; OpenAPI compatibility left for external apps.

@ankush #40600 Read
feat framework Editor's pick 2 months ago

Add transaction-scoped advisory lock

`frappe.db.transaction_advisory_lock(key)` for postgres: released on transaction commit/rollback, participates in deadlock detection, re-entrant, and shared polling timeout with session-scoped locks.

@mihir-kandoi #40621 Read
fix framework 2 months ago

Print view crash on direct load

Opening `/app/print//` directly threw TypeError because a method reference no longer exists, aborting `print_view.show()` and leaving the page half-rendered.

@iamejaaz #40608 Read
fix framework 2 months ago

Wrap write_only inner fn

Internal function wrapping fix for write_only decorator.

@ankush #40603 Read
fix framework 2 months ago

Avoid field masking when permissions are ignored

Field masking now respects when permissions are explicitly ignored in queries, returning unmasked data where intended.

@ankush #40613 Read
fix framework 2 months ago

Limit to system manager

Permission restriction to system manager role.

@ankush #40616 Read
feat framework 2 months ago

Image and barcode blocks with width option

Print Format Builder now supports Image and Barcode blocks; linear barcodes via JsBarcode (browser print), QR codes via pyqrcode server-side as data-URI PNG.

@iamejaaz #40612 Read
fix framework 2 months ago

Skip error log for expected exceptions

Adds `skip_error_log` flag to exception classes so expected/benign errors don't clutter the Error Log.

@ankush #40610 Read
fix framework 2 months ago

Don't probe external links with a nonexistent fieldname in get_open_count

On postgres sites, opening the Connections tab on a form would 500 with "current transaction is aborted" due to probing links with a nonexistent fieldname.

@mihir-kandoi #40585 Read
CRM 3.5k 1 update
fix crm-sales 2 months ago

Remove orphaned crm.api.event scheduler hooks

Removes scheduler hooks that were accidentally pushed in main-hotfix, fixing "No module named 'crm.api.event'" errors on every `bench migrate`.

@ps173 #2405 Read
p Press 563 3 updates
feat other-apps 2 months ago

For OCI, revert the VNIC route table in static IP allocation

OCI cleanup: reverts VNIC route table after static IP allocation.

@20vikash #6909 Read
feat other-apps 2 months ago

Extend NAT into OCI

Extends NAT (private IP) support from AWS/Hetzner/DO/Frappe Compute into OCI; upgrades OCI SDK from 2.116.0 to 2.180.0 to support VNIC route table attachment.

@20vikash #6830 Read
fix other-apps 2 months ago

Change team owner icon color to gray

Dashboard styling fix.

@ssiyad #6911 Read
o Other 16 updates
feat other-apps 2 months ago

Add API method discovery commands

`frappe-cli method search|list|show` backed by Frappe's API v2 discovery endpoints; supports `--json` for raw payload or human-readable output.

@ankush #17 Read
feat other-apps 2 months ago

Meet mail integration

Meet app now integrates with mail functionality.

@BreadGenie #166 Read
feat other-apps 2 months ago

Require explicit site for non-interactive multi-profile runs

When multiple profiles are authenticated and the CLI runs non-interactively (piped output), it now requires explicit `-s/--site` or env vars instead of silently falling back to the configured default.

@ankush #10 Read
feat other-apps 2 months ago

Enhance event logging and delivery mechanism

Adds "queued" and "rolled_back" event statuses, implements retry logic for committed events, and enhances logging with timestamps.

@prathameshkurunkar7 #27 Read
feat other-apps 2 months ago

Replayable fixture for demo data

Replaces imperative demo generator with deterministic fixture: same forum every seed, timestamps re-anchored to "now", requires no LLM or network.

@netchampfaris #517 Read
feat other-apps 2 months ago

Don't make newly authenticated sites the default

`frappe-cli auth login` now defaults to `--no-default`, so new sites don't automatically become the default; pass `--default` to opt in.

@ankush #12 Read
feat other-apps 2 months ago

Resolve VM image from frappe_version

VM provisioning now resolves the OS image based on frappe_version.

@prathameshkurunkar7 #25 Read
feat other-apps 2 months ago

Host dashboard shipped under socket activation

Per-host read-only dashboard: Vite/Vue SPA with a stdlib-only backend serving live `/api/state`, organized around Overview/Machines/Images/Storage/Network/Firewall/System sections.

@adityahase #26 Read
feat other-apps 2 months ago

Resize_capacity — per-host headroom for an in-place resize

In-place VM resize now gates on per-host free room (ceiling = host.free + vm.own_footprint), not fleet best-host headroom; includes `placement.resize_headroom()` and whitelisted `provision.resize_capacity()`.

@saurabh6790 #21 Read
feat other-apps 2 months ago

Reconfigure sites with a shorthand name and description

New `frappe-cli auth configure ` to rename and/or describe existing authenticated sites without re-entering credentials.

@ankush #18 Read
fix ai 2 months ago

Remove em-dashes and other AI-speak from demo content

Removed 46 em-dashes and related AI-generated phrasing from demo fixture and seeding docs, replacing with natural alternatives (46 in fixture, 27 in docs, 8 in code).

@netchampfaris #518 Read
fix other-apps 2 months ago

Respect theme in meet home and shortcut dialog changes

Meet home and shortcut dialogs now respect the user's theme setting.

@BreadGenie #169 Read
fix other-apps 2 months ago

Follow redirects instead of hard-failing

FrappeClient now follows 3xx redirects (like trailing-slash normalization) safely, since httpx strips Authorization headers on cross-origin redirects.

@ankush #11 Read
fix other-apps 2 months ago

Remove limit for doctypes

Removes artificial doctype limit in the CLI.

@ankush #19 Read
feat other-apps 2 months ago

Operate the Desk frontend from the Flow panel

Adds client tools (read_screen, navigate, fill, submit, etc.) so the panel agent can drive the Desk frontend directly — reads the current route and form state, then manipulates fields and submits.

@ShrihariMahabal #55 Read
fix other-apps 2 months ago

Misc hardening fixes for security

Hardening against redirects and http protocol weaknesses.

@ankush #8 Read

Sunday, July 5

ERPNext 38.9k 6 updates
feat accounting Editor's pick 2 months ago

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.

@rohitwaghchaure #55551 Read
fix accounting 2 months ago

Warning message for new item standard cost

fix: warning message for new item standard cost

@rohitwaghchaure #56885 Read
fix stock-manufacturing 2 months ago

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.

@Pandiyan5273 #56859 Read
fix accounting 2 months ago

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.

@nabinhait #56882 Read
fix accounting 2 months ago

Type cast error on postgres

Clicking on cost center field throws error; Postgres doesn't support `like` operator on `smallint` fields.

@mihir-kandoi #56871 Read
fix accounting 2 months ago

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.

@ruthra-kumar #56852 Read
Frappe 10.7k 8 updates
feat ui-ux Editor's pick 2 months ago

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)`.

@nikkothari22 #40576 Read
fix framework 2 months ago

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.

@kaulith #40530 Read
fix framework 2 months ago

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.

@iamejaaz #40589 Read
feat ui-ux 2 months ago

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.

@iamejaaz #40581 Read
fix framework 2 months ago

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.

@kaulith #40350 Read
fix framework 2 months ago

Settings dialog panel scroll

Settings dialog scrolling broke when there were multiple entries and some setting was enabled.

@nishkagosalia #40577 Read
feat ui-ux 2 months ago

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.

@iamejaaz #40584 Read
fix framework 2 months ago

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)`.

@kaulith #40563 Read
CRM 3.5k 1 update
fix crm-sales 2 months ago

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.

@shahzeelahmed #2397 Read
LMS 3.2k 1 update
fix other-apps 2 months ago

Commit chapter rename on Enter

Double-clicking a chapter to rename and pressing Enter did not save; Enter keydown bubbled up and toggled the disclosure instead.

@NagariaHussain #2542 Read
b Builder 2.3k 1 update
fix ui-ux 2 months ago

Canvas rendering of inline text blocks (span/a pills) + text-edit corruption

Inline text blocks rendered broken in the editor canvas while looking perfect on the published page; wrapper elements fragmented the inline box.

@surajshetty3416 #658 Read
o Other 10 updates
fix other-apps 2 months ago

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.

@NagariaHussain #696 Read
fix other-apps 2 months ago

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.

@ShrihariMahabal #52 Read
fix other-apps 2 months ago

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.

@AsifMulani1 #168 Read
feat other-apps 2 months ago

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.

@ShrihariMahabal #49 Read
feat other-apps 2 months ago

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.

@ShrihariMahabal #54 Read
feat other-apps 2 months ago

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.

@AsifMulani1 #139 Read
fix other-apps 2 months ago

Right align join button

fix(meet): right align join button

@BreadGenie #165 Read
feat other-apps 2 months ago

Add checkbox cells

Google-Sheets-style checkboxes in Sheets; a new data-validation rule that reuses existing validation engine and renders as canvas chips.

@AsifMulani1 #167 Read
fix other-apps 2 months ago

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`.

@ShrihariMahabal #51 Read
fix other-apps 2 months ago

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.

@ShrihariMahabal #50 Read

Saturday, June 13

ERPNext 38.9k 1 update
fix stock-manufacturing 3 months ago

ERPNext makes UOM mandatory in the Item UOM table to stop empty rows

Prevents saving empty UOM rows in the item UOM table.

@SandraFrappe #55838 Read
Frappe 10.7k 5 updates
fix framework 3 months ago

Frappe hardens its test suite with a large batch of new assertions

Adds comprehensive assertions to critical code paths to improve regression detection.

@ankush #39891 Read
feat framework 3 months ago

Frappe ships a native Python SocketIO server, cutting realtime memory use

Adds Python-based SocketIO server replacing Node.js to reduce memory usage by running under the gunicorn master process.

@tanmoysrt #39879 Read
feat framework 3 months ago

Generate preview images from HTML or URLs with bundled Chromium, no external service

Adds native preview-image generation from HTML/URLs using the framework's bundled Chromium, eliminating external service dependencies.

@surajshetty3416 #39882 Read
fix framework 3 months ago

Banker's rounding now handles negative numbers correctly

Fixes sign-blind tie-detection in Banker's rounding that caused -647.325 to incorrectly round to -647.33.

@surajshetty3416 #39576 Read
fix framework 3 months ago

Security fix: lambda expressions disabled in eval to block code injection

Disables lambda expressions in eval to prevent code injection vulnerabilities.

@ankush #39920 Read
CRM 3.5k 1 update
fix crm-sales 3 months ago

CRM annual revenue now syncs into deal value automatically

Fixes the Deals list on Contact pages to show deal_value instead of annual_revenue.

@jagadish-7 #1749 Read
b Builder 2.3k 1 update
feat ui-ux 3 months ago

Builder renders page previews via the framework's bundled Chromium

Uses the framework's bundled Chromium for page preview rendering instead of external services.

@surajshetty3416 #628 Read
o Other 1 update
feat developer-experience 3 months ago

Pick your SocketIO backend at runtime with bench socketio

Enables runtime backend selection for socketio via the bench command.

@tanmoysrt #1716 Read

The digest, in your inbox

One quiet email a week — the notable changes across the Frappe ecosystem, no noise.