Some generated designs never loaded — the preview showed a persistent error and clicking around or waiting didn't help, because the design's code had been saved as one giant jumbled file that no amount of small patching could fix. The auto-repair system now recognizes this situation, fixes the underlying typo, and rebuilds the design into its proper sections automatically. **Where:** Site editor → Designs tab → any design that previously showed "Preview Error" **How to test:** Open a design that has been stuck on a persistent "Preview Error". Within one auto-fix cycle the design should load fully, with all sections editable individually. **Watch for:** Designs that load but show placeholder/empty sections afterwards, or section edits that target the wrong part of the page — that would mean the rebuild split the code incorrectly.
Clients viewing a shared design board can leave a 1-5 star rating and comments on each option — no login required — and your team sees a rollup of the results right on the board. **Where:** Any shared board link (`/board/…`) with voting or comments turned on in the Share panel. Results appear on each option's card in the agency-side board view. **How to test:** 1. Enable "Allow votes" and "Allow comments" in a board's Share panel, then open the shared link in a private window. 2. Rate an option and leave a comment; you'll be prompted for a name the first time. 3. Reload the link and confirm your rating still shows as selected. 4. Back in the agency view, confirm the option's card shows the average rating and comment count. 5. Turn voting or comments off individually and confirm the corresponding controls disappear from the client's view. **Watch for:** A client's own rating not surviving a page reload; feedback still visible after its toggle is turned off; being able to vote twice from the same visit.
You can now pin any design to a client's Design Board straight from the gallery, then arrange, label, and annotate the collected options on a dedicated boards page — the first step toward sharing them with a client. **Where:** Site editor gallery/explore view → pin icon on any design → pick or create a board. Client's boards live at their dashboard card menu → "Design boards". **How to test:** 1. Open a site's gallery, click the pin icon on a design, and add it to a new board. 2. Open the client's "Design boards" page and confirm the new board and item appear. 3. Open the board's detail page: drag to reorder items, rename an item's label inline, add presenter notes, and use "Open in editor" to jump back to that design. 4. Mark one item as the client's choice (record-only at this stage). **Watch for:** Reordering or renaming that doesn't persist on reload; the pin popover showing stale board counts after adding an item.
You can now gather promising designs from any chat or site onto a single per-client board, present them full-screen on a call, share a clean link so the client can rate options and leave comments, export the set as a ZIP of screenshots or a PDF one-pager, and mark the winner — optionally making it live on a site in one click. **Where:** Dashboard → open a client's card menu → **Design boards**. To add designs, use the **Pin to board** button on a design in the gallery, or the **star** on a design in the explore deck. **How to test:** 1. Open a site with multiple design variations. In the gallery, hover a design and click **Pin to board** (or star one in the explore deck). Pin a couple from different sites/chats for the same client. 2. Go to the dashboard, open that client's card menu, and choose **Design boards** → open the board. Reorder cards by dragging, rename an option, add presenter notes. 3. Click **Share**, turn sharing on, and enable ratings + comments. Open the share link in a private window (no login): rate a couple of options and leave a comment. 4. Back on the board, switch the sort to **Top-rated** to see the front-runner, and read the client's comments on each card. 5. Click **Present** to run the full-screen deck (arrow keys to move, toggle screenshot vs live preview). 6. Use **Export** to download a ZIP or PDF. 7. Click the star on a card → **Mark as client's choice**. Choose **Make it live on a site**, pick a site, and confirm — the design becomes that site's live homepage. **Watch for:** cards showing a shimmer/placeholder when a design's screenshot hasn't been captured yet (it fills in on a later load); the share link returning "Board not found" when sharing is turned off; the site picker in "Mark as client's choice" only listing that client's own sites; and "Top-rated" only reordering the view, never the saved order.
Previously, a design generated with a hidden code defect could be saved looking healthy and only fail when you opened it. Every generated file is now verified before saving; small defects are repaired automatically and instantly, and anything that can't be repaired is flagged for our monitoring instead of slipping through silently. **Where:** Site creation → generated designs (D1/D2 and additional variations) **How to test:** Generate a new site; both designs should open without preview errors. This is a prevention change — the visible effect is the absence of broken designs. **Watch for:** Generation taking noticeably longer than before (the check adds under a second normally), or designs saving with sections missing.
A board's Export button now works — download every pinned option as a labeled ZIP of images, or as a print-ready PDF deck with a cover page and one page per option. **Where:** A client's board detail page → Export button → choose "Download screenshots (ZIP)" or "Download PDF". **How to test:** 1. Open a board with a few pinned designs and click Export. 2. Download the ZIP and confirm each image is named after its option's label (e.g. "01-option-a.png"). 3. Download the PDF and confirm it has a cover page (board + agency name) followed by one page per option; include presenter notes if that toggle is on. 4. Try exporting a board where an option has no screenshot yet and confirm it's skipped with a note rather than breaking the export. **Watch for:** An export with zero exportable options should show a clear error rather than a broken empty file.
A trust-bar or logo-strip section could fail to display entirely when its logo list had been replaced by a single placeholder image instead of the expected list of logos. Generation and auto-repair now recognize this pattern and rebuild the list automatically instead of crashing the section. **Where:** Site editor → any design preview with a logo strip or "as seen on" trust-bar section **How to test:** Open a design whose trust-bar/logo-strip section previously failed to render. It should now display normally with its logos. **Watch for:** A trust-bar section showing no logos at all — that would mean the guard cleared the list instead of recovering it.
Background videos in the design preview now start playing on their own (muted) instead of showing a blank/grey box. **Where:** Site editor preview (any design whose hero or sections use background videos) **How to test:** Open a design that uses a background video in the hero, watch the preview — the video should begin playing automatically within a second. Scroll down to sections with videos further down the page; each should start playing as it comes into view. Switch away to another browser tab and back — playback should resume. **Watch for:** A hero that stays a static grey rectangle with no motion, or lower-in-the-page videos that never start until interacted with.
When a client picks a favorite from their design board, you can now apply that choice directly to a live site — no manual re-creation needed, even if the winning design came from a different site than the one you're publishing. **Where:** A board's detail page → mark an item as the client's choice → "make it live on {site}". **How to test:** 1. On a board, mark an option as the client's choice. 2. Choose to apply it to the same site it came from and confirm that design becomes the active one. 3. Choose a different site in the same client and confirm the design is copied over and made active there. 4. Try applying to a site outside the board's client and confirm it's rejected. **Watch for:** The client's choice should still be recorded even if applying it to a site fails for some reason — the decision and the "make it live" action are independent steps.
A section could show "couldn't be displayed here" when the design's saved content held a single value where the section expected a list (for example, a logo strip whose data had been replaced by one image). The preview's safety layer now catches this pattern and renders the section without the affected list instead of crashing it. **Where:** Site editor → any design preview with list-based sections (logo strips, stats, testimonials) **How to test:** Open a design whose section previously showed "The [section] couldn't be displayed here". The section should now render its heading and remaining content. **Watch for:** List items silently missing in sections that used to render them — that would mean the guard is hiding good data instead of just preventing the crash.
Design boards can now be shared with clients via a link, with two ways to view: a clean grid of options, or a full-screen presentation mode for walking through them live in a call. **Where:** A board's detail page → Share panel → toggle sharing on and copy the link. Add `?present=1` to the link (or use the in-app "Present" button) for the full-screen deck. **How to test:** 1. On a board with a few pinned designs, enable sharing and open the copied link in a private window. 2. Confirm the grid view shows each option with its label and a "View live" link, with no internal IDs or names visible. 3. Switch to presentation mode: step through options with the arrow keys or on-screen chevrons, toggle between screenshot and live preview, and switch the device frame between desktop and mobile. 4. As a signed-in team member (not a client), confirm you can also see presenter notes (press "n"); a client viewing the same link never sees them. **Watch for:** Presenter notes leaking into the anonymous client view; the presentation deck losing its place after toggling screenshot/live.
When a generated site includes a showcase of websites or templates (e.g. an agency's "sites we've built" gallery), the images are now real screenshots of curated sites built on the platform instead of generic stock photos or placeholder graphics. **Where:** Any generated site with a template/website showcase section — visible in the design preview and editor. **How to test:** Generate a site for a web agency or SaaS business whose brief includes a "showcase of sites/templates we built" section. After generation, the showcase cards should display actual website screenshots (recognizable page layouts), not stock photography of laptops/offices or gray gradient placeholders. **Watch for:** Duplicate screenshots across cards in one showcase (should be all-different), showcase images leaking into non-showcase slots (hero/team/product images must remain photos), and empty showcase images if the curated gallery pool is unavailable (should fall back to stock, never blank).
Asking the assistant to fix broken images now repairs every broken image on the design — including empty image slots and pictures referenced directly in the layout — instead of sometimes replying that it couldn't find anything to fix. **Where:** Site editor → Assistant → "fix all the broken images" (or click a broken image and ask) **How to test:** Open a design that shows gray boxes where images should be, ask the assistant to fix the broken images, and confirm the preview refreshes with real photos. If everything already loads, it now says so clearly. **Watch for:** A design where some images still render as gray placeholders after the fix, or the assistant reporting "nothing broken" while broken images are visibly on the page.
When your site describes an abstract idea, feeling, or an invented product name (like a coined feature or brand name), the AI now recognizes that stock photography can't capture it literally and sources a more fitting image instead of a random literal match. **Where:** Site generation and design assistant image sourcing — any section whose copy names a concept, capability, or made-up term rather than a concrete object. **How to test:** Generate or refine a site with a section describing an abstract capability or invented product name (e.g. a feature called "SPAX" or copy about "trust" or "spatial reasoning") and confirm the resulting image reflects the idea rather than a literal, unrelated stock photo. **Watch for:** A section naming a clearly concrete object (a coffee cup, a wrench, a storefront) getting an unnecessarily abstract or generic image instead of a literal one.
Asking the assistant to add a decorative effect "behind" an image (like a scan animation or a connecting line) could place it fully hidden underneath an opaque photo, making it look like nothing happened. The assistant now layers these effects on top of opaque images instead of burying them. **Where:** Site editor → Assistant → design chat (e.g. "add a scan animation behind this image") **How to test:** - Ask the assistant to add a decorative animation or line effect behind a photo - Confirm the effect is visible over/around the image rather than completely hidden - No need to re-ask — the effect should show up on the first try **Watch for:** A requested decorative effect that doesn't appear at all after the assistant says it applied the change.
The Style tab's Tweaks panel now has Elevation (Flat / Subtle / Raised / Dramatic shadow depth) and Border weight (None / Thin / Bold) controls alongside Corners and Density, so you can dial in a site's shadows and outline weight without touching code. **Where:** Site editor → Page Styles → Tweaks → Style tab **How to test:** - Open Tweaks → Style tab, hover then click through the Elevation options — cards should preview increasing shadow depth - Try Border weight → None on a site with underline-style or borderless inputs — hovering should NOT box those fields on all sides - Apply and confirm both changes persist after reload **Watch for:** Border-weight hover boxing an underline (`border-b`) or borderless input on all sides — directional dividers should keep their single-edge width.
Photos using blend effects (multiply, darken, screen, etc.) could crush to solid black or blow out to white when you swapped to a very dark or very light palette. The builder now detects when a palette would break a blend mode and neutralizes it automatically, so the image stays visible. **Where:** Site editor → Page Styles → Tweaks → Palette (affects any page with blended imagery) **How to test:** - Open a site with a hero image using a blend/tint effect, switch to a dark palette preset (e.g. "Midnight" or "Noir") — the image should stay visible, not disappear into a black rectangle - Switch to a light palette and confirm a light-crushing blend also stays visible - Publish and confirm the fix carries through to the live site, not just the preview **Watch for:** An image with a decorative blend effect that goes fully black or white after a palette change.
A timing issue during first-time signup could create two identical "My Workspace" workspaces for the same new account. Signing up now always lands you in a single default workspace. **Where:** Sign up → onboarding welcome screen (first workspace creation). **How to test:** Complete onboarding as a brand-new account, including retrying/refreshing the welcome step, and confirm only one "My Workspace" appears in the workspace switcher afterward. **Watch for:** Any new account ending up with two "My Workspace" entries, or onboarding failing to create a workspace at all.
The Palette tab now offers 12 curated whole-palette presets (primary + accent + background tone staged together in one click) and the Fonts tab shows 9 pairings as two-column cards rendering the real heading/body typefaces instead of cramped "Aa" chips. **Where:** Site editor → Page Styles → Tweaks → Palette / Fonts tabs **How to test:** - Open Tweaks → Palette, click a preset (e.g. "Midnight") — primary, accent, and background should all update together, while the individual Primary/Accent/Background controls still work as fine-tune overrides on top - Open Fonts — confirm each pairing card renders its own heading and body typeface - Pick a preset, then switch design variations — the preset highlight should clear rather than staying rung on a stale swatch **Watch for:** A background-tone swatch appearing highlighted when its color doesn't match what's actually staged.
In the site editor's style tweaks panel, picking a color palette could leave a background-tone swatch highlighted even though its color didn't match what was actually applied — and switching designs could leave a stale highlight from the previous variation. Highlights now always match what's really staged. **Where:** Site editor → Style tab → Tweaks → Palette and Background tone swatches. **How to test:** Pick a palette preset and confirm only the palette tile rings, not an unrelated background-tone swatch; then switch design variations and confirm old palette/tone highlights clear and resync to the new variation's colors. **Watch for:** A background-tone or palette swatch staying highlighted after picking a different one, or after switching variations.
When you switched between designs (e.g. D1 → D2) while an edit was still running on the first one, the "Just a moment longer…" processing message bled into the second design's fresh chat. The indicator is now tracked per-design: it stays on the design the edit was started on, disappears when you switch away, and reappears if you switch back while it's still running. **Where:** Site editor → Assistant panel, when switching between designs (D1/D2/…) mid-edit. **How to test:** On a site with 2+ designs, send an edit on D1, then immediately switch to D2 before it finishes. D2's chat should be clean — no "Just a moment longer…" card. Switch back to D1 while it's still running and the indicator should still be there. When it finishes, the result lands on D1. **Watch for:** The thinking indicator should not appear on the design you switched to; switching back to the busy design should restore it; on multi-page sites the indicator should also stay scoped to the page it was started on.
Some chat edits that only changed page content (not code) skipped saving a restore point, so Undo and version history couldn't bring back the version before that edit. Those edits now save a version like any other change. **Where:** Site editor → chat refinement → Undo / version history. **How to test:** Ask the assistant for a content-only change (e.g. rename a footer link or FAQ question) on a data-driven site, then open version history or hit Undo and confirm the prior version is restorable. **Watch for:** A content-only edit that applies successfully but doesn't appear as a restorable step in version history.
When you asked the voice assistant to make a design change, it would sometimes just say "I'm working on a fix" and then stop — you had to repeat yourself before it actually did anything. It now speaks its heads-up and runs the change in the same breath, so a single request gets acted on. **Where:** Site editor / design surface → Design Assistant → Voice mode (microphone button). **How to test:** - Start a voice session and ask for an AI design change (e.g. "make the trust section responsive on mobile" or "add a testimonials section"). - Confirm the assistant gives a short heads-up AND begins the change immediately — you should NOT have to ask a second time. **Watch for:** The assistant acknowledging a request ("I'm working on that", "let me update that") without the change actually starting; changes only firing after a repeated request.
Asking the assistant to redesign an entire section (or a repeating list like pricing cards) could be misread as "replace this one image" — spending an image-generation credit and then failing with "I generated the animated graphic but couldn't apply it," without ever doing the requested redesign. The assistant now recognizes whole-section requests up front and routes them to the normal redesign path instead. **Where:** Site editor → chat/refine on a selected section **How to test:** Select a whole section (or a dynamic list like pricing cards or steps) and ask the assistant to redesign it — it should apply a real redesign, not generate an unusable animated graphic. **Watch for:** Requests to swap a single icon or image should still route correctly to the image-replace path.
When cloning a design with modifications and asking to swap images for videos, the AI sometimes invented fake video files that don't exist — leaving the section as a blank black box. It now only uses your site's actual uploaded videos, and keeps the existing image in place if no real video is available. **Where:** Site editor → clone a design → describe modifications (e.g. "replace the hero image with a video") **How to test:** Upload a video to the site, then clone a design and ask to replace an image with a video — the real uploaded video should appear, never a blank/black placeholder. **Watch for:** If no video was uploaded, the request should keep the existing image rather than inserting a broken placeholder.
If a clone-with-modifications request took too long, the Review Sections modal could show a raw, confusing error like "Unexpected end of JSON input" instead of a helpful message. It now shows a plain-language message when this happens. **Where:** Site editor → clone a design with modifications → Review Sections modal **How to test:** Trigger a slow clone-with-modifications request that times out (or simulate a gateway timeout) — the modal should show a friendly, actionable message instead of a raw error. **Watch for:** Normal (fast, successful) clone requests should be unaffected.
Generating a second design variation could sometimes save with placeholder or missing images instead of real photos. Images for Design 2 are now generated and confirmed before the design is saved, so what you see is complete. **Where:** Site editor → Generate → Design 2 variation **How to test:** - Generate a new site with two design variations - Open Design 2 and confirm every image slot shows a real photo, not a placeholder or broken image - Repeat across a couple of different business types to confirm consistency **Watch for:** Design 2 showing empty or placeholder image boxes right after generation.
Some sections (e.g. a Header using certain navigation link patterns) could render blank in the editor's live preview even though the published site looked fine — caused by the preview loading a different, incompatible version of a shared library than the one used at publish time. The editor preview now matches publish exactly, so what you see while editing matches what goes live. **Where:** Site editor — live preview pane **How to test:** Open a site whose Header uses Next.js-style navigation links; the section should render normally in the editor preview instead of blanking out with a per-section error. **Watch for:** Any other section that previously appeared blank only in the editor (not on the published site) should now render correctly in both places.
When adjusting height settings pushed the spacing panel taller than your screen, the Apply and Cancel buttons could scroll out of view with no way to reach them — most noticeable right after swapping in a new image. The panel now scrolls internally while Apply/Cancel stay pinned in place. **Where:** Site editor → select any section/element → Spacing controls (opens automatically after replacing an image) **How to test:** - Replace an image on a section, then open its spacing/size controls - Expand the Height section until the panel would overflow the screen - Apply and Cancel should stay visible and clickable **Watch for:** The panel should still be draggable and cap its height to the viewport on small screens.
Fixed several issues with the "Recreate faithfully" vs "Use as inspiration" choice: choosing "Use as inspiration" no longer risks bleeding the screenshot's UI chrome into your generated photos, and a curated style you picked is no longer silently discarded by later chat messages. **Where:** Site Builder chat (client editor) — after uploading a website/UI screenshot and picking a recreate option. **How to test:** - Upload a screenshot, choose "Use as inspiration", and generate — photos should look like normal generated photography, not fragments of the uploaded screenshot. - Pick a curated style, then continue chatting about design details before generating — the chosen style should still be honored, not overridden. - Upload a logo first, then a design reference screenshot — confirm the logo stays the logo and the screenshot drives the reference matching. **Watch for:** Screenshot UI elements appearing in generated photos under "inspiration" mode, a chosen curated style reverting to a generic look after further chat, or a reference image not being picked up in generated variations.
Upload a screenshot of a website you like and the builder now recreates it far more faithfully — matching its light/dark rhythm, palette, typography, imagery, and (when you choose "Recreate faithfully") its exact section structure and order. **Where:** Site Builder chat (client editor) — attach a website/UI screenshot and describe your business. **How to test:** Start a new site, upload a full-page website screenshot, and say "recreate this design". A control appears asking **Recreate faithfully** vs **Use as inspiration** — pick one. Generate and compare D1/D2 to your screenshot: palette, section order, and imagery should closely match on "Recreate faithfully". **Watch for:** The choice control should only appear for actual website/UI screenshots — never for a logo, product, or team photo. On "Use as inspiration", the design should honor the look but adapt structure to your business.
When you recreate a site from an uploaded design screenshot, the generated photos now echo the subjects, framing, and treatment of the real photos in that reference instead of generic stock imagery. **Where:** Site Builder chat (client editor) — attach a website/UI screenshot as a design reference and generate. **How to test:** - Upload a reference screenshot with distinctive photography (e.g. moody, candlelit interior shots) and ask to recreate it - Compare the generated hero and section photos to the reference — subject, composition, and lighting/tone should feel like they belong to the same shoot **Watch for:** Only the reference's photographic imagery should be reproduced — its UI chrome, overlaid text, and buttons should never bleed into generated photos.
An unrelated edit (e.g. tweaking copy in one section) could sometimes cause the AI to also scramble the order of other sections on the page — for example moving Services above the Hero — without you asking for it. Edits that would reorder sections you didn't ask to move are now blocked, and the page is left unchanged instead. **Where:** Site editor — any AI refinement/edit request **How to test:** Make an unrelated edit request (e.g. "make the CTA button bigger") on a multi-section page — the section order before and after should be identical. Explicitly asking to "move the Services section above the Hero" should still work. **Watch for:** The error message about not being able to safely apply a change should only appear when an unintended reorder was actually about to happen, not for legitimate move requests.
Asking the design assistant to turn a selected image into a background video now opens the stock-video picker (or lets you upload your own) and wires the chosen, playable clip into the design — instead of silently doing nothing or leaving a play button that never plays. **Where:** Site editor → click any image in the preview → chat "replace this image with a video …" **How to test:** Select a hero/section image, ask to replace it with a looping background video. Confirm the stock-video picker appears, pick a clip, and verify the design updates to an autoplaying, looping video with a poster still. Re-open and confirm the video persists. **Watch for:** A request that gets answered with text but no picker; a picked video that doesn't apply on the second pass; a visible play triangle sitting on a static image with no actual video behind it.
The site-wide Tweaks panel (colors, fonts, corners, density) is now organized into three focused tabs — Palette, Fonts, and Style — instead of one long scrolling list. Changing something in one tab still stages alongside changes in another, and a single Apply commits everything at once. A small dot marks any tab with unsaved changes. **Where:** Site editor → Page Styles → Tweaks **How to test:** - Open Tweaks, change a color on Palette and a font on Fonts - Confirm both tabs show a pending dot, then hit Apply — both changes should land together - Check the Style tab on its own (short content) — the Apply/Reset footer should sit flush at the bottom of the panel, not float mid-panel **Watch for:** Switching tabs should never discard staged (not-yet-applied) changes.
Replacing an image with a video file larger than a few megabytes used to fail with a cryptic "Unexpected token" error instead of uploading. Videos now upload directly, the same reliable way stock videos already do, so larger files go through cleanly. **Where:** Site editor → click an image → Replace with video (upload) **How to test:** - Open the image replace modal and upload a video file a few MB or larger - Confirm it uploads successfully instead of showing a JSON/token error - Try an oversized image too — it should fail with a clear message, not a cryptic parsing error **Watch for:** A video or image upload failing with a raw error message like "Unexpected token" instead of a plain-language explanation.
On mobile you could scroll sideways past the edge of the dashboard and see a black empty area. The app shell now stays locked to the screen width and keeps a light background in device dark mode. **Where:** Dashboard and other logged-in pages, on a phone (especially with system dark mode on) **How to test:** Open the dashboard on a mobile browser with OS dark mode enabled, then try to swipe/scroll horizontally — the page should not move sideways and no black strip should appear. **Watch for:** The sticky top header and any pop-up dialogs should still behave normally.
Some older sites created before the current site setup were being redirected to the wrong place instead of opening in the design picker. Editor links now go straight to the design view in one step, keep your original settings (like a chosen style or prompt), and recover more gracefully if the page fails to load. **Where:** Client portal → opening a site from a bookmark, email link, or the site switcher. **How to test:** Open an older/legacy site through a saved link or the site switcher — it should land directly on the design picker, not bounce to Mission Control or take an extra redirect hop. **Watch for:** Legacy sites redirecting to Mission Control instead of the design picker, or losing query params like a chosen style/prompt on redirect.
When you asked the design chat to do something like check your domain, leads, or billing instead of edit the design, it now correctly hands you off to the Assistant every time — including on catalog-style sites (restaurants, listings, etc.) where this used to get missed. Previously, some paths (like voice input or one-click tweaks) could mistakenly mark a diverted request as a successful design change. On mobile, an "Open Assistant" button now appears right in the chat when a handoff happens. **Where:** Client portal → site editor → design chat (including mobile chat). **How to test:** In design chat, ask something clearly outside of design (e.g. "connect my custom domain" or "show me my leads") — you should get a message directing you to the Assistant, with an "Open Assistant" button on mobile, and it should not appear in your edit history as an applied change. **Watch for:** A site-management request being applied/counted as a design edit, or the handoff not triggering on catalog sites (restaurants, real estate, etc.).
The "Try different styles" link in the site-builder planner previously just closed the planner and left you on the same preview. It now reopens design generation so you can compare another look. We also removed a duplicate status badge next to the site switcher that repeated what the header already shows. **Where:** Design preview → "Build my site" planner → "Try different styles" link; site switcher next to the site name. **How to test:** Open a design you haven't built yet, click "Build my site" to open the planner, then click "Try different styles" — a new design variation should start generating instead of nothing happening. **Watch for:** The link doing nothing if you're already at the maximum number of designs for a site.
Any content collection can now become a private, per-customer area — clients sign in and see only their own documents, invoices, or status, and you manage it all from Mission Control. **Where:** Content Library → open a collection → the new **Portal** button. Assign an owner and visibility on each item in the item editor's Settings tab. Customers see their records in the **Records** tab at /account on your published site. **How to test:** 1. In Content Library, open a collection and click **Portal**. Turn on "Customers can see their own records of this type", optionally pick which fields the customer can edit, and save. 2. Open an item, go to the Settings tab, set Visibility to "Customer", and pick an Owner (search your customers by name or email). Optionally attach a private document. 3. On the published site, sign in at /account as that customer — a **Records** tab appears showing only their records, with any editable fields and a download link for the attached document. 4. Back in Mission Control, change the record and click **Notify customer** to email them that it was updated. **Watch for:** A record only appears for a customer when its visibility is "Customer" AND it has an Owner assigned. Private/internal records never show on the public site or in search. Editable fields are limited to the ones you allowlisted — anything else stays read-only for the customer. Attached documents are private and only reachable by the signed-in owner.
Five more creative accounts can now be connected alongside Magnific and Canva — Higgsfield and Runway (image & video generation), Recraft (design-grade images & vectors), HeyGen (avatar videos), and Ideogram (text-perfect graphics). Connect once and browse your existing assets, import them into your site, or generate new images and videos from your own account — no setup or keys required for any of the new providers. **Where:** Site editor → Settings → Integrations → Creative Accounts; also the wizard's Assets tab and the image-replace modal's Connected tab **How to test:** Connect an account via the popup sign-in, then browse and import an asset from the Connected tab; try generating an image from the prompt box. In the site assistant, ask it to list your connected assets. **Watch for:** Connect popup failing to reach the provider's sign-in; an empty asset grid right after connecting (first browse triggers one-time setup and may take a few extra seconds); video generation offered on providers that only do images.
The master "Allow customer login" switch in site settings could previously be overridden back on by other portal-enabled features. Turning it off now always wins, and the control is relabeled to make clear it covers all customer sign-in — bookings, orders, courses, and private records — not just one feature. **Where:** Site editor → Settings → Customer Portal → "Allow customer login" **How to test:** Turn "Allow customer login" off on a site that also has portal-enabled records or bookings. Sign-in should now return 404 and the portal blocks show nothing to visitors, even though other features are still portal-enabled. The dead-end "Activate Client Portal" button has also been removed from Mission Control's Apps view — portals are set up from the content type's own "customers can see their own records" toggle instead. **Watch for:** Existing sites that never touched this switch keep their previous behavior unchanged (login stays on automatically wherever a portal feature needs it).
Suggested next steps on your site dashboard can now be permanently dismissed with an X, and your choice is remembered — a suggestion you've dismissed or snoozed stays gone instead of reappearing. **Where:** Site dashboard (Overview) → Next steps panel. **How to test:** Open a site's dashboard, find a suggested next step (not a checklist item), and click its dismiss (X) control. It should disappear immediately and stay gone after a page refresh. **Watch for:** A dismissed suggestion reappearing after refresh (rollback should only happen if the dismiss request actually failed).
Sites using a carousel/slider component were failing to preview because the underlying carousel library was loading empty. It's now served from a reliable backup source until the primary one is repaired. **Where:** Site editor preview and published sites, for any design using a carousel/slider section. **How to test:** Open a site whose design includes an image or content carousel — it should render and function normally in the preview instead of throwing an error. **Watch for:** Carousels still failing to load or animate.
Fixed several issues with connected creative accounts (Canva, Higgsfield, Runway, Recraft, HeyGen, Ideogram): users who belong to more than one organization could see a working connection reported as "not connected," image requests could unexpectedly come back as a video (or vice versa), and the connections panel could get stuck on a loading spinner if a status check failed. **Where:** Site editor → Settings → Integrations → Creative Accounts, and the wizard/image-replace Connected-assets panels. **How to test:** As a user in multiple organizations, open Creative Accounts on a site belonging to your second organization — an already-connected provider should show as connected, not "not connected." If a status check fails, the panel should show an error with a Retry button instead of spinning forever. **Watch for:** Any provider still showing the wrong connection state for multi-organization accounts.
The site editor card was sometimes labeled "Resume editing" for sites the owner had never actually opened, and the "your site is ready" email could point back to Mission Control instead of straight into the editor. Both now show the accurate state. A handful of dashboard messages still referencing the old "Build full site" button were also updated to match the current "Build my site" wording. **Where:** Sites dashboard, site editor card, and the "your site is ready" email. **How to test:** Generate a fresh design and build it — the editor card should say "Edit site," not "Resume editing," until you've actually made a change. Follow the "site is ready" email link and confirm it lands directly in the editor. **Watch for:** Any dashboard copy still mentioning "Build full site."
Custom functions can now securely read and update your site's own records — like a customer's loyalty-points balance or an inventory count — unlocking server-powered apps such as loyalty programs and reservation managers. **Where:** Site editor → Functions → open a function → new "Data" tab **How to test:** 1. Create or open a function and, in the Data tab, grant it Read or Read & Write access to one of your content collections. 2. Ask the AI to build logic that reads or updates that collection (for example, "add points to the customer's loyalty account when they check out"). Try the "Loyalty Points Updater" template for a ready-made example. 3. Save and Deploy, run the function, and confirm the record changes in your Content view. **Watch for:** Changing a function's data access only takes effect after you Deploy. A function can only touch the collections you grant it — everything else is off-limits. A read-only grant can view records but not change them. Records a function creates for a specific customer stay private to that customer.
Sites brought in through design import were missing an internal marker the comparison screen relies on, so they'd sometimes drop straight into Mission Control instead of showing alongside your other design variations. Imported designs now carry that marker correctly, including after adding another variation to an imported site. **Where:** Client dashboard → import a design. **How to test:** Import an external design and confirm it opens in the design comparison view rather than Mission Control. Add another variation to an imported site and confirm the comparison view still reflects the newly active design. **Watch for:** Older imported sites created before this fix may still need a re-import to pick up the marker.
After you build your site, you now land straight in the editor looking at your homepage — instead of a setup dashboard — with a slim launch guide showing your three next steps. **Where:** Build a site (Build my site → planner) and finish the planner. **How to test:** 1. From a design, click "Build my site" and complete the planner. 2. Confirm you land in the editor showing the homepage (not the dashboard). 3. Check the slim launch strip along the top of the preview: Review your pages → Confirm business info → Publish. Each opens the right surface; the X dismisses it and stays dismissed after reload. 4. If you continue a build in the background, confirm page-creation progress still shows in the editor. 5. On the Overview, the main button reads "Edit site" until you've made an edit, then "Resume editing". **Watch for:** Reviewer / view-only users should still land on Mission Control, not the editor. The launch strip should disappear once the site is published.
Your site's form-notification emails are now tracked end-to-end — if a notification address stops receiving mail (bounced, marked as spam, or blocked), you'll see it instead of silently losing leads. **Where:** Site editor → Settings → Form Notifications (a red "Not delivering" badge appears next to any failing address, plus a warning banner). Failures also surface in the notifications bell. **How to test:** 1. Add a notification email under Settings → Form Notifications. 2. Submit the site's form. The alert now sends one message per recipient, so one bad address can no longer block delivery to the others. 3. If an address hard-bounces or is on the suppression list, its chip shows "Not delivering" with the reason, and your other recipients get a one-time heads-up email. **Watch for:** Delivery tracking covers sites using the built-in email sender. Sites connected to their own email provider send from that provider, so their delivery status is tracked in that provider's dashboard instead.
The editor chat and the dashboard helper now share one name — "Assistant" — and site-management requests typed into the editor are handed off to the right place instead of failing. **Where:** Site editor (build and design views) and Mission Control right rail. **How to test:** 1. Open a built site's editor (Mission Control → Editor). 2. In the chat, type a design edit like "make the hero background darker" — it should apply as usual. 3. Type a clearly site-management request like "publish my site", "connect my domain example.com", "delete the About page", or "show me my leads". The chat replies with a short plain message explaining that's handled by the Assistant on your dashboard, plus an "Open Assistant" button. 4. Click "Open Assistant" — you switch to Mission Control with the Assistant open and your original message prefilled, ready to send. 5. In the pre-generation design view (site/new), the same handoff shows the message only, with no switch button (there's no dashboard there yet). **Watch for:** - Ambiguous or borderline requests (e.g. "make the contact form send to my email", "add a Publish button to the header", "add a pricing section") must still go through the normal edit flow — they are NOT site-management and should apply as edits. - The handoff message must never mention internal tooling — just plain language pointing to "the Assistant on your dashboard". - Selecting an element or attaching an image and then typing should always be treated as an edit, never a handoff.
Your site dashboard now shows a single prioritized "Next steps" list instead of several overlapping cards (Primary Focus, Setup checklist, and launch readiness) that sometimes disagreed with each other. The most important step is highlighted, the next two are shown compactly, and the rest sit behind "View all". The AI assistant's recommendation chips now use the same wording as the list, so you'll never see the same task described two different ways. **Where:** Site dashboard (Overview) for a working site **How to test:** Open a draft site's dashboard — you should see one "Next steps" panel with a highlighted top step and a "View all (N)" toggle; no "Primary Focus" or "Action Queue" cards. Complete a step (e.g. confirm business info) and watch it move to Done. **Watch for:** Checklist actions that stop working (clicking a step should open the right screen — editor, settings, publish dialog), or a mismatch between the panel's wording and the assistant's recommendation chips.
Cleaned up the design-to-live journey so there's one Publish button per screen and one clear step to build your full site. **Where:** Mission Control Overview, and the design preview toolbar in the site builder. **How to test:** 1. Open a site's Mission Control before it's published — the only Publish button now lives in the top bar (the duplicate publish buttons on the welcome card are gone). 2. From a design preview, click "Build my site" — the planner opens immediately with no extra confirmation pop-up. The planner header shows "Takes about 1–2 minutes", and its footer has a "Try different styles" link that takes you back to your designs. 3. The editor entry now reads "Edit site" consistently (top bar, side rail, and the Overview card). **Watch for:** The planner should open on the first click of "Build my site"; the "Try different styles" link should return you to the design view without building.
Your site editor now speaks in plain language and shows where you are in the journey, so it's easier to know what you're looking at and what comes next. **Where:** Site editor (Mission Control) header and Site tabs; the design preview toolbar. **How to test:** 1. Open a site in the editor. In the top header, next to the site name, you'll see a compact **Design → Build → Live** indicator with your current stage highlighted (hover each step for a plain-words tip: "You're choosing a design", "You're editing your site", "Your site is live"). 2. Open the **Site** view. The two sub-tabs now read **Header & footer** (was "Shell") and **Popups & banners** (was "Overlays"). Their headings and empty states use the same plain wording. 3. Open the design preview of a site you haven't built yet. The same journey indicator appears beside the **Build my site** button; while it runs, the button reads **Setting up…**. 4. On a built site, open the **Designs** menu (was "Design Variations") next to the site name to switch between your designs. **Watch for:** the journey indicator should show **Design** for a site still choosing a design, **Build** for an unpublished built site, and **Live** once published. Header/footer and popups-and-banners tabs should open the same screens as before — only the labels changed.
Connected creative accounts now participate end-to-end: the planning chat knows what your accounts can do and proposes an asset kit (hero film, b-roll, product stills, graphics) for asset-heavy concepts — suggesting you pull from your existing assets before generating new ones. During site generation, the design engine can route a few signature slots (hero, brand visuals) to your connected accounts, including true video generation for cinematic heroes on video-capable accounts. **Where:** Blueprint chat during site planning; automatic during generation for connected organizations **How to test:** Connect a video-capable account (e.g. Runway or Higgsfield), then describe a video-storytelling site in the wizard chat — the plan should propose an asset kit and mention your account by name. Generate the site and check whether a signature image/video slot was fulfilled from the connected account (media library shows it tagged as generated). **Watch for:** The chat naming providers that are NOT connected; generation firing on the user's credits without the plan mentioning it; video slots appearing on image-only accounts; unconnected orgs seeing any behavior change at all.
Draft and in-design sites now open at a clear URL — `.../site/<id>/design` — instead of a confusing "new site" link that already had a site attached to it. Copy the address, bookmark it, or paste it into a chat and it takes you straight back to the design editor. **Where:** The design/variation editor for any draft site (Dashboard → open a draft, or the site switcher, or "Go back to design selection" from Mission Control). **How to test:** 1. Open a draft (design-phase) site from the dashboard — the address bar should read `/client/<clientId>/site/<siteId>/design`. 2. Reload the page and switch between design variations; the editor and the variation you picked should stay put. 3. Open an old-style link (`/site/new?siteId=...`) — it should redirect you to the new `/design` address, keeping any extra options (variation, etc.). 4. Open a published/build site — it should still land on Mission Control (`/mc`), and if you manually visit its `/design` URL it should bounce you to Mission Control. **Watch for:** Any redirect loop or flash between `/design` and `/mc`; a variation reset when reloading; a "new site" URL that fails to forward to `/design`.
Adding a collection page (menu, gallery, listings) no longer fails when that collection's content type already exists — the page now attaches to your existing content instead of erroring. Separately, the editor no longer shows "couldn't be saved" warnings caused by the platform's own background bookkeeping racing your edit — a save conflict is now only reported when something genuinely changed your site at the same time. Edit Mode also freezes animations that start after you enter it, so newly-appearing moving elements stay clickable. **Where:** Site editor → Add Page (collection templates); Design Assistant edits; Edit Mode. **How to test:** Add a collection page for a content type that already exists (e.g. re-add a gallery page) — it should succeed and use the existing items. Make several quick edits in a row — no spurious "couldn't be saved" warnings. **Watch for:** A collection page attaching to an unexpected existing content type of the same name; genuine concurrent-edit conflicts still showing the refresh warning (they should).
The Design Assistant now double-checks its own work: if an edit ends up substantially rewriting a section you didn't ask to change, that unplanned change is automatically reverted while your actual request is kept. Separately, clicking an image or icon nested inside a button or card now selects that specific element instead of the whole clickable wrapper, and elements like the announcement bar can now be selected directly too. **Where:** Site editor → Design Assistant edits and element selection. **How to test:** - Ask for a small change to one section on a multi-section page and confirm only that section changes - Click an image inside a linked card or button — the image itself should be selected, not the card **Watch for:** A completion message noting a change was reverted when it shouldn't have been — that would mean the safety check was too aggressive.
Improved how the Design Assistant decides what to edit when you've both selected an element on the page and typed a request. If your wording clearly points at a different section than what's selected, your words now win (people often forget something is still selected); if your request is vague ("make this bigger"), the selection wins. When multiple elements look identical (e.g. the same button text used twice), the assistant now recognizes the ambiguity instead of silently guessing the wrong one. **Where:** Site editor — Design Assistant chat, with or without an element selected. **How to test:** Select one section, then type a request naming a different section by name; the edit should apply to the section you named, not the one still selected. **Watch for:** Requests with genuinely ambiguous targets (identical-looking repeated elements) may prompt for clarification instead of guessing.
Asking the AI to add a background animation to a section could silently do nothing — the animation class was added but the motion itself was missing, so nothing moved. **Where:** Site editor → select a section → ask the AI to add or change a background animation **How to test:** - Select a section and request "add a background animation" - Confirm the animation actually plays after the change is applied, not just a static class name **Watch for:** Any custom animation added via a section edit that doesn't visibly move — the underlying motion definition may still be missing.
The "D1 / D2 / D3" buttons in the editor top bar now clearly read as design variations you can switch between. **Where:** Site editor top bar (the design switcher next to the gallery and "+ New" buttons) **How to test:** Open a site with multiple designs. The pill row now shows a "Designs" label; hovering a pill shows its full name ("Design 2") plus a short description of that design and a preview thumbnail. Screen readers announce "Switch to Design 2". **Watch for:** The "Designs" label is hidden on very narrow screens to save space; the per-pill hover name and thumbnail still appear.
When cloning a live site, the captured reference screenshot used to guide the design was being dropped instead of saved, so the editor never showed it and every later regeneration re-scraped the original site from scratch. **Where:** Site creation → "Clone a live site" → the design/variation editor. **How to test:** Clone a live site, then open the design editor; the reference screenshot of the original site should be visible instead of missing. **Watch for:** Regenerating variations for a cloned site should reuse the saved screenshot rather than re-fetching the source site every time.
When cloning an existing live site, the color palette from the scraped reference is now fully respected instead of occasionally being overridden by an auto-generated default palette that fought the original design. **Where:** Site creation → "Clone a live site" (via `source_url`, including through connected AI assistants). **How to test:** Clone a site with a distinctive color scheme (e.g. a dark-themed site); the generated site should keep those colors rather than drifting toward a generic default palette. **Watch for:** Non-color enrichment (sections, content, creative direction) still runs as before — only the palette step changed for clones.
You can now connect your Magnific and Canva accounts and pull your own assets straight into a site — during planning, while editing, or by asking the assistant. Import an existing design or creation, or generate a brand-new one on the spot, and it lands in your media library ready to place. **Where:** Site editor → Settings → Integrations → Creative Accounts (to connect/disconnect). Then use them in three places: the planning wizard's **Assets** tab, the **Connected** tab in the swap-image dialog, and by asking the AI assistant ("use my Canva logo", "generate a hero with Magnific"). **How to test:** Connect an account in Settings (Canva via popup sign-in, Magnific via API key). Open the planning wizard's Assets tab → your assets appear → click one to add it. In an existing site, click any image → Connected tab → pick or generate. Confirm the resulting image URL is a durable one (served from our CDN, not the provider). **Watch for:** Assets that fail to import (provider URL expired or unreachable) should surface a clear error, not a broken image. Sites with no connected account must behave exactly as before — generation and image swapping are unchanged. On-demand generation is rate-limited per hour.
Some connected AI assistants (Claude, ChatGPT, and other MCP clients) send the "contact info confirmed" flag as the text "true" instead of a real boolean, depending on their cached tool schema. That was being rejected outright, which blocked publishing a site through the assistant until the placeholder-contact warning was manually cleared. This value is now accepted in either form. The same update also carries an early version of the clone color-palette fix described separately (finished in a follow-up fix). **Where:** Any AI assistant connected via the Mondovo connector, publishing a site with a placeholder contact-info warning. **How to test:** Ask a connected assistant to publish a site after confirming the placeholder contact info is intentional; publish should proceed instead of getting blocked. **Watch for:** An explicit "false" value must still block publish as before — only the previously-rejected string "true" changed behavior.
Buttons and controls in the site editor's Design Assistant panel (change color, typography, layout, animation, and more) were rendering with low-contrast dark-on-dark text in dark theme, making them hard to read. They now use their intended dark-theme colors and match the clarity of light theme. **Where:** Site editor → open the Design Assistant / element panel → switch the editor to dark theme. **How to test:** Select any element, open the design controls, and toggle the editor theme to dark. The action buttons (Layout, Spacing, Opacity, Add animation, Add hover effect, Move up/down, etc.) and section headers should all be clearly legible. **Watch for:** Any editor panel text or button that still appears washed out or invisible in dark mode.
Sites created via a connected AI assistant sometimes flip from "planning" to "design" (variations generated) while you're still sitting on the design URL — that used to bounce you to Mission Control instead of the design/variation picker. **Where:** Client portal → opening a site link while its variations are generating (most common right after using a connected assistant like Claude or ChatGPT to start a site). **How to test:** Start a site through a connected assistant and keep the design tab open while variations generate; once they're ready you should land on the variation picker, not Mission Control. **Watch for:** Sites already forked into a working build should still open Mission Control as normal — only the still-exploring-designs state was affected.
Entering edit mode in the site editor pauses animations so the canvas holds still while you work — but an animation that started playing after you'd already entered edit mode kept moving. Edit mode now catches those too. **Where:** Site editor — edit/selection mode on any page with animated components. **How to test:** Enter edit mode, then do something that mounts a new animated component (e.g. switch sections or add one); the new animation should freeze along with everything else on the canvas. **Watch for:** Animations still moving briefly after entering edit mode, or animations failing to resume correctly after leaving it.
Entering edit mode pauses page animations so you can select and edit elements without them moving — but an animation that started playing after you'd already entered edit mode could keep moving. It's now caught and paused too. **Where:** Site editor — edit mode (click into a section to edit it). **How to test:** Enter edit mode on a section, then trigger something that starts a new animation (e.g. hover/scroll effect); it should freeze in place like everything else instead of continuing to animate. **Watch for:** Animations should resume normally once you exit edit mode.
A batch of trust fixes for the Design Assistant. Replacing an image now changes the exact image you clicked, even when the same picture is reused elsewhere on the page (previously the topmost copy — usually the hero — always won). If a change can't be saved, the chat now says so instead of showing "Done" while the edit silently vanishes on reload — this covers typed edits, voice edits, and assistant-driven edits. Pasting a video link that can't be used now gets an honest explanation instead of a silent success. Content Manager no longer shows "Saved" when a save was rejected. And when you have an element selected but your message names a different section, the assistant now follows a clear rule: your words win, and the decision is tracked so we can measure how often it gets targeting right. **Where:** Site editor → Design Assistant (chat, voice, and element edits); Content Manager. **How to test:** Click an image that appears twice on the page and replace it — only the clicked one changes. Select the hero, then ask to "change the footer links" — the footer changes, not the hero. **Watch for:** A "couldn't be saved" warning appearing after edits (that's the new honesty — previously those were silent losses); image replacements falling back to the AI path more often on pages with reused images.
The editor now quietly test-renders an AI edit in the background before putting it on your canvas. If the edit would crash the whole preview, it keeps your last working version on screen and tells you honestly instead of flashing a broken page or claiming success. **Where:** Site editor preview — any AI refinement/edit. **How to test:** Make an AI edit that produces code which fails to render (whole-page crash). The canvas should stay on your previous working design, you get a "couldn't preview that change — kept your last working version" notice, and auto-fix attempts a repair. An "Apply anyway" action lets you force the edit on screen if you want to see the error. **Watch for:** A valid edit being wrongly held back (the check is designed to let edits through on any uncertainty, so this should not happen); a noticeable extra delay before a successful edit appears (the check adds up to ~1s and only on edits). The check can be disabled platform-side if it misbehaves.
Some AI edits that failed to save (an image generation/replace failure, a compliance-toggle failure) were still reported to you as a successful edit, then quietly reloaded stale content — so the site looked unchanged with no explanation, or the Undo option appeared for an edit that never actually happened. **Where:** Site editor chat (Design Assistant) and the voice assistant in Mission Control. **How to test:** Trigger an edit that fails to persist (e.g. an image action that errors out); the chat should show a "couldn't be saved" message instead of a success message, and no Undo hint should appear for it. **Watch for:** Legitimate successful edits should be unaffected — this only changes behavior for edits that genuinely failed to persist.
An edit could get rejected with a "site was modified by another request" error even though nothing else had actually changed — a background process quietly re-saving search data right after your edit was tripping the same safety check meant to catch real conflicts. The editor now recognizes this specific harmless case and retries automatically instead of failing your edit. **Where:** Site editor — any AI edit or refinement. **How to test:** Make several edits in quick succession; they should persist normally without spurious "couldn't be saved" failures. **Watch for:** An edit still failing to save when you (or a teammate) genuinely changed the same content at the same time — that's a real conflict and should still be reported.
A recent update had broken the page-edit tool for AI assistants connected via API key — every call failed instantly instead of making the requested change. Also fixed: switching to a design variation with no saved files could leave the site unable to open in the editor. **Where:** Any AI assistant connected via API key, using the page-edit tool. **How to test:** Ask a connected assistant to make a change to an existing site's page — it should apply the edit instead of failing immediately. **Watch for:** The edit tool still failing on specific pages; a design variation refusing to open in the editor after switching to it.
Some AI edits were failing with a "Site was modified by another request" error even though nothing else had actually changed the parts of the site you were editing — a background sync task was tripping the conflict check against its own harmless write. Edits like this now save automatically instead of failing. **Where:** Site editor — any AI edit (Design Assistant chat). **How to test:** Make several edits in quick succession; you should no longer see occasional "couldn't be saved" errors caused by unrelated background updates. **Watch for:** Genuine conflicts (e.g. two real edits landing on the exact same content at once) should still correctly fail and ask you to retry.
A generated section's scroll-linked blur, color, or transform animation could freeze at its very first value, leaving that part of the page looking permanently blurred or dimmed even though the rest of the page animated normally. **Where:** Any AI-generated or edited section using a scroll-triggered blur/transform/color animation. **How to test:** - Generate or refine a section with a scroll-linked blur or color-fade effect - Scroll the page and confirm the effect animates smoothly instead of staying frozen at one value **Watch for:** A section whose animated property never changes on scroll — this is now flagged at generation time so it gets regenerated correctly.
Selecting a whole section (like the hero or a top navigation block) and asking the Design Assistant to "replace it with an animated SVG" no longer wipes out the section. Previously this swapped the entire section — heading, content, and layout — for a small decorative placeholder, which caused the top of the page to fail to render and show "This section could not be rendered and was isolated." **Where:** Site Editor - Design Assistant - "Replace with animated SVG" on a selected element **How to test:** Select a whole section (e.g. the hero/main area) and ask to replace it with an animated SVG. The assistant now declines with a clear message asking you to pick a specific image, icon, or placeholder inside the section instead. Selecting an actual image and replacing it still works. **Watch for:** "This section could not be rendered and was isolated" at the top of the preview after an animated-SVG replace — this should no longer happen.
Designs brought in from an external source are now hardened the same way our AI-generated designs are, so they render reliably in the editor — and if a design ever can't display, you get a clear, friendly message instead of a cryptic error code. **Where:** Site editor preview (any site created or extended from an imported design). **How to test:** Open a site whose design was imported externally and view it in the editor. It should render normally. If a design fails to render, the preview shows a short "This design could not be displayed" card with a Reload preview button — never a raw error link. **Watch for:** Imported designs that previously flashed a "Preview Error" / minified React error; they should now render, and existing imported designs have been repaired in place.
Uploading your own video for a hero or section background no longer fails with a confusing error on larger files. **Where:** Site editor → ask for a video background → the video picker → "Upload your own" tab **How to test:** Pick a real MP4/WebM/MOV up to 80 MB and upload it; it should attach and apply as the background. **Watch for:** Files over 80 MB should show a clear "too large" message (not a technical error).
When a site design took longer than usual to generate, the progress bar would freeze at 85% and show the same message for the rest of the wait, making it look hung even though generation was still running. It now keeps inching forward and rotates its status message until the design is ready. **Where:** Site editor / client portal, while a new design is generating. **How to test:** - Generate a design that takes a few minutes - Confirm the progress bar keeps moving past 85% (up to 89%) and the status text changes periodically instead of freezing **Watch for:** The bar reaching exactly 90% before the design is actually ready to save — 90% is reserved for the real "saving" step.
Opening a site that had just started generating design variations (common right after creating one via a connected AI assistant) could redirect you to Mission Control instead of the design/variation picker where those variations actually live. **Where:** Site editor — opening a site that's between planning and build (has variations but hasn't been forked into a working site yet). **How to test:** Open a site created via a connected AI assistant while it's in this in-between state — it should land on the design/variation picker, not Mission Control. **Watch for:** A design-phase site landing on the wrong screen, especially right after its variations finish generating.
When a section can't render in the preview, the isolation notice now names the exact section (e.g. "The Hero section couldn't be displayed here"), explains the likely cause in plain language, and offers "Try again" plus, when available, "Undo last change" — so you can recover in place instead of guessing whether an edit was lost. **Where:** Site Editor preview, on any page where a section fails to render. **How to test:** Open a site whose section throws at render. The banner should name the section, show a one-line cause, and offer Try again / Undo last change. "Undo last change" reverts the most recent edit; "Try again" re-renders the section. **Watch for:** The banner must never show technical details (error text, component or file names). The rest of the page should stay fully editable while one section is isolated.
When you have an element selected but your request clearly names a different section, the assistant already edited the section you named — it now also says so in its reply and offers a one-click option to redo the change against your original selection instead. **Where:** Site editor → Design Assistant chat, after an edit where your selection and your wording point to different sections. **How to test:** - Select one section (e.g. the hero) but type a request naming a different one (e.g. "update the footer links") - Confirm the footer changes, and the reply notes it edited the section you named, with a quick option to apply the change to your selection instead **Watch for:** The note appearing on edits where your selection and wording actually agree — it should only show up on a genuine mismatch.
The fix that stops edits from being reported as "done" when they actually failed to save (see the "Edits that failed to save now honestly say so" entry) now also covers edits made through connected AI assistants (Claude, ChatGPT) and the admin editor, and no longer charges you for an edit that didn't land. The contradictory combination of a "couldn't be saved" warning next to an Undo/redo option for the same edit is also fixed. **Where:** Any AI assistant connected via the Mondovo connector, and the admin site editor. **How to test:** Trigger an edit through a connected assistant that fails to persist — it should report failure and not consume a credit, with no leftover redo option for the failed edit. **Watch for:** This is a defense-in-depth extension of an existing fix — behavior for successful edits is unchanged.
Connected AI assistants (Claude, ChatGPT, and other MCP clients) can now hand Mondovo an image or video and get back a permanent link to use in your site — no more broken media from links that expire. **Where:** Any AI assistant connected to your Mondovo account via the Mondovo connector. **How to test:** Ask a connected assistant to add media from a link (e.g. "upload this video to my site and use it in the hero"). It calls the new upload tool, stores the file permanently, and can then place it with a normal edit. **Watch for:** Supported formats are images (JPG, PNG, WebP, GIF) and video (MP4, WebM, MOV up to 80 MB); links must be reachable and start with https. Already-connected assistants get this automatically — no need to reconnect.
Design variation tabs now always display in numeric order, and the mobile "change applied" bar no longer disappears while it is offering an Undo. **Where:** Site editor — the "Your designs" chip strip and the design gallery filmstrip above the chat; and, on mobile, the floating status bar that appears after the assistant applies a change. **How to test:** - Open a site with two or more designs. The tabs should read D1, D2, D3… left to right, even on sites where a second design finished generating first. - Click any tab — it still opens the correct design (ordering is display-only; likes, notes, and switching are unchanged). - On a phone with the chat collapsed, make an assistant change. When it completes, the floating bar with "Undo" now stays until you close it (X) instead of vanishing after a few seconds. **Watch for:** A tab that opens the wrong design (ordering must never change which design an action targets); the "Iterating on D#" label showing the wrong number; the mobile bar lingering when there is nothing to undo (that case should still auto-dismiss).
Hovering over a design tab in the editor no longer leaves its preview thumbnail floating over the canvas after switching designs or when a new design starts generating. **Where:** Site editor — the design tabs strip above the chat/canvas. **How to test:** - Hover a design tab to show its preview, then quickly switch to another design or start a new generation. - Confirm the preview thumbnail closes and doesn't remain pinned over the canvas. **Watch for:** A leftover preview image overlapping the editing canvas after switching tabs, or a preview that doesn't disappear when you move your mouse away.
Animated number/stat sections no longer break when a design uses the counter in its simplest form — the section renders normally instead of showing "This section could not be rendered and was isolated." **Where:** Site Editor preview and published sites, on pages with animated statistics/counters. **How to test:** Open a site whose hero or stats section shows animated numbers (e.g. "145,000+"). The section renders with the numbers instead of an isolation notice. **Watch for:** Numbers should count up when scrolled into view; string values (e.g. "Under 60") should display as-is.
On phones, undoing a design change no longer depends on catching a floating notification before it disappears — there's now an always-available Undo button that sticks around until you use it or make another change. **Where:** Site editor on mobile, with the chat minimized (the floating chat button, bottom-right). **How to test:** 1. Open a site in the editor on a phone-sized screen and minimize the chat. 2. Ask the assistant to make a change (e.g. "change the hero headline"). 3. When it applies, an "Undo last change" button appears just above the chat button and stays there. 4. The little result notification now fades on its own after a few seconds — but the Undo button remains until you tap it or make another change. 5. Tap "Undo last change" and confirm the change reverts. **Watch for:** The Undo button should disappear after a successful undo (or after a newer change replaces it), and should never linger on a change that can't be undone.
Asking the Design Assistant to enhance a section you selected — like adding a background animation, enlarging a heading, or tweaking the layout — now keeps the rest of that section intact instead of redesigning it from scratch. **Where:** Site editor → select a section (e.g. the Hero) → Design Assistant → ask for a small improvement. **How to test:** Select the Hero, ask to "add a subtle background animation". The existing headline, buttons, and prompt box should stay in place, with the animation layered behind them. **Watch for:** Headings being replaced with placeholder text, the prompt box or buttons disappearing, or an animation taking over the whole section — these should no longer happen for additive requests. Explicit "give this section a completely new look" requests still redesign it fully.
When a page section couldn't be rendered in the editor preview, the "This section could not be rendered and was isolated" notice could be hidden underneath the site's own header if that header used a fixed or sticky position — leaving you with no visible explanation and a confusing blank-looking area. The notice now always displays above the site's header and scrolls into clear view, so you can see it and keep editing the rest of the page. **Where:** Site editor preview — any page with a section that fails to render. **How to test:** Trigger a section render error on a page whose Header uses a fixed/sticky position, then scroll to that section in the preview. The red "could not be rendered" notice should be fully visible above the header, not hidden behind it. **Watch for:** The notice appearing cut off, invisible, or covered by the site header in any preview.
Editing the header or navigation could sometimes cause the AI to invent an unrelated content reference on the page. The editor's safety check correctly caught this, but instead of removing just the invented part, it was blocking your entire edit — so a legitimate navigation change could be lost. The editor now automatically removes the invented reference while keeping the rest of your edit intact, instead of discarding the whole change. **Where:** Site editor — editing the header or navigation menu. **How to test:** - Ask the editor to change something in the header/nav (e.g. "add a Contact link to the nav"). - Confirm the edit is applied and the page doesn't revert or show a blocked-edit message. **Watch for:** A nav/header edit failing to apply, or the page showing content that wasn't there before and wasn't asked for.
Clicking Undo in the editor could occasionally fail with a "Failed to undo - please try again" message, because it picked a version to restore that didn't actually belong to, or didn't exist on, the current site. Undo now only considers versions that genuinely belong to the current site and can be restored. If none qualify, it shows a clear message pointing you to the version history panel instead of failing with a generic error. **Where:** Site editor — Undo button (or Ctrl/Cmd+Z) after making an edit. **How to test:** - Make an edit in the editor, then click Undo. - Confirm the previous version is restored without an error. - If no restorable prior version exists, confirm you see a message directing you to the history panel rather than a generic failure toast. **Watch for:** The "Failed to undo - please try again" toast reappearing, or Undo restoring the wrong content.
When editing one part of a page (like a pricing block), the AI could occasionally rewrite the whole section and accidentally drop an unrelated section above it — such as the Hero — with no warning, leaving the page looking cut off after reload. The editor now checks that an edit doesn't remove any section you didn't ask to delete. If it detects an unrelated section would disappear, it blocks the save and shows a message instead of silently losing content. **Where:** Site editor — editing any section of a page. **How to test:** Ask the editor to change one section (e.g. "update the pricing text") on a page with multiple sections. Confirm all other sections (like the Hero) are still present after the edit is applied. **Watch for:** A section vanishing after an edit that wasn't meant to remove it; or a save being blocked even though you intentionally asked to delete a section.
Fixed a bug where pasting a YouTube or Vimeo URL into an empty hero media placeholder (e.g. "Add a video") would insert the raw URL as visible text at the top of the section instead of creating a playable embedded player. **Where:** Site editor → click an empty video placeholder → "Replace With…" → paste a YouTube or Vimeo URL **How to test:** - Open or create a site with an empty hero video placeholder (shows "Add a video") - Click the placeholder to open the Replace menu - Paste a YouTube URL (e.g. `https://www.youtube.com/watch?v=...`) - The placeholder should be replaced with a playable embedded video **Watch for:** Raw URL appearing as text at the top of the section, or the placeholder remaining empty after pasting
Fixed a bug where pasting a YouTube or Vimeo watch URL into a hero video element would store the URL as unplayable text instead of converting the video into a working embedded player. **Where:** Site editor → click on a hero video → "Replace With…" → paste a YouTube or Vimeo URL **How to test:** - Open a site with a hero video in the editor - Click the video to open the Replace menu - Paste a YouTube watch URL (e.g. `https://www.youtube.com/watch?v=...`) - The hero should display a playable embedded video, not an empty placeholder **Watch for:** Hero remaining empty or showing a broken video after pasting a YouTube/Vimeo URL
When you ask the AI to replace just a selected image or video, it will no longer accidentally remove the whole section (e.g. the entire hero) — if a media swap would delete the surrounding layout, the change is now refused and your section is left untouched. **Where:** Site editor → select an image/video in the preview → ask the AI to "replace this image with …" or "swap this for a video". **How to test:** Pick the hero image on a site, prompt "replace this hero image with a video". Confirm only the media changes and the hero text/buttons/layout stay in place. If the AI would have wiped the section, you now get a clear "I left the section unchanged — try selecting the image again" message instead of a deleted hero. **Watch for:** A legitimate small media swap being refused (it shouldn't — the guard only trips on large content drops). If a real swap is blocked, rephrase as "replace just this image with …".
Horizontal auto-scrolling sections and looping marquees now stop moving while you are editing, so cards no longer slide out from under your cursor when you try to select or change them. **Where:** Site editor → Edit Mode (and element selection). **How to test:** Open a site whose homepage has a horizontal auto-scrolling / marquee section, enter Edit Mode, and confirm the section stops moving and its cards are easy to click. Exit to Preview and confirm the scrolling resumes. **Watch for:** A section that stays frozen after leaving Edit Mode, or that fails to start moving again in Preview.
Clicking an image or media element in the editor now reliably selects the image, so the Design Assistant gets the right context and image editing options appear. **Where:** Site editor (Edit mode) — click any image, including images wrapped in a button, caption, or card link. **How to test:** Open a site in the editor, switch to Edit mode, and click an image that sits inside a button or a captioned card. The image should be selected with image actions (Replace image, AI edit) available, and the Design Assistant should describe an image — not text. **Watch for:** An image being treated as text ("clicked on text…"), image controls not appearing, or the image becoming impossible to re-select after the first click.