bd7a277c75
#1420 : clearer option errors and text cut-off in the inspect docs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Co-Authored-By: GPT-6 Astra <noreply@openai.com >
2026-10-29 12:43:53 +03:00
462b32a642
#1420 : test a field from each of the six inspect helpers
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com >
Co-Authored-By: GPT-6 Astra <noreply@openai.com >
2026-10-29 12:31:09 +03:00
dd55ef63dd
Merge main into #1420
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com >
Co-Authored-By: GPT-6 Astra <noreply@openai.com >
2026-10-29 12:18:33 +03:00
BFlat
7ba22fb2b6
M1: Crop image from the Object menu, the right-click menu and the image fill row ( #1464 ) ( #1501 )
...
* M1: Crop image from the Object menu, the right-click menu and the image fill row (#1464 )
* M1: crop mode shows the image dimmed outside the layer and heavier crop marks (#1464 )
* M1: the handle overlay draws gradients and crops in their own helpers (#1464 )
2026-10-29 15:07:21 +07:00
BFlat
7c9184b023
docs: rows from the round-4 community PRs ( #858 , #1409 , #1397 , #1389 , #1143 , #1427 , #1421 ) ( #1504 )
2026-10-29 14:48:37 +07:00
BFlat
fe7b4bac63
Merge pull request #1143 from Guillergood/feat/penpot-import-export
...
M6: import and export Penpot 2.x files offline
2026-10-29 14:20:14 +07:00
BFlat
cabf8641fb
Merge pull request #1409 from avhn/feat/1386-batch-continue
...
M0.9: let batches continue after failed steps (#1386 )
2026-10-29 14:04:46 +07:00
bflatastic
0a6642747a
Merge main into #1143
...
file.open and file.export docs: main's (reload, export options) plus the Penpot format.
2026-10-29 13:51:11 +07:00
bflatastic
e89def2068
Merge main into #1409
2026-10-29 13:46:42 +07:00
bflatastic
c87be091ac
Merge main into #1421
...
apply_order takes #1458 's numbering; a $var wrapper ranks 7, after boundVariables.
2026-10-29 13:46:39 +07:00
BFlat
c2c720087c
Merge pull request #1408 from avhn/feat/996-node-find
...
M0.9: find layer ids without changing the selection (#996 )
2026-10-29 13:41:43 +07:00
BFlat
3be354d227
Merge pull request #1461 from MortenHusted/fix/open-file-reload
...
M1: opening a file that is already open says when it changed on disk, and can read it again (#997 )
2026-10-29 13:41:21 +07:00
BFlat
f3e7db0b2a
Merge pull request #1460 from MortenHusted/fix/unknown-params
...
M0.9: commands, MCP tools and batch steps refuse names they don't take (#1413 )
2026-10-29 13:40:58 +07:00
bflatastic
08ac26299e
Merge main into #1143
2026-10-29 13:39:41 +07:00
bflatastic
d4aae905a2
Merge main into #1409
2026-10-29 13:39:30 +07:00
BFlat
8dc3ab5703
Merge pull request #669 from yelintong/feat/flutter-codegen
...
M7: Flutter code generation
2026-10-29 13:37:49 +07:00
BFlat
299c1d5f59
Merge pull request #1458 from MortenHusted/fix/layout-key-order
...
M2: auto layout settings in one call don't depend on how their keys are spelled
2026-10-29 13:37:32 +07:00
BFlat
611ff941f0
Merge pull request #634 from Skyfuller1303/feat/fig-vector-region-fills
...
M4: preserve vector region fills across .fig import and native rendering
2026-10-29 13:35:07 +07:00
BFlat
1497d8ddc4
Merge pull request #1210 from yelintong/feat/nav-toolbar
...
ui: rebuild the toolbar pill on a 32 pt grid, without the Resources button
2026-10-29 13:34:02 +07:00
bflatastic
1e22268602
Merge main into #1143
2026-10-29 12:44:42 +07:00
bflatastic
789fa33444
Merge main into #634
2026-10-29 12:25:06 +07:00
bflatastic
fc6ea73154
Merge main into #1421
...
# Conflicts:
# crates/engine/src/cmd/props.rs
# docs/roadmap.md
2026-10-29 12:24:32 +07:00
bflatastic
c6c11471db
Merge main into #1408
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
# docs/roadmap.md
2026-10-29 12:23:48 +07:00
bflatastic
c5ba6dd2e8
Merge main into #1409
...
# Conflicts:
# crates/engine/src/session/undo.rs
# docs/roadmap.md
2026-10-29 12:23:11 +07:00
bflatastic
d1e96ea706
Merge main into #1461
2026-10-29 12:22:30 +07:00
bflatastic
ee12a51045
Merge main into #1458
2026-10-29 12:22:29 +07:00
bflatastic
a51e815073
Merge main into #1460
2026-10-29 12:22:28 +07:00
bflatastic
a81efe5466
Merge main into #669
2026-10-29 11:52:03 +07:00
bflatastic
9f5178f53a
Merge main into #1421
...
# Conflicts:
# crates/engine/src/cmd/props.rs
# crates/engine/src/selection/selection_colors.rs
# docs/roadmap.md
2026-10-29 11:50:45 +07:00
bflatastic
8d69b3ce8f
#1210 : revision rows, and drop the Arabic catalog's Resources key
2026-10-29 11:44:05 +07:00
bflatastic
9b3683036c
Merge main into #1210
2026-10-29 11:43:04 +07:00
bflatastic
49a41cddd4
Merge main into #1408
...
# Conflicts:
# docs/roadmap.md
2026-10-29 11:40:48 +07:00
bflatastic
1505681a54
Merge main into #1407
2026-10-29 11:39:50 +07:00
BFlat
f90a7c5e22
Merge pull request #1419 from avhn/fix/1410-batch-undo-rollback
...
M8: keep undo entries after a failed batch undoes an earlier edit (#1410 )
2026-10-29 11:38:24 +07:00
bflatastic
56196eac5a
Merge main into #1409
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/session/undo.rs
# docs/roadmap.md
2026-10-29 11:27:45 +07:00
bflatastic
f154011299
Merge main into #1461
2026-10-29 11:19:05 +07:00
bflatastic
4fcc49aa37
Merge main into #1458
2026-10-29 11:15:01 +07:00
bflatastic
f99f01d57b
Merge main into #1460
2026-10-29 11:09:30 +07:00
BFlat
60ea32f171
Merge pull request #1465 from phonedu/mcp-agent-feedback
...
M12: MCP comment feedback and live change events
2026-10-29 10:51:24 +07:00
bflatastic
9202b1032f
Merge main into #1460
2026-10-29 10:38:06 +07:00
bflatastic
61c5b1c0b8
Merge main into #1407
...
# Conflicts:
# docs/roadmap.md
2026-10-29 10:30:23 +07:00
bflatastic
aa5c016518
Merge main into #1419
...
# Conflicts:
# docs/roadmap.md
2026-10-29 10:30:12 +07:00
bflatastic
0cc380c228
Merge main into #1466
2026-10-29 10:08:11 +07:00
bflatastic
6abddb0f68
Merge main into #1465
2026-10-29 09:55:55 +07:00
BFlat
7f646aac24
Merge pull request #1468 from samhyun/perf/web-zoom-settle
...
M8: the browser refines a zoom only once it has paused
2026-10-29 09:49:26 +07:00
BFlat
4a0bd79797
Merge pull request #1488 from ChristopherLinnett/issue/1086-image-validation
...
fix(collab): image entries must match their hash and sane bounds (#1086 )
2026-10-29 09:49:20 +07:00
BFlat
5804c0e2cc
Merge pull request #1489 from ChristopherLinnett/issue/857-confirm-quit
...
fix(app): ask before ⌘Q quits with unsaved changes (#857 )
2026-10-29 09:41:19 +07:00
bflatastic
e83f9691b3
Merge main into #1466
2026-10-29 09:32:26 +07:00
bflatastic
170f1fdf32
#1466 : gaps and ROADMAP list the Arabic draft as shipped
2026-10-29 09:26:15 +07:00
Christopher Linnett
57cf1bec48
fix(collab): keep in-use images and resync clients after filtered history ( #1086 )
...
- An image a layer or style still shows can't be removed: removing it and
putting other bytes under its key would swap the picture that layer
shows, which giving the key other bytes directly can't. A batch made by
the diff stops using an image (node changes, then styles) before it
removes it; an undo keeps the changes that apply, so its image may stay.
- Restore and replay leave out the image entries history written under
older rules can't apply, using one method shared with the undo history
(Replica::apply_kept, extracted from history.rs). It is exact for every
image rule, including removals in use and replacements, and leaves out
only image entries: any other change that doesn't apply is still an
error. The image-only filter it replaces is gone.
- A server whose restore or replay left image entries out, or whose saved
log puts images, catches every resuming client up with its snapshot,
including one at the same sequence number.
- Tests: an_image_in_use_cannot_be_removed,
an_image_no_longer_in_use_can_be_removed, undoing_an_image_layer_still_works,
a_restart_replays_past_a_logged_removal_of_an_image_in_use,
a_resume_after_history_was_left_out_catches_up_with_the_snapshot,
a_resume_after_a_clean_restart_catches_up_with_the_log,
a_snapshot_with_a_broken_layer_change_still_fails_to_open.
- Docs: collab-protocol.md, collaboration-parity.md.
2026-10-29 10:25:16 +08:00