-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathChangeLog
More file actions
15301 lines (11053 loc) · 486 KB
/
Copy pathChangeLog
File metadata and controls
15301 lines (11053 loc) · 486 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
01-OCT-2026: 31.7.0
- Stops loading the Pusher library in lockdown mode
- Stops fetching notifications in lockdown mode
- Fixes realtime catchup over several saves in Confluence Cloud
- Lets the MathJax update and comparison run in a cloud container
- Updates the vendored drawio-plantuml bundle to commit 7e1e88f
- Updates drawio-elk bundle to 0.1.0+commit.5c1c970
- Fixes missing XML escaping in the connectRender snippet
- Fixes missing XML escaping in the Forge connectRender webtrigger
- Updates drawio-elk bundle to 0.1.0+commit.cbd81ba
- Adds a model comparison eval to the generate/v3 worker
- Removes diagram data, file ids and URL parameter values from client logs
- Conf Cloud space approval translation keys
- Fixes find window freezing while typing with all pages
- Stops the realtime cache from re-issuing tokens for used secrets
- Limits the length and size of realtime cache catchups
- Removes exception details from realtime cache error responses
- Checks cached catchup patches against the descriptor checksum
- Fixes lost descriptor change notifications in realtime sync
- Updates vendor bundles
- Stops reporting failed realtime cache uploads as save errors
- Keeps base64 padding in compressed style resources
- Rejects non-numeric def references in compressed styles
- Keeps all references in compressed styles with multiple resources
- Removes dead code
- Updates drawio-elk bundle to 0.1.0+commit.0cfcdc4
- Updates tooling and worker dev dependencies for Dependabot alerts
- Re-routes libavoid edges after arrange actions and layouts
- Adds followTerminals edge style that moves waypoints with terminals
- Frees libavoid route copies so repeated solves route identically
- Shares libavoid pins and retries connectors libavoid cannot route
- Routes libavoid edges around rotated, turned and flipped shapes as drawn
- Updates drawio-mermaid bundle to 0.1.0+commit.8747059
- Re-routes libavoid edges when a shape is rotated with its handle
- Makes the libavoid drag preview enforce the jetty stub like the drop
- Makes followTerminals edges follow transparentBounds terminals
- Updates drawio-elk bundle to 0.1.0+commit.c50c120
- Previews the drop's clearance retry when libavoid finds no warm route
- Points the libavoid docs at the tool server's current core cache
- Fixes the Google Drive file not found dialog layout and link
- Fixes clipped Change User dialog after a Google Drive file not found error
- Added lucid importer app translation keys + fixed its chrome extension
- Updates drawio-elk bundle to 0.1.0+commit.c6b8e34
- Adds zoomEvents load option to notify the embed host of zoom changes
- Caps the size of diagrams inserted by the Google Sheets add-on [jgraph/drawio#5559]
- Asks again for permissions users unticked in the Google add-ons [jgraph/drawio#5559]
- Removed tabs from the Lucid import extension permissions
- Adds the sequence edge style to the edge inline toolbar [jgraph/drawio#5706]
- Clears innerLoopWaypoints when the inline toolbar resets edge waypoints
- Limits the Google Workspace add-on submission to smart chips
- Covers descriptor change notifications over the realtime socket
- Uses random realtime channel keys for OneDrive and monday.com
- Conf Cloud: Added translation keys needed for describing config space creation
- Blocks escape, backslash and quote desync bypasses in the CSS reference check
- Fixes checkPlaceholderStyles always returning true
- Restores own-color references and adds parentFillColor/parentStrokeColor
- Fixes copy-pasted doc comments of Graph style state helpers
- Fixes lost URL parameters when a #P hash sets the hash property
- Fixes lost text before a code fence in AI responses
- Fixes the shadowColor configuration option having no effect
- Fixes scrollLeft typo in pageSelected
- Fixes rowspan typo in visitTableCells
- Fixes spelling and grammar errors in English UI strings
- Makes English UI labels consistent in capitalization and wording
- Uses American "color" in the Configuration dialog texts
- Spells "Double-click" consistently in English tooltips
- Uses Key+click notation for modifier hints in English tooltips
- Spells SharePoint with a capital P in English UI texts
- Updates drawioForWork to "draw.io for Google Workspace"
- Uppercases CSV, URL, VSDX and ID in English UI messages
- Writes "app" in lowercase in two Confluence app messages
- Spells "Zigzag" as one word in the fill style names
- Writes "Reopen" without a hyphen in the comment actions
- Names the hiResPreview option "High Resolution Preview" everywhere
- Writes "custom content" in the Confluence integrity check messages
- Fixes punctuation in English UI messages
- Re-routes libavoid edges after flips and the rotation dialog
- Fires cellsArranged for Edit Geometry and Paste Size
- Passes the source perimeter to the libavoid new connection preview
- Moves followTerminals waypoints when a group is rotated or flipped
- Adds missing resources for the custom GitLab server warning dialog
- Adds missing doubleClickToEdit resource for the ID in Edit Data
- Fixes raw justifyfull tooltip in the text toolbar align menu
- Fixes raw smartFit tooltip in the presentation mode toolbar
- Adds authorizedIn resource for the popup auth button dialog
- Makes the PlantUML issue link in the insert dialog translatable
- Translates the highlight color and open link fields in action dialogs
- Fixes flow toggle and opacity step labels in the animation dialogs
- Cancels the animation export on Escape [jgraph/drawio#5777]
- Closes the video encoder when the MP4 export is cancelled early [jgraph/drawio#5777]
- Destroys the custom action editor when it is closed
- Parses the CSS of SVG image symbols for scoping [jgraph/drawio#5726]
- Fixes xUtils typo in the grapheditor updateDiagramData
- Fixes operator precedence in the browser files list striping
- Removes the unreachable Atlas branch of the diagram menu
- Removes the unused DrawioFile.isMovable and DriveFile.isMovable
- Ignores a stored Dropbox or Trello mode when the storage is not enabled
- Keeps non-ASCII letters in imported Visio shape data names
- Keeps glued edge ends in place when Visio import fits a stencil cell
- Mirrors edge label offsets with flipped groups in the Visio import
- Turns off-centre labels of rotated Visio groups only once
- Glues Visio connectors to the right side of flipped shapes
- Fixes actions skipping cells whose ID is an Object.prototype name
- Fixes "Page not found" tooltips for page links with spaces in the viewer
- Fixes missing Microsoft 365 name and logo in the authorized dialog
- Removes duplicate auth retry code in DropboxClient
- Removes duplicate write request code in OneDriveClient
- Removes duplicate auto-origin code in GraphViewer toolbar
- Removes duplicate touch tap listener for viewer toolbars
- Removes duplicate drag and drop code in image and link dialogs
- Removes duplicate FolderShape.getLabelMargins in Shapes.js
- Removes duplicate redraw code of the lock and edit icon handles
- Removes duplicate shapeInside size and direction code in Graph.js
- Removes duplicate client scan in App.getMainUser and getCurrentUser
- Removes duplicate shape code in the Lucidchart importer
- Fixes normalizeModel growing collapsed containers
- Fixes Find on all pages stopping at matches that are not rendered
- Removes the no-op p.Rotatio assignments in the Lucidchart UML import
- Removes the unreachable Console preview from the Edit Data export
- Fixes GitLab token sent to GitHub and GitHub token sent to GitLab
- Fixes Microsoft 365 token used by the personal OneDrive client
- Fixes literal … in truncated template category names
- Fixes missing border around the library dialog image area
- Fixes light template category headers and borders in dark mode
- Fixes light draft preview border in dark mode
- Fixes untitled library entry label color in dark mode
- Uses the dialog hint style for the shapes dialog empty preview
- Fixes light separators and Drive warning in the storage dialog dark mode
- Fixes light separators in the splash dialog dark mode
- Fixes bright polygon dialog grid in dark mode
- Uses the themed border for the freehand window color swatch
- Uses the theme error colors for the find window not-found state
- Adds Ctrl+Enter to apply in the edit diagram dialog
- Adds Ctrl+Enter to insert in the text / mermaid / PlantUML dialog
- Adds Ctrl+Enter to apply in the edit shape dialog
- Uses app error dialogs instead of native alerts in the edit data dialog
- Uses the dialog button style for the connection points Add button
- Uses the standard title and help icon in the create dialog
- Right-aligns the image dialog buttons
- Right-aligns the page and layer picker buttons
- Uses a standard h3 title in the edit shape dialog
- Removes inline title styles from the markup dialog
- Uses the standard button spacing in the plugins dialog
- Uses the standard button spacing in the grapheditor link dialog
- Uses the 14px button margin in the crop image dialog
- Uses the standard button margin in the compact shapes dialog
- Adds a tooltip to the email button in the embed dialog
- Adds a tooltip to the color dialog dropper button
- Removes doubled control gaps in the edit data dialog rows
- Uses the dialog hint style for the embed dialog size label
- Uses the dialog hint style for the revision dialog file info
- Fixes missing Cancel in the template dialog when cancelFirst is off
- Honors cancelFirst in the animation and custom action dialog footer
- Honors cancelFirst for the Close button in the embed dialog
- Holds unconfirmed live deletes in the realtime grace window
- Scopes the realtime merge veto to colliding inserts
- Keeps the newer-version dialog latched while its reload waits
- Extracts the shared claimant walk of patchPages and patchCellRecursive
- Uses CSS whitespace when scoping the CSS of SVG image symbols [jgraph/drawio#5726]
- Prefixes fonts and keyframes declared in SVG image symbols [jgraph/drawio#5726]
- Fixes clipped bottom border of the inline OneDrive picker
- Fixes quadratic trimming of Visio shape data names
- Fixes quadratic time in mxUtils.rtrim
- Rejects Edit Data property names that make diagrams unreadable
- Fixes six dialog borders that the browser dropped as invalid CSS
- Moves the polygon and connection points actions to diagramly
- Adds an overridable hook for the Edit Data export
- Adds a mixed values state to Edit Link for selections with different links
- Turns edge label offsets with rotated groups in the Visio import
- Fixes copy-pasted doc comments of the file classes
- Fixes copy-pasted doc comments of the library classes
- Fixes copy-pasted doc comments of the storage clients
- Fixes copy-pasted doc comments in Graph and EditorUi of the grapheditor
- Fixes copy-pasted doc comments of App, EditorUi and Pages
- Re-routes libavoid edges after Edit Style and turning a swimlane
- Re-routes libavoid edges after replacing the shape of a vertex
- Removes the redundant styleChanged event of the Flip buttons
- Renames cfgFontCssHelp to cfgCustomPresetColorsHelp
- Documents the title margin of the revision dialog
- Shows the cell ID in Edit Data as regular text
- Fixes a global variable in GitLabClient.insertFile
- Updates the metadata of OneDrive libraries after saving
- Removes the unused includeCellId argument of createSvgImageExport
- Binds SVG export popups only to the icon wrappers of the export
- Passes the icons option through the svgdata plugin
- Resolves snapToPoint anchors for the current style of the terminal
- Re-routes libavoid edges after style edits of their ends
- Fixes ignored jetty sizes in libavoid routing
- Routes new edges to the snapToPoint anchors of new terminals
- Re-routes libavoid edges after style writes outside Edit Style
- Removes the dead styledev style input
- Turns edge label text with rotated groups in the Visio import
- Adds drawio-plantuml to the ant bundles target
- Updates drawio-mermaid bundle to 0.1.0+commit.00cb88f
- Updates the Confluence Connect PrismJS copy to 1.30.0
29-SEP-2026: 31.6.1
- Keeps the embed filename before the buttons when the title changes
- Fixes the noLabel check for disabled font colors [jgraph/drawio#4694]
- Translation keys for embed macro pinned version
- Makes the math text layer selectable in macOS Preview
- Resizes autosize cells with math when math typesetting is turned on or off
- Fixes the hover state of the autosize button in the Arrange panel
- Fixes blank edge style toolbar icons after load
- Fixes autosize of labels with AsciiMath
- Updates stable to next release
- Fixes undo shortcuts in the color picker window [jgraph/drawio-desktop#2395]
- Shows month names in revision history dates [jgraph/drawio#5234]
- Hardens realtime message decoding on encrypted channels
- Fixes saving diagrams in the Notion extension [jgraph/drawio#5785]
- Updates Notion extension to 1.3.4
- Added Conf Cloud deep scan translation keys
- Keeps lockdown saves off the realtime cache
28-SEP-2026: 31.6.0
- Limits PDF object stream scans to one pass [jgraph/drawio-dev#572]
- Makes PDF inline and referenced Subject scans linear [jgraph/drawio-dev#572]
- Skips math typesetting in exports of pages without math
- Applies MathJax safe filters at startup
- Uses the rotated Picker API key and explains the multi-account error in the Google add-ons [jgraph/drawio#5559]
- Adds a regression suite for the Visio importer
- Keeps referer paths, file names and client IPs out of the convert worker logs
- Keeps proxied URLs, referer paths and OAuth state out of the edge logs
- Adds a Google Workspace add-on worker (smart chips, Docs @-menu, Chat)
- Removes the temporary realtime release telemetry [jgraph/drawio-dev#677]
- Puts the fast-rt channel listing behind the admin secret and removes its shard reset
- Serves the fast-rt socket totals from a 15 s cache instead of reading all 64 shards per request
- Applies every color from the color window to the selected text [jgraph/drawio#5783]
- Keeps the text selected after changing its color in Firefox [jgraph/drawio#5783]
- Uses the sequence edge style for the UML 2.5 lifelines [jgraph/drawio#5706]
- Adds Visio import tests for color injection into labels and styles
- Accepts only valid colors in the Visio importer
- Adds Visio import tests for font name and text direction injection into labels
- Accepts only safe font names and text directions in the Visio importer
- Reports CSS injected into labels in the Visio import security scan
- Adds a Diagrams panel and simpler insert and update to the Google add-ons [jgraph/drawio#5559]
- Uses the sequence edge style in the sequence templates [jgraph/drawio#5706]
- Lists each template once in the template search
- Fixes diagram sizes, empty pages and the My Drive filter in the Google add-ons [jgraph/drawio#5559]
- Adds an authenticated licence endpoint that counts Workspace editors per domain and month
- Stops the auth worker redirecting OAuth tokens to another site
- Applies the security review to the licence endpoint
- Adds a Google Drive home screen behind a flag
- Moves HomeDialog out of Dialogs.js into its own file
- Converts binary Visio files in the browser before the Visio import
- Stops the Home screen clipping focus rings in Firefox
- Points Shared with me at the Picker and scopes the Home CSS
- Removes the old Visio import experiments in etc/vsdx
- Removes the unused Visio batch converter in etc/vsdx-convert
- Removes excludes for Visio folders that no longer exist
- Fixes the Visio codec check in the connectors' importer
- Keeps the Drive descriptor when the latest version needs an import
- Records the error log groups of the week of 2026-09-28
- Adds a synchronous single-file MathJax bundle build
- Adds a comparison harness for the MathJax bundle
- Loads MathJax from the single-file bundle for SVG output
- Adds a Visio import test for the display text of text fields
- Shows Visio's display text for text fields in the Visio importer
- Adds the formula source as invisible text to math in PDF export and print
- Drops the CHTML math output (math-output=html)
- Sanitizes AsciiMath output with the MathJax safe filters
- Sanitizes AsciiMath output with the MathJax safe filters
- Makes MathJax typesetting synchronous in the bundle
- Removes the asynchronous MathJax retry handling
- Loads the MathJax bundle in the embed script
- Replaces MathJax's separate components with the bundle
- Loads MathJax only when math is first typeset
- Makes the MathJax safe filters fail closed
- Hides the empty properties section in the Edit Data dialog
- Stops the format panel clipping focus rings of full-width controls
- Centers the wait toggle icon in the animation step list
- Corrects the VSDX module guide
- Notes who loads the standalone Visio importer page
- Removes the unused conf-vsdx-enabled worker
- Filters the My Drive tab of the Google Drive pickers by file type
- Hides animation step controls that have no effect
- Labels the layer and tag pickers' clear button "None" in the action dialog
- Widens the URL field of the Open step in the action editor
- Highlights cells revealed earlier in a custom-link click like the preview
- Lines up the animation step rows and keeps chips from being overlapped
- Starts the page animation after a page switch in presentation mode
- Keeps the animation dialog buttons inside a narrow dialog
- Converts binary Visio files in the browser in the connectors' importer
- Explains excluded-cell conflicts in the action dialog's no-effect warning
- Resolves page links with spaces and flags malformed ones in the Open step
- Hides the connectors of cells hidden by a transient toggle, show or hide
- Shows the link as tooltip for cells in locked layers and names custom links
- Shows legacy layer IDs in custom links as layers in the action editor
- Keeps the sources in Cloudflare Pages branch previews and opens them in dev mode
- Fixes the misspelled content type in Google Drive uploads
- Updates the binary Visio converter bundle
- Moves the Visio import test data to the drawio-visio-test repository
- Adds number and page number overrides of master text to the field test
- Moves the MathJax ui/safe hardening into the bundle's source
- Uses the master's Format for field values that an instance overrides
- Wraps the fields of wide animation step rows instead of scrolling them away
- Adds regular hexagon to the Basic palette [jgraph/drawio#4434]
- Disables drop target on EIP Message Endpoint shapes [jgraph/drawio-desktop#2030]
- Connects two selected shapes when clicking an edge in the sidebar [jgraph/drawio-desktop#1962]
- Adds expand option to open custom config libraries expanded [jgraph/drawio#4662]
- Adds missing viewBox to Azure SVG icons
- Changes the default border for PDF export to 0 [jgraph/drawio#5682]
- Adds mobile device container to the C4 palette [jgraph/drawio#4704]
- Shows the grid size in the current unit in Page Setup [jgraph/drawio#604]
- Adds autoscroll near window edges when dragging with hidden side panels [jgraph/drawio#5044]
- Adds math typesetting to tooltips if math is enabled [jgraph/drawio#5041]
- Adds Shift+Insert paste shortcut [jgraph/drawio#5699]
- Adds a search filter to the Property panel [jgraph/drawio#5771]
- Adds fullscreen option to the fullscreen button of embedded lightbox toolbars [jgraph/drawio#5372]
- Ignores freehand strokes while panning with Space+drag [jgraph/drawio#4595]
- Adds unflipStencilText style to keep stencil text readable in flipped shapes [jgraph/drawio#5462]
- Finds and reveals cells inside collapsed containers in Find [jgraph/drawio#4733]
- Moves only cells in the same column or row when folding with move cells [jgraph/drawio#5414]
- Shows tooltips while hovering with a pen [jgraph/drawio-desktop#2189]
- Shows the shape unrotated in the connection points dialog [jgraph/drawio#4108]
- Hides fill option for line shapes in the format panel [jgraph/drawio#4816]
- Fixes transparent background for PNG export with a diagram background [jgraph/drawio-desktop#1905]
- Sorts SharePoint sites alphabetically in the OneDrive picker [jgraph/drawio#2870]
- Enlarges the hit area of small folding icons [jgraph/drawio#4337]
- Shows bundled keyboard shortcuts in a dialog in the desktop app [jgraph/drawio-desktop#1130]
- Makes the MathJax ui/safe filters fail closed
- Grows Visio shapes to the extent of their drawing in the importer
- Ignores non-JSON icon search responses in the sidebar search
- Restores the bounding box when wipe and pop animations stop [jgraph/drawio#5777]
- Adds palettes, per-frame delays and changed-rectangle frames to the GIF encoder [jgraph/drawio#5777]
- Adds GIF and MP4 export of page step animations [jgraph/drawio#5777]
- Renders Visio library references at each master's drawing scale
- Applies older Visio themes in the importer
- Finds Visio themes by their theme scheme ID in the importer
- Pairs only master entries with Visio library references
- Shares the text edit code of the MathJax source loaders
- Replaces the unflipStencilText style with a flip-shape stencil text attribute [jgraph/drawio#5462]
- Gives the MathJax bundle its own global, DrawioMathJax
- Wraps the View step's fields in narrow animation dialogs
- Rotates Visio text blocks around their pin and mirrors them with flips
- Places the text of rotated and flipped Visio lines with their transform
- Shows flipped shapes unflipped in the connection points dialog [jgraph/drawio#4108]
- Fixes hidden label after applying a style to a shape with disabled font color [jgraph/drawio#4694]
- Routes rotated, flipped and reversed Visio lines with their transform
- Fixes window.open returning a Promise for blank windows in the desktop app
- Keeps the preview button on its row's field line in Safari animation dialogs
- Draws Visio group geometry in front of the members
- Places Visio shapes turned or flipped around an off-center pin
- Keeps numeric text sizes through the MathJax safe filters
- Fills Visio geometry with holes like Visio's even-odd rule
- Keeps the open stencil path apart while the importer writes it
- Mirrors the members of flipped Visio groups
- Draws Visio lines with a custom line pattern thin
- Fills Visio shapes whose theme gradient overrides FillPattern 0
- Shows the tags button in the Confluence Cloud lightbox [jgraph/drawio#5548]
- Shows shapes without their direction in the connection points dialog [jgraph/drawio#4108]
- Rounds connection point offsets in the connection points dialog [jgraph/drawio#4108]
- Passes target and features for blank windows in the desktop app
- Updates the vendored drawio-plantuml bundle to commit 050d5db
- Keeps edge terminals in the offscreen copy of the animation export [jgraph/drawio#5777]
- Reports errors after the last frame of the animation export [jgraph/drawio#5777]
- Adds npm run update for new MathJax releases
25-SEP-2026: 31.5.3
- Keeps UML sequence messages at their own y [jgraph/drawio#5706]
- Attaches sequence messages at the pointer y and to activation bars [jgraph/drawio#5706]
- Keeps sequence messages out of libavoid auto-routing [jgraph/drawio#5706]
- Fixes moving sequence messages found in UI testing [jgraph/drawio#5706]
- Stores new connection waypoints relative to the edge parent
- Draws sequence self-calls as a loop at the y where they are dropped [jgraph/drawio#5706]
- Lets both corners of a sequence self-call set its width [jgraph/drawio#5706]
- Uses the sequence edge style for the Self Call template [jgraph/drawio#5706]
- Updates drawio-mermaid bundle to 0.1.0+commit.ab57e1e [jgraph/drawio#5706]
- Updates the vendored drawio-plantuml bundle to commit 300e382 [jgraph/drawio#5706]
- Adds the sequence edge style to the waypoints menus [jgraph/drawio#5706]
- Connects hover arrow clicks on lifelines to the next lifeline [jgraph/drawio#5706]
- Fixes the elbow direction of new edges from the north hover arrow
- Places messages from hover arrow clicks on the next free row [jgraph/drawio#5706]
- Switches the generate/v3 premium draw.io model to Opus 5.5
- Updates drawio-mermaid bundle to 0.1.0+commit.1277371 [DID-20220]
- Reduces stale duration
- Updates DOMPurify from 3.4.15 to 3.4.16
- Adds a smoke test for DOMPurify updates
- Updates jszip from 3.10.0 to 3.10.1
- Updates drawio-mermaid bundle to 0.1.0+commit.6a70a2f [jgraph/drawio-confluence#105]
- Skips elements without a style when changing the text color
- Records the groups of the 2026-09-24 error log pass
- Keeps vertex and edge default styles separate [jgraph/drawio#5781]
- Updates the vendored drawio-plantuml bundle to commit 0326366 [jgraph/drawio#5775]
- Fixes image limit defaults shown in configuration dialog [jgraph/drawio#1887]
- Keeps curved style when switching waypoints to straight [jgraph/drawio-desktop#1442]
- Adds Orthogonal Ends option for non-orthogonal edges [jgraph/drawio#5447]
- Opens Microsoft 365 publish links on the app host [jgraph/drawio#5663]
- Updates the vendored drawio-plantuml bundle to commit 156dd4b [jgraph/drawio#5775]
- Limits PDF attachment and object stream scans [jgraph/drawio-dev#572]
- Restricts chromeless back and refresh URLs to same origin [jgraph/drawio-confluence#99]
- Fixes search tag keys for stencil names with several spaces [jgraph/drawio#5738]
- Reports Mermaid input with nothing to draw instead of dropping it
- Reports Mermaid input with nothing to draw instead of dropping it
- Adds drive.file Editor add-ons for Google Docs, Sheets and Slides [jgraph/drawio#5559]
- Shows plugin menu items in the menubar and menu buttons [hediet/vscode-drawio#532]
- Searches the text inside diagrams from the Confluence diagram list, with an All Spaces option [DID-20282]
- Fixes OAuth sign-in failing with 401 on self-hosted deployments under a sub-path [jgraph/drawio#5479]
- Fixes Google Drive, OneDrive, GitLab and Dropbox sign-in failing with 500 on self-hosted deployments under a sub-path
- Updates drawio-mermaid bundle to 0.1.0+commit.44f416b
- Applies retired plugin replacements in the desktop plugin loader [jgraph/drawio-desktop#2548]
23-SEP-2026: 31.5.2
- Adds support for mermaid swimlane-beta diagrams [jgraph/drawio#5780]
- Routes mermaid swimlane edges like mermaid does [jgraph/drawio#5780]
- Keeps text decorations on shapeInside labels [jgraph/drawio#5781]
- Fits the label background to the text on shapeInside labels [jgraph/drawio#5781]
- Returns the conflict retry budget on every confirmed save [jgraph/drawio-dev#677]
- Updates drawio-mermaid bundle to 0.1.0+commit.297ba59 [DID-20220]
- Reports a broken #R link instead of failing silently
- Skips stencil color nodes without a color attribute in the format panel
- Uses the native file pickers only where they are callable
- Opens file handles without a writable API read-only
- Skips the shape picker in editors without a sidebar
- Fixes save and exit of new Confluence Cloud diagrams failing on the missing descriptor
- Carries all LinkDialog statics over to the Confluence plugin's wrapper
- Ignores opaque cross-origin script errors instead of showing an error dialog
- Guards the remaining EmbedFile descriptor getters in the Confluence plugin
- Stops a pending OneDrive picker search after the picker is closed
- Offers Copy in the Edit Diagram dialog only where the clipboard API exists
- Shows an error instead of spinning when the embed macro editor gets a non-diagram file
- Adds the gae-error-log skill for the weekly error log routine
- Routes error log API requests through the credential proxy in the cloud
- Decodes invalid 4-byte UTF-8 sequences as U+FFFD instead of throwing
- Skips toolbar buttons without an element in GraphViewer.disableButton
- Records the groups of the 2026-09-23 weekly error log pass
- Removes Copy Link / Paste Link in favor of Copy / Paste Data
- Finds cells by ID in the Find window
- Stops paste writing copied cells into the selected cell's label when a label contains %3E [DID-20192]
- Shows the edge length in the current unit while connecting
22-SEP-2026: 31.5.1
- Corrects the Logs Explorer field for the rt7 release telemetry
- Updates drawio-mermaid bundle to 0.1.0+commit.cbd9dfd
- Pulses paste, duplicate and delete in the animation step toolbar
- Fixes embed merge, patch and getDiff failing with getData is not a function
- Skips the realtime cache entry before encrypting oversized save diffs
- Updates drawio-mermaid bundle to 0.1.0+commit.6695213
- Decodes dropped image URLs with safeDecodeURIComponent
- Reports deleted targets in the animation step editor
- Applies page root changes in patchPage instead of refusing them [jgraph/drawio-dev#677]
- Says "deleted" instead of "missing" for dead cells in the step editor
- Stops a single stray cell emptying a page on load [jgraph/drawio-dev#696]
- Locks that the root id preference only applies to parentless cells [jgraph/drawio-dev#696]
- Updates stable channel to 31-5-1
19-SEP-2026: 31.5.0
- Fixes wrapped stand-alone mode and Electron runtime messages
- Fixes stale page nodes and non-realtime state in sync fast-forward
- Applies available patches in catchup instead of fast-forwarding
- Sorts received sync messages by numeric message counter
- Clears the status update interval in sync stop
- Uses an independent copy for the sync snapshot
- Removes the redundant file fetch from sync cleanup
- Retries optimistic sync on errors and missing versions
- Defers remote descriptor changes while the file is saving
- Handles save notifications with equal modified timestamps
- Checks for changes on messages from outdated clients
- Stores a valid empty patch for descriptor changes
- Logs error messages from the realtime socket server
- Applies patches to the sync snapshot incrementally
- Fixes centered text flow alignment at wrap boundaries
- Removes dark mode media query listener on destroy
- Fixes leading semicolon when removing style key followed by empty entries
- Adds automated multi-client realtime sync test harness
- Re-enables undo ops after fixing the harness message envelope
- Hides the folding icon on tree nodes without outgoing tree edges
- Adds reactive layout ops, alert verdict and layout-race scenario
- Fixes stale absolute waypoints when connecting across nested lists
- Adds saved-stack and adoption assertions, updates rt-test findings
- Fixes dropped local updates to unsaved remote cells in own pages
- Documents the dirty-page flush in the rt-test README
- Fixes stale-copy reverts by merging save-patch inserts in own pages
- Adds layout-passive incident scenario and modified-only quiescence saves
- Adds per-process results files and configurable watchdog to rt-test
- Rebuilds child order canonically and damps reactive delta flushes
- Documents the reactive flush damping in the rt-test README
- Rebuilds page order canonically from previous chains in patchPages
- Adds page-order-race scenario for the patchPages page-loss class
- Merges adopted page content on save merges only
- Adds page-adoption-race scenario for the adopted-page ping-pong
- Bumps the sync protocol and gates realtime on app versions
- Hardens diff patching against crafted ids and cyclic moves
- Adds the single-pass cleanup existence lock to the rt-test verdicts
- Keeps newer local edits over colliding save inserts
- Adds adoption-edit-race scenario for the edited-later LWW race
- Anchors unconstrained pages on their local predecessor in patchPages
- Adds reconnect, waypoint, grouping, order and movePage ops to rt-test
- Documents the realtime sync architecture and invariants
- Filters missed cells from the visible removes on merge catch-up
- Adds offline, lossy-network and save-failure injection to rt-test
- Drops the realtime min-app-version config surface
- Documents the planned server-side join gate for version gating
- Adds residue and duplicate-id detail to the dirty-tracking alert
- Invalidates undoable edits for cells replaced by remote patches
- Adds undo-stale scenario, redo op and alert detail to the rt harness
- Gates the quiescence fixpoint on no pending debounced flush
- Extends undo-stale with redo-stale and cross-page undo cases
- Deflates sync messages directly without the URI-encoding step
- Transports the real sync wire encoding through the rt-test broker
- Adds stress diagnostics and scales quiescence cycles with fleet size
- Disconnects edges from terminals removed through crossing windows
- Locks the crossing-window dangling terminal in undo-stale case 5
- Adds real-timing mode driven by the production timers
- Completes the etag semantics: commit-time check, catchup chain, reload stub
- Invalidates undoable edits for pages replaced by remote patches
- Locks the page redo duplicate in undo-stale case 6
- Invalidates edits for every id a remove list confirms
- Disconnects detached terminals after undo and redo in realtime
- Applies style removals in patchCell
- Rolls back unconfirmed edits when the write permission is revoked
- Adds the write-revoked scenario and 403 injection
- Documents the write-revoke path and scenario
- Adds a desktop-merge coverage scenario for the watcher path
- Runs the desktop-merge scenario on the actual non-realtime branch
- Adds the join-mid-session scenario for late joiners
- Adds the scenario table rows for join-mid-session and desktop-merge
- Adds mixed-version scenario and routes receives through changeListener
- Adds the undo repair pass scaffold before replay
- Replaces undo history invalidation with execute-time repair
- Locks the execute-time resolution in undo-stale case 9
- Keeps cross-page replays on their own page and marks both trees dirty
- Canonicalizes the replayed child in the target tree
- WIP: intent-frozen execute-time resolution (redesign in progress)
- Adds the editor-semantics layer guarding base editor behavior
- Disconnects dangling terminals from dirty pages before the flush diff
- Adds provenance and history forensics to the dirty-tracking alert
- Makes the rt-test runner platform-neutral
- Fixes rt-test UI capture on pointer-event platforms
- Adds a deterministic repro for desktop merge edge duplication
- Asks before merging stale external file rewrites on desktop
- Keeps undo histories intact across revokes and page deletes
- Keeps a revoked client converging as a read-only mirror
- Verifies write revokes against the provider descriptor
- Documents the intent-frozen repair completion in the README
- Keeps transient repair points across composite edit replays
- Renders repaired edges locally and pins the previous attachment
- Adds the render-consistency verdict to every scenario
- Adds a revalidate probe to the render-consistency fail details
- Completes the self-diagnosis in the render-consistency verdict
- Stops replays from duplicating content into renamed cells
- Keeps disconnected edges renderable instead of vanishing
- Moves stable channel to 31.1.5
- Moves text flow options into the common properties section
- Fixes configured default edge font not applied to new edges and edge labels
- Bump actions/checkout from 6.1.0 to 7.0.1
- Updates tooling dependencies
- Tooling build fixes
- Updates wrangler version
- Removes plantuml and emf references
- Adds Archimate v4 shapes
- Fixes missing palette titles in savesidebar screenshots
- 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
- 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 replays from resolving to removed objects
- Resends unconfirmed changes when the first peer appears
- Freezes replay intentions for all property changes
- Resends unconfirmed changes when the first peer appears
- Announces joining clients so stale rosters heal
- Keeps resent content current and restores revisions through sync
- Adds exploratory scenarios and a real-P2P test layer
- Keeps immediate cleanups from being postponed by lazy requests
- Drains the broker while polling in p2p-offline-rejoin
- Reconnects edges severed by replayed removals
- Adds undo-heavy fuzzing and a history-shape verdict
- Refuses patches that would strip a page of its root or layer
- Treats malformed patch shapes as absent instead of trusting them
- Keeps a wholesale file replacement out of the undo history
- Rejects script schemes in image sources and typed geometry input
- Adds hostile-content, delivery-matrix and a system-edit audit
- Holds live content until its sender had a chance to save it
- Cleans up chrome profiles after realtime test runs on Windows
- Gates realtime payloads on every transport, not just the cache channel
- Keeps page inserts from losing content on the realtime path
- Keeps malformed patches and dead page replays from losing work
- Restricts the current-page heal to replays
- Records the single gate chokepoint and refreshes the test counts
- Ends the grace window on confirmation and stops the revoke check from adopting a peer's revision
- Stops replays from resolving against trees that left the document
- Names the deepest cell property when a diff overflows the stack
- Asserts the reload count and the persisted bytes
- Hardens page inserts, insert identity and the merge veto
- Repairs the severed-edge bookkeeping and resolves the changed cell
- Keeps repairs of unconfirmed content out of the flush
- Repairs unrenderable edges on every patched page
- Distinguishes a page id from the current-page marker
- Stamps the authenticated sender on relayed WebRTC signals
- Scopes the harness error hooks to their own frame
- Restores children into a still detached parent and validates the view once per replay
- Normalizes the patch update map once per page
- Adds the contradicting-ops scenarios to the realtime harness
- Closes three review leftovers in the realtime hardening
- Makes a wholesale file replacement one undoable step again
- Keeps the viewed page across a revision restore
- Shows why a revision failed to load and stops retrying permission errors
- Replays page selections by direction and heals the current page once per undo
- Adds a latency measurement scenario for the realtime sync
- Arms the lazy cleanup once instead of postponing it on every event
- Delivers live diffs while a rejected save is being reconciled
- Replays a file-changed notification deferred during a save that failed
- Applies every message of a receive batch even if one of them fails
- Notes the crash-reload real-timing flake next to the adoption-race one
- Shows the last change in the status bar after a sync without local changes
- Adds grace and tail-trace knobs to the realtime harness and completes the scenario table
- Postpones the lazy cleanup on activity again instead of arming it once
- Preserve pending edits inside adopted pages during save merges
- Preserve newer cells in realtime resolution patches
- Preserve peer descendants across write revocation
- Fix nested edge endpoint coordinates during stale-terminal undo
- Retract pending file variables after write revocation
- Resolve undo history in the current owning page after revival
- Make cyclic undo replays inert as complete operations
- Add file-variable lifecycle regressions
- Add realtime persistence and notification regression coverage
- Fix realtime vars ownership and notification recovery
- Renames the sync message payload field so deployed v6 clients ignore v7 payloads
- Reloads the app from the redirect dialog when only the URL fragment differs
- Waits for the updated service worker before the redirect dialog reloads
- Stops the redirect dialog spinner once the navigation is triggered
- Records that the GAE push trigger fired once on 31.4.6 and failed on its log bucket access
- Add realtime rollout admission and mixed-source regression
- Updates the release runbook from the 31.4.6 run [jgraph/drawio-dev#690]
- Compares the release-monitor source against the preprod tip, not the dispatch ref [jgraph/drawio-dev#690]
- Adds Bring Everyone to Me and groups the collaboration options in every theme
- Makes the Microsoft 365 client opt-in for embed mode and disables it in lockdown mode [DID-20281]
- Makes the viewer link tooltip readable on dark host pages [DID-20253]
- Updates the vendored drawio-plantuml bundle to commit 8f6f23c
- Updates the vendored drawio-plantuml bundle to commit 14161d9
- Stops URL parameters setting the AI endpoint and API keys [GHSA-v2pv-rjf8-9w9v]
- Stops a URL parameter setting the export service [GHSA-ff67-v9r9-6877]
- Add the migration report strings the Confluence apps need [DID-20276]
- Add the integrity check summary caveat string [DID-20276]
- Updates stable channel to 31.4.6
- Makes the preprod build's AI test plan robust to long replies
- Adds a value to the Toggle Style action and repaints removed transient styles
- Adds a style-key picker to the Set Style and Toggle Style fields
- Opens a fresh action editor for another cell instead of refocusing the open one
- Lets a layout run replace the live layout of every selected layout container
- Updates drawio-elk bundle to 0.1.0+commit.09eed5e
- Keeps the model order of tied siblings in flow layout containers
- Adds a child for every hover arrow in flow layout containers
- Restores the cells a preview faded after the session started
- Keeps the preview's final state on the canvas until Reset
- Adds a descendants flag to the cell selector of custom actions
- Starts the GAE Cloud Build from the release push instead of the trigger that never fired
- Requires the served version id in the release monitor's deploy poll and shows the GAE build on the dashboard
- Records that the GAE push trigger fired once on 31.4.6 and failed on its log bucket access
- Updates the release runbook from the 31.4.6 run [jgraph/drawio-dev#690]
- Compares the release-monitor source against the preprod tip, not the dispatch ref [jgraph/drawio-dev#690]
- Build of version 31.4.6
- Adds a follow mode that keeps collaborators on the presenter's view
- Makes Dropbox opt-in only and stops loading its SDK [jgraph/drawio#5740]
- Stops offering GitLab as a save target [jgraph/drawio#5773]
- Retires the tooltips sample plugin for built-in tooltip icons [jgraph/drawio-desktop#2548]
- Groups Comments with the panel items in the view menu
- feat(graph): normalizeModel repairs generated diagrams for the desktop --normalize flag
- Moves Appearance before Language in the Extras menu
- Stops the fast-rt worker sending exception stacks to clients
- Hashes user and file ids in checksum error logs, keeps preprod logging
- Hashes user and file ids in the remaining merge and sync error logs
- Adds temporary realtime release telemetry for the v7 rollout [jgraph/drawio-dev#677]
- Adds per-protocol socket counts to the fast-rt stats endpoint [jgraph/drawio-dev#677]
- Fixes eight animation and custom action dialog issues from testing
- Applies Edit Link to every editable cell in the selection
- Adds Copy Link and Paste Link next to Edit Link
- Adds a color picker and an empty-key marker to the style actions
- Updates the animations guide for the link and style-field changes
- Quotes a page title that contains a tab in the page IDs export [DID-20312]
- Check the MathJax URL in its serialized form and return that form
16-SEP-2026: 31.4.6
- Updates stable channel to 31.4.4
- Updates drawio-mermaid bundle to 0.1.0+commit.39bf997
- Updates drawio-mermaid bundle to 0.1.0+commit.7003579
- Backfills the six dia.txt keys missing from every language file and checks for it on preprod [jgraph/drawio-dev#671]
- Stops Chromium on Android from scrolling the diagram when Ctrl is pressed with a physical keyboard [jgraph/drawio#5316]
- Gives the native clipboard element a real font size so its caret is never empty [jgraph/drawio#5316]
- Waits for the images and fonts of the math print preview before printing, as in the non-math path
- Makes the Microsoft 365 client opt-in for embed mode and disables it in lockdown mode [DID-20281]
- Makes the viewer link tooltip readable on dark host pages [DID-20253]
- Updates the vendored drawio-plantuml bundle to commit 8f6f23c
- Updates the vendored drawio-plantuml bundle to commit 14161d9
- Stops URL parameters setting the AI endpoint and API keys [GHSA-v2pv-rjf8-9w9v]
- Stops a URL parameter setting the export service [GHSA-ff67-v9r9-6877]
- Add the migration report strings the Confluence apps need [DID-20276]
- Add the integrity check summary caveat string [DID-20276]
- Updates stable channel to 31.4.6
- Adds a value to the Toggle Style action and repaints removed transient styles
- Adds a style-key picker to the Set Style and Toggle Style fields
- Opens a fresh action editor for another cell instead of refocusing the open one
- Lets a layout run replace the live layout of every selected layout container
- Updates drawio-elk bundle to 0.1.0+commit.09eed5e
- Keeps the model order of tied siblings in flow layout containers
- Adds a child for every hover arrow in flow layout containers
- Restores the cells a preview faded after the session started
- Keeps the preview's final state on the canvas until Reset
- Adds a descendants flag to the cell selector of custom actions
- Makes the preprod build's AI test plan robust to long replies
- Starts the GAE Cloud Build from the release push instead of the trigger that never fired
- Requires the served version id in the release monitor's deploy poll and shows the GAE build on the dashboard
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