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
f00b62ba2d
Merge fix: the server store tests keep each test closed
2026-10-24 09:26:44 +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
550c3e8bbb
Merge #905 : M1: say that the automation roots reach only the headless side ( #835 ) (@xiaou61)
2026-10-24 09:23:48 +07:00
bflatastic
fac42785c1
Merge #1158 : FreeBSD: package the aarch64 cross build (craft-common-actions#39) (@zuujiscom)
2026-10-24 09:23:45 +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
2577f53e2c
Merge #1212 : Control server: wait after a failed accept instead of retrying at once (@oracola91)
2026-10-24 09:23:21 +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
378c015eb3
Merge #1145 : Remove all leftover temp files at server startup (@Silvertree2010)
...
# Conflicts:
# apps/figcraft-server/src/store_tests.rs
2026-10-24 09:22:54 +07:00
bflatastic
53e61e2a5d
Merge #1146 : Guard file generation increments against u64 overflow (@Silvertree2010)
...
# Conflicts:
# apps/figcraft-server/src/store_tests.rs
2026-10-24 09:22:42 +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
f4541d8b24
Merge #1147 : Restrict a pre-existing data directory to 0700 (@Silvertree2010)
2026-10-24 09:21:45 +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
15fd9fe1bf
Merge #1192 : Strip bidi control characters from names and report reasons (@Silvertree2010)
...
# Conflicts:
# apps/figcraft-server/src/store_tests.rs
2026-10-24 09:21:04 +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
404916a949
Merge #1169 : Refuse library versions that leave no newer one to publish (@Silvertree2010)
2026-10-24 09:19:38 +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
fcace33059
Merge #1178 : Enforce per-address storage caps per IPv6 /64, /56 and /48 (@Silvertree2010)
2026-10-24 09:18:28 +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
243728b758
Merge #1196 : Don't run the expiry sweep from offline CLI commands (@Silvertree2010)
2026-10-24 09:18:03 +07:00
bflatastic
c7062db387
Merge #1171 : Never overwrite a file's log when it can't be read (@Silvertree2010)
2026-10-24 09:17:59 +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
adc8e81826
Merge #1161 : M0.9: --help and -h after a figcraft-cli subcommand print the usage ( #1155 ) (@switch87)
2026-10-24 09:16:07 +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
bflatastic
6063d3e9a9
Merge #1189 : M4: vector edit transform box around points of several layers (@marcoarnulfo)
...
# Conflicts:
# docs/target-app-parity.md
# docs/ui-parity.md
2026-10-24 09:15:11 +07:00
bflatastic
8f9e2fedc7
Merge #1047 : M7: Type settings keeps its width with long labels ( #1029 ) (@AganzeFelicite)
...
# Conflicts:
# ROADMAP.md
2026-10-24 09:14:10 +07:00
bflatastic
07191c881d
Merge #1030 : M1: individual corner fields sit at their corners, each with its own icon ( #1002 ) (@muamerETS)
2026-10-24 09:13:48 +07:00
bflatastic
8eb5624460
Merge #986 : fix: = zooms in, matching - zooming out ( #973 ) (@Ridzzz0Alam)
2026-10-24 09:13:43 +07:00
bflatastic
f31199d4ca
Merge #1018 : M1: a selected unfilled shape drags from inside its box ( #910 ) (@muamerETS)
2026-10-24 09:13:38 +07:00
bflatastic
370faa52da
Merge #1033 : M3: a variant switch takes the new variant's resizing unless the instance set its own (@MortenHusted)
2026-10-24 09:13:33 +07:00
bflatastic
ab5a62387b
Merge #1034 : M6: SVG import fills open subpaths the way SVG does (@MortenHusted)
2026-10-24 09:13:28 +07:00
bflatastic
98040b48a5
Merge #1037 : M3: a variable mode set on a layer inside an instance is an override (@MortenHusted)
2026-10-24 09:13:23 +07:00
bflatastic
83f840f802
Merge #1043 : M3: a swapped nested instance keeps its outer main's overrides (@MortenHusted)
2026-10-24 09:13:18 +07:00
bflatastic
d394e952c6
Merge #1044 : M4: individual stroke weights follow the corner radius like CSS borders (@MortenHusted)
2026-10-24 09:13:13 +07:00
bflatastic
ac5783d0cd
Merge #1135 : M5: prototype actions lay out what they change like the canvas does (@MortenHusted)
...
# Conflicts:
# docs/prototyping-parity.md
2026-10-24 09:13:08 +07:00
bflatastic
293ab33eaa
Merge #1166 : M7: Cmd/Ctrl+S saves while a panel field has the keyboard ( #1157 ) (@switch87)
2026-10-24 09:12:49 +07:00
bflatastic
90f401d73c
Merge #1173 : M8: the unsaved-changes question on close offers Save ( #1170 ) (@switch87)
2026-10-24 09:12:45 +07:00
bflatastic
2053098e8e
Merge #1200 : The colour picker's eyedropper applies the colour to the paint the picker edits (Reported in storytold/vectorcraft#3342 ) (@marcoarnulfo)
...
# Conflicts:
# crates/engine/src/tools.rs
2026-10-24 09:12:42 +07:00
bflatastic
2c9f5267a9
Merge #1232 : M5: a top-level frame taller than the device scrolls without an overflow setting (@seltzdesign)
2026-10-24 09:11:46 +07:00
bflatastic
703d55cc67
Merge #983 : Fix invisible dropdown options in the light theme (@Ridzzz0Alam)
2026-10-24 09:11:41 +07:00
BFlat
8167f13a6a
M12: Boards: a collaborative whiteboard file kind ( #1229 )
...
Board files (File > New board) with sticky notes, shapes with text, connectors that follow what they join (straight or elbow, arrowheads, labels), marker, highlighter and eraser, and stamps; a board toolbar and a contextual bar; the Design panel hidden on boards, Prototype and Dev Mode refused there. Boards are ordinary FigCraft files built from ordinary layers, so saving, undo, export, MCP and live sessions work unchanged. File tabs, recent files and Open files show a pen nib for design files and a note for boards (original icons drawn in code).
2026-10-24 04:18:55 +07:00
BFlat
17ed21d128
M6: Dev Mode tail: imports in layer trees, compare with versions, an inspect-only canvas ( #538 )
...
Import lines for connected components inside generated layer trees; Compare changes against any saved version; a Dev Mode behaviour suite with an inspect-only canvas (menus, shortcuts, paste and Revert to saved refuse design edits; a drag under way is dropped on entering), Changed in the ready list, statuses only on top-level frames and sections; read-only plugins' panels from the Inspect tab.
2026-10-24 02:56:55 +07:00
BFlat
d6e8a6e874
Docs: roadmap entries for the community PRs in #507 , #510 , #529 and #530 ( #587 )
...
Roadmap, milestone and parity rows for the 93 community PRs landed in batches #507 , #510 , #529 and #530 .
2026-10-24 02:02:19 +07:00
BFlat
5fa586306a
Merge pull request #1049 from storytold/readme/app-icon
...
README: the app icon above the title
2026-10-22 18:01:42 +07:00
bflatastic
ce8a224c9e
README: the app icon above the title
2026-10-22 17:57:45 +07:00
BFlat
74c4a84da3
Merge pull request #907 from RiceDee/fix/idle-tests-font-scan
...
test(ui-egui): idle harness scans system fonts before its first frame
2026-10-21 16:32:52 +07:00
BFlat
123e46550f
Merge pull request #909 from RiceDee/fix/component-set-name
...
#903 follow-up: name new component sets from the variant path, not the first property
2026-10-21 16:31:04 +07:00
BFlat
44e64d8d47
Merge pull request #933 from SiadeLucas/feat/pages-scroll-area
...
ui: keep the current page scrolled into view in the pages list (#930 )
2026-10-21 16:21:38 +07:00
BFlat
bb532a5790
Merge pull request #908 from RiceDee/feat/903-variants-discoverability
...
#903 : Combine as variants in the context menu and Design panel; Add variant on a lone component
2026-10-21 16:01:25 +07:00
BFlat
f6f44dcc53
Merge pull request #928 from AganzeFelicite/fix/web-drop-opens-documents-916
...
M7: a document dropped on the canvas opens as a new file (#916 )
2026-10-21 15:50:24 +07:00
BFlat
96a82edecf
Merge pull request #939 from YarilaFox/fix/comment-draft-on-tool-switch
...
M7: dismiss comment draft when switching tools
2026-10-21 15:48:42 +07:00
BFlat
f143260c3a
Merge pull request #935 from YarilaFox/fix/saved-document-title
...
M7: show the chosen filename for saved documents
2026-10-21 15:47:09 +07:00
BFlat
bb93e5e433
Merge pull request #929 from Silvertree2010/fix/h881-local-from-link-accepts-a-sign-i
...
Reject non-hex characters in Local::from_link token
2026-10-21 15:44:45 +07:00
BFlat
da96d54157
Merge pull request #961 from Silvertree2010/fix/h1145-reversesubpaths-reverse-subpaths
...
Keep open subpaths open in ReverseSubpaths::reverse_subpaths
2026-10-21 15:35:17 +07:00
BFlat
a1758c163f
Merge pull request #958 from Silvertree2010/fix/h1112-live-text-svg-export-capitalises
...
Fix Title Case restarting mid-word across styled runs in SVG export
2026-10-21 15:34:55 +07:00
BFlat
b1d00f0802
Merge pull request #943 from Silvertree2010/fix/h932-trim-num-prints-any-whole-number
...
Fix trim_num saturating whole numbers beyond i64 range
2026-10-21 15:34:34 +07:00
BFlat
efb95b29bf
Merge pull request #938 from Silvertree2010/fix/h911-same-server-ignores-the-scheme-s
...
Strip default port in same_server when the address has a path
2026-10-21 15:34:08 +07:00
BFlat
9257f97d69
Merge pull request #911 from Silvertree2010/fix/h737-parse-css-accepts-a-malformed-al
...
Reject malformed alpha and extra args in Color::parse_css
2026-10-21 15:33:47 +07:00
BFlat
dd6bd3fe1c
Merge pull request #901 from pechnikov2026-star/community/russian-catch-up
...
M9: Russian catalog catch-up: the 56 strings added since the review (machine-drafted)
2026-10-20 06:32:45 +07:00
bflatastic
9b711e212b
Merge main into #901
2026-10-20 06:20:04 +07:00
BFlat
b5038726c4
Merge pull request #902 from storytold/fix/issue-892
...
M3: duplicating a main component makes an instance (#892 )
2026-10-20 06:19:17 +07:00
BFlat
9c6920cf7d
Merge pull request #896 from johnpetersa19/main
...
Add missing Brazilian Portuguese UI translations
2026-10-20 06:12:04 +07:00
BFlat
2bcd004071
Merge pull request #897 from devius/ka-header
...
i18n(ka): say how the Georgian catalog was made (AI-assisted, native-reviewed); still a draft
2026-10-20 06:11:27 +07:00
bflatastic
f979878d9e
Merge main into fix/issue-892
...
# Conflicts:
# ROADMAP.md
2026-10-20 06:09:17 +07:00
BFlat
5f0fe486db
Merge pull request #900 from storytold/fix/issue-890
...
M1: readable disabled and selected text (#890 )
2026-10-20 06:09:13 +07:00
bflatastic
64efe12e6f
Merge main into fix/issue-890
...
# Conflicts:
# ROADMAP.md
# docs/ui-parity.md
2026-10-20 05:58:56 +07:00
BFlat
4bb30782ff
Merge pull request #899 from storytold/fix/issue-879
...
M1: node.get reports layer data (pluginData) (#879 )
2026-10-20 05:58:32 +07:00
bflatastic
ab59877559
Merge main into #897
2026-10-20 05:47:17 +07:00
bflatastic
77ffc57432
#896 : "Individual padding" uses the catalog's word for padding (Preenchimento is Fill)
2026-10-20 05:47:15 +07:00
bflatastic
4e7256bf6a
Merge main into #896
2026-10-20 05:47:14 +07:00
bflatastic
8a46478e81
Merge main into fix/issue-879
...
# Conflicts:
# ROADMAP.md
2026-10-20 05:46:30 +07:00
BFlat
11ecf3e887
Merge pull request #898 from storytold/fix/issue-894
...
M1: nudge while measuring; distances follow, handles hide (#894 )
2026-10-20 05:46:25 +07:00
bflatastic
b82369201d
M3: duplicating a main component makes an instance ( #892 )
...
Duplicate and Alt-drag copied a main component as a second main. Within
its file the copy is now an instance of it (components::copy_in_file,
shared by edit.duplicate and the Alt-drag copy), as Copy then Paste
already was. A variant duplicated in its set stays a new variant.
2026-10-20 05:44:46 +07:00
bflatastic
e3b20b6540
Merge main into fix/issue-894
...
# Conflicts:
# ROADMAP.md
2026-10-20 05:35:21 +07:00
BFlat
b17bea9195
Merge pull request #881 from yelintong/feat/grid-auto-width
...
Layout grids: Auto line width for columns and rows
2026-10-20 05:35:13 +07:00