Commit Graph

14674 Commits

Author SHA1 Message Date
Tanish Manku 4ec39de8fb docs: add PageDraw visual design & architecture review
High-end design pass over the pagedraw editor styling and architecture
(lib + webapp integration). Scores each axis against a Linear/Figma-tier
app-chrome rubric and lays out a P0-P2 roadmap: token sweep to kill
hardcoded greys and unify the accent, an owned type ramp, custom-eased
micro-motion, double-bezel panel surfaces, a concentric radius scale,
z-index hygiene, and module-size/architecture notes.
2026-06-15 17:23:43 -07:00
Tanish Manku 8f26a5182c webapp(pagedraw): open insufficient-credits modal on 402
The omni-gen enqueue (and inlined bg-removal fetch) throw on non-2xx and
the JSON body isn't surfaced, so parse the HTTP status from the error
message. On 402 Payment Required, open the shared insufficient-credits
modal instead of a raw error toast — matching the create-image and
create-video generate handlers.
2026-06-15 17:18:58 -07:00
Tanish Manku 5147752c45 webapp: add "Edit on Canvas" lightbox button -> PageDraw
Open any image output in the image editor straight from the lightbox,
matching the existing Make Video / Recreate handoffs. Mirrors the Tauri
app handleEditFromGallery flow: RESET the lib store, seed the image as
base (and into history), then route to /edit-image.

Gated to images (hidden for video/3D), so it shows on create-image,
library, and task-queue lightboxes via the shared LightboxDetails.
2026-06-15 17:09:57 -07:00
Tanish Manku 8cfd579664 webapp: add /edit-image route with REST PageDraw adapter
Plug the shared @storyteller/ui-pagedraw lib into the webapp by
implementing a REST-flavoured PageDrawAdapter, mirroring how ui-pagescene
is wired into artcraft-webapp and the artcraft-website pagedraw port:

- enqueueEditImage -> OmniGenApi.generateImage, then poll the job and feed
  results back into the lib's Zustand store (addHistoryImageBundle /
  resolvePendingGeneration), keyed on frontendSubscriberId.
- enqueueBgRemoval -> upload base64 -> media token -> POST
  /v1/generate/image/remove_background -> poll -> finishRemoveBackground.
- uploadImage -> UploadImageMedia.
- renderBaseImageSelector -> webapp upload/library/blank-canvas picker.

Inpaint is intentionally stubbed; the omni REST endpoint doesn't accept a
raw mask payload yet, so we surface a clear toast until that path exists.

Wired a /edit-image route in app.tsx and an Edit Image sidebar entry.
2026-06-15 14:32:39 -07:00
BFlat 9caaad5e0d Page video editor: Mount and make public (#1611)
Co-authored-by: Tanish Manku <tanish2k09.dev@gmail.com>
2026-06-08 13:01:51 -07:00
Brandon Thomas 8253e28560 folders (#1616) 2026-06-08 12:09:02 -04:00
bflatastic 7af6e5b867 Webapp: added missing seedance variant name mappings 2026-06-08 22:19:32 +07:00
bflatastic ccdcb01035 fix(webapp): clamp duration to nearest valid value on model switch instead of resetting to min 2026-06-08 21:18:23 +07:00
BFlat e3a8c04878 Webapp: OmniGen outage handling + toast fixes (#1615)
### Outage handling
- Show an error toast when the OmniGen service is unavailable (5xx)
instead of failing silently.
- Distinct messages for the two failure points: couldn't load the model
list vs. couldn't enqueue a generation.
- Model-fetch toast fires once per failed attempt (singleton fetch +
message dedup); generation toast is gated to 5xx so content-policy/4xx
rejections still just show the failed card and 402 still opens the
credits modal.
2026-06-08 20:59:50 +07:00
BFlat 3886253ffa Webapp: prompt-box fixes, in-progress recreate, model-name consistency, sticky settings (#1614)
### Prompt box
- Fix prompt box overflowing past the viewport at some desktop widths
(Generate button hidden) - removed `w-full` so it sizes to the content
area beside the sidebar (create-image + create-video).

### Recreate action
- Add **Recreate** to in-progress jobs in the create-page gallery (grid
+ list) and the task queue - previously only on completed/failed.
- Task queue had no Recreate at all; added it to all three states
(in-progress/completed/failed) for consistency.
- Recreate on the in-progress grid card sits bottom-right inline with
the prompt; in-progress list row reveals it on hover (matching completed
rows).
- Extract shared `useRecreateFromPromptToken` hook; refactor
FailedCard/FailedRow onto it (DRY).

### Model display names
- Consolidate to a single source of truth: webapp `getModelDisplayName`
now delegates to `@storyteller/model-list` (removed the duplicate local
map). Gallery, task queue, and lightbox now agree.
- Fix missing names: `gpt_image_1` (gallery) and Midjourney in the
lightbox - added `midjourney_7` / `midjourney_7_niji` / `midjourney_8`
to the model-list name + creator-icon maps; aligned `veo_2` → "Google
Veo 2".

### Sticky prompt settings across model switches
- Prompt-box settings no longer reset when switching models - the user's
choice persists and is resolved against the new model (kept if
supported, else falls back for display/generation only, without losing
the preference).
- Covers aspect ratio, count, resolution, quality (image) and aspect
ratio, resolution, count, duration, sound (video).
- Add `lib/resolve-model-setting.ts` (`resolveModelOption` /
`resolveModelCount`); `handleModelChange` now only switches the model (+
capability-bound input mode on video).
2026-06-08 19:35:20 +07:00
bflatastic c1b257b7d5 updated download links to v0.32.0 2026-06-06 07:56:31 +07:00
bflatastic b162e2bfc0 webapp: fixes to mobile sheet component on mobile 2026-06-06 07:50:07 +07:00
BFlat 3ea33dabd5 test fix 2: mobile freezing after image modal closed on mobile (#1613) 2026-06-06 07:37:15 +07:00
BFlat aee20db947 test fix: mobile freezing after image modal closed on mobile (#1612) 2026-06-06 07:20:20 +07:00
BFlat 3847a3d39c Revert "Page video editor: Mount and make public" (#1610)
Reverts storytold/artcraft#1606
2026-06-06 06:59:01 +07:00
BFlat 5747212f37 Revert "fix(ci): use pnpm instead of npm in artcraft publish workflows" (#1609)
Reverts storytold/artcraft#1608
2026-06-06 06:58:27 +07:00
Tanish Manku 04ebe2c965 fix(ci): use pnpm instead of npm in artcraft publish workflows (#1608)
The frontend migrated to pnpm workspaces in #1606, which introduced
"workspace:*" dependencies. npm cannot resolve that protocol, so the
macOS and Windows publish workflows fail at "npm ci" with
EUNSUPPORTEDPROTOCOL, breaking production release builds on main.

Add a pinned pnpm setup step and replace the npm install block with
"pnpm install --frozen-lockfile". Verified the frozen install resolves
cleanly against the committed pnpm-lock.yaml.

---------

Co-authored-by: bflatastic <bombayapirat@gmail.com>
2026-06-06 06:49:16 +07:00
Tanish Manku d09d44b7e2 Page video editor: Mount and make public (#1606)
Co-authored-by: bflatastic <bombayapirat@gmail.com>
2026-06-05 22:21:55 +07:00
BFlat 8e754b4b8f website: landing buttons and footer cta updates (#1607)
- Renamed the "Supercharge Credits" button to **Use on Web** (globe
icon) in the hero and bottom CTA. Routes subscribers to the webapp
homepage, everyone else to `/pricing`.
- Removed the "Create image / Create video" links from both sections.
- Split Discord + GitHub into a separate "Open source &
community-driven" CTA (subtle container) above the "Ready to craft?"
CTA.
2026-06-05 14:47:30 +07:00
BFlat cbda6b7b1f fix(webapp): prevent iOS caret loss in mobile prompt input (#1605)
MentionTextarea's DOM-sync effect rewrote innerHTML under the live caret
whenever buildHTML's identity changed, detaching the cursor on iOS
Safari mid-typing. Skip the rewrite when focused and the DOM already
matches value, and memoize colorMap in MobilePromptForm to stop the
per-render churn.
2026-06-04 13:05:30 +07:00
Brandon Thomas 186ce24390 fix routing 2026-06-03 23:59:13 -04:00
Brandon Thomas 3401e709bb rename handlers + codegen fix 2026-06-03 10:57:27 -04:00
Brandon Thomas f71d344ff3 admin email changes (#1604) 2026-06-03 10:37:28 -04:00
Brandon Thomas ca43d5cbe8 grok failure update (#1603) 2026-06-02 22:00:10 -04:00
BFlat 1d8f64dd23 webapp: midjourney icon and name mappings (#1602) 2026-06-02 22:58:33 +07:00
BFlat 2a49226479 mobile view update (#1601)
- Separate mobile generations page
- Bottom mobile navbar
2026-06-02 20:36:02 +07:00
Brandon Thomas a6f8d2a4aa midjourney images - router, web, jobs, etc. (#1600) 2026-06-02 06:49:12 -04:00
Brandon Thomas 017b923c5a midjourney client (#1599) 2026-06-02 04:02:09 -04:00
Brandon Thomas f0244c6da8 analytics queries (#1598) 2026-06-01 23:55:52 -04:00
Brandon Thomas 75788d9525 kling 1.6 pro, 2.5 turbo pro, 2.6 pro -> web omni api / artcraft_router / fal_client (#1597) 2026-06-01 19:08:25 -04:00
BFlat c5dcf0e155 app styling updates (#1596)
darker tone
2026-06-01 18:17:14 +07:00
Brandon Thomas c71af2b2b0 move deprecated modules (the bulk of them) (#1595) 2026-05-31 23:59:25 -04:00
Brandon Thomas 2f808fe61e artcraft_router cleanup from old migration (#1594) 2026-05-31 23:42:50 -04:00
Brandon Thomas 0c1bb0794a auto aspect ratio for grok 2026-05-31 16:39:46 -04:00
Brandon Thomas f551a547a0 grok max length is 4096 2026-05-31 15:05:09 -04:00
Brandon Thomas 8ac4e534e1 refactor to make intention of request prereq checks clear + reusable 2026-05-31 14:40:10 -04:00
BFlat e39fe7c106 textToVideoSupported api field (#1593) 2026-06-01 01:30:24 +07:00
Brandon Thomas e3d30a677a 400 on grok ttv (#1592) 2026-05-31 14:19:13 -04:00
Brandon Thomas e8a2cbd490 text_to_video_supported=false on new grok model (#1591) 2026-05-31 13:53:02 -04:00
Brandon Thomas 0d7168c506 grok imagine video 1.5 preview (#1590) 2026-05-31 12:21:54 -04:00
bflatastic 5d4f307320 model selector width update 2026-05-30 01:03:13 +07:00
Brandon Thomas dbd723541f add prompt token to GET /v1/media_files/list/user/{username} (#1589) 2026-05-29 13:45:17 -04:00
bflatastic c589f20110 popover updates for info tooltip 2026-05-30 00:42:55 +07:00
Brandon Thomas 59da9a2a79 descriptions got switched 2026-05-29 13:38:03 -04:00
BFlat 58d4f4ff12 webapp: extra info for models (#1588) 2026-05-30 00:30:14 +07:00
Brandon Thomas 10cb0b3030 fix build 2026-05-29 13:09:46 -04:00
Brandon Thomas 55d375895c description fields on video models 2026-05-29 13:05:55 -04:00
Brandon Thomas 5dfa059523 disable characters 2026-05-28 19:46:46 -04:00
bflatastic 9598a86dcd webapp: recreate failed jobs 2026-05-29 06:40:54 +07:00
Brandon Thomas d86da55954 update model list (#1587) 2026-05-28 19:10:36 -04:00