Brandon Thomas
36a6a8ae49
Merge pull request #129 from storytold/pr/freebsd-ci-sync
...
FreeBSD CI: match the shared template
2026-10-05 10:04:50 -04:00
Brandon Thomas and Claude Opus 5.5
2b15d3234f
FreeBSD CI: match the shared template (git + safe.directory, 4 vCPUs, pinned vmactions/freebsd-vm)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-05 09:45:18 -04:00
Brandon Thomas
a867c1e020
Merge pull request #126 from storytold/pr/freebsd
...
FreeBSD: build and test the workspace in a FreeBSD VM
2026-10-05 08:50:50 -04:00
Brandon Thomas and Claude Opus 5.5
7c0a253b50
docs: point agents to the shared test corpora ( #125 )
...
Real-file test oracles live in storytold/photocraft-corpus, explained in
craftrules standards/test-corpora.md. Never commit large binary fixtures
here; fetch them pinned and sha256-verified.
Co-authored-by: Claude Opus 5.5 <[email protected] >
2026-10-05 08:24:28 -04:00
Brandon Thomas and Claude Opus 5.5
466f863d00
FreeBSD: build and test the workspace in a FreeBSD VM
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-05 08:23:19 -04:00
Brandon Thomas
4e72f8c0ec
Merge pull request #118 from storytold/docs/honest-assessment
...
Roadmap: honest assessment, the gap list and where we're going
2026-10-05 06:11:31 -04:00
Brandon Thomas and Claude Opus 5.5
2b48392c36
Roadmap: honest assessment, the gap list and where we're going
...
- ROADMAP: a new "Honest assessment (2026-10-05)" section with:
- scores by dimension (breadth, depth, large missing subsystems, interaction
fidelity, look and feel, file interop, bundled content, performance,
robustness, platforms, automation) and how far to trust the self-graded scores;
- the prioritized gap list with one-agent hour sizes;
- the direction (next, then, alongside, 1.0).
- ROADMAP: the parity rows for files, export, print, links and UI chrome are
re-derived after M4 (feature parity ~74% on the rubric, 68–74% honest range;
~230–350 h to feature parity, ~335–520 h to full parity, one agent), the M4 and
M11 milestone rows and the inventories are updated, and "Shipped so far" lists M4
and the robustness work.
- README Status: where we are, what's missing, where we're going.
- AGENTS.md / CLAUDE.md: sessions start from the gap list; landing a task updates
the assessment, the parity row and the README status in the same PR.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-05 06:11:03 -04:00
Brandon Thomas
90e022b0c0
Merge pull request #102 from storytold/pr/release-0.2.0
...
Release: VectorCraft v0.2.0
2026-10-05 02:41:45 -04:00
Brandon Thomas and Claude Opus 5.5
8b50a2604d
Release: VectorCraft v0.2.0
...
Bump the workspace version 0.1.1 -> 0.2.0 (cargo xtask version set 0.2.0).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-05 02:41:32 -04:00
Brandon Thomas and Claude Opus 5.5
3e323bfa2a
Robustness: VectorCraft never crashes — no panics in shipped code
...
Shipped code no longer unwraps, expects or panics: every one of the 124
unwrap()/expect()/panic!/unreachable! sites outside tests now handles the
failure (Result/Option, ?, let-else, defaults) and reports errors to the user.
- Lints: workspace clippy denies unwrap_used, expect_used, panic, todo,
unimplemented and unreachable; clippy.toml allows them in tests, and
integration tests, examples and testkit opt out explicitly.
- Safety net (vectorcraft_engine::guard): a panic in a top-level command rolls
the document back and returns EngineError::Internal; a panicking tool is
reset; the MCP server answers with an internal error and keeps serving; the
UI frame and each control request are guarded.
- APIs that hid failures now return them: Rendered::to_png/to_jpeg/to_webp
return Result (JPEG/WebP errors used to write empty files),
FontDb::face returns Option, Region::top returns Option.
- Fuzzing: engine/tests/import_fuzz.rs feeds garbage, hostile and mutated SVG
and PDF through import → render → export (30k cases locally, no panics).
- Docs: AGENTS.md/CLAUDE.md rule, docs/development.md "Robustness" section,
README pointer and a PR template checklist.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-05 06:28:59 +07:00
Brandon Thomas and Claude Opus 5.5
0f241aac9f
clippy: as_chunks for fixed-size pixel and pair chunks (Rust 1.99 lint was red on main)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-05 06:24:06 +07:00
Brandon Thomas
ead8f72208
Merge pull request #11 from storybored379/pr/svg-import-physical-units
...
SVG import: root sizes in mm/cm/in/pt open at their physical size
2026-10-04 10:16:45 -04:00
Brandon Thomas
3326b1aaac
Merge pull request #10 from storybored379/pr/svg-export-area-type-lines
...
SVG export: area type keeps its wrapped lines and alignment
2026-10-04 10:16:42 -04:00
Brandon Thomas
6b93a3dded
Merge pull request #9 from storybored379/pr/raster-export-size-limit
...
Raster export: refuse sizes the renderer can't produce instead of crashing
2026-10-04 10:16:39 -04:00
Brandon Thomas
4be1e009ec
Merge pull request #8 from storybored379/pr/svg-import-tspan-line-gap
...
SVG import: tspan line breaks follow the baseline gap (none on the same baseline, bounded far gaps)
2026-10-04 10:16:35 -04:00
Brandon Thomas
a4696edbe8
Merge pull request #7 from storybored379/pr/invalid-dash-pattern
...
Stroke dashes: an invalid dash pattern draws a solid stroke instead of hanging the renderer
2026-10-04 10:16:32 -04:00
Brandon Thomas
cbf5dc99bb
Merge pull request #6 from storybored379/pr/svg-import-text-on-path
...
SVG import: <textPath> comes back as type on a path
2026-10-04 10:16:28 -04:00
Brandon Thomas
8164d7c3fb
Merge pull request #5 from storybored379/pr/mcp-headless-open-pdf-ai
...
MCP: headless open_file reads .pdf and PDF-compatible .ai, as File ▸ Open does
2026-10-04 10:16:24 -04:00
Brandon Thomas and Claude Opus 5.5
439f99e491
xtask: rustfmt version.rs (fmt gate was red on main)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-04 10:16:06 -04:00
Brandon Thomas
a1430cfc1e
Merge pull request #12 from storytold/pr/license-standard
...
Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms
2026-10-04 10:08:55 -04:00
Brandon Thomas and Claude Opus 5.5
ef5beece81
Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms
...
Adds LICENSE-MIT, LICENSE-APACHE and docs/brand/LICENSE-brand.txt from the Crafting Apps
licensing standard. NOTICE follows the standard template (copyright, licence, brand carve-out)
and keeps the third-party list, now noting the Feather-derived Lucide icons (also MIT) and the
egui default fonts compiled into the app. ASSETS.md gives the docs/brand/ files their trademark
terms and marks the 21 Feather-derived Lucide icons. README uses the standard License and credits
section; AGENTS.md/CLAUDE.md point to the licence and brand files.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-04 10:05:13 -04:00
Brandon Thomas and Claude Opus 5.5
4ddc422e51
Release 0.1.1
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-03 09:55:30 -04:00
Brandon Thomas and Claude Opus 5.5
f188863b10
README: tagline names the Adobe app it reimplements; standard Adobe trademark and non-affiliation notice
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 12:24:12 -04:00
Brandon Thomas and Claude Opus 5.5
e608d5a26b
README: Crafting Apps table in five columns (icon, app, purpose, GitHub, Website)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 12:19:01 -04:00
Brandon Thomas and Claude Opus 5.5
065d095597
README: drop the old DrawCraft name; VectorCraft links to /apps/vectorcraft
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 12:18:12 -04:00
Brandon Thomas and Claude Opus 5.5
4af5e80a41
README: app icons in the Crafting Apps table
...
Drop the app icon from the top of the README, matching PhotoCraft, and
show each app's icon next to its name in the Crafting Apps table in place
of the coloured name badges. The table is now identical across all seven
apps apart from the "you are here" row.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 12:17:13 -04:00
Brandon Thomas and Claude Opus 4.8
2d0b055c7e
Make ported packaging scripts executable (fixes exit 126)
...
Co-Authored-By: Claude Opus 4.8 <[email protected] >
2026-10-02 12:03:30 -04:00
Brandon Thomas and Claude Opus 4.8
0e24110259
Fix macOS Info.plist: remove document-types block cleanly (route B)
...
Co-Authored-By: Claude Opus 4.8 <[email protected] >
2026-10-02 11:36:23 -04:00
Brandon Thomas and Claude Opus 4.8
da8a14dd04
Signed release pipeline (macOS/Windows/Linux/Web); README community note
...
Ports photocraft's release workflow + packaging (signing, notarization,
MSI/DMG/deb/rpm/AppImage/web), adds `cargo xtask version`. File-type
associations omitted for now (route B); app keeps its own .desktop. Fresh
WiX UpgradeCode. README 'about' note updated.
Co-Authored-By: Claude Opus 4.8 <[email protected] >
2026-10-02 11:35:29 -04:00
Brandon Thomas and Claude Opus 5.5
7b37dd1da5
M7.6: tab stops and the Tabs panel — left/center/right/decimal stops (align-on character), default stops every ½ inch, text.tabs.set/get/clear, ruler (click adds, drag moves, drag off deletes), Repeat Tab / Delete Tab / Clear All Tabs; control characters no longer draw .notdef boxes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 10:13:24 -04:00
Brandon Thomas and Claude Opus 5.5
437320509d
app icon: regal engraved dragon (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 09:45:30 -04:00
Brandon Thomas and Claude Opus 5.5
dabd179d5a
M7.4: Text Wrap flows on both sides of an object (lines split into every free span, left to right, sharing the baseline; exact interval intersection across the line band)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 09:28:04 -04:00
Brandon Thomas and Claude Opus 5.5
fa2d901a7e
M2.9: Shaper tool — rough rectangles, ellipses, triangles/polygons/diamonds and lines become clean live shapes (geom::recognize), squares/circles snap; a scribble deletes the objects it crosses
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 09:10:44 -04:00
Brandon Thomas and Claude Opus 5.5
55e24d6622
M11.4: text-thread connectors on selected threaded frames + View → Hide/Show Text Threads, Hide/Show Gradient Annotator, Type → Show Hidden Characters (spaces, ¶, #), Effect → Last Effect… (reopens the last effect's dialog)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 08:51:33 -04:00
Brandon Thomas and Claude Opus 5.5
dcc5a006a2
M3.6: opacity-mask editing mode — click the mask thumbnail to edit the mask art on a temporary isolated layer with any tool; the mask updates live after every edit; the object thumbnail (or transparency.stopEditingOpacityMask) leaves the mode
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 08:40:18 -04:00
Brandon Thomas and Claude Opus 5.5
5026dad446
M11.5: View → New View… / Edit Views… (saved views in the document, up to 25, listed at the bottom of the View menu; view.saved.* commands)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 08:16:36 -04:00
Brandon Thomas and Claude Opus 5.5
8e735f1de9
M11.3: View → Snap to Pixel (drawing points and moved selections land on whole pixels)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 08:16:36 -04:00
Brandon Thomas and Claude Opus 5.5
16a73dc02a
M12.7: Object → Create Object Mosaic… (trace::mosaic tile averages; columns/rows, new size, spacing, gray, delete raster; follows the image transform)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 08:16:36 -04:00
Brandon Thomas and Claude Opus 5.5
5a36fa1a9b
M6.1: a panic inside the curve sweep (rare near-degenerate input) becomes PathOpsError::Degenerate instead of crashing (found by the randomized export test)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 08:16:35 -04:00
Brandon Thomas and Claude Opus 5.5
bfa46e6cb4
M9.4: raster effects in PDF export — shadows/outer glows as images under the untouched vector object, inner glow/feather/blur as images, at the document's resolution; Effect → Document Raster Effects Settings… (document.rasterEffectsSettings: screen/medium/high/ppi); engine::export_pdf used by app, CLI and MCP
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 07:58:10 -04:00
Brandon Thomas and Claude Opus 5.5
9f20c36f33
Roadmap: parity estimate — ~65% feature parity (weighted over 22 areas), ~50% including fidelity and hardening; ~330–500 h of Opus 5.5 to feature parity and ~440–670 h to full parity for one agent (~85–140 h / ~115–190 h with 4–6 agents); inventories and milestone estimates reconciled
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 07:51:36 -04:00
Brandon Thomas and Claude Opus 5.5
9b0fe0ca5d
M1.9: agent integrations — MCP tools add_text, apply_effect, pathfinder, transform, create_graph, text_wrap, export {selection, outlineText}; CLI convert (IN → OUT, effects kept) and info; SVG export Convert to Outlines (text as glyph paths); TextObject pathEffect key camelCase
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 07:50:20 -04:00
Brandon Thomas and Claude Opus 5.5
1d493c7f06
M12.6: Graphs — the nine graph tools (Column, Stacked Column, Bar, Stacked Bar, Line, Area, Scatter, Pie, Radar), Object → Graph → Type… and Data… (CSV), series groups with legend, regenerate in place keeping moves/scales
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 00:16:23 -04:00
Brandon Thomas and Claude Opus 5.5
13d0aef57f
M1.5: commands that default to the current layer validate the remembered id (reused after undo it could name a compound path: Send to Current Layer moved art into it, Delete Layer could delete it)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 00:16:23 -04:00
Brandon Thomas and Claude Opus 5.5
1e7b4308ec
M0.2: hit-test distance exact on cusp-like cubics (nearest-point accuracy 1e-9; proptest regression)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-02 00:16:23 -04:00
Brandon Thomas and Claude Opus 5.5
c878ac994c
M11.4: View → Hide/Show Corner Widget; Type → Recent Fonts (last 10 applied fonts, persisted)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 23:46:20 -04:00
Brandon Thomas and Claude Opus 5.5
69be79bbf1
M4.4: File → Export Selection… (selected art cropped to its bounds as PNG/JPG/WebP/SVG/PDF), Save as Template… and New from Template… (templates open as untitled documents)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 23:46:20 -04:00
Brandon Thomas and Claude Opus 5.5
3b48776607
M5.2: render perf — drop shadows/outer glows from a cached CPU-blurred raster composited per draw (600 shadows: ~300–1500 ms → 17–70 ms/frame); object blend modes on single plain fills applied per draw instead of a full-viewport layer; effect catalogue indexed once (lookups 300× faster)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 23:31:22 -04:00
Brandon Thomas and Claude Opus 5.5
4745f39c6c
M7.4: Object → Text Wrap (Make, Release, Text Wrap Options: offset, invert): area type flows around wrap objects above it in the same layer, re-resolved after every edit
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 22:48:49 -04:00
Brandon Thomas and Claude Opus 5.5
0ae572be93
M7.3: Type → Type on a Path effects (Rainbow, Skew, 3D Ribbon, Stair Step, Gravity): TextObject::path_effect, type.pathOptions {effect}, checked menu items
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 22:21:58 -04:00
Brandon Thomas and Claude Opus 5.5
8434ef4404
M2.6: Flare tool ↑/↓ add or remove rays while drawing
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 22:21:58 -04:00
Brandon Thomas and Claude Opus 5.5
09fc2eedd9
M4.3: live effects survive SVG, PDF and clipboard export (vectorcraft_effects::bake_document evaluates object, per-fill/stroke and Pathfinder effects on a copy; SVG raster effects become filters: drop shadow, outer/inner glow, Gaussian blur, feather)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 21:39:20 -04:00
Brandon Thomas and Claude Opus 5.5
1c1fd0f139
M9.3: Effect → Pathfinder (Add, Intersect, Exclude, Subtract, Minus Back, Divide, Trim, Merge, Crop, Outline) as live effects on groups/layers; rendered via the live cache, baked by Expand Appearance
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 20:57:14 -04:00
Brandon Thomas and Claude Opus 5.5
e20fe0a200
M0.9: attribute the ArtCraft brand marks in docs/brand (cargo xtask assets)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 20:57:14 -04:00
Brandon Thomas and Claude Opus 5.5
71d43421f5
M2.6: Flare tool (centre drag, then click for the rings; click → Flare Tool Options; shape.flare builds centre/halo/rays/rings from radial gradients in Screen mode) and Reshape tool (path.reshape: grab a point of a selected path, neighbourhood follows with a smooth falloff)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 20:57:02 -04:00
Brandon Thomas and Claude Opus 5.5
7d95f146ce
M11.4: View → Trim View (artwork clipped to the artboards; RenderOptions::trim)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 20:56:45 -04:00
Brandon Thomas and Claude Opus 5.5
f5ff9317d4
M6.7: Object → Clipping Mask → Edit Contents / Edit Clipping Path (select the clipped art or the mask of the selected clip groups, also from inside one)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 20:56:22 -04:00
Brandon Thomas
a5a02f43c0
readme
2026-10-01 14:51:05 -04:00
Brandon Thomas and Claude Opus 5.5
7d393add4a
Community links: Help menu (Discord, ArtCraft website, app page, GitHub), Discord button in the header, links on the About and Home screens; engine help.* commands return the URLs (menu clicks open them via the host's browser service)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 14:37:29 -04:00
Brandon Thomas and Claude Opus 5.5
4878f1c5dd
Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated.
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 14:30:09 -04:00
Brandon Thomas and Claude Opus 5.5
deb9df299c
M7.7: Type → Find Font… (fonts in document with missing ones flagged, Find, Change, Change All; engine: text.fonts, text.replaceFont, select.font)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 13:16:26 -04:00
Brandon Thomas and Claude Opus 5.5
d5aa387367
M7.5: OpenType as character attributes — per-run features (ligatures, contextual alternates, discretionary ligatures, swash, small caps, ordinals, fractions, figure styles) drive shaping; OpenType panel; SVG font-feature-settings
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 12:02:13 -04:00
Brandon Thomas and Claude Opus 5.5
d9df5b0135
M7.3/M7.7: threaded text (Type → Threaded Text: Create/Release Selection/Remove Threading; story re-flows after any edit touching its frames, deleted frames' text flows on), Fit Headline; roadmap
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 11:00:17 -04:00
Brandon Thomas and Claude Opus 5.5
f522e6bd3d
M7.3: Area Type Options — rows, columns, gutter, inset, first baseline stored on area type, laid out by the text engine; Type → Area Type Options… dialog prefilled from the selection
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 10:32:58 -04:00
Brandon Thomas and Claude Opus 5.5
4d1eb16424
M1: fix paste into a compound path when undo made a new object reuse the active layer's id (active layer / isolation must still be a layer / group); regression test
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 10:32:58 -04:00
Brandon Thomas and Claude Opus 5.5
6a6e3d4bb1
M4.1/M11: File → Open Recent Files (persisted, native menu too), Document Info panel (document.info), Object → Make Pixel Perfect; agent guide: control-port clashes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 10:09:19 -04:00
Brandon Thomas and Claude Opus 5.5
48a4720ece
M7.6: Character and Paragraph Styles — partial named styles in the document, apply to objects or a Type tool range, Clear Overrides, override-preserving redefine, duplicate/rename/delete; panels with override markers
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 09:55:01 -04:00
Brandon Thomas and Claude Opus 5.5
2dafc7634b
M5: cache expanded stroke outlines across frames (pans reuse them), skip per-frame bounds for solid paints, pointer hasher for render caches (~7% less CPU per frame on the 20k bench); perf suite budgets reflect reprojection + background refresh
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 09:32:43 -04:00
Brandon Thomas and Claude Opus 5.5
c8f157cc87
M12.5: Image Trace objects remember their preset and parameters (saved in the file); the panel shows the selected trace's settings; Expand clears them
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 09:14:17 -04:00
Brandon Thomas and Claude Opus 5.5
e5959de6cc
M1.6/M12.5: Magic Wand panel (fill/stroke colour, stroke weight, opacity, blending mode with tolerances; settings in the engine, select.magicWand), Image Trace panel (presets, mode, threshold/colours, advanced, live re-trace), Glyphs reachable from the menus
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 09:01:56 -04:00
Brandon Thomas
f673491bd2
progress
2026-10-01 08:56:21 -04:00
Brandon Thomas and Claude Opus 5.5
66855f309d
M4.1: .drawcraft format v2 — default-valued fields omitted, anchors as {p: [x, y], in?, out?, kind?}; large documents saved compact. 50k paths: 56 → 35 MB, open 722 → 244 ms; v1 files still load
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 08:39:58 -04:00
Brandon Thomas and Claude Opus 5.5
b318a62edd
M5.4: drawcraft-cli perf — plan §4 budgets on a synthetic 50k-path document, with a busy-machine warning
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 08:39:58 -04:00
Brandon Thomas and Claude Opus 5.5
318a55350a
M4.8: system clipboard — copy/cut publish SVG markup, paste adopts SVG from other apps (centred in view); Copy/Cut/Paste events handled off macOS; Place bypasses the clipboard hook
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 08:27:54 -04:00
Brandon Thomas and Claude Opus 5.5
f855da4fb8
M5: raster effects render on the multithreaded pipeline (each filter layer offscreen, composited with its blend/opacity; tested equal to single-threaded); fix inner glow blend isolated by its clip layer
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:41:55 -04:00
Brandon Thomas and Claude Opus 5.5
abe2ed7080
M1.9: headless CLI/MCP export PDF/JPG/WebP; app JPEG/WebP export; ui.screenshot errors instead of hanging without a presented frame; docs (roadmap re-estimate, agent guide: bench, locked screens, disk)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:30:38 -04:00
Brandon Thomas and Claude Opus 5.5
5e15994012
M3: opacity masks — model (linked transform), luminance mask rendering, transparency.* commands, SVG <mask> export/import, PDF luminosity soft masks, Transparency panel controls
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-01 00:30:38 -04:00
Brandon Thomas and Claude Opus 5.5
c06fad7b2b
M5: drawcraft-cli bench; canvas keyed by per-document uid (no stale frame from another tab); brushed strokes keep brush art under effects
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 23:38:38 -04:00
Brandon Thomas and Claude Opus 5.5
acb2566d89
Distortion tools (Width, Liquify, Puppet Warp, Perspective Grid), Patterns + Repeat, colour management (CMS, proofing, separations), Preferences/Shortcuts/Workspaces; original brand mark; fix filter panic in thumbnails; README demo scenes
...
- New original DrawCraft mark (gradient + pen nib) replaces the two-letter badge
- render: thumbnails and pattern tiles use a single-threaded context (vello's default is
multithreaded and panics on filters); per-item raster effects detected
- Type tool state no longer leaks across documents
- ui.set {status} for clean screenshots
- README: new hero, feature shots, Made in DrawCraft gallery; examples/neon-drive, ribbons,
feature-sheet; ASSETS.md updated; heading renamed to Crafting Apps
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 22:44:39 -04:00
Brandon Thomas
05f5bed1ad
continued work
2026-09-30 11:38:47 -04:00
Brandon Thomas
c9f38685b4
wip
2026-09-30 11:37:31 -04:00
Brandon Thomas
6dd0d2dcff
continued work; wip
2026-09-30 11:24:38 -04:00
Brandon Thomas and Claude Opus 5.5
94e72f490e
Asset policy: no Adobe iconography/images; per-asset attribution in ASSETS.md enforced by xtask assets (in ci). Offset Path: fix area loss for offsets larger than curvature radius
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 11:23:33 -04:00
Brandon Thomas and Claude Opus 5.5
049c2baebd
tests_build: clippy let_and_return
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 11:08:42 -04:00
Brandon Thomas and Claude Opus 5.5
d5acaa8946
ROADMAP: update status and estimates
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 11:02:34 -04:00
Brandon Thomas and Claude Opus 5.5
f8136f1e35
Live Blends/Envelopes/Gradient Mesh, Shape Builder, Live Paint, Image Trace (drawcraft-trace), Recolor Artwork, Export for Screens, Actions panel, prefs persistence, real layer thumbnails; menus bound
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 11:02:16 -04:00
Brandon Thomas and Claude Opus 5.5
94431f7d86
README: hero screenshot, Dusk example project (drawcraft/svg), Craft suite table
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 10:57:57 -04:00
Brandon Thomas and Claude Opus 5.5
8d20f0e475
Point agents at ROADMAP.md
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 10:07:15 -04:00
Brandon Thomas and Claude Opus 5.5
eaff89e1c0
ROADMAP.md: status, milestones and parity estimates
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 10:07:15 -04:00
Brandon Thomas
a7e49bfa72
continued work
2026-09-30 09:43:24 -04:00
Brandon Thomas and Claude Opus 5.5
6235ea5e10
Export for Screens: artboard thumbnails, fixed dialog height
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 09:38:56 -04:00
Brandon Thomas
d083c2ab50
continued progress
2026-09-30 09:36:51 -04:00
Brandon Thomas and Claude Opus 5.5
42df20ca7f
Panels to Illustrator parity (19 panels), ~70 menu commands, generic param dialogs, view rotation, property/model-based tests + MCP e2e; fix arrange overflow, compound grouping, double journaling, float round-trip, coordinate sanity, simplify growth, batch rollback of session state
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 09:32:20 -04:00
Brandon Thomas and Claude Opus 5.5
213b0927ee
Draw Normal/Behind/Inside modes (Shift+D)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 07:22:47 -04:00
Brandon Thomas and Claude Opus 5.5
a2fd35cd32
M5: cache text glyph geometry per node (Arc identity)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 07:17:05 -04:00
Brandon Thomas and Claude Opus 5.5
515653f556
Vector tool cursors, real egui pointer injection (ui.move/click/drag), xtask bundle (DrawCraft.app with rendered icon)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 07:15:23 -04:00
Brandon Thomas and Claude Opus 5.5
60c562c956
M5.2/M5.4: render geometry cache (Arc identity), opacity folding, LOD, multithreaded rasterizer (20k objects: 187→21 ms); native macOS menu bar; Effect menu + live-preview dialogs; PDF open/save; bench example
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 07:07:59 -04:00
Brandon Thomas and Claude Opus 5.5
6d21d36d16
M2/M8/M9/M4.4: drawing + transform tools, live effects, PDF export/import, file/batch commands; UI restyled to measured Illustrator metrics (Medium Dark, categorized toolbar, hint bar, task bar, Layers)
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 06:55:49 -04:00
Brandon Thomas and Claude Opus 5.5
d0007a604d
M5.1: background render worker with reprojection; Layers rename + drag reorder
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 06:33:47 -04:00
Brandon Thomas and Claude Opus 5.5
db38f51046
Prepare module hooks for parallel tool/effect work
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-09-30 06:29:52 -04:00