Commit graph

55478 commits

Author SHA1 Message Date
sokumon
e33097fd35 fix(dialog): send default value in dialog 2026-04-21 02:48:53 +05:30
sokumon
249adb0680 fix: spacing between group by label 2026-04-21 01:13:13 +05:30
KerollesFathy
5c7d28a826 fix(doctype): show Permissions tab only when doctype is not a child table 2026-04-20 14:16:10 +00:00
AarDG10
0c660477ee fix(response): harden download_backup
Made use of util `check_path_safety` to ensure sandboxing.
2026-04-20 18:58:21 +05:30
AarDG10
7c9ce26469 feat(utils): add util to ensure sandboxing
This util can be used in places where sandboxing is needed.
2026-04-20 18:49:42 +05:30
Soham Kulkarni
ec3922e903
Merge pull request #38738 from sokumon/sidebar-history 2026-04-20 18:10:32 +05:30
sokumon
f083bdcb48 fix: add a check if sidebar_item_map exists 2026-04-20 18:02:20 +05:30
Soham Kulkarni
c8e0a89b1c
Merge pull request #38353 from sokumon/sidebar-history 2026-04-20 17:28:30 +05:30
Abdeali Chharchhodawala
3796860c92
fix: simplify total row calculation logic in query report (#38677) 2026-04-20 10:38:34 +00:00
Soham Kulkarni
57a94ca566
Merge pull request #38726 from sokumon/default-workspace 2026-04-20 14:28:25 +05:30
Ejaaz Khan
9ead794803
Merge pull request #38730 from Nihantra-Patel/fix-report-letterhead-validation
fix: skip report letter head validation when no letter head is set
2026-04-20 12:54:01 +05:30
Nihantra C. Patel
0cefdf0f8d
fix: formatting 2026-04-20 12:44:34 +05:30
Nihantra C. Patel
c36dc287b4
fix: skip report letter head validation when no letter head is set 2026-04-20 12:36:44 +05:30
Ejaaz Khan
58ef5aded0
Merge pull request #38724 from AarDG10/fix-bulk-paste
fix(table): fix bulk paste in child tables
2026-04-20 11:14:30 +05:30
sokumon
7a73a23e4a fix: remove dead code regarding default workspace 2026-04-20 02:23:14 +05:30
sokumon
767099268a fix: consider default workspace after login 2026-04-20 01:29:22 +05:30
AarDG10
a5118dcb9d fix(table): fix bulk paste in child tables 2026-04-19 22:10:42 +05:30
Hussain Nagaria
465aa38cba
Merge pull request #38608 from kaulith/fix/workspace-sidebar-empty-module-visibility 2026-04-19 19:39:35 +05:30
Hussain Nagaria
f1755daab9
Merge pull request #38536 from kaulith/fix/webform-hidden-mandatory-validation 2026-04-19 17:02:40 +05:30
Kaushal Shriwas
87b0824031 fix: skip hidden and mandatory check when allow_incomplete is set 2026-04-19 16:49:38 +05:30
MochaMind
343d55a4a7
fix: sync translations from crowdin (#38710)
* fix: French translations

* fix: Spanish translations

* fix: Arabic translations

* fix: Czech translations

* fix: Danish translations

* fix: Italian translations

* fix: Dutch translations

* fix: Polish translations

* fix: Portuguese translations

* fix: Slovenian translations

* fix: Turkish translations

* fix: Vietnamese translations

* fix: Portuguese, Brazilian translations

* fix: Indonesian translations

* fix: Persian translations

* fix: Burmese translations

* fix: Norwegian Bokmal translations
2026-04-19 01:26:25 +02:00
Ejaaz Khan
843e396b44
Merge pull request #38466 from kaulith/fix/role-profile-not-visible-in-user-list-view
fix: sync role_profile_name for user list view display
2026-04-18 23:50:11 +05:30
Ejaaz Khan
6ebe8e2b8d
Merge pull request #38658 from kaulith/feat/sidebar-notification-unread-count
feat: show unread notification count in sidebar
2026-04-18 23:49:09 +05:30
Ejaaz Khan
c6ae260f0d
Merge pull request #38708 from KerollesFathy/fix-allow-clearing-link-fields
fix(link): Allow clearing link fields
2026-04-18 23:44:47 +05:30
KerollesFathy
f84190685f fix(link): ensure clear button state is a boolean value 2026-04-18 14:33:56 +00:00
Kaushal Shriwas
4976b4554d chore: merge develop into feat/sidebar-notification-unread-count 2026-04-18 20:01:40 +05:30
Saqib Ansari
75bae453ac
fix(prepared_report): handle missing attachments in get_prepared_data method (#38449) 2026-04-18 19:28:41 +05:30
Kerolles Fathy
63b8d78075
Merge pull request #38703 from UmakanthKaspa/fix/link-clear-icon-align
fix: Align × and right arrow icons in link field
2026-04-18 15:49:08 +02:00
Saqib Ansari
d618a88f01 feat: derive concurrency limit from gunicorn master's cmdline
Co-authored-by: Copilot <copilot@github.com>
2026-04-18 15:37:14 +05:30
Saqib Ansari
4eafb38f98 test: rewrite concurrent_limit tests to test through public interface 2026-04-18 14:58:47 +05:30
Saqib Ansari
033d49b488 fix: add TTL to capacity key so pool self-heals after worker crash
If a gunicorn worker is killed (SIGKILL, OOM) while holding a token, the
token is never returned to the pool. With no TTL on the capacity key,
`setnx` would never fire again, so the pool shrinks permanently — with
`limit=3` you silently end up at `limit=2`, then `limit=1`, etc.

Set a 1-hour TTL (`_CAPACITY_KEY_TTL`) on the capacity key via the
`NX EX` form of SET in the Lua init script. When the key expires the next
request re-initializes the pool to full capacity, so the semaphore is
self-healing without manual Redis key deletion.
2026-04-18 14:26:17 +05:30
Saqib Ansari
8589f26ce9 fix: atomically initialize token pool via Lua script in _ensure_tokens
Replace the `setnx` + pipeline pair with a Lua script evaluated in a
single round-trip. The prior approach had a race window: between the
`SET NX` succeeding and the `MULTI/EXEC` pipeline running, a concurrent
worker could BLPOP from the list just before `DEL` wiped it — losing
tokens permanently. A process crash in that window left the capacity flag
set but the token list empty, breaking the semaphore with no recovery path.

The Lua script makes the check-and-initialize atomic: Redis executes it as
a single unit with no interleaving, so the race window is closed.
2026-04-18 14:25:30 +05:30
Saqib Ansari
e8c7eb946b refactor: rewrite concurrent_limit to use LIST + BLPOP semaphore
Replace the INCRBY-based polling loop with a proper token pool backed by
a Redis LIST. BLPOP blocks until a token is available instead of sleeping
and retrying, which is more efficient and avoids the check-then-act race
of the old counter approach.

Other fixes bundled in:
- Add `blpop` and `setnx` wrappers to `RedisWrapper` so all key prefixing
  goes through `make_key` consistently
- Cache `_default_limit()` result with `@redis_cache(shared=True)` to
  avoid importing `multiprocessing` on every request
- Fix `limit=0` edge case: use `is not None` guard instead of falsy check
- Guard `_release()` against pushing the `"fallback"` token back into the
  pool when Redis was unavailable during acquire
2026-04-18 14:21:33 +05:30
UmakanthKaspa
b1d7d480fd fix: align × and → icons in link field 2026-04-18 07:57:14 +00:00
Aarol D'Souza
11066591ed
Merge pull request #38643 from AarDG10/fix-page
fix(page): improve secure local resource access
2026-04-18 12:14:04 +05:30
Ejaaz Khan
13480db3fd
Merge pull request #36792 from aerele/fix/doctype-duplicate-auto-repeat
fix(doctype): disable allow_auto_repeat during duplication
2026-04-18 08:43:15 +05:30
Ejaaz Khan
031e032252
Merge pull request #38695 from UmakanthKaspa/fix/no-tag-filter
fix: no tags filter shows empty list
2026-04-18 08:38:30 +05:30
Ejaaz Khan
fe0e46b37c
Merge pull request #38689 from iamejaaz/ui-ux-improvement
feat: toggle awesomebar
2026-04-17 22:30:36 +05:30
UmakanthKaspa
5c3e6e6275 fix: no tags filter shows empty list 2026-04-17 19:55:05 +05:30
Ejaaz Khan
75a7267835 refactor: change help text shortcut 2026-04-17 18:02:04 +05:30
Ankush Menat
a96482b7b0
fix(DX): Allow db.commit from drop-down console (#38688)
This is anyways allowed, it's just extra friction at this point.

After using it for a while I feel we should allow it from drop-down
console too now.

It's risky, but hey, you're literally executing arbitrary code you just
wrote so I am trusting you.
2026-04-17 12:29:48 +00:00
Ejaaz Khan
002d58c53f feat: toggle awesomebar 2026-04-17 17:52:58 +05:30
Aarol D'Souza
c6d1a2362d
Merge pull request #38529 from AarDG10/fix-note
fix(note): force sanitization in notes
2026-04-17 17:00:49 +05:30
Shrihari Mahabal
181d01b88a
Merge pull request #38681 from ShrihariMahabal/print-pdf-text-escape
fix: escape text and long text fields when printing
2026-04-17 16:51:53 +05:30
Shrihari Mahabal
117c09e8d9 fix: escape text and long text fields when printing 2026-04-17 16:32:10 +05:30
diptanilsaha
37b05961c7
fix(security_settings): enabled track_changes and convert expires to UTC timezone (#38675)
* fix(security_settings): convert expires timestamp from system timezone to UTC

* fix(security_settings): enabled `track_changes` on `Security Settings` DocType
2026-04-17 14:29:28 +05:30
Soham Kulkarni
3418b221da
Merge pull request #38669 from sokumon/login-template 2026-04-17 13:07:49 +05:30
Ejaaz Khan
1280e3281d
Merge pull request #36606 from barredterra/web-hero
fix: move hero block inside content block
2026-04-17 12:53:02 +05:30
Ejaaz Khan
3359f8c41a
chore: update pypdf (#38670) 2026-04-17 12:50:47 +05:30
Dharanidharan2813
d6b5941c83 fix(doctype): disable allow_auto_repeat during duplication to prevent save failure 2026-04-17 12:44:03 +05:30