bflatastic
e1117d2a3c
#1008 : token_roles names its imports
2026-10-24 12:57:42 +07:00
bflatastic
ce32e07fe0
Merge main into #1008
2026-10-24 12:53:48 +07:00
BFlat
3476f4b1e7
Merge pull request #1244 from storytold/batch/r2-1
...
Community batch r2-1: 63 reviewed PRs
2026-10-24 11:15:53 +07:00
bflatastic
8af2efd1b9
Batch r2-1 review: U+2007 glues beside ideographs too
2026-10-24 10:31:29 +07:00
bflatastic
d0db758684
Batch r2-1 review: SVG ids unique as written; a filled open curve closes for its fill
2026-10-24 10:31:26 +07:00
bflatastic
31d4c6eba4
Batch r2-1 review: per-side strokes follow smoothed corners for every alignment
2026-10-24 10:31:24 +07:00
bflatastic
46b02d44e6
Batch r2-1 review: paste_nodes refuses two nodes mapped to one new id
2026-10-24 10:31:17 +07:00
bflatastic
5d7eb04d44
Batch r2-1 review: the hello and close-drain deadlines bound every read
...
Duplex::read_until gives a reader a deadline: each socket read waits at most what's left of it.
The server reads the handshake and hello under the hello deadline, so a hello trickled in
fragments can't outlast it; manage's close drains under CLOSE_DRAIN, so a silent server can't
hold it for the idle timeout.
2026-10-24 10:31:15 +07:00
bflatastic
aac76ebeca
Batch r2-1 review: Save on close waits a frame for a panel field to commit
...
A click on Save takes the keyboard from a focused panel field, which commits next frame: the files
save then, as the field-save shortcut does. OsStr::to_str as a method reference (SonarCloud).
2026-10-24 10:31:13 +07:00
bflatastic
3334ec6c16
Batch r2-1 review: vector_up in smaller helpers (SonarCloud cognitive complexity)
2026-10-24 10:31:10 +07:00
bflatastic
8dcba0684b
Batch r2-1 review: .fig export grid sizing in helpers; instance layers clear inherited track sizes
...
auto_layout's grid branch moves to grid_layout and grid_sizing (SonarCloud cognitive complexity).
unset() clears gridColumnsSizing and gridRowsSizing, so an instance layer with equal tracks no
longer reads back its main layer's track sizes.
2026-10-24 10:31:08 +07:00
bflatastic
bd80829a27
Batch r2-1 review: a paint keeps its own opacity through unbind and rebind
...
color_alpha is the part of a solid paint's opacity that is its typed colour's alpha, not a flag:
binding a colour variable takes only that part out, unbinding puts the variable's alpha back in,
and REST import records it. A 50% paint bound to a 50% variable stays at 25% bound or not.
2026-10-24 10:30:49 +07:00
a1a842af9a
chore: resolve SonarCloud maintainability issues ( #1241 )
...
* chore: resolve SonarCloud maintainability issues
- Define SHA256_FMT constant in packaging script to remove duplicated string literal (shelldre:S1192)
- Remove redundant 'static lifetime annotations from const items (rust:S8863)
- Replace closures with method and function pointers (rust:S1612)
- Extract helper functions in synthetic document generation, bezier polyline flattening, and component restoration to reduce cognitive complexity (rust:S3776)
* fix(packaging): use verify_sha256 helper function to avoid shellcheck SC2059
* fix(engine): remove duplicate closing brace in large_document
* fix(engine): take &mut Document in restore_id_map; keep 'static on associated consts
restore_id_map allocates ids, so it needs a mutable document. Elided
lifetimes in associated consts trip elided_lifetimes_in_associated_constant,
so those annotations are restored.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* Assign positional parameters to locals in sha256 verification
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: Dylan Taylor <dylan@craftmaker.dev >
2026-10-23 23:28:13 -04:00
aiongg
c668e21759
PDF: write with craft-libs' krilla, which bounds decoded PNGs ( #1240 )
...
* PDF: write with craft-libs' krilla, which bounds decoded PNGs
* PDF: pin craft-libs' krilla at 9f75d3dc
2026-10-23 22:46:21 -04:00
bflatastic
1f9effd25d
#660 : a file saved as Proto.figcraft presents as Proto (titles follow file names on main)
2026-10-24 09:34:40 +07:00
bflatastic
9fb88b6668
Merge #904 : M1: write grid track sizes in .fig export ( #465 ) (@xiaou61)
...
# Conflicts:
# docs/file-format-parity.md
2026-10-24 09:24:04 +07:00
bflatastic
489da09905
Merge #740 : engine: fill rules as vector.fillRule and vector.reverseLoop (@yelintong)
2026-10-24 09:23:50 +07:00
bflatastic
ba8b608673
Merge #660 : M5: one presentation tab per page of a file (@JimKnoxx)
...
# Conflicts:
# docs/prototyping-parity.md
2026-10-24 09:23:43 +07:00
bflatastic
21a334b3ef
Merge #976 : fix(ui): keep the style picker open while editing a style's colour (@kollakek1)
2026-10-24 09:23:29 +07:00
bflatastic
075f5bfc98
Merge #1197 : Regression test for #237 (@skylartaylor)
2026-10-24 09:23:26 +07:00
bflatastic
0a99f0fb69
Merge #1032 : M8: save-format tests keep their temp folders apart (@MortenHusted)
2026-10-24 09:23:24 +07:00
bflatastic
53b8b531ce
Merge #1031 : Treat U+2007 FIGURE SPACE as non-breaking in line breaking (@Silvertree2010)
2026-10-24 09:23:18 +07:00
bflatastic
771a0060b6
Merge #1038 : Keep literal true/false distinct from variables named true/false (@Silvertree2010)
...
# Conflicts:
# crates/doc/src/proto_expr_parse_tests.rs
2026-10-24 09:23:15 +07:00
bflatastic
60e1ef9976
Merge #1041 : Keep not <var> from reading back as a variable named 'not
' (@Silvertree2010)
2026-10-24 09:23:02 +07:00
bflatastic
a5e8d256e6
Merge #1052 : Drop XML-forbidden control characters from live-text SVG export (@Silvertree2010)
2026-10-24 09:23:00 +07:00
bflatastic
3610a7cb12
Merge #1142 : Write a final Greek sigma in lower-case text layout (@Silvertree2010)
2026-10-24 09:22:57 +07:00
bflatastic
3774f9e51d
Merge #1149 : Bound the library/plugins close drain with a deadline (@Silvertree2010)
2026-10-24 09:22:28 +07:00
bflatastic
75c1586011
Merge #1153 : Match widget data check depth to serde_json's recursion limit (@Silvertree2010)
...
# Conflicts:
# crates/engine/src/plugins.rs
2026-10-24 09:22:12 +07:00
bflatastic
52afac49fe
Merge #1164 : Reject non-finite coordinates in control-channel ui.input (@Silvertree2010)
2026-10-24 09:21:48 +07:00
bflatastic
70536a6265
Merge #948 : Keep a solid paint's own opacity when binding a colour variable (@Silvertree2010)
2026-10-24 09:21:42 +07:00
bflatastic
d93b806323
Merge #1151 : Never drop Sync events when the live inbox is full (@Silvertree2010)
2026-10-24 09:21:39 +07:00
bflatastic
ef6a6c49b2
Merge #1185 : Make is_ancestor fail closed on deep or looping parent chains (@Silvertree2010)
...
# Conflicts:
# crates/doc/src/tests.rs
2026-10-24 09:21:37 +07:00
bflatastic
82004c6e9c
Merge #1187 : Cap the issue list returned by Document::validate (@Silvertree2010)
2026-10-24 09:21:24 +07:00
bflatastic
6b37d779e0
Merge #1195 : Accept a version string for the plugin manifest api field (@Silvertree2010)
2026-10-24 09:20:03 +07:00
bflatastic
fed124fa77
Merge #1238 : Fix duplicate SVG ids when a layer name matches a generated id (@Silvertree2010)
...
# Conflicts:
# crates/svg/src/tests.rs
2026-10-24 09:20:00 +07:00
bflatastic
f109945c47
Merge #1165 : Make SVG unique_id linear for repeated layer names (@Silvertree2010)
2026-10-24 09:19:41 +07:00
bflatastic
b5a8dcb059
Merge #1230 : Honour even-odd fill rule when hit testing vectors (@Silvertree2010)
...
# Conflicts:
# crates/doc/src/tests.rs
2026-10-24 09:19:18 +07:00
bflatastic
45a3069dce
Merge #1175 : Keep the hello size limit until a connection is admitted (@Silvertree2010)
2026-10-24 09:18:25 +07:00
bflatastic
f0a7037a53
Merge #1183 : Enforce an absolute pre-hello deadline against ping slowloris (@Silvertree2010)
2026-10-24 09:18:22 +07:00
bflatastic
d40ec98ef6
Merge #1182 : Shut kicked and removed connections when their close can't be queued (@Silvertree2010)
2026-10-24 09:18:19 +07:00
bflatastic
00074d0041
Merge #1186 : Stop stale next_id from making pastes overwrite existing nodes (@Silvertree2010)
2026-10-24 09:18:16 +07:00
bflatastic
dc0ce6c176
Merge #1181 : Refuse text.loadFont path for plugins (@Silvertree2010)
2026-10-24 09:18:13 +07:00
bflatastic
2a20a4de0a
Merge #1190 : Refuse non-local library paths in the library Cache (@Silvertree2010)
2026-10-24 09:18:10 +07:00
bflatastic
e3c9d3f644
Merge #1191 : Deny library.publishToServer to plugins (@Silvertree2010)
2026-10-24 09:18:07 +07:00
bflatastic
ad5d502200
Merge #1014 : M7: keep keyboard focus inside the Interface size menu (@YarilaFox)
2026-10-24 09:17:56 +07:00
bflatastic
f3782e6bc4
Merge #1023 : fix(engine): show the Pen's Shift 45° step in its preview line ( #970 ) (@vxMacDev)
2026-10-24 09:17:11 +07:00
bflatastic
eada8b0ff3
Merge #1042 : M3: style links given in a call apply after its values (@MortenHusted)
...
# Conflicts:
# crates/engine/src/cmd/props.rs
2026-10-24 09:16:54 +07:00
bflatastic
90e5e03b23
Merge #1160 : M0.9: figcraft-cli export names files as the app's export does ( #1154 ) (@switch87)
2026-10-24 09:16:12 +07:00
bflatastic
15321a56ff
Merge #1198 : fill/stroke props: accept 'none' and null as no paint (@lileeei)
...
# Conflicts:
# ROADMAP.md
2026-10-24 09:16:04 +07:00
bflatastic
1e4a31a303
Merge #1199 : M3: instance-swap properties in the Dev Mode component playground (@marcoarnulfo)
2026-10-24 09:15:41 +07:00