-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathChangeLog
More file actions
14578 lines (10346 loc) · 441 KB
/
Copy pathChangeLog
File metadata and controls
14578 lines (10346 loc) · 441 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
08-SEP-2026: 31.4.5
- Fixes AWS4 arrow templates and stale palette ids
- Updates AWS shapes to the Q3-2026 icon package and adds an AWS (retired) library
- Updates stable channel to 31.4.3
- Updates the vendored drawio-plantuml bundle to commit 0f34c03
- Shows the PlantUML converter's parse warnings after a successful insert, preview or edit
- Ignores the whole .claude directory rather than two of its files
- Updates commons-fileupload, commons-io and commons-lang3, sets upload limits
- Removed unused server-side emf functionality
- Moves retired AWS icons into the AWS (retired) library and drops the AR & VR and Robotics palettes
- Aligns hairline strokes with the crisp offset in image export [jgraph/drawio-desktop#2506]
- Forces a page break after each page in the print preview so that one page div always maps to one printed sheet
- Sizes the print preview pages to the page area of the sheet in Safari, which ignores the size descriptor of @page rules
- Aligns the page size of the PDF export with the print preview by applying the page scale to a copy of the page format without rounding and cropping to the same size [jgraph/drawio-desktop#1739]
- Waits for the stylesheets, images and fonts of the print preview to load before printing instead of a fixed 500 ms delay
- Ignore migrated Data Center drafts in the Confluence editor and update drafts in the page IDs import [DID-19815]
- Prints the pixel column and row on the page boundary on both adjacent pages in Chrome by sizing the viewBox of the print preview pages one pixel larger than the clip in all browsers
- Updates DOMPurify from 3.4.13 to 3.4.15
- Remove stale drafts instead of rewriting them in the page IDs import [DID-19815]
- Keeps cells inserted via the hover arrows in the container of the source when nothing is hit at the end point [jgraph/drawio#3693]
- Excludes HTML text from the measured SVG bounds of hand-drawn shapes
- Never extends or contracts transparentBounds parents from their children
- Load the diagram file instead of a draft that is at least 15 seconds older [DID-19815]
- Only re-save a draft in the page IDs import when its links changed [DID-19815]
- Adds viewbox option and action to the embed protocol and applies the viewbox URL parameter in embed mode [jgraph/drawio#4763]
- Fixes the path of the embed protocol docs in drawusaurus referenced from CLAUDE.md
- Stops cursor-key moves and resizes scrolling the viewport [jgraph/drawio-desktop#2525]
- Applies review fixes to the AWS Q3-2026 icon update [jgraph/drawio-dev#668]
- Keeps the perimeter flag of connection points on apply in the connection points dialog [jgraph/drawio#4821]
- Updates the vendored drawio-plantuml bundle to commit f6f9522
06-SEP-2026: 31.4.4
- Adds the Atlassian 2025 shape set core: glyph stencils and tile wrapper
- Adds the Atlassian sidebar palettes, agent marks and connection points
- Reworks glyph scaling in the new Atlassian library (square-canonical, per-icon hex calibration, proportional tile switching) and removes unused logo images [jgraph/drawio#5730]
- Improves logo lockups in the new Atlassian shape library [jgraph/drawio#5730]
- Deduplicates the generated Atlassian sidebar module with shared style-prefix variables [jgraph/drawio#5730]
- Deduplicates search tags and refreshes stale comments in the new Atlassian library [jgraph/drawio#5730]
- Moves per-icon data from styles onto the Atlassian stencil attributes [jgraph/drawio#5730]
- Hardens the Atlassian wrapper against degenerate box data [jgraph/drawio#5730]
- Guards the Atlassian wrapper's lockup layout and tile aspect against NaN [jgraph/drawio#5730]
- Hides the PlantUML and Mermaid round-trip identity attributes in tooltips
- Strips the characters the URL parser drops before the font scheme check [GHSA-fjgc-8xgj-rvh4]
05-SEP-2026: 31.4.3
- Updates stable channel to 31.4.1
- Fixes SVG attachment images rendering blank in Confluence diagrams by using the correct data URI MIME type [DID-20051]
- Retries transient network failures for GETs in the Confluence Cloud page IDs import and logs real failure totals [DID-19637]
- Rejects IPv6 transition prefixes in the server SSRF guard [GHSA-xj4f-x55f-699c]
- Stops stale image callbacks drawing ghost copies of Confluence attachment images after fit-on-load [jgraph/drawio-dev#658]
- Fixes local print preview head CSS: closes the malformed shadow-suppression rule that swallowed the MathJax print rule and configured font CSS, writes app CSS into the style element unescaped with the style end tag neutralized, rewrites Google font URLs on pages 2+ and suppresses the unnamed @page rule when named page CSS is in use
- Removes unused code
- Derives export to PDF via print and server-side image export from EXPORT_URL instead of hand-set flags, treats null, empty and the public build placeholder as no export service and fails the canvas-unavailable fallbacks instead of posting to a dead URL [jgraph/drawio-dev#660]
- Adds reindexInst3 resource for the Jira re-indexing page note that indexing pauses while the computer is asleep or offline [jgraph/drawio-jira-forge#1]
- Gives the Google API loader the page's CSP nonce in the Drive editor
- Update vendored drawio-plantuml bundle to commit 0fdd6ad
- Updates plantuml build
- Restricts font sources to http(s), data: and configured URLs [GHSA-fjgc-8xgj-rvh4]
31-AUG-2026: 31.4.2
- Keeps the CryptoJS build tooling out of the public repo [jgraph/drawio-dev#640]
- Stops an attribute value that is markup from reaching the host page [jgraph/drawio-jira#120]
- Stops the MathJax \data macro writing arbitrary data attributes [jgraph/drawio-dev#653]
28-AUG-2026: 31.4.1
- Keeps the current scale when fitting into a zero-size container [jgraph/drawio-dev#647]
- Adds a connectable switch to the connection points dialog [jgraph/drawio#5733]
- Backfills 219 missing translation keys across all 58 language files [jgraph/drawio-dev#637]
- Fixes hidden shared folders and folder shortcuts in OneDrive picker [jgraph/drawio#5359]
- Removes duplicate action, basic and mockups keys from all language files [jgraph/drawio-dev#637]
- Makes Dropbox files read-only ahead of support ending [jgraph/drawio#5740]
- Runs partial and Soundex matching on translated shape search terms [jgraph/drawio#5518]
- Updated translation of Google Drive first time file open message [DID-20062]
- Keeps placed sibling order in ELK tree layouts [jgraph/drawio#5454]
- Sets timeouts on all outbound server connections [GHSA-r85c-2h2r-46rw]
- Downscales embed mode image exports to a maximum canvas area so that huge diagrams cannot crash the renderer [DID-20081]
- Bounds the whole outbound exchange, not just each read [GHSA-r85c-2h2r-46rw]
26-AUG-2026: 31.4.0
- Bump actions/setup-node from 4.4.0 to 7.0.0
- Conf Cloud: Resolve Gliffy version pins automatically [jgraph/drawio-dev#637]
- Fixes convert worker referer gate rejecting Office add-in update requests [jgraph/drawio#5459]
- Fixes blurry Office add-in diagram updates by sending a numeric export scale [jgraph/drawio#5459]
- Rebuilds the Gliffy bundle with the value-size charge
- Removes the Gliffy conversion CF worker (import is fully client-side)
- Removes text/xml Content-Type from attachment download GETs, Confluence Cloud now rejects such GETs with 415 [#638]
- Conf Cloud: Restore Gliffy version pinning as opt-in, keep pin diagnostics [jgraph/drawio-dev#637]
- Update vendored drawio-plantuml bundle to commit ffcd9d7
- Conf Cloud: Add page IDs import error reporting strings [DID-20037]
- Follows cursor-key moves and resizes only when the selection is fully out of view, keeps the viewport static while any part is visible [jgraph/drawio-desktop#2525]
- Restores z-order actions moving table rows within the table [jgraph/drawio#5748]
- Stops resizeLast double-subtracting marginLeft in horizontal stack layouts [jgraph/drawio#5751]
- Updates vendored CryptoJS rollup to 4.2.0 for a CSPRNG-backed KDF salt [jgraph/drawio-dev#640]
- Fails closed when no CSPRNG is reachable for realtime encryption [jgraph/drawio-dev#640]
- feat(shapes): mermaidExtension + mermaidDiamond relation markers
- Places added connection points in the gaps between existing points [jgraph/drawio-desktop#2514]
- Replaces every matched color placeholder in setTextColor [jgraph/drawio-dev#644]
- Includes hand-drawn overshoot in shape bounding boxes [jgraph/drawio#5450]
- Matches only elements changed to the color placeholder [jgraph/drawio-dev#643]
- Stops nested spans accumulating on text color changes in Firefox [jgraph/drawio#5752]
- Applies text colors at a collapsed cursor to the styled run [jgraph/drawio-dev#642]
- vendor: update mermaid bundle (dev be7192b — DID-20053 gantt dateFormat/compact/vert fixes; class, architecture icon packs, kanban, radar, sankey, c4, block visual-match passes)
21-AUG-2026: 31.3.2
- Rebuilds the Gliffy bundle with the validated page background
- fix: upgrade commons-codec:commons-codec from 1.22.0 to 1.22.1
- Updates excludes
- Conf Cloud: Added Atlassian migration mapping support
- Points the Confluence draft 415 message at Attachment Checker's exception setting
- Added a marker style tooltipCell=1 to find the cell having the tooltip in a group & updated gliffy importer [DID-19972]
- Fixes desktop library save dialog loop and spurious save dialog [jgraph/drawio-desktop#2518] [jgraph/drawio-desktop#2521]
- Updates stable channel to 31.3.2
15-AUG-2026: 31.3.1
- Blocks a tab in the URL scheme in the CSS reference check [jgraph/drawio-dev#628]
15-AUG-2026: 31.3.0
- Add support for stable channel being set to release version
- Conf Cloud: First attempt of the integrity check tool
- Update vendored drawio-plantuml bundle to commit f751805
- Conf Cloud: Added progress and estimated remaining time to the integrity check
- Conf Cloud: Added new strings translations
- Office add-in: Replace Google Picker with a REST-based file list
- Update vendored drawio-plantuml bundle to commit 41f039c
- Fixes comment bypass and over-blocking in the CSS reference check [bugcrowd 31d70940-348e-4d9e-ae26-a20396ef5d69]
- Conf Cloud: Fixed Gliffy import comparison preview not updating
- Update vendored drawio-plantuml bundle to commit 01c610a
- Update vendored drawio-plantuml bundle to commit 919e054
- Fixes java<TAB>script: bypass and two unsanitized link sinks [jgraph/drawio-dev#624]
- Denies data attributes by default in the DOMPurify config [jgraph/drawio-dev#625]
- Build for confluence testing
- Block javascript: URLs with tab in the scheme in MathJax labels
13-AUG-2026: 31.2.2
- Corrected version format
- Make editor Gliffy import local-only, drop conversion-service callers [#618]
- Stop offering Dropbox as a save target [#5740]
- Add Gliffy migration workspace design document
- Replace Gliffy mass import with two-tab migration workspace [#620]
- Add per-diagram operations to migration report, import done state [#620]
- Carry error details and HTTP stats into migration report, local fullscreen [#620]
- Fix fullscreen overlay covering the page when hidden [#620]
- Updates stable to 31.2.2
12-AUG-2026: 31.2.1
- Fix Visio import of shapes with punctuated data labels and noisy image crops
- Document jgraph_tools_github rotation after Cloud Build clone failure
- Updates stable channel to 31.2.0
- Updates to latest gliffy importer
- Convert Gliffy mass import locally instead of calling the service
- Pushes stable to 31.2.1 on next release
12-AUG-2026: 31.2.0
- Add Bugcrowd GitHub issue sync worker (#609)
- Client-side Gliffy import with lazy-loaded converter bundle
- Rework Gliffy import as per-type importGliffy, restore parseFileData
08-AUG-2026: 31.1.9
- Added Confluence DC configuration to Cloud [jgraph/drawio#5319]
- Fixes XML extraction from attachment-embedded PDFs
- Fixed Confluence Cloud default macro parameters in the editor
- Update vendored drawio-plantuml bundle to commit 7bb048c
06-AUG-2026: 31.1.8
- Rejects script schemes in image sources and typed geometry input
- Matches libavoid drag previews to the drop semantics over containers
- Removes transparentBounds containers on ungroup
- Adds config keys for default page background and grid colors
- Adds ac/aj twin routes for workers shadowed by the channel-router catch-alls
- Registers installed PWA as file handler for .drawio files [jgraph/drawio#3302]
- Adds translated basic shape names and multi-word term lookup to shape search [jgraph/drawio#5518]
- Fixes flickering and inconsistent previews for clone drags
- Fixes move previews of dangling libavoid edges and handle visibility
- Adds mermaid config key for default Mermaid settings
- Fixes desktop shape library saves offering diagram file types
- Updates stable to 31.1.7
- Adds removeLibraryConfirm for products that archive libraries
- Adds space inside containers for modifier drag [jgraph/drawio#5544]
- Adds themes URL parameter for theme menu in embed mode [jgraph/drawio#5586]
- Adds wedge callout shape with movable tip [jgraph/drawio#4931]
04-AUG-2026: 31.1.7
- Adds Sidebar-ArchiMate4.js to build
04-AUG-2026: 31.1.6
- Bump actions/checkout from 6.1.0 to 7.0.1
- Moves stable channel to 31.1.5
- Adds Archimate v4 shapes
- Moves text flow options into the common properties section
- Fixes configured default edge font not applied to new edges and edge labels
- Fixes missing palette titles in savesidebar screenshots
- Updates tooling dependencies
- Tooling build fixes
- Updates wrangler version
- Adds a PNG preview to the Archimate 4 library
- Fixes the Archimate 4 device aspect ratio in element and icon notations
- Fixes missing save button on expanded palettes in savesidebar mode
- Removes plantuml and emf references
- Removal of old lambdas
- Matches libavoid drag previews to the committed route for targets inside containers
- Persists cursor sharing and remote cursor settings
- Excludes self-loops from libavoid routing to keep the loop style
- Adds Ctrl+Alt+T shortcut for Run Last Layout
- Adjust toolbar item spacing and zoom input minimum width for better layout
- Adds connecting edge to shape picker drag previews
- Adds offline language packs, language dialog and config editor i18n
- Adds applyLayouts option to run a diagram's child layouts on load
- Updates DOMPurify from 3.4.12 to 3.4.13
- Raises the AI prompt limit to 100K characters for Atlassian origins
- Reads the Atlassian AI prompt limit from a global variable
- Adds defaultLanguages configuration for preinstalled offline languages
- Stops the local lightbox rewriting the host page URL and title
- Keeps root presentation attributes on inlined SVG image symbols [jgraph/drawio#5724]
- Routes the animated GIF export through the save dialog
- Heals stale peer rosters so changes are not skipped as alone
- Adds a kill switch and a socket factory for the join announce
- Broadcasts newClient to the channel so earlier clients see joiners
- Checks link and CSS values in their serialized form [bugcrowd aa2c2792-33b0-4770-98aa-86684bec43b9]
- Repairs truncated AI responses to render the partial diagram with a hint
- Requires protocol and host to match in App.isSameDomain
- Accepts the leading slash form of built-in plugins
- Updates the generate/v3 default models to Opus 5 and Flash Lite
- Adds OpenAI as the primary budget provider for generate/v3
- Raises the premium draw.io token cap for Opus 5 adaptive thinking
- Scopes CSS rules of inlined SVG image symbols in exports [jgraph/drawio#5726]
29-JUL-2026: 31.1.5
- Fixes distance guide moving cells onto their neighbours [jgraph/drawio#5722]
- Fixes centered resize of rotated cells changing the other extent [jgraph/drawio#5723]
- Ships the Miro importer in extensions.min.js
- Fixes style removals being dropped from realtime patches
29-JUL-2026: 31.1.4
- Updates to imageResize tool
- Removes external plugin support from the desktop app
- Fixes leading semicolon when removing style key followed by empty entries
- Fixes centered text flow alignment at wrap boundaries
- Removes dark mode media query listener on destroy
- Fixes wrapped stand-alone mode and Electron runtime messages
- Applies style removals in patchCell
- Adds size guides for the size of shapes while resizing
- Fixes the naming issue in Flowchart shapes
- Reorders recent changes in Flowcharts stencil file
- Fixes swapped Or/Summing junction shapes in Miro import
- Fixes silent drop of invalid JSON and font search in configuration editor [jgraph/drawio-desktop#2500]
- Update vendored drawio-plantuml bundle to commit dfc660e
- Added some translation keys
- Copy the image in addition to opening it in a new window for lightbox export button (such that if a new window is not allowed, the user can access the image) [DID-19756]
- Update vendored drawio-plantuml bundle to commit 44ae98b
- Integrates equal-distance guides into mxGuide, improves position guides
- Adds edge alignment guides for resizing vertices
- Adds config options for position and distance guides
- Snaps the visible bounds of rotated cells to the grid [jgraph/drawio#2385]
- Adds cell selectors for dynamic viewbox custom actions [jgraph/drawio#4584]
- Fixes stuck segment handle next to snapped terminal points [jgraph/drawio#1137]
- Snaps the size instead of the dragged edge for rotated cells [jgraph/drawio#2385]
- Aligns guides with the visible bounds of rotated cells [jgraph/drawio#2385]
- Fixes distribute with spacing at zoom levels other than 100% [jgraph/drawio#5721]
- Fixes wheel zoom skipping 100% by using fixed zoom stops
- Fixes GraphML import issue
- Defends against prototype pollution [GHSA-vvpv-f297-2ghp]
- Fixes GraphML import
27-JUL-2026: 31.1.3
- De-enroll the preprod worker relic; document the Cloudflare Pages path
- Remove the unused preprod proxy worker
- Verify the build under test on the monitoring checklist
- Add cache functionality to preprod
- Allow preprod.diagrams.net through the convert worker referer gate
- Exclude .claude and internal docs from the public repo staging
- Adds host-targeted ac/aj twins for the auth-worker routes [DID-19731]
- Adds host-targeted ac/aj twins for the auth-worker routes [DID-19731]
- Adds host-targeted ac/aj twin for the fast-rt websocket route [DID-19733]
- Moves the production stable channel to 31.1.2
- Adds the fast-rt ac/aj twin routes and moves production stable to 31.1.2
26-JUL-2026: 31.1.2
- Re-enroll auth-workers: keep_vars protects dashboard variables
- Moves stable channel to 31.0.2
26-JUL-2026: 31.1.1
- cf-deploy: de-enroll auth-workers pending config reconciliation
- build-preprod: repoint dashboard links to the custom domain
- cf-deploy: Node 22 for wrangler 4
26-JUL-2026: 31.1.0
- Fixes font color applying to previously selected cells [jgraph/drawio-desktop#2421]
- Documents the live release-channel system
- Fixes sidebar order of restored libraries [jgraph/drawio#5715]
- Adds multi-cell support to the Edit Data dialog
- Keeps the scroll position when inserting cells from the sidebar if any part of the inserted cell is visible [jgraph/drawio#263]
- Adds page size image export to the desktop CLI renderer [jgraph/drawio-desktop#2481]
- Adds a defaultTransparentGroups configuration option for automatic group sizes [jgraph/drawio#5688]
- Adds a file properties option to include notes in saved PDF files in the desktop app
- Fixes detection of label fonts in SVG export [jgraph/drawio#5258]
- Fixes libavoid auto-routing of terminals dropped into layout containers
- Stops realtime cache requests on domains without a reachable cache
- Moves src/main/java to src/main/server/java
- tooling changes for java folder move
- Adds cloudflare workers to project
- Depenency updates
- New deployment system with cf integrated
- Minor change to release-monitor compatibiilty date
- Updates build readme
- Release pipeline SOC 2 hardening: durable evidence, verified identity, out-of-band change detection
- Fix bot-push workflow triggering; actor-gate build-commit validation; vendor register
- Document applied rulesets + preprod PR-only limitation and app-identity upgrade path
- Set edge-drift monitor targets (account + prod zone ids) in release-monitor vars
- release-monitor: move to Access-protected custom domain, verify identity in-worker
- release-monitor: CSRF guard, no-overwrite on attestations, disable preview URLs
- release-monitor: enable Access JWT verification (team domain + AUD)
- release-monitor: withhold heartbeat when BetterStack config is missing
- Binds SVG export popups only to the icons the export created
- Checks the link scheme on the SVG export link icon
- Add release-monitor control self-test workflow
- selftest: widen the incident-wait budget to 10 minutes
23-JUL-2026: 31.0.2
- Applies shapeInside to all insertion paths of the supported shapes [jgraph/drawio#4535]
- Improves the conversation list in the Generate dialog
23-JUL-2026: 31.0.1
- Adds backoff, max attempts and reactivation retry for realtime socket rejoin
- Patches the visible document on merge while the realtime socket is disconnected
- Hardens the release channel fail-safe paths
- Documents the stable channel promote runbook in the release README
23-JUL-2026: 31.0.0
- Supports fontFamily/fontUrl entries in the config editor font chips
- Fixes selection border position for rotated edge labels with non-centered alignment
- Creates writable before data generation in local file save
- Resets saving state on synchronous errors in Drive save
- Reports busy error for concurrent Drive save attempts
- Uses core oval/halfCircle markers for SysML interface templates
- Update vendored drawio-plantuml bundle to commit bacc703
- Hides busy save errors for automatic saves
- Shows SVG export tooltip icons for plain text tooltips
- Removes note icon tooltip and uses pointer cursor for overlay icons
- Added more features to user mention in comments to support Confluence (accountId, no notification, liveSearch, ...)
- Fixes displaced children of negative-size shapes in VSDX import
- Fixes crafted-diagram DoS from prototype-member shape/marker/style names
- Adds base support for text flow in shapes [jgraph/drawio#4535]
- Adds search ranking weights to list current shape libraries before superseded ones
- Fixes stale shape search results when the search term is deleted
- Fixes more prototype-member map lookups from untrusted style/import data
- Adds forced and fully disabled outline connect modes via outlineConnect style
- Guards ELK childLayout spec against prototype-member layout names
- Renames textFlowShapePadding to shapeInsidePadding
- Adds automatic font size support for text flow in shapes
- Hardens libavoid routing core maps against prototype-member cell ids
- Fixes prototype pollution in Confluence page-id CSV import
- Fixes prototype pollution in Confluence custom-content admin reindex
- Guards embed RPC dispatch allow-list against inherited method names
- Adds label padding between text and label background [jgraph/drawio#3355]
- Fixes decimal values in numbers-type properties in the property grid
- Adds text flow for SVG label conversion [jgraph/drawio#4535]
- Extends centered text flow overflow above the shape
- Triggers autosave for page view changes in inline embed mode
- Fixes custom links not working after failed link action [jgraph/drawio-desktop#2161]
- Refines centered text flow overflow symmetry
- Enables text flow for supported shapes in the General palette
- Clips expanded fill patterns to their tiles for printing
- Adds fill pattern properties for normal mode [jgraph/drawio#3201]
- Fixes vertical text flow alignment and joins detached trailing lines [jgraph/drawio#4535]
- Adds customTemplates configuration option
- Fixes ignored Labels option for label style colors in Adaptive Colors
- Improves Adaptive Colors window layout
- Embeds only the selected page in single page CLI exports [jgraph/drawio-desktop#2365]
- Adds beta/stable release channel plumbing for app.diagrams.net
- Enforces minimum table size and non-negative cell geometries in table layout
- Matches editor text flow to the rendered label [jgraph/drawio#4535]
- Fixes caret position when typing starts the text flow editor [jgraph/drawio#4535]
- Reduces outgoing realtime traffic while no other collaborators are connected
22-JUL-2026: 30.4.3
- Extracts diagram XML from PDFs rewritten by external editors
- Adds tooltip, link and note icons to SVG export and notes to PDF export
- Hides SVG export icons and popups in print output
- Routes UI colors through :root theme variables for custom color schemes [jgraph/drawio#5692]
- Guards untrusted-key maps against prototype pollution (patch/decode XSS)
22-JUL-2026: 30.4.2
- Adds anchored comments, mentions and comment indicators for Google Drive files [jgraph/drawio#1694]
- Improves version handling in release flow
- Moves comment indicators to the bottom right corner [jgraph/drawio#1694]
- Adds notes for cells with indicator icons and a WYSIWYG markup editor, also used for editing tooltips [jgraph/drawio#1547]
- Adapts locked file status icon to dark mode
- Sanitizes UML lifelineMirror foot label to prevent stored XSS
- Adds mandatory security-review guidance to CLAUDE.md
- Removes keyboard shortcut from editNote action [jgraph/drawio#1547]
- Adds Alt+Shift+N keyboard shortcut for editNote action [jgraph/drawio#1547]
- Moves compact mode restore from EditorUi to App to fix presentation mode error
- Adds Ctrl/Cmd+cursor page navigation in presentation mode
- Allows the replace icon to replace a shape with a dragged group [jgraph/drawio#3687]
- Adds preview button to the Mermaid and PlantUML insert/edit dialogs [DID-8862]
- Fixes generate tile state after errors and persists last generated diagram in template dialog
- Shows note box on note icon click with edit button if editable [jgraph/drawio#1547]
- Adds enabledTemplateSections config option to filter template dialog sections [jgraph/drawio#1417]
- Removes stale gd plugin registry entry for deleted googledrive.js
- Removes unused fonts from SVG export with external font references [jgraph/drawio#5000]
- Uses explicit font lookups for used fonts in SVG exports [jgraph/drawio#5000]
- Adds PDF as an editable file format in the desktop app [jgraph/drawio#4389]
- Fixes empty diagram overwriting PNGs without diagram data in the desktop app
- Uses null prototype for custom font lookups keyed by font name
- Renders tooltip markup as width-limited HTML for the tooltip icon [jgraph/drawio#1547]
- Escapes custom font names and URLs in exported and document CSS
- Escapes custom font names and URLs in print and export server CSS [jgraph/drawio#5000]
- vendor: update mermaid bundle (dev a23de8e — DID-19662 sequence activation events, bar child-y, box-edge margins)
21-JUL-2026: 30.4.1
- Offers built-in libraries as chips in shape search
- Skips installed icon sets in shape search chips
- Updates pako to 2.2.0
- Removes wasm-unsafe-eval from desktop
- Reserves stack layout title space on the painted swimlane side [jgraph/drawio#5362]
- Fixes content shift against the crop in image export [jgraph/drawio#4938]
- Hides device and download options for noDevice=1 in save dialog unless no other option is available
- Accepts CSS-style space-separated values in the group padding input
- Applies per-side group padding in extendParent and contractParent
- Clips page breaks, page guides and ruler ticks to the visible area for extreme cell coordinates [jgraph/drawio#3251]
- Limits the number of pages in the print output [jgraph/drawio#3251]
- Limits the number of pages in the export renderer print output [jgraph/drawio#3251]
- Handles invalid URI encoding in string properties
- Repairs invalid characters and HTML entities in XML parsing and output
- Adds resources configuration option for overriding and adding language resources [jgraph/drawio#1191]
- Closes preview tooltips on escape before closing the dialog
- Fixes clipping at the crop in image export [jgraph/drawio#4938]
- Extends export bounds by the crisp offset of painted shapes [jgraph/drawio#4938]
- Fixes coordinate frame, knot vector and cubic fitting in VSDX NURBS edge import [jgraph/drawio#2104]
- Converts Lucidchart curves to exact cubic bezier edges on import [jgraph/drawio#1047]
- Converts VSDX edge arcs, elliptical arcs, polylines and beziers to exact curves on import [jgraph/drawio#2104]
- Fixes offset of cells imported after a same-block loop edge in Lucidchart import
- Converts VSDX freeform splines to exact cubic beziers in shape geometry [jgraph/drawio#2104]
- Improvements to GraphML curve import
- Export dialog defaults to current file folder [jgraph/drawio-desktop#2132]
18-JUL-2026: 30.4.0
- Fixes sidebar drop preview position on children of transparentBounds groups
- Records the preserve origin flag in the last layout spec
- Shows file properties menu item for svg and html files in all themes
- Routes non-tree edges of tree layouts as orthogonal overlays
- Adds grouped icon search with installable set chips
- Build of version 30.4.0
- Build of version 30.4.0
18-JUL-2026: 30.4.0
- Build of version 30.4.0
18-JUL-2026: 30.4.0
17-JUL-2026: 30.3.14
- Replaces invalid transparent fill value with none in SVG export [jgraph/drawio#5563]
- Resolves light-dark colors for text fallbacks in SVG export
- Adds local file path and file URL support for library and template URLs in the desktop app [jgraph/drawio-desktop#1278]
- Adds NMOS and PMOS shapes with body diode to Electrical/Transistors [jgraph/drawio#5412]
- Adopts new file stat when content unchanged on watched file change [jgraph/drawio-desktop#2312]
- Caches picked fonts for saving SVG files with embedded fonts [jgraph/drawio#2886]
- Adds per-file option for embedding fonts in saved SVG files [jgraph/drawio#2886]
- Loads fonts before updating the file data in saves [jgraph/drawio#2886]
- Adds save support to the desktop unsaved changes close dialog [jgraph/drawio-desktop#2335]
- Looks through edges to keep occupied fixed points connectable [jgraph/drawio-desktop#1245]
16-JUL-2026: 30.3.13
- Clarifies override help and separates toggle lists in Configuration dialog
- Uses picked shape from hover shape picker in tree containers
- Removes Quip-only internationalization and mathematicalTypesetting toggles from the Configuration dialog
- Moves Copy on Connect, Stop Editing on Enter and Show Start Screen options to the configuration [jgraph/drawio#2196]
- Requires release versions to directly follow the last diagramly-* tag
- Centers find matches that are not fully visible in the viewport [jgraph/drawio#5276]
- Centers selections moved or resized with the cursor keys that are not fully visible in the viewport [jgraph/drawio#4841]
- Commits pending cursor-key moves before mouse gestures to avoid the open move session being continued with a mouse-based delta
- Fixes compounding page scale in multi-page PDF export with fit page enabled [jgraph/drawio-desktop#2490]
- Removes incorrect release numbering
- Removes cssVars rendering experiment from mxImageShape
- Adds cssVars style for theming embedded SVG images
- Adds cssVars support for same-origin SVG image URLs
- Adds light-dark support and prefixed style keys for cssVars
- Shares repeated images in SVG exports via defs and use tags
- Inlines themed SVG images as shared symbols in exports
- Inlines SVG images referenced in use tags when embedding images
- Tolerates the -- prefix in declared cssVars names
- Keeps IDs of shared images when embedding SVG images in exports
- Collapses image definitions with shared data when embedding images
- Shares unthemed instances of cssVars SVG images in exports
- Converts image URLs to data URIs when setting cssVars colors
- Shares image definitions across sizes and inlines single-use images
- Keeps aspect handling when embedding SVG images in exports
- Collapses inline images with shared data when embedding images
- Canonicalizes editable CSS rules for shared symbols in exports
- Shares image data across aspect modes and themed symbols in exports
- Removes cssVars test icon
- Sets CSS vars atomically with embedded image and keeps original URL
- Add scroll option to JSON embed protocol load message
- Adds search filter for Sharepoint sites in OneDrive picker [jgraph/drawio#5012]
- Adds keyboardShortcuts configuration option for custom hotkeys [jgraph/drawio#4182]
- Keeps fractional grid alignment for dragged edge points [jgraph/drawio#5675]
- Embeds fonts in saved SVG files [jgraph/drawio#2886]
- Fixes dropped PDF export after print dialog spinner
- Adds appearance option in embed SVG dialog
- Moves appearance option into advanced section of embed dialogs
- Left aligns edit select with other dropdowns in embed dialogs
- Shows custom edit URL as tooltip in embed dialogs
- Adds copy option for text output in save dialog
- Disables initial page option for current page links in publish dialog
- Fixes missing CSS class for close button in embed dialog
- Shows save dialog for embed HTML, image and SVG
- Uses blob URLs to show data in new windows
- Adds pages option in embed SVG dialog
- vendor: update mermaid bundle (dev e44ce3f — c4 row wrapping tracks screen.availWidth like upstream)
- Adds missing translations for fill styles, style previews, font dialog and default page names [jgraph/drawio#4006]
- Ignores navigator.onLine in desktop app as all resources are local [jgraph/drawio-desktop#2485]
- Replaces deprecated font elements with spans in SVG export [jgraph/drawio#5679]
- Wraps and clips text fallbacks for HTML labels in SVG export [jgraph/drawio#5687]
- Stops desktop plugin loading from persisting resolved plugin paths in settings [jgraph/drawio-desktop#1993]
- Adds Stop Editing on Enter option [jgraph/drawio#2196]
15-JUL-2026: 30.3.12
- Replaces deprecated font elements with spans in SVG export [jgraph/drawio#5679]
- Update vendored drawio-plantuml bundle to commit 90f4230
- Update vendored drawio-plantuml bundle to commit a7bd5b0
- Changes default grid color from d0 to e6
- Ship libavoid as a pure-JS vendored bundle (no WASM, no eval)
- Refresh libavoid bundle: bind ConnRef endpoint setters (fixes previews)
- Improves dialog title spacing and page controls consistency
- Fixes clipped descenders in the Page Setup initial view value
- Migrates one-off dialog secondary-text styles to geDialogHint
- Route dangling libavoid edge ends so the commit matches the drag preview
- Uses padding 3 and keeps text styles in edge label shape replace [jgraph/drawio#5284]
- Converts the i18n resources submodule to regular files in this repo
- Removes -- from comments - not allowed
- Splits CLAUDE.md into per-directory files and docs/claude guides
- Updates libavoid algorithm-sync docs to the CDN topology
- Updates libavoid bundle: unsatisfiable nudging no longer aborts the router
- Moves the ER weak key underline into the cell style [jgraph/drawio#5536]
- Scales rotated group children along the rotated axes [jgraph/drawio#4890]
- Updates translations
- Uses fill and stroke colors for sized edge labels in style tiles [jgraph/drawio#5284]
- Applies full default style to text cells when set from a text cell [jgraph/drawio#3535]
- Serializes connection points with six decimal places [jgraph/drawio#4901]
- Shows spinner while creating print output
- Preserves opacity for embedded SVG images [jgraph/drawio#4582]
- Applies font style to advanced ruler numbers [jgraph/drawio#5685]
- Fixes text background color state for multi-line selections [jgraph/drawio#5250]
- Fixes opening shared OneDrive files via Open button [jgraph/drawio#3758]
- Applies fixed dark/light theme in export page rendering [jgraph/drawio-desktop#2295]
14-JUL-2026: 30.3.11
- Improves consistency of the export and publish dialogs
- Fixes boot error when a stale cached extensions.min.js lacks LibavoidRouting.isSupported
14-JUL-2026: 30.3.10
14-JUL-2026: 30.3.9
- Fixes ELK layout statics being wiped by double bundle load [jgraph/drawio-desktop#2471]
- Extends replace shape timeout to 3500ms [jgraph/drawio-desktop#2474]
- Updates DOMPurify from 3.4.11 to 3.4.12
- Fixes NaN edge label geometry for zero-length edges in getRelativePoint [jgraph/drawio#5498]
- Replaces per-row delete with a selection Delete in the Animation dialog [jgraph/drawio#5672]
- Adds replace shape via drag and drop for edge labels [jgraph/drawio#5284]
- Fixes edge labels left behind by the libavoid move preview [jgraph/drawio#5284]
- Fixes inconsistent spacing in save dialog
- Graceful fallback for libavoid if wasm-unsafe-eval not available
- Lazy sidebar palette init for expanded shape libraries [jgraph/drawio#5690]
- Fixes clipped major grid lines at tile boundaries [jgraph/drawio#212]
- Adds Sort Pages action [jgraph/drawio#5549]
- Updates SAP generic icons and adds Joule Studio icon [jgraph/drawio#5241]
- Rotate group children in rotation prompt and geometry dialog [jgraph/drawio#4463]
13-JUL-2026: 30.3.8
13-JUL-2026: 30.3.7
- Update an inserted AI diagram in place when iterating on it
- Fix white model dropdown in dark mode; shrink and thicken the usage ring
- Use 5 for the context-usage ring thickness
- Give the model select an explicit background (fixes white dropdown)
- Use the describeYourDiagram placeholder for the chat input
- Render AI diagram replies inline; retry only on error
- Add color-scheme light dark to Mermaid and PlantUML image cells
- Arrange top-left cell icons as move, lock below, edit right
- Fix Automatic checkbox alignment, show Group Padding for styled cells
- Match Mermaid and PlantUML image padding with the diagram groups
- Disables AI in desktop when enableai set false in config
- Updates excludes
- Fixes layout icon in simple theme
- Fewer insert icons for small screens in simple theme
- Add foldingIconSize cell style and Format panel property [DID-19577]
- Removes Generate and Table quick access toolbar icons in simple theme
- Removes layout and table icon from simple toolbar
- Patches java SSRF - GHSA-m3q9-cwfq-hcjc
- Completes SSRF blocklist in proxy - GHSA-xc39-mcq4-fr4q
- Updates azure icons [jgraph/drawio#5301]
- Fixes visibility of unchecked custom libraries in More Shapes dialog [jgraph/drawio#5491]
- Fixes dark mode colors in animated GIF export [jgraph/drawio#5619]
- Fixes missing line jump where overlapping edges cross a third edge [jgraph/drawio#5582]
- Adds partial and word-boundary matching to shape search for imported library names [jgraph/drawio#5461]
- Fixes dark mode colors in Copy as Image/SVG [jgraph/drawio#5455]
- Adds copy/paste of steps in the Animation dialog [jgraph/drawio#5672]
- Removes arrow, generate and layout from sketch sidebar
- Adds ground, earth tags for ground symbols
- Unifies background options in Page Setup and Format panel
- Adds curved style support for link and arrow connectors
- Moves less common print dialog options into collapsed Advanced section
- Adds connectable=0 to Insert > Layout containers
- Fixes libavoid routing for transparentBounds edge terminals
- Removes unused lightboxAnimation key in all locales
- Fixes page scale being ignored in desktop print output [jgraph/drawio#5540]
- Caps page-break count to prevent DoS from extreme cell coordinates
08-JUL-2026: 30.3.6
- Remove server-rendered PlantUML outputs, add native Image option
- Fixes replacement position when switching diagram to image on edit
08-JUL-2026: 30.3.5
- Appends version to SW revisions
08-JUL-2026: 30.3.4
- Set diagram as the default for plantuml. Prevent atlassian and desktop from egress
08-JUL-2026: 30.3.3
- Clean up ChatWindow generate dialog (phase 1): dead code, fallback bug, type seam
- Add Reply (follow-up) option to ChatWindow responses [BYO-key only]
- Offer Reply on text-only ChatWindow answers; factor out addReplyButton
- Phase 2: split ChatWindow mode from context in the generate dialog
- Replace per-response Reply button with an "Include conversation" checkbox
- Phase 3: move clipboard verbs + reset out of the mode select into Commands menu
- Rework generate dialog as a chat: conversation list, attach menu, model selector
- Cap free draw.io backend prompts at 1000 chars with a clear error
- Raise free draw.io model prompt cap to 10000 chars, name the tier in the error
- Add Claude 4.8 Opus to the AI models, replacing Claude 4.6 Sonnet
- Add dictation to the chat composer; require XML back for XML modifications
- Cap the free backend on the full sent payload; add a ring char counter
- Replace preconfigured Claude 4.6 Opus with Claude Sonnet 5 in aiModels
- Fix PlantUML loader crash on preprod + mirrored lifelines
- Remove per-message delete from the chat; delete whole threads in the sidebar
- Refine the free-tier counter into a Claude-style dial with popover
- Zoom and pan for scaled-down sidebar tooltip previews
- Update resources submodule for the generate-dialog chat UI strings
- Update vendored drawio-plantuml bundle to commit 393944e
- Replace preconfigured Sonnet 5 with Opus 4.6 and default the chat window to 440x440
08-JUL-2026: 30.3.2
- Add option to disable font embedding in SVG output [jgraph/drawio#5337]
- Fix stale Configuration dialog pointer in CLAUDE.md
- Paste style only applies to selected cells and their composite parts [jgraph/drawio#5374]
- Retain manual export settings for the session [jgraph/drawio#5653]
- Move global shadow option from View section to diagram style panel
- Normalize transparentBounds geometry before layout manager runs
- Group padding option for all containers, honored by autosize
- Reserve swimlane footerSize in transparentBounds and layout parent resize
- Border band targets connections at containers under overlapping children [jgraph/drawio#5374]
- Update vendored drawio-plantuml bundle to commit f6a243a
- Guiding placeholder for empty animation and action step lists
- Adds wasm-unsafe-eval to desktop CSP
07-JUL-2026: 30.3.1
- Adds wasm-unsafe-eval to CSP
- Add lifelineMirror option to UML lifeline shape
- vendor: update mermaid bundle (dev 89e95b2 — opt-in singleLifelines sequence lifelines)
- Accept URL-encoded newEdgeStyle values
- Add Mirror Head property for UML lifeline shape
- vendor: update mermaid bundle (dev d80fd5d — single-cell mirrored lifelines by default)
- Avoids unsafe-eval on libavoid
07-JUL-2026: 30.3.0
- Add libavoid orthogonal edge routing (Arrange > Layout)
- fix: upgrade p3x-xml2json from 2024.4.116 to 2024.4.121
- Add libavoid auto-routing edge style with live obstacle avoidance
- Add live libavoid preview while dragging an edge endpoint
- Fix infinite recursion in mxEdgeHandler.reset (var-name collision)
- Make libavoid endpoint-drag preview exactly match the committed route
- Add libavoid entry to the edge-style routing picker
- Drop the edge-panel auto-route checkbox in favor of the routing-picker entry
- Add libavoid routing entry to the toolbar and inline-toolbar edge pickers
- Dim waypoint handles on libavoid auto-routed edges
- Re-route libavoid edges a moved shape lands on, not just connected ones
- Route the new-edge preview when dragging from the hover-icon arrows
- Make libavoid obstacle-avoiding routing the default edge style
- Fix new-edge preview (diagonal segments) and apply routing on insert
- Route the new-edge preview through the handler's waypoint path (orthogonal endpoints)
- Re-route libavoid edges when a new shape is inserted onto their path
- Respect fixed connection points in libavoid routing (no terminal intersection)
- Honour fixed anchors on newly created edges (re-route on CONNECT)
- Read the fresh edge style for fixed-anchor routing on insert
- Live-route connected edges while dragging a shape (move preview)
- Fix shape-move live preview routing against reset cell states
- Recompute edge endpoints in shape-move preview (updateFixedTerminalPoints)
- Re-route bent auto-edges on endpoint drag; harden move preview
- Honour fixed anchors in the endpoint-drag preview
- Pin the dragged end to a snapped connection point in the endpoint preview
- Honour fixed anchors in the new-connection (hover-icon) preview
- Expose libavoid orthogonal routing as a JSON layout (CLI/embed/headless)
- Update drawio-i18n: libavoid orthogonal routing strings in all locales
- Address libavoid code review: WASM leak, deferred-flag, robustness, churn
- Fix libavoid shape-move preview for jump-style and overlapped edges
- Persist the global current edge style across sessions
- Add routing-strategy switch for libavoid shape-move preview
- Revert libavoid routing as the default edge style
- Expose Diagram/Image dropdown in the Mermaid edit dialog
- Expose Bounded Label toggle for all shapes that support boundedLbl
- vendor: update mermaid bundle (dev eb22455 — combined features + LCA edge fix)
- Fix stale-detour flash when an endpoint drag straightens a libavoid edge
- Warm up MathJax packages before export math measure [jgraph/drawio#5564]
- Include edges in group bounds so edge-only selections group again [jgraph/drawio#5656]
- Escalate edges to the transparentBounds parent on click, like shapes
- Highlight the active item in each inline connection popover section
- Add a Grid option to the SVG export dialog
- Clamp negative arc radicand that dropped semicircle stencil arcs [jgraph/drawio#956]
- Escalate z-order changes on table cells and rows to the table [jgraph/drawio#4350]
- Revert "feat(appUpdate): notify of available update via notification bell" [jgraph/drawio#5658]
- Add Check for Updates to the Help menu of the hosted versions [jgraph/drawio#5658]
- Apply text color as inline style to avoid red <font> placeholder in dark mode [jgraph/drawio-desktop#2076]
- Honour jettySize at fixed connection points in libavoid routing
- Default a cleared jettySize property to auto instead of 0
- Fix cleared jettySize reverting to 0 via the property editor's blur re-run
- Remove Check for Updates from the Help menu [jgraph/drawio#5658]
- Remove the jettySize key from the style for auto instead of writing it
- Fix white background in fixed-theme dark SVG exports on browsers without light-dark()
- Add Make a Copy option to publish link dialogs for stored files
- Replace radio buttons with dropdown in the embed HTML dialog
- Fix silent CLI PNG/JPEG export failure when shadow is enabled [jgraph/drawio-desktop#2230]
- Fix libavoid loader parse error from glob pattern in header comment
- Add libavoid and parallels layout shorthands, Run Last Layout and toolbar layout menu
- Add experimental native PlantUML diagram insert via drawio-plantuml
- Fix rounded corners on headerless tables
- Confirm before closing diagram source-edit dialogs with unapplied changes
- Deselect locked-group descendants when the lock icon engages
- Unclip focus halo on bottom-row controls in textarea dialogs
- Fix libavoid routing of compact/wrapped diagrams; menu order
- Replace Insert > Layout dialogs with live layout containers
- Use ELK layouts for Insert > Layout containers via async layout manager
- Straight edges for the radial tree layout
- Fit the container to the circle in circleLayout childLayouts
- Add title-side margin in ELK layout containers
- Share layout container styles with the Advanced sidebar, match legacy spacing
- Run ELK childLayouts synchronously inside the triggering edit
- Fix self-loop misdetection in applyNewEdgeStyle for tree tools
- Use transparentBounds for the tree containers in the sidebar
- Center the tree containers' edge channel between the levels
- Refresh drawio-elk bundle after rebase onto upstream bridge fixes
- Fix unit snap side for right-side numbering in rack cabinet [jgraph/drawio#5342]
- Skip enclosing containers as libavoid routing obstacles
- Make libavoid auto-routing defer to layout containers
- Keep rigid translation in libavoid shape-move preview
- Document libavoid container ownership and routing changes
- Fix un-undoable ghost routes from the libavoid move preview
- Skip jetty checkpoints libavoid cannot honour
- Demote libavoid's skipped-checkpoint warnings to console.debug
- Skip layouts for cells outside the model in the layout manager
- vendor: update mermaid bundle (dev 76232de — flowchart edge ids/animation/linkStyle, blank subgraph labels + transparent containers)
- Refresh drawio-elk bundle: selection-as-root scopes to connected components
- Higher-precision units for grid and page size [jgraph/drawio-desktop#1739]
- Release libavoid auto-routing on edges an ELK run routes
- Refresh drawio-elk bundle: anchor content when the layout root is transparentBounds
- Insert > Layout containers become transparentBounds groups
- Legacy shared-stem tree edges for the ELK tree layout
- Refresh drawio-elk bundle: center tree-edge entries on the child
- Make shapes inside layout containers resizable
- Updates MathJax from 4.1.2 to 4.1.3
- Cap libavoid jetty stubs to the terminal pair's gap clearance
- Lazy libavoid jetty enforcement; jetty cap moves into the core
- Refresh drawio-mermaid bundle: reject invalid links like upstream
- Keep the update mermaid dialog open on parse errors
- Restore source-defined connector ends on mermaid updates
- Layout runs retarget a selected layout container's childLayout
- URL-encode JSON childLayout style values
- Support flow animation on sketch style edges
- Lay out containers as units in ELK runs, add group padding option
- Keep relative and part=1 cells fixed inside their parent in ELK runs
- Never move connected ports and docked cells in ELK runs
- Skip labels of transparentBounds cells in the ELK input
- Fixes layout dialog title
- Route edges from corner-docked ports out their actual side
- Honor diagram background in CLI SVG export, support --transparent
- Strip trailing zeros from mm display [jgraph/drawio-desktop#1739]
- Stop typing shim clipboard branch stealing focus from Find [jgraph/drawio-desktop#2465]
- Make View section in Format panel collapsible with persistent state
- Close the nested async childLayout autosave loop
- Reject non-converging childLayouts and method-clobbering configs
- Reflow ELK layout boxes on container collapse/expand and shape-part resize
- Cascade tree container deletes with an orphan check
- Select cell inserted via hover arrows in tree containers
- Expose containerType in the Format panel property grid
- Fall back to minimal delete when a cascade would wipe a tree container
- Straighten ELK fan-in/fan-out stubs at inset perimeters and ports
- Retain per-edge corner styles across layout container re-runs
- Fix center-attached fan pins and conservative-mode fan-in kinks
- Unify the ELK connector dropdown on the strict orthogonal mode
- Delete edges in tree containers without the orphan cascade
- Honor port-constraint masks in ELK layouts, expose combined values
- Keep user-connected fixed anchors across ELK layout runs
- Honor port-constraint masks in libavoid routing, re-route on edits
- Keep free edge ends off the corners of anchored nodes in ELK runs
- Honor snapToPoint in libavoid routing via candidate anchor pins
- Honor snapToPoint and jettySize in ELK runs, spread free ports by destination
- Keep the final approach straight when a snapped end offsets a zero-bend route
- Snap masked ends to declared anchors in ELK runs, straighten jetty stub tips
- Update vendored drawio-plantuml bundle to commit 5147280
- Update vendored drawio-plantuml bundle to commit a403b72
- Update vendored drawio-plantuml bundle to commit 95fc435
- Honor explicit jettySize at masked ends in ELK runs
- chore(mermaid): rebuild bundle with sequence edge fixes [DID-19423, DID-19529]
30-JUN-2026: 30.2.7
- Expose the Diagram/Image output dropdown when editing a Mermaid cell
- Adds experimental loop handle
- fix: Enhance inner loop handling and waypoint management in edge rendering
- Implement inner loop waypoints for enhanced loop handling in edge styles
- Refactor loop handling for edge styles: enhance inner loop waypoint management and improve geometry updates
- Add 3-handle self-loop editing for inner-loop edges
- Reverse self-loops and add loop direction controls
- Make inner-loop editing robust on non-rectangular shapes; functional loop direction
- Removes unused package lock to prevent false positive security alerts
- Add layout option to #create hash and embed load action
- Fixes missing ID prefix in embed mode
- Add passThroughKeys embed config to forward keyboard chords to the host
- Add suppressNewWindows embed mode to route links and popups through the host
- Add tooltips=0 URL param to suppress cell tooltips
- Anchor the shape-picker preview at the cursor in embedInline mode
- Keep the inline edge toolbar popover inside the viewport
- Quote font family names that are not valid CSS identifiers [jgraph/drawio-desktop#1604]
- Avoid "Error undefined" message on terminated Dropbox requests
- Replace Workbox CLI service-worker generation with an in-build Java helper
- Raise polygon vertex precision and let Alt ignore the grid [jgraph/drawio#5380]
- Make cursor-key move respect the document unit [jgraph/drawio#4812]
- Rotate group children for the angle field, turn and rotate click [jgraph/drawio#3955]
- Bump drawio-i18n: fix inconsistent English label capitalization
- Repaint table grid lines hidden by filled cell fills
- Keep line/fill color checkbox visible (unchecked) for inherited colors
- Add UI to set a color to inherit from the parent
- Point in-app help links to the docs site instead of GitHub Discussions
- Corrects C4 legend colours
- chore(mermaid): rebuild bundle with DID-19423 flowchart fixes
- Fix DNS-rebinding SSRF in image proxy (GHSA-3v4h-8r2c-m8c5)
- Harden ExportProxyServlet against path traversal (GHSA-3pq9-9hg4-ggfw)
- Enforce OAuth state (CSRF) check on non-GAE deployments (GHSA-mcj5-3pww-7g49)
24-JUN-2026: 30.2.6
- Reduces verbosity of build output
- Adds automatic tangent rotation for edge labels [jgraph/drawio#5365]
- Updates i18n submodule for Greenlandic autoRotateLabel fix [jgraph/drawio#5365]
- Updates i18n submodule for Edge capitalization [jgraph/drawio#5365]
- Fixes rotate handle showing on rotated auto-rotate labels [jgraph/drawio#5365]
- Fix Org Chart layout dialog row spacing
- Refresh drawio-elk bundle: radial/organic layouts keep edges straight
- Fixes edge double-click not adding label in transparentBounds groups
- Fix exported SVG black background in browsers without light-dark() [jgraph/drawio]
- Route all adaptive light-dark colors through --ge-adaptive-bg in SVG export [jgraph/drawio]
- Harden convert-to-SVG check against stored XSS (editable=0 labels)
- Add edge fill/gradient color to inline toolbar; fix color picker selection binding
- Sync inline toolbar color picker to live selection
- Sync style panel color picker to "none" when new selection lacks the color
- Harden convert-to-SVG check against stored XSS (editable=0 labels)
- Keep mermaid insert dialog open on parse failure
- Add swimlaneSelectionEnabled config switch
- fix: upgrade org.apache.commons:commons-lang3 from 3.18 to 3.20.0
- fix: upgrade commons-codec:commons-codec from 1.15 to 1.22.0
- Add align/distribute as named actions for omnisearch [jgraph/drawio#5418]
- Hide inactive resize handles when resizing groups
- Hide deleteAll in pages dropdown in lightbox
- Show shape picker on double click of unconnected edge terminal
- Fix convert-to-SVG export overflow anchoring for wrapped clipped labels
- Show user icon and account panel entry after MS365 login
- Enable turn action for swimlane lanes inside tables
- Fixes border frame of format panel with rulers
- Reserve format panel scrollbar gutter to stop content squeeze
- Restore Mermaid image insert option [jgraph/drawio#5643]
- Decouple vertex and edge default text styles [jgraph/drawio#5538]
- Add Label Width control to Text format panel [jgraph/drawio-desktop#2452]
- Make dialog form-section spacing consistent across export dialogs
- Add Search Images option to shape search omnibox [jgraph/drawio#5294]
- Fix infinite refresh loop when tabbing edge point inputs in Format panel
- Updates perfect-freehand to 1.2.3
- Updates crypto-js readme
19-JUN-2026: 30.2.5
- fix(sidebar): pass title element to onInit in expanded addPalette path
- feat(embed): optional mermaid group wrap on descriptor load
- Fixes view jump on mouse wheel zoom [jgraph/drawio#5639]
- Fixes off-center connection points on electrical stencils [jgraph/drawio#5627]
- Fixes zoom-to-cursor jump when panning during a pending repaint [jgraph/drawio#5639]
- Adds temporary flag-gated zoom debug logging [jgraph/drawio#5639]
- Revert "Adds temporary flag-gated zoom debug logging [jgraph/drawio#5639]"
- Sizes math export crop to rendered MathJax output [jgraph/drawio#5564]
- Guard mxUtils.isVerticalTextDirection against non-string values
- Fix desktop CLI Mermaid + ELK layout export
- Fixes stored XSS on file open via editable=0
18-JUN-2026: 30.2.4
- Replaces mermaid in deployed version
18-JUN-2026: 30.2.3
- Improves generate response classification
- Scopes GCP2 Zones markers style to closure (#5509)
- Adds 90 degree rotation for fully unconnected edges [jgraph/drawio#5076]
- Adds margin to rotate button in ArrangePanel
- Removes logging for mermaid diagram parse errors
- Replace static mermaid type lists with the parser's detectType
- Wrap generated mermaid in an editable group in the chat
- Show the chat response when it can't be rendered as a diagram
- Update help icon link for mermaid in ParseDialog to point to GitHub discussion
- Fix dark mode account icon visibility [jgraph/drawio#5364]
- Updates DOMPurify from 3.4.9 to 3.4.10
- Add best-effort recovery for files that fail to load
- Fix dark mode account icon visibility [jgraph/drawio#5364]
- Preserve format panel input focus across DOM refresh
- Add automatic (transparentBounds) toggle and border width to Arrange panel
- Corrections to security.md
- Add Mermaid file open and ELK layout support for desktop
- feat(shape): optional centerStroke border on ellipse center disc
- Updates DOMPurify from 3.4.10 to 3.4.11
- chore(mermaid): refresh vendored bundle to commit.4f618a5
- fix(data): reject property names that are invalid XML attribute names
- Copies orphaned static function into confluence [DID-19382]
- Fixes shape library title overflow
- fix(codec): log valid cell id on invalid style-compression reference
- feat(config): add experimental compressStyles option
12-JUN-2026: 30.2.2
- Removes mermaid as a dependency
- Updates to mermaid error handling
- Guards against multiple success calls
- FIlters out incorrect mermaid types from logging
12-JUN-2026: 30.2.1
- Correct ELK layout build
- Adds defensive code in mermaid parsing
- Removes debug output for electron app
- Centralises isMermaidSupported()
12-JUN-2026: 30.2.0
- Adds more color flexibility to some Mockup and iOS shapes
- Adds multicolor support to some iOS shapes
- Adds multicolor supports to some IOS shapes
- Adds multicolor support to some GMDL shapes
- Adds multicolor support to some Mockup shapes
- Adds multicolor support to some Android shapes
- Adds multicolor support to soem EIP shapes
- Adds multicolor support to some Rack shapes
- Reduce days before stale from 250 to 200
- Adds multicolor support to some GMDL shapes
- refactor(text): unify HTML to SVG conversion and convertibility check in mxUtils [DID-18880]
- fix(text): apply text colors in HTML to SVG label conversion