Updated daily

What's New in Frappe

Every notable change across the Frappe ecosystem.

Loading updates…

Yesterday — Tuesday, July 28

ERPNext 37.4k 9 updates
feat stock-manufacturing 1 day 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 day 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 day 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 day 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 day 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 day 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 day 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 day 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 day ago

Carry forward communications from opportunity

Quotations created from opportunities now inherit the opportunity's communications (emails, comments).

@diptanilsaha #57507 Read
Frappe 10.5k 11 updates
feat framework 1 day ago

Add support for async options in dropdown menu

Dropdown menu now supports asynchronously-loaded options.

@nikkothari22 #41258 Read
feat framework 1 day ago

Better read-only and impersonation banners

Improved visual design of read-only and impersonation banners on forms.

@nikkothari22 #41264 Read
feat framework 1 day 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 day 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 day 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 day 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 day 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 day 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 day 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 day 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 day 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.3k 3 updates
fix hr-payroll 1 day 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 day 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 day 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
Helpdesk 3.3k 4 updates
feat other-apps 1 day 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 day 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 day 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 day 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.1k 6 updates
fix other-apps 1 day 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 day 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 day 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 day 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 day 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 day 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
CRM 3k 2 updates
fix crm-sales 1 day 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 day 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
Insights 972 1 update
fix other-apps 1 day 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 543 1 update
feat other-apps 1 day 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 day 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 day 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 day 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 day ago

TDS filing integration

Added TDS (Tax Deducted at Source) filing integration.

@deepeshgarg007 #62 Read
feat other-apps 1 day 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 day 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 day 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 day ago

Admin password reset

Added admin password reset and sessions management UI.

@Aradhya-Tripathi #287 Read
fix other-apps 1 day 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 day 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 day 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 day 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 day 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 day 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 day 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 37.4k 7 updates
feat accounting 4 days 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 4 days 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 4 days 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 4 days 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 4 days 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 4 days ago

Ignore permission while deleting user permission

fix: Ignore permission while deleting user permission

@deepeshgarg007 #57296 Read
breaking accounting 4 days 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.5k 5 updates
feat ui-ux 4 days 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 4 days 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 4 days ago

Move standard actions in the top

fix: move standard actions in the top

@sokumon #41219 Read
fix framework 4 days ago

Fix query conditions

fix(db_query): fix query conditions

@AarDG10 #41191 Read
fix framework 4 days 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
Helpdesk 3.3k 1 update
fix other-apps 4 days 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.1k 1 update
fix other-apps 4 days 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
CRM 3k 1 update
fix crm-sales 4 days 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
b Builder 2.2k 1 update
fix ui-ux 4 days 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 543 8 updates
feat other-apps 4 days 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 4 days 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 4 days 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 4 days ago

Reload bench apps page on deploy update

fix(ui): Reload bench apps page on deploy update

@siduck #7034 Read
breaking other-apps 4 days 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 4 days 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 4 days 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 4 days 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 4 days ago

Add more anonymized telemetry

feat(meet): add more anonymized telemetry

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

Add more frappe models

feat: Add more frappe models

@Aradhya-Tripathi #274 Read
feat other-apps 4 days 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 4 days 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 4 days 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 4 days ago

Integrated Code Editor [Experimental]

Built with Monaco editor and frappe-ui; allows editing code directly in Pilot.

@tanmoysrt #277 Read
fix other-apps 4 days 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 4 days 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 4 days 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 4 days 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 4 days ago

Handle errors when offline or server unreachable

fix: handle errors when offline or server unreachable

@nikkothari22 #80 Read
fix other-apps 4 days ago

Pass is_private as false correctly

fix(file): pass is_private as false correctly

@nikkothari22 #79 Read
fix other-apps 4 days 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 4 days 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 4 days 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 4 days 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 37.4k 18 updates
feat accounting 5 days 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 5 days 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 5 days 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 5 days 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 5 days ago

Restore Save button on reverse journal entry

Save button was missing from reverse journal entry form.

@krishna-254 #57379 Read
fix accounting 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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.5k 13 updates
feat ui-ux 5 days 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 5 days 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 5 days 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 5 days 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 5 days ago

Missing doctype name in breadcrumbs

Doctype name was missing from breadcrumb navigation.

@iamejaaz #41115 Read
fix framework 5 days ago

Notifications with the dock

Notification panel now shows up correctly with the dock.

@sokumon #41180 Read
fix framework 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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
Helpdesk 3.3k 1 update
fix other-apps 5 days 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.1k 1 update
feat other-apps 5 days 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
CRM 3k 1 update
fix crm-sales 5 days ago

Load a single prosemirror-model in production builds

Production builds were loading multiple instances of prosemirror-model; now unified.

@ps173 #2524 Read
p Press 543 3 updates
fix other-apps 5 days 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 5 days ago

Raven channel name for alerting server health

Channel name now follows slug convention: "frappe-cloud-server-alerts".

@AyshaHakeem #7028 Read
fix other-apps 5 days 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 5 days 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 5 days 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 5 days ago

Bench new-app command

New CLI command to create a Frappe app.

@tanmoysrt #258 Read
feat other-apps 5 days ago

Responsive sidebar

Mobile-responsive sidebar using frappe-ui desktop/mobile shell components and bottom-sheet for mobile.

@siduck #257 Read
feat other-apps 5 days 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 5 days ago

Meet stats for nerds

Developer stats panel for Meet showing detailed metrics.

@BreadGenie #321 Read
feat other-apps 5 days 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 5 days 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 5 days 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 5 days 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 5 days ago

Server overview metrics

Pilot integration for server overview metrics on the Central dashboard.

@prathameshkurunkar7 #190 Read
feat other-apps 5 days 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 5 days 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 5 days 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 5 days 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 5 days ago

Misc fixes

Slide editor improvements.

@GursheenK #337 Read
fix other-apps 5 days ago

Render SVG at zoomed size

Server map SVG now renders at proper zoomed size.

@prathameshkurunkar7 #189 Read
fix other-apps 5 days ago

Active highlight for sidebar item

Sidebar active state highlighting now works correctly.

@siduck #271 Read
fix other-apps 5 days ago

Misc sidebar issues

Sidebar UI polish: fixed switch label colors and migration button spacing.

@siduck #261 Read
fix other-apps 5 days 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 5 days ago

Enable settings shortcuts

Settings shortcut (Meta+Shift+,) now works across all apps.

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

Refine device audio controls

Polish to audio control UI.

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

Ignore paused producers in stall detection

Meet stall detection was flagging paused video/audio producers as stalled.

@BreadGenie #325 Read
fix other-apps 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 5 days 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 37.4k 5 updates
feat accounting 1 week ago

Made territory field multi select

Territory field on accounts receivable reports now accepts multiple selections.

@Jatin3128 #57322 Read
fix stock-manufacturing 1 week ago

Get reserved batch qty precision from settings (v16)

V16 backport of reserved batch qty precision fix.

@mihir-kandoi #57354 Read
fix stock-manufacturing 1 week 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 1 week 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 1 week 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.5k 10 updates
fix developer-experience 1 week ago

Disable Werkzeug debugger

Development server no longer exposes Werkzeug interactive debugger.

@ankush #41149 Read
fix framework 1 week 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 1 week 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 1 week ago

Duplicate title in list view settings dialog

Removed duplicate title in list view settings dialog.

@kaulith #41102 Read
fix ui-ux 1 week 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 1 week 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 1 week ago

Awesombar should up only once

Awesomebar modal no longer renders twice.

@sokumon #41172 Read
fix framework 1 week ago

Handle orphan doctypes doctypes

Orphaned doctypes no longer cause errors during sync operations.

@sokumon #41137 Read
fix framework 1 week ago

Store OAuth state server-side instead

Google OAuth hardening with server-side state storage instead of JSON encoding.

@AarDG10 #41076 Read
fix framework 1 week 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.3k 1 update
feat hr-payroll 1 week ago

Add Contract link in Employee Connections section

Contract doctype now appears in Employee connections dashboard.

@akhtarmohsin #4984 Read
Helpdesk 3.3k 4 updates
feat other-apps 1 week 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 1 week ago

Rtl support

RTL support backport with physical-to-logical Tailwind utilities and directional icon rotations.

@aerodeval #3605 Read
feat other-apps 1 week 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 1 week 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.2k 4 updates
feat ui-ux 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Add greptile rules

feat: Add greptile rules

@tanmoysrt #253 Read
feat other-apps 1 week 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 1 week ago

Forward Deployment

Adds forward deployment feature to Pilot.

@tanmoysrt #249 Read
feat other-apps 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Stop tooltip clip

Tooltips no longer clip.

@Aradhya-Tripathi #248 Read
fix other-apps 1 week ago

Install app regressions

Fixes installation regressions.

@Aradhya-Tripathi #252 Read
fix ui-ux 1 week 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 1 week 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 1 week ago

Stack avatar group to the right

Avatar group now stacks to the right for better layout.

@BreadGenie #312 Read
fix other-apps 1 week 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 1 week ago

Fix notifications empty state alignment

Notifications empty state now aligns with tab buttons via responsive left margins.

@netchampfaris #520 Read
fix other-apps 1 week 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 1 week 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 1 week 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 1 week 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 37.4k 6 updates
fix accounting 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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.5k 28 updates
feat framework 1 week 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 1 week 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 1 week 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 1 week ago

Resend user invitation

API added for resending user invitations.

@ankush #38827 Read
feat framework 1 week 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 1 week ago

Rename hook to add_app_to_dock

Hook renamed for consistency.

@sokumon #41105 Read
fix framework 1 week ago

Rename to add_to_workspace_dock

Hook renamed for semantic clarity.

@sokumon #41106 Read
fix framework 1 week ago

Collapse interaction for dock

Workspace dock collapse interaction is now working.

@sokumon #41119 Read
fix framework 1 week 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 1 week 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 1 week ago

Add ignore_permission param to remove_user_permission util

User permission removal now accepts ignore_permission parameter.

@deepeshgarg007 #41073 Read
fix framework 1 week ago

Rename workspace missing icon in db

Workspace icon naming is corrected in database.

@Bowrna #41098 Read
fix framework 1 week ago

Make the create new button subtle

Create new button styling is now more subtle.

@sokumon #41113 Read
fix framework 1 week ago

Make shell selection module first

Sidebar selection is now module-based instead of role-based.

@sokumon #41114 Read
fix framework 1 week 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 1 week 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 1 week 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 1 week ago

Respect select field ordering

System console output columns are no longer forced to sorted order.

@ankush #41123 Read
fix framework 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Broken spacing in email templates

Redesigned email containers with proper card layout, padding, and typography.

@iamejaaz #41026 Read
fix framework 1 week 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 1 week ago

Empty state text for list views

Fixed button styling and simplified empty state messaging in list views.

@nikkothari22 #41138 Read
fix framework 1 week ago

Connected app: add permission check & sanitize redirects

Prevents redirect injection and unauthorized app flows.

@ankush #41065 Read
fix framework 1 week 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 1 week 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.3k 7 updates
feat hr-payroll 1 week 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 1 week ago

Doctype settings map

Standardizes doctype settings metadata across HRMS.

@deepeshgarg007 #4945 Read
fix hr-payroll 1 week ago

Skip expire_allocation for already-cancelled Leave Allocations

Leave expiry no longer processes cancelled allocations.

@pratheep-bit #4969 Read
fix hr-payroll 1 week 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 1 week ago

Exclude cancelled Attendance records from employee timeline

Employee dashboard timeline now filters out cancelled attendance entries.

@pratheep-bit #4967 Read
fix hr-payroll 1 week 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 1 week 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 3k 3 updates
fix crm-sales 1 week 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 1 week 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 1 week 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 972 1 update
fix other-apps 1 week 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 543 9 updates
feat other-apps 1 week 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 1 week 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 1 week 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 1 week ago

Make partner lead page a lil responsive

Partner lead page now renders functional layouts on mobile.

@siduck #7009 Read
fix other-apps 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Slugify server subdomains

Server subdomains are now automatically slugified and polished UI added for new server page.

@prathameshkurunkar7 #185 Read
feat other-apps 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Add Sentry error tracking

Error tracking now integrated with Sentry.

@BreadGenie #299 Read
feat other-apps 1 week 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 1 week ago

Draggable corner radius handle

Slides designer now offers draggable corner handles for round rectangles, images, and videos.

@GursheenK #295 Read
feat other-apps 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Add tsconfig for type stuff in admin dashboard

TypeScript configuration added for admin dashboard.

@siduck #237 Read
fix other-apps 1 week 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 1 week ago

Forward sidebar-item slot to SidebarSection

Sidebar component now properly forwards slot when using sections API.

@krantheman #841 Read
fix other-apps 1 week 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 1 week 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 1 week 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 1 week 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 1 week ago

Reset stalled receive connection

Frappe Meet connection stalls are now recovered.

@BreadGenie #304 Read
fix other-apps 1 week 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 1 week 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 1 week 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 1 week ago

Drop certbot quotes

Certbot configuration no longer includes unnecessary quote escaping.

@Aradhya-Tripathi #239 Read
fix other-apps 1 week 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 1 week ago

SSL flag

Removing SSL ready flag no longer takes away HTTPS from other sites.

@Aradhya-Tripathi #241 Read
fix other-apps 1 week 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 37.4k 2 updates
fix stock-manufacturing 1 week 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 1 week 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.5k 7 updates
feat ui-ux 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 3k 2 updates
fix crm-sales 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 1 week 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 37.4k 13 updates
feat stock-manufacturing 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.5k 17 updates
fix framework 2 weeks ago

Add missing DF types for controller annotations

Type-annotates Geolocation, Signature, Icon, and Long Int fields.

@barredterra #40992 Read
feat framework 2 weeks ago

Add N_ noop for translation extraction

`N_()` marks strings for gettext extraction without translating at call time.

@barredterra #40984 Read
feat framework 2 weeks ago

Revoke old token after refreshing

Old token is now revoked after refresh.

@ankush #40968 Read
feat framework 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Use normal exception instead of assert

Replaces assertions with proper exceptions for validation errors.

@ankush #40981 Read
fix framework 2 weeks 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 weeks ago

Notification dot styles

Notification dot styling corrected.

@sokumon #40974 Read
fix ui-ux 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.3k 3 updates
feat hr-payroll 2 weeks 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 weeks 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 weeks ago

Avoid lambda in safe_eval

Removes unsafe lambda usage in safe_eval.

@ankush #4955 Read
Helpdesk 3.3k 5 updates
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks ago

SidebarItem overflow

Sidebar items are no longer cut off on the x-axis.

@RitvikSardana #3568 Read
fix other-apps 2 weeks 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.1k 1 update
fix other-apps 2 weeks ago

Checkbox toggle doesn't render until another field changes

Settings checkboxes now bind `data[field.name]` directly and toggle immediately.

@raizasafeel #2581 Read
CRM 3k 6 updates
feat crm-sales 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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
b Builder 2.2k 3 updates
feat ui-ux 2 weeks 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 weeks 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 weeks 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 543 3 updates
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Drop the "mutations run without confirmation" tip

Removes misleading guide text about mutations.

@ankush #48 Read
fix other-apps 2 weeks 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 weeks ago

Custom rules

Custom WAF rules UI added.

@ssiyad #212 Read
fix other-apps 2 weeks 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 weeks 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 weeks ago

Add Frappe server-tests job

Adds Python doctype test gating to Draw CI.

@vibhavkatre #6 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Threaded, resolvable cell comments

Cell comments turn into threaded discussions with resolve/reopen, @-mentions, and timestamps.

@AsifMulani1 #249 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 37.4k 6 updates
feat stock-manufacturing 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.5k 22 updates
feat framework 2 weeks 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 weeks 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 weeks ago

Center the close button

Centers the close button in modal headers for better visual alignment.

@sokumon #40950 Read
fix ui-ux 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Various issues in sidebar

Addresses multiple sidebar UI issues including button centering and alignment.

@sokumon #40924 Read
fix framework 2 weeks 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 weeks ago

Do not translate empty string

Prevents translation of empty strings which was causing issues with gettext extraction.

@Abdeali099 #40899 Read
fix framework 2 weeks 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 weeks 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 weeks 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 weeks ago

Escape template context values before rendering

Escapes template context values to prevent XSS in dynamic template rendering.

@AarDG10 #40897 Read
fix framework 2 weeks 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 weeks 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 weeks ago

Escape script context values before rendering

Escapes script context values in form rendering to prevent XSS attacks.

@AarDG10 #40920 Read
fix framework 2 weeks ago

Sanitize frappe.markdown

Sanitizes markdown rendering to prevent XSS injection via untrusted markdown input.

@ShrihariMahabal #40951 Read
HR 8.3k 4 updates
feat hr-payroll 2 weeks 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 weeks 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 weeks 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 weeks 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
Helpdesk 3.3k 1 update
fix other-apps 2 weeks 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.1k 1 update
feat other-apps 2 weeks 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
CRM 3k 2 updates
fix crm-sales 2 weeks 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 weeks 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
Insights 972 1 update
fix other-apps 2 weeks 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 543 4 updates
fix other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Misc features

Adds method call verb, drops confirmation prompts, improves default behavior and debug hints.

@ankush #43 Read
fix ai 2 weeks ago

Remove claude's system prompt in assistant mode

Removes Claude system prompt from frappectl assistant mode.

@ankush #42 Read
fix other-apps 2 weeks 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 weeks 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 weeks 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 weeks ago

Durable payment intent

Improves payment intent durability in Central.

@saurabh6790 #172 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Web Application Firewall

Implements web application firewall functionality for Pilot.

@ssiyad #209 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 37.4k 9 updates
feat accounting 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.5k 11 updates
fix ui-ux 2 weeks 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 weeks ago

Remove icon from sidebar label

fix: remove icon from sidebar label

@sokumon #40885 Read
fix ui-ux 2 weeks ago

Remove sidebar collapse

fix: remove sidebar collapse

@sokumon #40882 Read
feat framework 2 weeks 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 weeks 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 weeks ago

Center selected-icon with input text

fix(icon-field): center selected-icon with input text

@KerollesFathy #40775 Read
fix framework 2 weeks ago

Add more assertions

fix: Add more assertions

@ankush #40554 Read
fix framework 2 weeks 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 weeks 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 weeks 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 weeks 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.3k 6 updates
fix hr-payroll 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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
Helpdesk 3.3k 2 updates
fix other-apps 2 weeks 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 weeks 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.1k 5 updates
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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
CRM 3k 3 updates
feat crm-sales 2 weeks 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 weeks 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 weeks 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
Insights 972 5 updates
fix other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 543 5 updates
feat other-apps 2 weeks 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 weeks 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 weeks ago

Tolerate a missing unit

fix(wazuh): Tolerate a missing unit

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

Decouple the lead owners list

fix(prm): Decouple the lead owners list

@shadrak98 #6968 Read
fix other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Raise toast z-index above sticky columns

fix: raise toast z-index above sticky columns

@Shllokkk #237 Read
fix other-apps 2 weeks ago

Print exceptions

fix: print exceptions

@ankush #41 Read
fix other-apps 2 weeks 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 weeks 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 37.4k 10 updates
fix stock-manufacturing 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Permission issue

fix: permission issue

@rohitwaghchaure #57112 Read
fix accounting 2 weeks 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 weeks ago

Preserve job card transferred quantity

Job card quantity is now preserved during transfer operations.

@Sudharsanan11 #57126 Read
fix stock-manufacturing 2 weeks 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 weeks 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 weeks 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.5k 10 updates
feat framework 2 weeks ago

Workspace rail

Adds workspace dock on the sidebar for displaying and navigating workspaces.

@sokumon #40829 Read
feat ui-ux 2 weeks ago

Add Letter Head to Printing workspace sidebar

Letter Head doctype now appears in the Printing workspace sidebar.

@gajjug004 #40873 Read
fix framework 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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
Helpdesk 3.3k 1 update
fix other-apps 2 weeks ago

Bump frappe UI to beta-24

Resolves component API regressions introduced by frappe-ui beta update.

@RitvikSardana #3549 Read
LMS 3.1k 1 update
fix other-apps 2 weeks 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
CRM 3k 1 update
fix crm-sales 2 weeks 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
b Builder 2.2k 1 update
feat ui-ux 2 weeks 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 972 3 updates
fix other-apps 2 weeks 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 weeks 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 weeks 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 543 3 updates
feat other-apps 2 weeks ago

Deploy Wazuh

Adds Wazuh security monitoring deployment to Press servers.

@ssiyad #6951 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Restore screen share after recovery

Screen sharing is now restored after video meeting recovery.

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

Route reconnect lifecycle events

Media reconnection events are now correctly routed after connection recovery.

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

Bound SFU request acknowledgements

Prevents unbounded SFU request acknowledgement queues in video meetings.

@BreadGenie #213 Read
fix other-apps 2 weeks 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 weeks 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 37.4k 4 updates
fix accounting 2 weeks 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 weeks 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 weeks 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 weeks 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.5k 15 updates
fix framework 2 weeks 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 weeks ago

Discover methods

API discovery now includes controller methods alongside RPC methods with tagged union to distinguish.

@ankush #40824 Read
feat framework 2 weeks 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 weeks 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 weeks ago

Add SafeDoc class

SafeDoc class extends _dict with internal Document methods for safer eval contexts.

@AarDG10 #40687 Read
fix framework 2 weeks ago

Keep response agnostic

fix(pddr): keep response agnostic

@AarDG10 #40787 Read
fix ui-ux 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Validate HTTP method for document calls

fix(api): validate HTTP method for document calls

@ankush #40819 Read
fix framework 2 weeks 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
Helpdesk 3.3k 3 updates
fix other-apps 2 weeks ago

Recent tickets alignment

fix: recent tickets alignment

@RitvikSardana #3543 Read
fix other-apps 2 weeks ago

Customer portal permission banner

Dialog to revert end users to access each other's tickets.

@RitvikSardana #3541 Read
fix other-apps 2 weeks 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.1k 1 update
feat other-apps 2 weeks 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
CRM 3k 2 updates
feat crm-sales 2 weeks 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 weeks 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
p Press 543 3 updates
feat other-apps 2 weeks ago

Gate local payment tabs behind role permission

feat(partner): Gate local payment tabs behind role permission

@shadrak98 #6933 Read
feat other-apps 2 weeks 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 weeks 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 weeks ago

Update release version

fix: update release version

@asmitahase #56 Read
feat other-apps 2 weeks ago

Merge develop to main

Merge develop to main

@prathameshkurunkar7 #136 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

SSH Key Management

feat: SSH Key Management

@tanmoysrt #193 Read
feat other-apps 2 weeks 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 weeks 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 weeks ago

Update via PyPI

fix: update via PyPI

@ankush #40 Read
feat other-apps 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Base amount for EPF calculation

fix: Base amount for EPF calculation

@deepeshgarg007 #60 Read
fix other-apps 2 weeks 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 37.4k 6 updates
fix accounting 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.5k 9 updates
feat ui-ux 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.2k 1 update
feat ui-ux 2 weeks 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 weeks ago

Correct DocType casing in read tool label

fix: correct DocType casing in read tool label

@ShrihariMahabal #63 Read
feat other-apps 2 weeks 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 weeks ago

Avoid circular imports of chunks

fix: avoid circular imports of chunks

@BreadGenie #834 Read

Sunday, July 12

ERPNext 37.4k 8 updates
feat accounting 2 weeks 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 weeks ago

Allow negative balance in bank statement import

Accept negative opening balances during bank statement imports.

@nikkothari22 #56959 Read
fix accounting 2 weeks ago

Update events order by date ascending

Sort Lead activities by due date instead of arbitrary order.

@Pandiyan5273 #56963 Read
fix accounting 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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.5k 15 updates
feat ui-ux 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks ago

Return consistent request ID

Return a consistent request ID to allow tools to query recordings easily.

@ankush #40767 Read
fix framework 2 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 weeks 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 3k 1 update
fix crm-sales 2 weeks 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.2k 1 update
fix ui-ux 2 weeks 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 weeks 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 weeks 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 weeks ago

Don't reload on switching apps

Stop reloading the page when switching between suite apps.

@BreadGenie #198 Read
fix ui-ux 2 weeks 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 weeks ago

Harden API paths, config updates, and downloads

Harden API paths and configuration handling in frappe-cli.

@ankush #34 Read

Saturday, July 11

ERPNext 37.4k 8 updates
fix stock-manufacturing 3 weeks 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 3 weeks 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 3 weeks ago

Pick list serial batch posting date

Pick list serial/batch posting dates are now handled correctly.

@Pandiyan5273 #57014 Read
fix accounting 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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.5k 16 updates
feat ui-ux 3 weeks 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 3 weeks 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 3 weeks ago

Expose source code over discovery API

Framework now exposes source code over the discovery API.

@ankush #40757 Read
fix framework 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Only allow text in description

Description field now restricts input to plain text only.

@sokumon #40748 Read
fix ui-ux 3 weeks ago

Escape computed url in EmbeddedList link column

Escape computed URLs in EmbeddedList link columns to prevent XSS.

@diptanilsaha #40749 Read
fix framework 3 weeks ago

Revert "fix: make postgres transactions read committed by default"

Reverted postgres transaction isolation level change.

@mihir-kandoi #40753 Read
fix ui-ux 3 weeks 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 3 weeks 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
Helpdesk 3.3k 1 update
fix other-apps 3 weeks 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
CRM 3k 1 update
feat crm-sales 3 weeks 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
Insights 972 1 update
fix other-apps 3 weeks ago

Get_list dashboards and queries

Fixed get_list endpoints for dashboards and queries.

@nextchamp-saqib #1224 Read
p Press 543 4 updates
fix other-apps 3 weeks 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 3 weeks 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 3 weeks ago

Remove duplicate primary btn in CommunicationInfoDialog

Removed visually duplicate primary button from communication info dialog.

@siduck #6929 Read
fix other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Fetch source if available

CLI now fetches source code when available for enhanced introspection.

@ankush #31 Read
feat other-apps 3 weeks 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 3 weeks ago

Dark-mode event colors

Calendar event colors now render correctly in dark mode.

@BreadGenie #827 Read
fix other-apps 3 weeks 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 37.4k 17 updates
feat stock-manufacturing 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Partial delivery note against pick list

Partial deliveries against pick lists now handled correctly.

@rohitwaghchaure #56985 Read
fix accounting 3 weeks 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.5k 27 updates
feat framework 3 weeks 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 3 weeks ago

Basic error analysis

Error analysis UI added for better error visibility and debugging.

@ankush #40462 Read
fix framework 3 weeks ago

Show deferred error insert

Developer experience improvements for error handling.

@ankush #40733 Read
fix framework 3 weeks 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 3 weeks 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 3 weeks ago

Hide Download Report button without read permission

Download Report button now hidden when user lacks read permission.

@KerollesFathy #40594 Read
fix framework 3 weeks 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 3 weeks ago

Timeline make cards respect full-width toggle

Timeline comment cards now respect full-width toggle setting.

@KerollesFathy #40666 Read
fix framework 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Icon label styles

Icon label styling fixed.

@sokumon #40699 Read
fix ui-ux 3 weeks 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 3 weeks ago

Misc error log fixes

Error logging improvements for DX.

@ankush #40730 Read
fix framework 3 weeks ago

Queued telemetry events must survive clear_cache()

Telemetry events persisted across cache clear operations.

@nextchamp-saqib #40722 Read
fix ui-ux 3 weeks ago

Dont explode plucked scalars on masked doctypes

Query builder now handles masked doctypes correctly without exploding scalar results.

@Bowrna #40654 Read
fix framework 3 weeks ago

Handle orphan module

Setup now handles orphan modules without failing.

@sokumon #40674 Read
fix framework 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Hardening oauth endpoints

Approve endpoint restricted to POST-only with CSRF token hardening in OAuth confirmation flow.

@AarDG10 #40073 Read
HR 8.3k 5 updates
fix hr-payroll 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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.3k 1 update
fix other-apps 3 weeks 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.1k 1 update
fix other-apps 3 weeks 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.2k 1 update
fix ui-ux 3 weeks 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 972 1 update
feat other-apps 3 weeks 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 543 2 updates
fix other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Unnecesary styling

Unnecessary styling removed.

@asmitahase #44 Read
fix other-apps 3 weeks ago

Use indiacator pill for styling status fields

Status field styling now consistent using indicator pill component.

@asmitahase #42 Read
fix other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Validate user login

CLI now validates actual user login instead of accepting Guest or HTML responses.

@ankush #26 Read

Thursday, July 9

ERPNext 37.4k 2 updates
feat accounting 3 weeks ago

Add grouping by dimension functionality in financial reports

Financial reports now support grouping rows by custom dimensions.

@Abdeali099 #54650 Read
feat accounting 3 weeks 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.5k 5 updates
feat developer-experience 3 weeks ago

Move microbenchmarks to Frappe project

feat: Move microbenchmarks to Frappe project

@ankush #40671 Read
feat framework 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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.3k 1 update
fix other-apps 3 weeks 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 972 2 updates
fix other-apps 3 weeks ago

Fix German translation for 'Host'

Fix German translation for 'Host'

@ews-pgasser #1217 Read
fix other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 37.4k 4 updates
fix accounting 3 weeks ago

Precision issue causing reconciliation error

Fixes floating-point precision errors that blocked account reconciliation. Backported to #56937, #56938.

@rtdany10 #54043 Read
fix accounting 3 weeks 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 3 weeks 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 3 weeks 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.3k 1 update
fix hr-payroll 3 weeks 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
LMS 3.1k 1 update
fix other-apps 3 weeks 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
CRM 3k 1 update
fix crm-sales 3 weeks 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
b Builder 2.2k 1 update
fix ui-ux 3 weeks 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 543 6 updates
fix other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Mail and calendar export

Restores export functionality for mail and calendar items.

@s-aga-r #172 Read
fix other-apps 3 weeks 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 37.4k 1 update
fix stock-manufacturing 3 weeks ago

Workspace for stock and manufacturing

fix: workspace for stock and manufacturing

@rohitwaghchaure #56906 Read
Frappe 10.5k 2 updates
fix framework 3 weeks 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 3 weeks ago

Remove attribution link from about dialog

fix: remove attribution link from about dialog

@Abdeali099 #40627 Read
HR 8.3k 1 update
fix hr-payroll 3 weeks ago

Include carry forwarded leaves in allocation calculations

fix(employee_leave_balance): include carry forwarded leaves in allocation calculations

@krishna-254 #4860 Read
LMS 3.1k 1 update
fix other-apps 3 weeks 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
CRM 3k 3 updates
fix crm-sales 3 weeks 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 3 weeks ago

Remove deprecated pulse api

fix: remove deprecated pulse api

@shahzeelahmed #2408 Read
fix crm-sales 3 weeks 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
Insights 972 1 update
fix other-apps 3 weeks 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 3 weeks ago

Agentic ops, Code & Data wiring

feat(AI Integration): Agentic ops, Code & Data wiring

@ruchamahabal #188 Read
feat ui-ux 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 37.4k 11 updates
fix stock-manufacturing 3 weeks 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 3 weeks 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 3 weeks ago

Dark theme shop floor

Dark theme styling fix for shop floor.

@rohitwaghchaure #56887 Read
fix accounting 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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.5k 9 updates
feat framework Editor's pick 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Wrap write_only inner fn

Internal function wrapping fix for write_only decorator.

@ankush #40603 Read
fix framework 3 weeks 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 3 weeks ago

Limit to system manager

Permission restriction to system manager role.

@ankush #40616 Read
feat framework 3 weeks 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 3 weeks 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 3 weeks 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 3k 1 update
fix crm-sales 3 weeks 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 543 3 updates
feat other-apps 3 weeks 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 3 weeks 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 3 weeks ago

Change team owner icon color to gray

Dashboard styling fix.

@ssiyad #6911 Read
o Other 16 updates
feat other-apps 3 weeks 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 3 weeks ago

Meet mail integration

Meet app now integrates with mail functionality.

@BreadGenie #166 Read
feat other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Resolve VM image from frappe_version

VM provisioning now resolves the OS image based on frappe_version.

@prathameshkurunkar7 #25 Read
feat other-apps 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Remove limit for doctypes

Removes artificial doctype limit in the CLI.

@ankush #19 Read
feat other-apps 3 weeks 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 3 weeks ago

Misc hardening fixes for security

Hardening against redirects and http protocol weaknesses.

@ankush #8 Read

Sunday, July 5

ERPNext 37.4k 6 updates
feat accounting Editor's pick 3 weeks 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 3 weeks ago

Warning message for new item standard cost

fix: warning message for new item standard cost

@rohitwaghchaure #56885 Read
fix stock-manufacturing 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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.5k 8 updates
feat ui-ux Editor's pick 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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
LMS 3.1k 1 update
fix other-apps 3 weeks 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
CRM 3k 1 update
fix crm-sales 3 weeks 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
b Builder 2.2k 1 update
fix ui-ux 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks ago

Right align join button

fix(meet): right align join button

@BreadGenie #165 Read
feat other-apps 3 weeks 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 3 weeks 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 3 weeks 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 37.4k 1 update
fix stock-manufacturing 2 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.5k 5 updates
fix framework 2 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 2 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 2 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 2 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 2 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 3k 1 update
fix crm-sales 2 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.2k 1 update
feat ui-ux 2 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 2 months ago

Pick your SocketIO backend at runtime with bench socketio

Enables runtime backend selection for socketio via the bench command.

@tanmoysrt #1716 Read