Commit Graph
2695 Commits
Author SHA1 Message Date
BFlat 6f50d83083 M8: the browser worker's preview and wait tests run on a clock and a threshold they set (#1575)
The browser worker's tests timed the wait after a preview with real sleeps and assumed two polls in a row land within the last full render's time, that a scene tuned to render slowly still renders slower than the preview threshold when the test runs, and that the first image after a request is its last. On a busy machine (the full suite) a test thread can be held off the CPU between polls for longer than the wait, a scene tuned while the machine was busy can render quickly once it isn't, and fonts another test loads mid-render make the worker show that render and draw it again.

Inline::poll_at takes the time (poll passes now) and, in tests, Inline::with_threshold sets when renders get a preview. The four wait tests poll at times they choose on a plain page that previews every render from scratch, the measured-time test previews once renders have taken any time at all, and the refined helpers wait for the last image of a request: no sleeps, no dependence on render speed or on other tests. The capped test now also checks the preview is not refined just before the last full render's time.
2026-10-30 05:29:49 +07:00
BFlat 47552c00a8 Merge pull request #1559 from Silvertree2010/fix/h3976-parse-css-accepts-non-finite-hsl
Reject non-finite hsl()/hsla() components in parse_css
2026-10-30 05:18:48 +07:00
BFlat 8811a23b6f M7: selection and hover outlines follow rounded corners (#1506) (#1573) 2026-10-30 05:07:43 +07:00
BFlat 7d76b0c673 M3: component properties keep their order on rename; Make slot asks for the name (#1536, #1537) (#1565)
Properties were listed by name, so a rename moved one. Components now keep prop_order (the names as they were made; a rename keeps the place) and every listing follows it. Make slot opens a name field under the frame's Slot row; Enter makes the slot, Escape cancels, a taken name keeps the field open.
2026-10-30 04:49:00 +07:00
BFlat 3c1718bf86 M9: publish to a server from the browser (Share > Online and Publish to server in the web build, #917) (#1567)
The web transport implements LiveLink::publish and the hosting and sharing background requests over the page's WebSocket. Managing connections run as exchanges (exchange.rs) in the browser client's driver; the requests and what their answers mean are shared with the desktop transport (requests.rs). The Share popover offers online sharing in the browser (no local network), and Publish to server opens there. Fixes #917.
2026-10-30 04:32:48 +07:00
BFlat 704fb0b717 M4: use the fonts installed on this computer in the browser (Local Font Access, #1051) (#1568)
Where the browser lists them (window.queryLocalFonts, Chromium), the font menu offers Use fonts installed on this computer; the fonts join the font database by name and each style's bytes are read only when text uses it, then auto-sizing text refits. Rust only (js-sys/web-sys). Fixes #1051.
2026-10-30 04:14:33 +07:00
BFlat d890de92c4 M8: SVG import reads color() and color-mix() colours (#1550) (#1566)
The SVG parser reads neither, so fills came in black and strokes were dropped without a note. They are resolved before parsing: color(srgb|display-p3 ...) converted to the document's profile, color-mix(in srgb|oklab|oklch, ...) evaluated as CSS Color 5 defines it. Other spaces are approximated with a note; unreadable calls become a mid grey with a note. Bounded length, nesting and count.
2026-10-30 04:01:07 +07:00
BFlat aa727500a4 M1: keep settings next to the executable in portable mode (#1320) (#1558)
The settings folder comes from craft-settings' rules: FIGCRAFT_CONFIG_DIR,
a `portable` file next to the executable (config/ beside it), then the
platform folder every earlier version used. The Windows portable zip ships
the marker, and a portable folder without preferences starts with a copy
of the platform folder's.
2026-10-30 03:35:12 +07:00
BFlat 28a0fe6d18 M9: the admin budget test allows for the bucket refilling during a slow run (#1564) 2026-10-30 03:23:11 +07:00
BFlat 05f811105c M1: start on other graphics when the window's first ones fail (#965, #1438) (#1557)
Direct3D 12 compiles with FXC and no device compiles wgpu's indirect-call
validation shaders, the two causes of "Parent device is lost" at start.
When the graphics still fail before the first frame, the app starts again
with the next of a fixed list of attempts (Windows: Vulkan, OpenGL; Linux
and FreeBSD: OpenGL; then lower requirements on the power-saving GPU), and
the last failure's message names what was tried.
2026-10-30 03:04:11 +07:00
BFlat d7749249db Merge pull request #1548 from StrajnarFilip/claude/fix-1219-sa-line-breaks
M4: Thai, Lao, Khmer and Burmese lines break between words (#1219)
2026-10-30 02:34:12 +07:00
bflatastic 1c8b937f08 Merge main into #1548 2026-10-30 02:04:39 +07:00
BFlat 132abcc672 M8: show in the app where an attached AI agent is working (#1416) (#1556)
Session::execute_as records the agent's presence: its name, the file, and the innermost layers its last edit changed or the selection it set, for 8 seconds after its last command. The app shows it as an avatar in the people row and an outline with a name tag on the canvas, in its own colour. Display only: no undo step, never saved, never synced to a live session.
2026-10-30 02:03:27 +07:00
NetterSilverandClaude Haiku 5.5 562aae7606 Reject non-finite hsl()/hsla() components in parse_css
Found while testing crates/color/src/lib.rs:~173-180 (parse_css, hsl/hsla arm)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 19:57:26 +01:00
bflatastic da3c8903ce Merge main into #1548 2026-10-30 01:45:39 +07:00
BFlat 42e1086a31 M5: drag a manual overlay into place on the canvas (#405) (#1555)
While the interaction editor has an Open overlay action with Manual position open, the overlay frame shows dimmed and outlined where it opens, from the top-left of the layer that opens it. Dragging it sets the action's offset through proto.action.set in one gesture: the X/Y fields follow live and the drag is one undo step.
2026-10-30 01:44:17 +07:00
bflatastic a9d197f17e Merge main into #1548 2026-10-30 01:29:43 +07:00
BFlat e0abd55d69 M9: one clear, persistent display name, renamed live in sessions (#1380) (#1554)
* M9: one name for comments and live sessions, shown in the Join dialog, kept in the browser, renamed live (#1380)

* M9: a reconnecting session's reset is its own helper (#1380)
2026-10-30 01:27:52 +07:00
bflatastic fef5898616 Merge main into #1548 2026-10-30 01:14:55 +07:00
BFlat 0a83cd9bdb Merge pull request #1516 from AganzeFelicite/fix/vector-marquee-anywhere-1508
M4: a drag anywhere in vector edit mode draws a marquee (#1508)
2026-10-30 01:12:34 +07:00
BFlat 3ac8467c54 Merge pull request #1547 from liwaichung-source/main
board grid settings: dots, lines, graph paper or none
2026-10-30 01:01:35 +07:00
bflatastic d7269c63d5 Merge main into #1516 2026-10-30 00:56:23 +07:00
bflatastic 719b78fbd9 Merge main into #1548 2026-10-30 00:54:38 +07:00
BFlat af2df345bc M9: the Join dialog shows a join until its file is ready, with Cancel and Try again (#1381) (#1553) 2026-10-30 00:51:46 +07:00
BFlat 501b9f770c Merge pull request #1544 from Carbocode/fix/color-picker-dismissal-and-placement
M1: dismiss colour pickers outside and anchor them beside the sidebar
2026-10-30 00:44:06 +07:00
bflatastic 4ec382ea86 Merge main into #1547 2026-10-30 00:32:08 +07:00
bflatastic d60d973459 Merge main into #1516 2026-10-30 00:32:07 +07:00
bflatastic ffbb33973c Merge main into #1548 2026-10-30 00:31:50 +07:00
BFlat 4fbed6a4e0 Merge pull request #1520 from storytold/dependabot/github_actions/actions-db49d30d5d
ci(deps): bump storytold/craft-common-actions/.github/workflows/windows-arm64.yml from 8bb4e5ab95443171104ad88113fe1ef9b0e5ce3f to fa5ef18780cf5e7d5d3b8de068de56cffc83cac5 in the actions group
2026-10-30 00:27:33 +07:00
bflatastic 84f1419fbb Merge main into #1544 2026-10-30 00:26:55 +07:00
BFlat b85f38f30c Merge pull request #1521 from Carbocode/feat/corner-smoothing-scrub
M1: add a draggable corner smoothing icon
2026-10-30 00:24:22 +07:00
BFlat 8d884b005a Merge pull request #1496 from samhyun/perf/web-band-render
M8: the browser draws a zoom's full render a band at a time
2026-10-30 00:23:01 +07:00
bflatastic 1917ab80a8 Merge main into #1544 2026-10-30 00:22:26 +07:00
BFlat f6ccef0c5d M9: a per-address budget for server admin requests, and join codes found by hash (#1075) (#1552)
* M9: a per-address budget for server admin requests, and join codes found by hash (#1075)

* M9: the server tests share one snapshot and address helper (#1075)
2026-10-30 00:20:57 +07:00
BFlat 3e16119710 Merge pull request #1507 from Silvertree2010/fix/h3859-export-size-label-rounds-the-sca
Keep full precision in export size labels so they parse back
2026-10-30 00:19:59 +07:00
bflatastic 1562b4bcd3 Merge main into #1548 2026-10-30 00:19:46 +07:00
BFlat 4ed9981504 Merge pull request #1539 from Silvertree2010/fix/h3971-css-variable-export-leaves-carri
Neutralise CR and form feed in CSS variable export strings
2026-10-30 00:17:28 +07:00
BFlat ae0deb44b2 Merge pull request #1545 from Silvertree2010/fix/h3982-node-set-silently-turns-off-isma
Reject non-boolean values for node.set flag properties
2026-10-30 00:15:01 +07:00
bflatastic b00cccb114 #1547: name the grid styles in a table, keeping the Preferences section's complexity low 2026-10-30 00:13:46 +07:00
BFlat 2f7d22e84a Merge pull request #1546 from Carbocode/feat/group-auto-layout-button
M2: add auto layout from groups in the sidebar and convert them in place
2026-10-30 00:12:35 +07:00
bflatastic 44a7c3c16c Merge main into #1521 2026-10-30 00:11:56 +07:00
BFlat 40c9e56876 Merge pull request #1530 from Silvertree2010/fix/1514-bug-report-figcraft-a-translucen
Fix double alpha when binding a translucent variable to an empty fill
2026-10-30 00:10:19 +07:00
BFlat a82adf4657 Merge pull request #1542 from Silvertree2010/fix/1513-bug-report-figcraft-a-variable-n
Resolve stored variable ids by exact id, not by variable name
2026-10-30 00:07:48 +07:00
bflatastic 9d86403f3a #1547: drop the board grid entry from the right-click menu 2026-10-30 00:06:50 +07:00
bflatastic 59af2bc44a #1547: keep the default board dots' size, and test the Preferences grid section 2026-10-30 00:06:49 +07:00
BFlat a51a60650d Merge pull request #1498 from ahmed-226/feat/guide-snapping
M1: guides snap to layer edges and centres when dragged
2026-10-30 00:05:17 +07:00
BFlat cfec7c28cd Merge pull request #1499 from samhyun/fix/web-control-input
M8: the browser applies input sent over its control channel
2026-10-30 00:03:43 +07:00
bflatastic 864acc0425 Merge main into #1547 2026-10-30 00:03:13 +07:00
bflatastic 86ab39b5cc Merge main into #1516 2026-10-29 23:58:44 +07:00
BFlat 2e3d9b6f07 M8: SVG pattern tiles drawn once per scale, within the layer budget (#1080) (#1551) 2026-10-29 23:57:49 +07:00