Tauri 2 dropped the implicit default menu on macOS, so without an explicit
Edit submenu AppKit had nothing to dispatch the standard editing
accelerators through and Cmd+letter shortcuts never reached the WKWebView.
This was visible in the PageDraw text-to-image promptbox (Cmd+A would not
select all, etc.).
Install a minimal App/Edit/Window menu using PredefinedMenuItem on macOS
only; gated behind cfg(target_os = "macos") so Windows/Linux still have
no menu bar.
PageDraw lightbox left-arrow at a batch boundary called openBatchInLightbox
without a startIndex, defaulting to 0, so leftward traversal skipped every
non-first image in each prior batch.
The per-tile X button suggested individual tiles could be dismissed, but a
batch resolves as a unit. The whole batch group is now the click target and
the hover overlay paints diagonal red/black stripes across all tiles so the
removal scope is unambiguous. Centered trash chip with a ×N badge for
count > 1 confirms the batch size at a glance.
Pending tiles now have a hover-revealed trash button that opens a confirm
modal noting the image will still appear in the library when complete.
Removing the entry from pendingGenerations is enough — the Tauri completion
bridge filters incoming events on membership, so the eventual result is
silently dropped from PageDraw.
The confirm modal auto-closes if the underlying generation resolves before
the user confirms, and clears its tracked target if dismissed externally.
Add Aspect Ratio, Resolution, Duration, Audio, Size, and Created rows to the
desktop app's lightbox so it matches the website's Information panel. Promote
the website's local format helpers into @storyteller/model-list so both
clients can share them.
PageDraw was listening for image_edit_complete_event, but the unified
generate_image Tauri command emits text_to_image_generation_complete_event
for all paths (text, edit, inpaint). Switch to that event and filter on
frontend_subscriber_id against pendingGenerations so each page only handles
its own results, mirroring the PageAngles/AnglesStore pattern.
Last remaining legacy `Enqueue*` consumer in the artcraft Tauri app's
generation surface. Maps `image_count` -> `batch_size`, `disable_system_prompt`
-> `enable_system_prompt`, legacy aspect_ratio/image_resolution enums onto
CommonAspectRatio/CommonResolution. Folds the conditional common_aspect_ratio
branch into a single aspect_ratio field that prefers commonAspectRatio when
the model supports it.
Last remaining legacy `Enqueue*` consumer in the artcraft Tauri app's
generation surface. Maps `image_count` -> `batch_size`, `disable_system_prompt`
-> `enable_system_prompt`, legacy aspect_ratio/image_resolution enums onto
CommonAspectRatio/CommonResolution. Folds the conditional common_aspect_ratio
branch into a single aspect_ratio field that prefers commonAspectRatio when
the model supports it.