mirrorangel

From seven cards to one workbench

Devlog官方2026-10-14 03:04Dev

The image tools used to be separate cards: crop, resize, rotate, convert, compress, grayscale, blur. Each was a small page that did one thing. Clean to build, and wrong from the user side: editing one photo meant uploading it seven times and crossing seven pages.

The fix was to treat file processing as a workspace, not a card. The image tools are now one Image Studio card. You upload once; the panels on the left (crop, filter, transform, resize, export) all act on the same file, and switching panels does not lose the previous step.

There are two kinds of workspace, and mixing them causes confusion.

Single-document (Image Studio): one file, a chain of transforms, each built on the previous result. Crop, then filter the cropped image. Because the steps accumulate, it needs an undo stack.

Multi-document (PDF Studio): many files in and out. Merge three PDFs into a fourth, extract pages, rotate. The output is a new file in the pool, not step two of the input. No undo needed; you delete the result instead.

We did not build one generic document engine for both. The state models are different, and a shared abstraction would have been a liability. What they share is the UI shell, not the data model.

Old links do not break. /tools/image-crop and /tools/pdf-pages still resolve; they redirect to the studio with the right panel focused (/tools/image-studio?panel=crop). You re-upload once there, because the old page had no shared file context, but that is the last time.

The rule this produced, now checked in CI: a file tool must be a workspace, never a card.

0 条评论

评论

还没有评论。

登录后参与讨论。