BFlat
69806c9edd
Plugins: refuse file and network access through path params and collab ( #723 )
...
Plugins can no longer reach the disk or network through path parameters (variable.export/codeConnect.export/component.playground writes, codeConnect.import/variable.import reads) or through collab.* and window.*; found and fixed by @lucasmartins-ai, split out of #696 .
2026-10-17 13:35:00 +07:00
BFlat
40c744da10
M1: convert frames to sections and sections to frames ( #719 ) ( #721 )
...
Frames on the page or in a section convert to sections (object.convertToSection) and sections back to frames (object.convertToFrame), in place, one undo step each, from the canvas context menu; nested frames, instances, main components and sections holding sections are refused.
2026-10-17 13:03:49 +07:00
BFlat
9c2d61f6ae
Merge pull request #601 from Skyfuller1303/feat/drop-to-open
...
M7: drop files anywhere to open them
2026-10-16 07:41:02 +07:00
Skyfuller1303
1f6010e07c
M7: open dropped files that have no file on disk
...
A home-screen drop that carries only bytes queued file.open with data and name, which file.open rejected because it requires a path. file.open now also takes base64 data with a name and opens it as a new document without a save path.
2026-10-16 00:22:14 +02:00
NetterSilver and Claude Haiku 5.5
90d7521840
Reject negative or fractional index in file.close
...
Found while testing crates/engine/src/cmd/file.rs:1283
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-16 00:19:49 +02:00
bflatastic
891f0acb3c
Merge branch 'rb-560' into batch/t6
2026-10-16 02:36:56 +07:00
bflatastic
d60a27b675
Merge main into #554 : one id map for the copy, and #562 's flows, prototype and guides follow it
...
page.duplicate copies every layer with duplicate_all_into (navigation between
copied frames points at the copies) and builds the old-to-new list for flows
from that copy, instead of copying each layer separately.
2026-10-16 02:34:54 +07:00
bflatastic
db8bf6ba33
Merge main into #560 ; normalise the replacement where findReplace reads it
...
Main's case-insensitive replace loop (from an earlier PR) took the place of the
loop this change edited, so the replacement text is normalised once, where
the parameter is read.
2026-10-16 02:31:34 +07:00
bflatastic
c4c88900c4
Merge branch 'pr-563' into batch/t5
2026-10-16 01:36:10 +07:00
bflatastic
aadaa2d975
Merge branch 'pr-562' into batch/t5
2026-10-16 01:36:09 +07:00
bflatastic
580eee3572
Merge branch 'pr-561' into batch/t5
2026-10-16 01:36:08 +07:00
bflatastic
4df3702dbb
Merge branch 'pr-556' into batch/t5
2026-10-16 01:36:05 +07:00
bflatastic
d95aef1d0c
Merge branch 'pr-547' into batch/t5
2026-10-16 01:36:02 +07:00
bflatastic
887e374c58
Merge branch 'pr-545' into batch/t5
2026-10-16 01:36:00 +07:00
bflatastic
34dcf852d5
Merge branch 'pr-542' into batch/t5
2026-10-16 01:35:59 +07:00
bflatastic
d40fd80be7
Merge branch 'pr-536' into batch/t5
2026-10-16 01:35:58 +07:00
bflatastic
1c5b4d8450
Merge branch 'pr-534' into batch/t5
2026-10-16 01:35:57 +07:00
bflatastic
ef69a7f8e9
Merge branch 'pr-533' into batch/t5
2026-10-16 01:35:57 +07:00
bflatastic
a1849aae15
Merge branch 'pr-531' into batch/t5
2026-10-16 01:35:56 +07:00
bflatastic
1e25e239c2
Merge branch 'pr-527' into batch/t5
2026-10-16 01:35:55 +07:00
bflatastic
362bdce73b
Merge branch 'pr-525' into batch/t5
2026-10-16 01:35:54 +07:00
bflatastic
09e85240ea
Merge branch 'pr-522' into batch/t5
2026-10-16 01:35:52 +07:00
bflatastic
07130947f9
Merge branch 'pr-517' into batch/t5
2026-10-16 01:35:45 +07:00
bflatastic
16e26b69ff
Merge branch 'pr-516' into batch/t5
2026-10-16 01:35:44 +07:00
bflatastic
cd5c70a244
Merge branch 'pr-515' into batch/t5
2026-10-16 01:35:44 +07:00
bflatastic
0105724108
Merge branch 'pr-508' into batch/t5
2026-10-16 01:35:36 +07:00
bflatastic
b1760ff098
Merge branch 'pr-497' into batch/t5
2026-10-16 01:35:30 +07:00
bflatastic
991cb604c2
Merge branch 'pr-493' into batch/t5
2026-10-16 01:35:23 +07:00
bflatastic
e2b567d5b3
Merge branch 'pr-485' into batch/t5
2026-10-16 01:35:16 +07:00
bflatastic
77b6f1fc12
Merge branch 'pr-483' into batch/t5
2026-10-16 01:35:14 +07:00
MarekSpodBiedry
843b00b22f
text: scripted text stores CRLF, CR, U+2028 and U+2029 as LF like the editor ( #427 )
2026-10-15 17:20:58 +02:00
MarekSpodBiedry
85d97a831c
Keep flows, prototype settings and guides when duplicating a page ( #417 )
2026-10-15 17:19:38 +02:00
MarekSpodBiedry
3062c6c4d6
Keep the selected guide selected when an earlier guide is removed ( #418 )
2026-10-15 17:18:38 +02:00
MarekSpodBiedry
fdf397d7dc
Refuse to create a variable collection with a name that is already taken ( #416 )
2026-10-15 17:17:44 +02:00
NetterSilver and Claude Haiku 5.5
6ce65b24f4
Keep region loops in ring order when adding a point to a reversed edge
...
Fixes #420
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 15:12:06 +00:00
NetterSilver and Claude Haiku 5.5
a4f4869443
Point duplicated page navigation at the copied frames
...
Fixes #419
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 17:10:00 +02:00
NetterSilver and Claude Haiku 5.5
76a67e7ee5
Point library style variable bindings at imported library variables
...
Fixes #462
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 16:47:58 +02:00
NetterSilver and Claude Haiku 5.5
330b237c9c
Refresh linked layers when a library update changes only a style
...
Fixes #461
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 14:45:47 +00:00
NetterSilver and Claude Haiku 5.5
7689af50d6
Keep character-range text styles when publishing and placing components
...
Fixes #463
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 16:31:53 +02:00
NetterSilver and Claude Haiku 5.5
b61122ccca
Fix eraser missing brush crossings narrower than the sample spacing
...
Fixes #421
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 15:28:43 +02:00
NetterSilver and Claude Haiku 5.5
524b538908
Report changed=false when list indentation is capped
...
Fixes #425
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 13:21:05 +00:00
NetterSilver and Claude Haiku 5.5
72b826d65b
Fix cross-axis arrows and drop slot on single-item wrapped lines
...
Fixes #422
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 15:17:21 +02:00
NetterSilver and Claude Haiku 5.5
0d125374d3
Don't record an undo step for an abandoned empty text box
...
Fixes #423
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 13:05:07 +00:00
bflatastic
2ea8c3f86f
Merge #338 : M9: remove someone from a live session (@HaSh3003)
2026-10-15 19:54:09 +07:00
bflatastic
9ba207e900
Merge #400 : Let batch steps reference ids created by earlier steps (@edivanteixeira)
2026-10-15 19:54:08 +07:00
bflatastic
6551f870b6
Merge #363 : fix(engine): drag with the Text tool to make a fixed-width text box ( #360 ) (@vxMacDev)
2026-10-15 19:54:07 +07:00
bflatastic
7a9e9de38c
Merge #305 : M1: save files automatically ( #296 ) (@AganzeFelicite)
...
# Conflicts:
# crates/ui-egui/src/idle_tests.rs
# docs/mcp.md
2026-10-15 19:53:52 +07:00
NetterSilver and Claude Haiku 5.5
8199623267
Include empty outlines in no-op shapeBuilder.merge response
...
Fixes #424
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 14:36:34 +02:00
bflatastic
5a10623414
Merge #469 : i18n: Czech (cs) UI catalog (draft) (@Losminek)
...
# Conflicts:
# contributors/people.toml
# crates/engine/src/cmd/view.rs
# docs/mcp.md
# docs/translating.md
2026-10-15 19:34:05 +07:00
bflatastic
f3e6b00e1a
Merge #310 : engine: refuse page.move for node ids that are not pages (@midasmatterhorn)
2026-10-15 19:33:02 +07:00