# What's New Welcome to OSW Studio! This page highlights the latest features and updates. **First time here?** Start with the **[Overview](?doc=overview)** or jump straight to **[Getting Started](?doc=getting-started)** to build your first website in 5 minutes. --- ## v1.84.0 - Onboarding & Model Selection (2026-07-07) This release is about getting started faster and making model selection simpler. A first-time visitor now lands straight in a workspace with a starter project instead of an empty dashboard, and on a HuggingFace Space you can connect with a single "Sign in with HuggingFace" button that picks a capable model for you. Model selection is now global across all projects rather than remembered per project, it takes effect the moment you pick it, and Save and Reset decide whether a change is kept in your template. ### Getting started - **Straight into a workspace**: New visitors land in a workspace with a starter project ready to edit, instead of the dashboard and a new-project form - **Sign in with HuggingFace**: On a HuggingFace Space, one click connects your account and selects a working model, with no API key to paste - **Starter suggestions**: A row of prompt suggestions appears above the chat once you are connected and haven't started yet; clicking one fills the composer so you can edit before sending ### Model selection - **One selection for every project**: Your model and template choice is global, so switching projects no longer changes which model is selected - **Pick and use it right away**: Choosing a model takes effect immediately; Save stores it in the current template and Reset reverts, and built-in recommended templates are read-only --- ## v1.83.0 - Web Access & Permissions (2026-07-05) The agent can now reach the internet: it can fetch external pages with `curl` and, once you connect a search provider, search the web with a new `search` command. Because letting the agent make outbound requests, generate images, and delete files is more consequential than editing your project, a new permission control lets you decide when it should ask first. By default it asks before web access, image generation, and deletion, and runs everything else without interruption. ### Web access - **Search the web**: Connect a provider under Connections (Tavily and Firecrawl have free tiers, Brave is paid, or point at your own SearXNG), and the agent can run web searches while it works - **Fetch pages**: `curl` now fetches real external URLs, with `--markdown` for readable text and `-o` to download images and other files into the project ### Permissions - **Ask before consequential actions**: A selector on the chat input sets when the agent asks first (Auto, Ask, or Custom). When a gated command comes up, the run pauses so you can Allow once, Always allow, or Deny. Custom mode lets you choose exactly which commands ask --- ## v1.82.0 - Usage Analytics (2026-07-04) The optional anonymous usage analytics now cover a lot more of what happens in the app, and for the first time they also report from self-hosted and desktop instances, which previously sent nothing. This is how a one-person project decides what to work on next. Nothing about what you build is collected: only counts and category labels, never prompts, code, names, keys, or errors. The first-run notice lists the fuller set and is shown once more so you can look it over; if you already turned analytics off, they stay off. ### Analytics - **Wider coverage**: Mode switches, interview and skill/template authoring, project and deployment activity, manual sync, and which built-in skills the AI reads are now counted, all anonymously - **Server Mode included**: Self-hosted and desktop instances now report the same anonymous signals; self-hosted builds can disable analytics entirely at build time --- ## v1.81.0 - Custom Interview Templates (2026-07-03) Interview mode launched with four built-in templates and a note that custom ones were planned. They're here now: you can write your own interviews, deciding the questions the agent asks and what counts as a complete answer. Manage them from the interview picker or a new Interviews entry in the main menu, and in Server Mode they sync across devices the way skills and templates already do. ### Interview mode - **Your own templates**: Create, edit, and duplicate interview templates. Each item is a question plus a "done when" condition that decides when it's covered, and an optional handoff button can start a build from the result when the interview finishes - **Sync**: In Server Mode, custom interview templates sync across devices --- ## v1.80.0 - Opencode Go (2026-06-30) Added Opencode Go as a provider — a subscription service with a range of open-weight models (GLM, Kimi, DeepSeek, MiMo, MiniMax, Qwen). Add your token under Connections and its models show up like any other provider's, with context lengths and input types pulled from models.dev. ### Providers & models - **Opencode Go**: A new built-in provider for the subscription. Its models span two different API formats (some OpenAI-style, some Anthropic-style), and the right one is used per model automatically --- ## v1.79.0 - Custom Providers (2026-06-30) You can now add any OpenAI-compatible API endpoint as a provider — give it a name, the base URL, and a token if it needs one, and its models show up like any other provider's. Only external endpoints are supported. In Server Mode, your provider connections also sync across devices now, the same way templates do: the connection details travel, but API keys stay on each device. Thanks to @jasalt, whose pull request got this started. ### Providers & models - **Custom providers**: Add any OpenAI-compatible endpoint (external only) and use its models like any other provider's - **Connection sync**: In Server Mode, provider connections sync across devices; API keys stay on each device --- ## v1.78.0 - Per-Project Models, Voice & Images (2026-06-26) Models are now set per project instead of one global choice. Each project picks an agent model that does the work, and you can save a setup as a named template to reuse elsewhere. Your current provider and model carry over as a "Default" template, so projects you've already made keep working unchanged. Two new inputs arrive alongside it: you can record voice from the chat box, and the AI can generate images from a prompt while it builds. API keys are now managed as named connections, kept separate from model choices. ### Providers & models - **Per-project models**: Each project chooses its own models. One required agent model handles all generation, replacing the separate Chat and Code model selections (the Chat/Code/Interview toggle stays as a mode, independent of the model) - **Templates**: Save a model setup as a named template and reuse it across projects, overriding any individual slot per project. Your existing setup becomes the "Default" template on first load. OpenRouter and HuggingFace also come with a read-only "Recommended" template to start from. In Server Mode, your custom templates sync across devices (keys stay on each device) - **Connections**: API keys and endpoints are managed as named connections, separate from models, with a menu to edit, revalidate, or disconnect each one - **Picker in the workspace**: The model button in the chat footer changes the current project's template and per-slot models without leaving the editor ### Voice input - **Record from the chat box**: With a voice-input model set for a project, a mic button appears on the composer. Recording shows a live waveform, and the clip stays as context on the message until you send - **Three ways to handle a clip**: Reuse the agent model and the clip goes to it as audio; pick a transcription model and it's transcribed on send; or choose on-device and the browser transcribes it locally with no provider or key ### Image generation - **Generate images while building**: Set an image model for a project (any image-capable model on OpenRouter) and the AI can generate images from a prompt as it works. They're saved under `/.generated/` and kept out of the published build unless you point them at a served path ### Chat input - **Attachments**: A "+" button on the composer attaches an image or a text file. The image option is disabled when the model doesn't accept image input, and the modality indicators now reflect the project's agent model --- ## v1.77.0 - Interview Mode (2026-06-14) A new Interview mode joins Code and Chat. Instead of describing everything up front, you pick a template and an AI agent asks you about it one question at a time, glancing at your project as it goes and saving what it learns to a document. Four templates come built in, and when you're done you can hand straight off to building. Custom templates aren't supported yet, but they're planned. This release also fixes a few chat and shell bugs and takes another pass at desktop startup failures. ### Interview Mode - **Guided interviews**: Pick a template and the AI works through it one question at a time, saving the answers to a document - **Four templates**: Understand a company, plan a website, plan a feature, or get ready to publish - **Hand off to build**: When the interview's done, one click switches to Code mode and builds from it ### Fixes - **No more double messages**: Assistant replies no longer show up twice in the chat - **Reliable task completion**: The AI no longer looks like it "finishes" several times when it runs a build and a completion in one command ### Desktop - **Startup fix**: Another fix for startup failures during workspace setup, and boot errors now show what actually went wrong — so anything still failing is easier to report --- ## v1.76.1 - Desktop Recovery (2026-06-13) A follow-up to v1.76.0 for anyone upgrading from older desktop versions. The app now recovers automatically if its workspace records were lost during a past update, and rescues project data that older versions stored inside the installation directory when it's still there. ### Desktop - **Workspace recovery**: Startup validates the workspace and re-initializes cleanly if records were lost, instead of getting stuck on a dead reference - **Legacy data rescue**: Project data left in the installation directory by versions up to 1.75 is migrated to the proper user-data location when still present --- ## v1.76.0 - Desktop Reliability (2026-06-13) The desktop app works again on Linux and Windows — a long-standing bug wrote app data into the read-only installation directory, leaving the app stuck on a loading screen. Updates are now under your control: the app asks before downloading or installing anything, and startup problems show a real error page instead of loading forever. ### Desktop - **Fixed startup on Linux and Windows**: App data now goes to the proper user-data directory — no more infinite "Loading..." screen on AppImage and Windows installs - **Updates ask first**: The app notifies you about new versions and only downloads and installs when you choose — including a "Skip this version" option. macOS users now get update notifications too - **Clear errors instead of blank screens**: Startup and loading failures show what went wrong, with a link to the releases page and the log file location for bug reports - **Sturdier releases**: Desktop releases publish only when all three platforms build and verify successfully, so an update can never point at a broken or incomplete release --- ## v1.75.0 - Agent Reliability (2026-06-12) A deep reliability pass on the AI agent. Task results are now truthful — a stopped or failed run says so instead of claiming success. Reasoning models (Qwen, DeepSeek) work correctly in multi-turn conversations, sub-agent output no longer garbles the chat, and long sessions compact their context without losing history. A new Messages tab in the debug panel shows the exact conversation sent to your provider. ### AI Reliability - **Truthful task results**: Runs that fail or get stopped report what actually happened instead of "Task completed" - **Reasoning model support**: Thinking models no longer stall in reasoning loops, leave spinners hanging, or break tool calling after the first turn - **Sub-agent isolation**: Parallel sub-agents no longer interleave their output into the main chat - **Robust long sessions**: Context compaction survives reloads and project switches, and conversations interrupted mid-edit recover instead of being rejected by the provider - **Leaner context**: Repeated file reads, status echoes, and preview instrumentation no longer waste tokens ### Debugging - **Messages tab**: Inspect the exact message history sent to the provider, with an optional provider-eye view of the final request shape ### Projects - **Blank-canvas starters**: New projects open as a clean empty page with a subtle watermark — no placeholder content to clear out - **Guaranteed rollback**: Opening a project always ensures a checkpoint exists to restore to --- ## v1.74.0 - Transparent Sync (2026-06-07) Server mode sync is now invisible infrastructure. Projects load instantly from local storage, server updates arrive in the background, and conflicts notify you immediately. No setup modals, no "syncing workspace" spinners, no manual intervention needed. ### Server Mode - **Transparent sync**: Projects load instantly. Background sync handles push/pull automatically — no setup steps or blocking prompts. - **Immediate conflict alerts**: If a project was edited on another device, you're notified right away with a clear message. - **Faster first load**: Sync status checks are lightweight and project pulls run in parallel. ### UI - **Input modality indicators**: Tabs above the chat input show what the current model accepts (text, image). Updates when you switch models. --- ## v1.73.2 - Editing Reliability (2026-06-06) AI-driven file edits are more reliable. The `ss` and `sed` editing tools no longer break when working with JavaScript code containing `===`, object literals with curly braces, or backreferences in replacements. Shell argument parsing also handles edge cases correctly now. ### AI & Editing - **`ss` edit reliability**: The search/replace separator no longer collides with JavaScript's `===` operator. Entity mode auto-detects the replacement target without needing a separator. - **`sed` fixes**: Curly braces in replacements no longer get mangled, and backreferences (`\1`, `&`) work correctly. --- ## v1.73.1 - Stability Fixes (2026-06-06) Token and cost tracking now works correctly across multi-turn conversations — no more negative counts or flickering values. Hosted instances with multiple workspaces are more reliable, and new users no longer get stuck in a setup loop on first login. ### Fixes - **Token/cost display**: Per-message token counts and costs are accurate across project switches and multi-turn sessions - **Workspace stability**: Idle workspace cleanup no longer disrupts other active workspaces - **Hosted setup flow**: New users can complete workspace initialization without getting stuck --- ## v1.73.0 - Deployment Subdomains (2026-06-04) Published deployments now get a memorable subdomain automatically — publish your site and it's instantly live at `sunny-oak-river.your-instance.com`. The deployment card and settings show both the subdomain and direct URLs. Svelte and Vue multi-file projects also compile correctly again, and the preview loads reliably on workspace entry. ### Deployments - **Auto-generated subdomains**: Each published deployment gets a 3-word slug and is accessible at `{slug}.{instance-domain}` - **Subdomain URL in UI**: The deployment card shows the subdomain URL immediately after publishing ### Fixes - **Svelte/Vue compilation**: Multi-file component imports are no longer stripped during preprocessing - **Preview white screen**: Preview waits for workspace initialization before compiling - **Deployment quota**: Quota now counts actual deployments, not stale routing entries --- ## v1.72.0 - Static Deployments & Custom Domains (2026-06-02) Published sites are now served as true static files — no Node.js processing per request. Custom domains are simpler to set up: enter your domain in deployment settings, point DNS to the server, and a domain resolution API handles routing. The preview also loads reliably on workspace entry, and Svelte/Vue multi-file projects now compile correctly again. ### Deployments - **Static serving**: Published sites served directly as static files, improving throughput and reducing CPU usage - **Custom domain routing**: A domain resolution API enables reverse proxies to route custom domains to the correct deployment. With Caddy, this means a DNS A record is all you need ### Preview - **Fixed white screen on entry**: Preview no longer compiles before project files are loaded - **Svelte/Vue multi-file projects**: Component imports in `.svelte` and `.vue` files are now preserved during compilation ### Fixes - **Tool call error status**: Failed commands now show a red error icon instead of a green checkmark - **Runtime error "Send" button**: Now reliably sends errors to the AI for correction --- ## v1.71.0 - Server Checkpoints (2026-05-31) Server-mode generation now creates checkpoints before and after each task, so you can roll back or retry. The pre-generation snapshot persists across browser sessions — close your browser, return hours later, and still restore. Returning to a completed server task no longer hangs on "Waiting for response...". ### Checkpoints - **Server generation checkpoints**: Pre- and post-generation snapshots for server-mode tasks, enabling rollback and retry - **Fixed task recovery after tab close**: Completed server tasks are now properly recovered when you return ### Fixes - **SSE event replay**: Returning to a project after disconnection now shows the full conversation - **Generation shelf dismiss**: Visiting a completed project now permanently clears its shelf entry - **Standalone mode cleanup**: Multi-user UI hidden in standalone server mode --- ## v1.70.0 - Tool Renames (2026-05-27) Benchmark powered experimenting showed that models produce significantly better tool calls with `bash` than with `shell`. The same principle was applied to sub-agents: `delegate` → `agent`. The shell also gives models better edit feedback — `sed` and `ss` now report whether substitutions actually matched, so failed edits no longer pass silently. ### AI Orchestration - **Tool rename: shell → bash** — Benchmark-driven rename. Models produce more accurate tool calls with `bash` across all tested providers - **Sub-agent rename: delegate → agent** — Same principle applied to sub-agent commands - **Edit feedback** — `sed -i` reports substitution count and `ss` confirms replacements, so models know when a pattern didn't match ### VFS Shell - **grep `-o`** — Extract only the matched portions of each line - **sed negate & grouping** — `!` inverts address matching, `{...}` applies multiple commands within a range --- ## v1.69.0 - Modular Orchestrator (2026-05-25) The AI orchestrator has been decomposed into a portable core with typed interfaces — agent loop, context management, provider calls, and tool execution are now separate modules. Context compaction is fixed and enabled by default, so long sessions no longer hit the context wall. Thinking models maintain reasoning quality across turns. ### AI Orchestration - **Modular architecture** — Agent loop extracted into a portable core (`AgentLoop`, `ContextManager`, `ProviderAdapter`, `ToolExecutor`, `CostTracker`), enabling future agent improvements - **Fixed context compaction** — Enabled by default. Summarizes older messages at 60% of context limit, with a visual indicator when compaction occurs - **Reasoning replay** — Thinking models no longer lose reasoning quality across conversation turns - **Concise responses** — The AI defaults to shorter, action-oriented answers instead of verbose narration --- ## v1.68.0 - Accurate Cost Tracking (2026-05-23) Cost tracking now uses actual costs reported by providers instead of estimates from static pricing tables. Models that were previously off by 3–4x (like MiniMax) now show correct costs. The AI also recovers better from chained file write errors — when one write in a batch fails, the model knows which writes succeeded. ### Cost Tracking - **Accurate provider costs** — Reads actual cost from OpenRouter responses instead of computing from static pricing. Unknown models report $0 instead of fabricated estimates ### AI Orchestration - **Chained heredoc error reporting** — When multiple file writes are chained and one fails, the error now reports which writes succeeded - **Fixed streaming parser** — Tool call arguments are no longer silently lost when a provider omits the tool index on subsequent chunks ### Benchmark - **Test sequences** — Multiple test steps run on a single agent session, reducing token cost and setup overhead. 12 sequences replace 62 standalone tests - **Parallel execution** — Tests run concurrently with configurable concurrency (1–8) --- ## v1.67.0 - Server-Side Generation (2026-05-18) In Server Mode, AI generation tasks now continue on the server if you close your browser tab. Reopen the tab and the completed work is already there. File changes sync back incrementally after each tool call. ### Server-Side Generation - **Detach-to-server** — Tasks continue running on the server when you close your browser tab. On reconnect, buffered events replay automatically - **Incremental file sync** — File changes sync back to your browser after each tool call, not just at the end - **Build delegation** — Bundled runtimes (React, Svelte, Vue) defer their build step to the client on reattach ### Performance - **Delta event batching** — Streaming responses no longer cause slowdowns during large generations - **Smarter auto-sync** — Project gallery only fetches projects that are actually newer on the server ### UI - **Task completion sound** — A chime plays when a background generation finishes ### Fixes (Server Mode) - **Project deletion syncs to server** — Deleted projects no longer reappear after refreshing the page --- ## v1.66.0 - Multi-Generation (2026-05-16) You can now run multiple generations at the same time. Start a task on one project, switch to another, and kick off a second task — both run independently. The generation shelf tracks all background tasks with live activity, elapsed time, and controls to stop or jump back in. ### Agent Orchestration - **Concurrent generation** — Run tasks on multiple projects simultaneously. Each project gets its own orchestrator instance that runs independently - **Paused task alerts** — Background tasks that hit API errors (like upstream timeouts) show a yellow "Paused" indicator on the shelf with Continue/Cancel — no need to navigate back to handle them ### Fixes - **Chat history preserved on navigation** — Leaving and returning to a generating project now correctly restores the full conversation and activity log --- ## v1.65.0 - Background Generation & Pinned Checkpoints (2026-05-14) You can now start a task and browse other projects within OSW Studio without losing it. The orchestrator keeps running while you review other work — come back and your conversation, checkpoints, and generated files are all there. Checkpoints also got an upgrade: pin any checkpoint to keep it permanently, and per-project pruning keeps storage tidy automatically. ### AI Orchestration - **Tasks survive in-app navigation** — Start a generation, switch to another project to review it, and return to find the completed work waiting for you. The task runs as long as the browser tab stays open - **Generation shelf** — A floating indicator in the bottom-right shows your running task's project name, prompt, elapsed time, and model while you're elsewhere in the app. Click it to jump back ### Checkpoints - **Pinned checkpoints** — Pin any checkpoint to keep it forever. Great for bookmarking a known-good state before experimenting with something risky - **Per-project pruning** — Each project automatically keeps its 5 most recent unpinned checkpoints. Pinned checkpoints are never pruned --- ## v1.64.0 - Mobile Editor UX (2026-05-13) The mobile workspace gets a major usability pass. A new overflow menu in the bottom bar gives you access to all panels without cluttering the primary navigation. Panel headers slim down on mobile — titles and chrome disappear, leaving only action buttons styled as labeled pills so you can see what each one does at a glance. Panels now fill the full viewport width, and the header shows your project name with the active panel name below it. ### Mobile UX - **Bottom bar overflow menu** — Chat, Files, and Preview stay in the primary bar; Editor, Checkpoints, Console, Skills, and Debug are in a three-dot overflow menu - **Compact panel headers** — On mobile, panel headers show only action buttons as labeled pills (e.g. "Clear chat", "Upload", "Add skill") — no title bar, close button, or drag handle - **Edge-to-edge panels** — Panels fill the full viewport width on mobile with no borders or rounded corners - **Project name in header** — The workspace header shows your project name with the active panel below it ### Server Mode - **Auto-pull fix** — Projects on the server are now correctly pulled to new devices; previously the pull silently failed - **Workspace ID race condition** — Sync API calls no longer fire before the workspace ID is set ### Fixes - **Runtime switch** — Changing a project's runtime in settings (e.g. React → Static) no longer reverts immediately --- ## v1.63.0 - Cross-Device Sync (2026-05-08) Server Mode projects now sync seamlessly across devices. New projects push to the server right after creation, opening the gallery pulls in changes from other devices, and entering a project checks for the latest version. Conflicts are surfaced instead of silently overwriting, and a checkpoint is created before any pull so nothing local gets lost. ### Server Mode - **Auto-sync on creation** — New projects are pushed to the server immediately after they're created, so they appear on other devices without manual sync - **Background pull on load** — Opening the project gallery pulls in changes from other devices before showing your projects - **Per-project freshness** — Opening a project checks the server and pulls if newer - **Conflict detection** — Pushes are rejected when another device has made newer changes; you'll see the conflict instead of overwriting - **Pre-pull checkpoint** — A checkpoint is created automatically before pulling, so anything you had locally can be restored ### Fixes - **Publish failure in Server Mode** — Publishing a deployment could fail with a database error; fixed - **Project ID mismatch on pull** — Pulled projects no longer get random local IDs that broke subsequent sync round-trips --- ## v1.62.0 - Skill Groups & Design Expansion (2026-05-05) The frontend design skill system expands from 4 to 12 aesthetic directions — brutalist, retro-futuristic, art deco, maximalist, playful, industrial, luxury, and terminal join the original four. Skills can now be organized into groups for bulk enable/disable, making it easy to activate an entire design family or disable server-mode skills for browser-only projects. ### Skills - **12 frontend design aesthetics** — Eight new sub-skills cover design spaces the original four couldn't reach, with less convergence between generations - **Skill groups** — Bundle skills under named toggles. Three built-in groups ship: Frontend Design, Server Mode, and Web Standards. Create your own custom groups for project-specific workflows - **Skills view redesign** — New tabbed interface with bulk actions, group badges, and member-count indicators --- ## v1.61.1 - Server Mode Security (2026-05-03) Server Mode gains several security and operational improvements for production deployments. Database connections support transparent encryption, API key auth can be locked to specific IPs, and telemetry now distinguishes deployment types for better usage analytics. ### Server Mode - **Database encryption support** — All SQLite connections accept an optional encryption key via `DB_ENCRYPTION_KEY`. When set, databases are encrypted at rest using SQLCipher. Unset means no encryption — existing instances are unaffected - **API key IP allowlist** — Instance API key authentication can be restricted to specific source IPs via `GATEWAY_IPS`, so a leaked key alone isn't enough to call the admin API. Supports both IPv4 and IPv6 - **Deployment type telemetry** — Telemetry events now distinguish deployment types (browser, server, desktop, multi-instance) for more accurate usage analytics - **Session redirect fix** — Auth redirects now use the configured app URL instead of the raw request URL, which resolves to `0.0.0.0` in Next.js standalone mode - **Admin-only sidebar items** — The Users nav item is hidden for non-admin users --- ## v1.61.0 - Workspace Isolation (2026-05-01) Workspaces in multitenancy mode are now fully isolated in the browser. Each workspace gets its own local database, so switching workspaces means switching projects, skills, and templates — nothing bleeds through. API keys stay in your browser per device and are never sent to the server for storage. Plus a new split button for checkpoint access, a working dashboard for non-admin users, and several stability fixes. ### Multitenancy - **Per-workspace browser storage** — Projects, files, skills, and templates are scoped to the active workspace. Browser mode is unchanged - **Server mode improvements** — Session handoff, webhook events, external auth redirect, and managed mode for multi-instance deployments ### UI - **Discard Changes split button** — The chevron now opens the full Checkpoints panel for browsing and restoring earlier points - **Dashboard for all users** — Non-admin users on server mode see their project counts and recent projects instead of a blank page - **Sync prompt** — When your local browser is empty but the server has projects, a dialog offers to sync them down ### Fixes - **Checkpoint restore no longer floods the preview** — Restoring a checkpoint with many files triggers one preview rebuild instead of hundreds - **Stopped tool calls no longer deadlock the conversation** — Interrupted streaming tool calls are cleaned up so the next message goes through - **Upstream errors surfaced** — Provider errors sent over 200 SSE connections now show in the error dialog --- ## v1.60.0 - Describe Mode (2026-04-26) New way to start a project: click "Plan the project first" in the create dialog and describe what you want to build. A setup agent figures out the runtime, template, pages, and capabilities through a short conversation. The project starts with full context so the in-project agent doesn't ask the same questions again. Plus folder drag-and-drop upload, paginated list views, a live reasoning preview, and the in-project agent can now ask quick questions with tappable buttons. ### Describe Mode - **Conversational setup** — Describe what you're building and the agent fills out a project brief and design spec. Review everything in the sidebar before creating - **Tappable chip prompts** — The agent presents options as tappable buttons when there's a small set of choices, instead of asking in free text - **Context handoff** — Projects start with `.PROMPT.md`, `.DESIGN.md`, and `.DESIGN-CONVERSATION.md` so nothing from the setup conversation is lost ### Building with the AI - **In-project agent can ask with chips** — When the AI hits a real either/or choice (a library to use, a layout direction, etc.), it can now surface tappable options instead of asking in prose. Picking one resumes the task with that decision baked in - **Live reasoning preview** — The reasoning badge now streams the latest thinking inline instead of showing a static `Thinking...` label, so you can see what the model is working through in real time ### File Explorer - **Folder drag-and-drop upload** — Drop a folder onto the file explorer and the whole tree gets uploaded with the structure preserved. A single progress toast shows live counts ("Uploading 17/42 files · 3/3 folders") - **Hidden files indicator** — A bar at the bottom shows how many dot-prefixed files and folders are hidden, with a tooltip explaining what it means for exports - **Faster directory delete** — Deleting a folder with many files now triggers a single preview rebuild at the end instead of one per file ### Quality of Life - **Unsaved changes guard** — Leaving a project or closing the browser tab now warns when the AI is generating or there are unsaved changes - **Fullscreen preview keeps your chat draft** — Toggling the preview in and out of fullscreen no longer wipes what you were typing or reloads the preview - **Paginated list views** — Projects, Templates, Deployments, and Skills now paginate instead of rendering every item at once. Large libraries scroll and search faster. Skills also unifies its Built-in and Custom sections into a single list with toggle chips to hide either group ### Fixes - **Chained file writes** — When the AI wrote multiple files in one go via back-to-back heredocs, the first file used to swallow everything that followed and the rest were skipped. All files now land where they should - **`sed` on common file paths** — `sed -i 's/old/new/g' /styles/style.css` and similar commands no longer fail with "unsupported command 'style.css'". The shell parser correctly distinguishes paths from sed expressions ### Privacy & Telemetry - **Expanded anonymous analytics disclosure** — A few new categorical events (which creation flow and runtime were used, publish success/failure, compaction token counts, whether an image was attached) help surface which features actually matter. The disclosure dialog lists them explicitly, and no file contents, prompts, or names are ever collected. Opt-out remains available --- ## v1.59.0 - Design Skills & Streaming Resilience (2026-04-21) The frontend design skill is now a skill tree — a base skill with universal design principles plus four aesthetic sub-skills (bold-geometric, soft-organic, editorial, minimal) that teach the AI how to think within each aesthetic rather than applying a one-size-fits-all template. Large file writes are more resilient to provider issues, and the editor now previews images and video files inline. ### Skills - **Frontend Design skill tree** - The AI now picks an aesthetic direction (bold-geometric, soft-organic, editorial, or minimal) and follows a complete design philosophy — what kinds of fonts to look for, how color relationships should feel, what motion communicates. Each generation produces genuinely different results within the chosen aesthetic ### AI - **Resilient large file writes** - When a provider truncates or hangs mid-stream (common with some models on large heredoc writes), OSW Studio now recovers gracefully — writing what was received, prompting the model to continue, and timing out after 45 seconds instead of hanging forever ### Editor - **Media file preview** - Image and video files now show inline previews in the editor with playback controls, instead of "Unsupported File Type" - **Upload progress** - Large file uploads show a progress toast with file name and size ### Server Mode - **Rolling session refresh** - Active sessions are extended automatically so you don't get logged out mid-work - **Session-expired banner** - A visible banner appears when your session expires, with a direct "Log in" link --- ## v1.58.0 - ES Modules & Stability (2026-04-19) You can now use ES module imports between project files in Static and Handlebars projects — no bundler needed. Login and register pages follow your light/dark theme. Plus a collection of stability fixes for the editor, chat input, and AI orchestration. - **ES Module Imports** - Use `