🌟 Codename: Reliable, Start to Finish
🛡️ 42 PRs · 13 contributors · 4 days — From Agent connections to live
HTML previews and app relaunches, Open Design 0.21.0 makes the entire creation
experience more reliable—and easier to recover when something goes wrong. 🚀
🔥 Highlights
-
🖼️ HTML previews stay visible, live and correctly wired. Multi-file
artifacts keep their scripts, styles, images, modules and relative requests;
switching projects, files or Code/Preview no longer sends Electron through the
navigation races that could leave a complete document painted as a white
frame. Presentation mode also gains a dependable way out, and clicking the
preview dismisses its viewport menu like clicking anywhere else. (#7336,
#7358) Thanks @lefarcen. -
🧰 A working agent no longer disappears behind a broken shim. OpenDesign
keeps searching when an earlier executable on PATH is stale, leaves a real
diagnostic and repair action when nothing can launch, and supports the
DeepSeek Harness release line users actually receive. The one-line installer
finishes instead of getting trapped in dependency resolution. (#7153, #7339)
Thanks @lefarcen. -
🌙 Kimi works again on 0.37 and newer. Those releases stopped accepting the
stdio MCP transport that OpenDesign attached to every session, turning nearly
every run into an opaque handshake error. OpenDesign now sends only the
transports each Kimi build accepts, so a message produces a streamed reply
again instead of failing before the work begins. (#7313) Thanks @lefarcen. -
🚪 Relaunching the app recovers from a stale local engine. A web sidecar
left behind by a crash could hold the app's socket and make every later launch
quit at startup. OpenDesign now reclaims that stale owner safely, and its
daemon and web processes shut down with the desktop app instead of haunting
the next launch. (#7279) Thanks @mrcfps. -
🤖 Coding Plan model access follows the account you are actually signed
into. The model picker and unlimited-use badges now read the authenticated
entitlement list instead of relying on a hard-coded tier snapshot. DeepSeek V4
Flash Vision Exp also joins the unlimited lineup across paid Personal plans,
with clearer activation guidance when an older client has not picked up the
entitlement yet. (#7289, #7250) Thanks @Siri-Ray. -
🧠 AI Optimize runs once, even when the click happens twice. Two entry
points could start the same hidden design-system refinement within
milliseconds, charging twice and racing to rewrite the same files. The client
now stops the duplicate before it leaves, and the daemon enforces the same
single-run boundary across tabs and external clients. (#7271) Thanks
@lefarcen. -
💳 Pricing actions now tell the truth before checkout does. Current
interval, pending changes, cancellation state, unavailable moves and Team
billing all appear where the decision is made. Go is clearly sold out, its old
in-app campaign is gone, and the remaining DeepSeek campaign gives paid and
unpaid users one consistent path instead of competing promotions. (#7228,
#7239, #7240, #7352, #7361) Thanks @Siri-Ray. -
🌐 Website Clone leaves its prompt behind when you leave the tab. The
localized “clone this site” scaffold no longer follows you into Slide Deck,
Image, Document, HyperFrames, Video or Audio. Add your own URL and the draft is
still yours; leave the guide untouched and the next creation mode starts
clean. (#7344) Thanks @lefarcen. -
🔌 Long-running MCP sessions can stay alive as long as the work requires.
The familiar 30-minute idle behavior remains the default, while
OD_MCP_STDIO_IDLE_EXIT_MScan choose a longer boundary — up to 24 hours — or
disable idle exit for clients that deliberately keep a session quiet between
calls. (#7288) Thanks @huytdps13400.
✨ Added
🧠 Agents, runtimes and automation
OD_MCP_STDIO_IDLE_EXIT_MSconfigures the stdio MCP idle lifetime;0keeps
the process alive until the client disconnects. (#7288) Thanks @huytdps13400.
🔑 Models, plans and media
- Coding Plan model availability and unlimited badges now follow the live,
authenticated entitlement list. (#7289) Thanks @Siri-Ray. - DeepSeek V4 Flash Vision Exp is unlimited on Go, Plus, Pro and Max, and the
Pricing page explains how to refresh a delayed entitlement on older clients.
(#7250)
🔁 Changed
- The public Pricing page follows the signed-in subscription's interval and
state, disables moves checkout would reject, restores the account entry where
billing context matters, and makes plan/model details easier to expand and
compare. (#7228, #7239, #7240) Thanks @Siri-Ray. - Go remains visible to existing subscribers but is marked sold out for new
purchases; the client no longer shows its old campaign badge or welcome modal.
(#7352, #7361) Thanks @Siri-Ray. - Every community entry now leads to Discord, including the Chinese desktop,
site and documentation surfaces that previously split the community across
Feishu and Discord. (#7295) Thanks @joeylee12629-star. - The account avatar's first click now pins its menu open; a second click,
Escape, an outside press or navigation closes it explicitly. (#7330) Thanks
@Siri-Ray. - Empty Skills sources disappear from the filter and return automatically when
they contain something to browse. (#7298) Thanks @nettee.
🐛 Fixed
🎨 Studio, previews and export
- Multi-file Electron previews resolve relative scripts, styles, images,
modules, imports and requests; active previews stay warm across project, file
and Code/Preview switches instead of navigating into a white frame. (#7336)
Thanks @lefarcen. - The viewport menu closes when the preview itself is clicked, presentation mode
has an exit control that still works after focus enters the slide, and version
history says clearly when a preview opens in a new window. (#7358) Thanks
@lefarcen. - Headless and container deployments no longer offer a PPTX export path that
their daemon cannot render; desktop keeps the export, and connection failures
stop masquerading as missing capability. (#7224) Thanks @jiulongche. - The Website Clone starter text returns the composer to empty when untouched,
stays when the user adds a URL, and is localized across the supported creation
surfaces. (#7344) Thanks @lefarcen.
🧠 Agents, runtimes and conversations
- DeepSeek Harness detection walks past broken PATH shims, keeps unusable agents
visible with a diagnostic and repair action, and accepts the current
0.1.1-rc.xline. (#7153, #7339) Thanks @lefarcen. - Kimi 0.37+ sessions omit the stdio MCP transport those builds reject, restoring
normal ACP startup and streamed replies. (#7313) Thanks @lefarcen. - Antigravity receives the real user prompt instead of a literal
-. (#7205)
Thanks @mturac. - Native resume and transcript replay now share one cross-agent safety decision:
resume only when the stored session still matches the visible conversation;
otherwise clear the stale handle and reseed once with the full transcript.
(#5269) Thanks @alucero270. - ACP usage, session-info and command metadata no longer leak into the visible
conversation as raw status text. (#7309) Thanks @helsome. - An ACP stage timeout keeps the real silence duration and names the watchdog
that ended the run, making a costly stall diagnosable instead of looking like
the user interrupted it. (#7310) Thanks @lefarcen. - Design-system AI Optimize admits one active refinement per conversation, so a
double click, another tab or an external client cannot create a duplicate
billed run against the same files. (#7271) Thanks @lefarcen.
🖥️ Desktop, navigation and interface polish
- Packaged clients reclaim an unresponsive web sidecar during startup and clean
up their daemon and web children when the desktop owner exits. (#7279) Thanks
@mrcfps. - Foreground failures no longer raise a redundant system notification while the
result is already on screen; background notifications and enabled completion
sounds keep their existing behavior. (#7329) Thanks @Siri-Ray. - The account menu remains open after its avatar is clicked, Local CLI choices
align consistently during onboarding, and empty Skills source filters stay out
of the way. (#7330, #7338, #7298) Thanks @Siri-Ray, @lefarcen, @nettee. - DeepSeek campaigns use the official provider mark with an accessible,
readable fallback when the image cannot load. (#7326) Thanks @Siri-Ray.
💳 Plans and campaigns
- Pricing actions follow the real subscription state and interval before sending
anyone to checkout; pending, canceling, unavailable and downgrade states are
explicit. (#7239) Thanks @Siri-Ray. - Model ordering, plan copy, recommendation colors and campaign colors now stay
consistent between Pricing and the homepage. (#7228) Thanks @Siri-Ray. - Go no longer offers a checkout after inventory closed, and the local client
stops surfacing its retired campaign alongside the active DeepSeek offer.
(#7352, #7361) Thanks @Siri-Ray.
🙏 Thanks to everyone who shipped 0.21.0
@alucero270 · @helsome · @huytdps13400 · @jiulongche ·
@joeylee12629-star · @lefarcen · @mrcfps · @mturac · @nettee · @OctoBored ·
@PerishCode · @Siri-Ray · @UnknownObject777