Leon4gr45/builder
0
1# What's New2 3Welcome to OSW Studio! This page highlights the latest features and updates.4 5**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.6 7---8 9## v1.84.0 - Onboarding & Model Selection (2026-07-07)10 11This 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.12 13### Getting started14- **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 form15- **Sign in with HuggingFace**: On a HuggingFace Space, one click connects your account and selects a working model, with no API key to paste16- **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 sending17 18### Model selection19- **One selection for every project**: Your model and template choice is global, so switching projects no longer changes which model is selected20- **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-only21 22---23 24## v1.83.0 - Web Access & Permissions (2026-07-05)25 26The 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.27 28### Web access29- **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 works30- **Fetch pages**: `curl` now fetches real external URLs, with `--markdown` for readable text and `-o` to download images and other files into the project31 32### Permissions33- **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 ask34 35---36 37## v1.82.0 - Usage Analytics (2026-07-04)38 39The 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.40 41### Analytics42- **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 anonymously43- **Server Mode included**: Self-hosted and desktop instances now report the same anonymous signals; self-hosted builds can disable analytics entirely at build time44 45---46 47## v1.81.0 - Custom Interview Templates (2026-07-03)48 49Interview 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.50 51### Interview mode52- **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 finishes53- **Sync**: In Server Mode, custom interview templates sync across devices54 55---56 57## v1.80.0 - Opencode Go (2026-06-30)58 59Added 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.60 61### Providers & models62- **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 automatically63 64---65 66## v1.79.0 - Custom Providers (2026-06-30)67 68You 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.69 70### Providers & models71- **Custom providers**: Add any OpenAI-compatible endpoint (external only) and use its models like any other provider's72- **Connection sync**: In Server Mode, provider connections sync across devices; API keys stay on each device73 74---75 76## v1.78.0 - Per-Project Models, Voice & Images (2026-06-26)77 78Models 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.79 80### Providers & models81- **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)82- **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)83- **Connections**: API keys and endpoints are managed as named connections, separate from models, with a menu to edit, revalidate, or disconnect each one84- **Picker in the workspace**: The model button in the chat footer changes the current project's template and per-slot models without leaving the editor85 86### Voice input87- **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 send88- **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 key89 90### Image generation91- **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 path92 93### Chat input94- **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 model95 96---97 98## v1.77.0 - Interview Mode (2026-06-14)99 100A 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.101 102### Interview Mode103- **Guided interviews**: Pick a template and the AI works through it one question at a time, saving the answers to a document104- **Four templates**: Understand a company, plan a website, plan a feature, or get ready to publish105- **Hand off to build**: When the interview's done, one click switches to Code mode and builds from it106 107### Fixes108- **No more double messages**: Assistant replies no longer show up twice in the chat109- **Reliable task completion**: The AI no longer looks like it "finishes" several times when it runs a build and a completion in one command110 111### Desktop112- **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 report113 114---115 116## v1.76.1 - Desktop Recovery (2026-06-13)117 118A 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.119 120### Desktop121- **Workspace recovery**: Startup validates the workspace and re-initializes cleanly if records were lost, instead of getting stuck on a dead reference122- **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 present123 124---125 126## v1.76.0 - Desktop Reliability (2026-06-13)127 128The 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.129 130### Desktop131- **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 installs132- **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 too133- **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 reports134- **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 release135 136---137 138## v1.75.0 - Agent Reliability (2026-06-12)139 140A 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.141 142### AI Reliability143- **Truthful task results**: Runs that fail or get stopped report what actually happened instead of "Task completed"144- **Reasoning model support**: Thinking models no longer stall in reasoning loops, leave spinners hanging, or break tool calling after the first turn145- **Sub-agent isolation**: Parallel sub-agents no longer interleave their output into the main chat146- **Robust long sessions**: Context compaction survives reloads and project switches, and conversations interrupted mid-edit recover instead of being rejected by the provider147- **Leaner context**: Repeated file reads, status echoes, and preview instrumentation no longer waste tokens148 149### Debugging150- **Messages tab**: Inspect the exact message history sent to the provider, with an optional provider-eye view of the final request shape151 152### Projects153- **Blank-canvas starters**: New projects open as a clean empty page with a subtle watermark — no placeholder content to clear out154- **Guaranteed rollback**: Opening a project always ensures a checkpoint exists to restore to155 156---157 158## v1.74.0 - Transparent Sync (2026-06-07)159 160Server 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.161 162### Server Mode163- **Transparent sync**: Projects load instantly. Background sync handles push/pull automatically — no setup steps or blocking prompts.164- **Immediate conflict alerts**: If a project was edited on another device, you're notified right away with a clear message.165- **Faster first load**: Sync status checks are lightweight and project pulls run in parallel.166 167### UI168- **Input modality indicators**: Tabs above the chat input show what the current model accepts (text, image). Updates when you switch models.169 170---171 172## v1.73.2 - Editing Reliability (2026-06-06)173 174AI-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.175 176### AI & Editing177- **`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.178- **`sed` fixes**: Curly braces in replacements no longer get mangled, and backreferences (`\1`, `&`) work correctly.179 180---181 182## v1.73.1 - Stability Fixes (2026-06-06)183 184Token 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.185 186### Fixes187- **Token/cost display**: Per-message token counts and costs are accurate across project switches and multi-turn sessions188- **Workspace stability**: Idle workspace cleanup no longer disrupts other active workspaces189- **Hosted setup flow**: New users can complete workspace initialization without getting stuck190 191---192 193## v1.73.0 - Deployment Subdomains (2026-06-04)194 195Published 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.196 197### Deployments198- **Auto-generated subdomains**: Each published deployment gets a 3-word slug and is accessible at `{slug}.{instance-domain}`199- **Subdomain URL in UI**: The deployment card shows the subdomain URL immediately after publishing200 201### Fixes202- **Svelte/Vue compilation**: Multi-file component imports are no longer stripped during preprocessing203- **Preview white screen**: Preview waits for workspace initialization before compiling204- **Deployment quota**: Quota now counts actual deployments, not stale routing entries205 206---207 208## v1.72.0 - Static Deployments & Custom Domains (2026-06-02)209 210Published 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.211 212### Deployments213- **Static serving**: Published sites served directly as static files, improving throughput and reducing CPU usage214- **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 need215 216### Preview217- **Fixed white screen on entry**: Preview no longer compiles before project files are loaded218- **Svelte/Vue multi-file projects**: Component imports in `.svelte` and `.vue` files are now preserved during compilation219 220### Fixes221- **Tool call error status**: Failed commands now show a red error icon instead of a green checkmark222- **Runtime error "Send" button**: Now reliably sends errors to the AI for correction223 224---225 226## v1.71.0 - Server Checkpoints (2026-05-31)227 228Server-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...".229 230### Checkpoints231- **Server generation checkpoints**: Pre- and post-generation snapshots for server-mode tasks, enabling rollback and retry232- **Fixed task recovery after tab close**: Completed server tasks are now properly recovered when you return233 234### Fixes235- **SSE event replay**: Returning to a project after disconnection now shows the full conversation236- **Generation shelf dismiss**: Visiting a completed project now permanently clears its shelf entry237- **Standalone mode cleanup**: Multi-user UI hidden in standalone server mode238 239---240 241## v1.70.0 - Tool Renames (2026-05-27)242 243Benchmark 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.244 245### AI Orchestration246- **Tool rename: shell → bash** — Benchmark-driven rename. Models produce more accurate tool calls with `bash` across all tested providers247- **Sub-agent rename: delegate → agent** — Same principle applied to sub-agent commands248- **Edit feedback** — `sed -i` reports substitution count and `ss` confirms replacements, so models know when a pattern didn't match249 250### VFS Shell251- **grep `-o`** — Extract only the matched portions of each line252- **sed negate & grouping** — `!` inverts address matching, `{...}` applies multiple commands within a range253 254---255 256## v1.69.0 - Modular Orchestrator (2026-05-25)257 258The 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.259 260### AI Orchestration261- **Modular architecture** — Agent loop extracted into a portable core (`AgentLoop`, `ContextManager`, `ProviderAdapter`, `ToolExecutor`, `CostTracker`), enabling future agent improvements262- **Fixed context compaction** — Enabled by default. Summarizes older messages at 60% of context limit, with a visual indicator when compaction occurs263- **Reasoning replay** — Thinking models no longer lose reasoning quality across conversation turns264- **Concise responses** — The AI defaults to shorter, action-oriented answers instead of verbose narration265 266---267 268## v1.68.0 - Accurate Cost Tracking (2026-05-23)269 270Cost 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.271 272### Cost Tracking273- **Accurate provider costs** — Reads actual cost from OpenRouter responses instead of computing from static pricing. Unknown models report $0 instead of fabricated estimates274 275### AI Orchestration276- **Chained heredoc error reporting** — When multiple file writes are chained and one fails, the error now reports which writes succeeded277- **Fixed streaming parser** — Tool call arguments are no longer silently lost when a provider omits the tool index on subsequent chunks278 279### Benchmark280- **Test sequences** — Multiple test steps run on a single agent session, reducing token cost and setup overhead. 12 sequences replace 62 standalone tests281- **Parallel execution** — Tests run concurrently with configurable concurrency (1–8)282 283---284 285## v1.67.0 - Server-Side Generation (2026-05-18)286 287In 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.288 289### Server-Side Generation290- **Detach-to-server** — Tasks continue running on the server when you close your browser tab. On reconnect, buffered events replay automatically291- **Incremental file sync** — File changes sync back to your browser after each tool call, not just at the end292- **Build delegation** — Bundled runtimes (React, Svelte, Vue) defer their build step to the client on reattach293 294### Performance295- **Delta event batching** — Streaming responses no longer cause slowdowns during large generations296- **Smarter auto-sync** — Project gallery only fetches projects that are actually newer on the server297 298### UI299- **Task completion sound** — A chime plays when a background generation finishes300 301### Fixes (Server Mode)302- **Project deletion syncs to server** — Deleted projects no longer reappear after refreshing the page303 304---305 306## v1.66.0 - Multi-Generation (2026-05-16)307 308You 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.309 310### Agent Orchestration311- **Concurrent generation** — Run tasks on multiple projects simultaneously. Each project gets its own orchestrator instance that runs independently312- **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 them313 314### Fixes315- **Chat history preserved on navigation** — Leaving and returning to a generating project now correctly restores the full conversation and activity log316 317---318 319## v1.65.0 - Background Generation & Pinned Checkpoints (2026-05-14)320 321You 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.322 323### AI Orchestration324- **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 open325- **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 back326 327### Checkpoints328- **Pinned checkpoints** — Pin any checkpoint to keep it forever. Great for bookmarking a known-good state before experimenting with something risky329- **Per-project pruning** — Each project automatically keeps its 5 most recent unpinned checkpoints. Pinned checkpoints are never pruned330 331---332 333## v1.64.0 - Mobile Editor UX (2026-05-13)334 335The 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.336 337### Mobile UX338- **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 menu339- **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 handle340- **Edge-to-edge panels** — Panels fill the full viewport width on mobile with no borders or rounded corners341- **Project name in header** — The workspace header shows your project name with the active panel below it342 343### Server Mode344- **Auto-pull fix** — Projects on the server are now correctly pulled to new devices; previously the pull silently failed345- **Workspace ID race condition** — Sync API calls no longer fire before the workspace ID is set346 347### Fixes348- **Runtime switch** — Changing a project's runtime in settings (e.g. React → Static) no longer reverts immediately349 350---351 352## v1.63.0 - Cross-Device Sync (2026-05-08)353 354Server 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.355 356### Server Mode357- **Auto-sync on creation** — New projects are pushed to the server immediately after they're created, so they appear on other devices without manual sync358- **Background pull on load** — Opening the project gallery pulls in changes from other devices before showing your projects359- **Per-project freshness** — Opening a project checks the server and pulls if newer360- **Conflict detection** — Pushes are rejected when another device has made newer changes; you'll see the conflict instead of overwriting361- **Pre-pull checkpoint** — A checkpoint is created automatically before pulling, so anything you had locally can be restored362 363### Fixes364- **Publish failure in Server Mode** — Publishing a deployment could fail with a database error; fixed365- **Project ID mismatch on pull** — Pulled projects no longer get random local IDs that broke subsequent sync round-trips366 367---368 369## v1.62.0 - Skill Groups & Design Expansion (2026-05-05)370 371The 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.372 373### Skills374- **12 frontend design aesthetics** — Eight new sub-skills cover design spaces the original four couldn't reach, with less convergence between generations375- **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 workflows376- **Skills view redesign** — New tabbed interface with bulk actions, group badges, and member-count indicators377 378---379 380## v1.61.1 - Server Mode Security (2026-05-03)381 382Server 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.383 384### Server Mode385- **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 unaffected386- **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 IPv6387- **Deployment type telemetry** — Telemetry events now distinguish deployment types (browser, server, desktop, multi-instance) for more accurate usage analytics388- **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 mode389- **Admin-only sidebar items** — The Users nav item is hidden for non-admin users390 391---392 393## v1.61.0 - Workspace Isolation (2026-05-01)394 395Workspaces 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.396 397### Multitenancy398- **Per-workspace browser storage** — Projects, files, skills, and templates are scoped to the active workspace. Browser mode is unchanged399- **Server mode improvements** — Session handoff, webhook events, external auth redirect, and managed mode for multi-instance deployments400 401### UI402- **Discard Changes split button** — The chevron now opens the full Checkpoints panel for browsing and restoring earlier points403- **Dashboard for all users** — Non-admin users on server mode see their project counts and recent projects instead of a blank page404- **Sync prompt** — When your local browser is empty but the server has projects, a dialog offers to sync them down405 406### Fixes407- **Checkpoint restore no longer floods the preview** — Restoring a checkpoint with many files triggers one preview rebuild instead of hundreds408- **Stopped tool calls no longer deadlock the conversation** — Interrupted streaming tool calls are cleaned up so the next message goes through409- **Upstream errors surfaced** — Provider errors sent over 200 SSE connections now show in the error dialog410 411---412 413## v1.60.0 - Describe Mode (2026-04-26)414 415New 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.416 417### Describe Mode418- **Conversational setup** — Describe what you're building and the agent fills out a project brief and design spec. Review everything in the sidebar before creating419- **Tappable chip prompts** — The agent presents options as tappable buttons when there's a small set of choices, instead of asking in free text420- **Context handoff** — Projects start with `.PROMPT.md`, `.DESIGN.md`, and `.DESIGN-CONVERSATION.md` so nothing from the setup conversation is lost421 422### Building with the AI423- **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 in424- **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 time425 426### File Explorer427- **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")428- **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 exports429- **Faster directory delete** — Deleting a folder with many files now triggers a single preview rebuild at the end instead of one per file430 431### Quality of Life432- **Unsaved changes guard** — Leaving a project or closing the browser tab now warns when the AI is generating or there are unsaved changes433- **Fullscreen preview keeps your chat draft** — Toggling the preview in and out of fullscreen no longer wipes what you were typing or reloads the preview434- **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 group435 436### Fixes437- **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 should438- **`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 expressions439 440### Privacy & Telemetry441- **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 available442 443---444 445## v1.59.0 - Design Skills & Streaming Resilience (2026-04-21)446 447The 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.448 449### Skills450- **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 aesthetic451 452### AI453- **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 forever454 455### Editor456- **Media file preview** - Image and video files now show inline previews in the editor with playback controls, instead of "Unsupported File Type"457- **Upload progress** - Large file uploads show a progress toast with file name and size458 459### Server Mode460- **Rolling session refresh** - Active sessions are extended automatically so you don't get logged out mid-work461- **Session-expired banner** - A visible banner appears when your session expires, with a direct "Log in" link462 463---464 465## v1.58.0 - ES Modules & Stability (2026-04-19)466 467You 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.468 469- **ES Module Imports** - Use `<script type="module">` with `import` and `export` between project files. Absolute paths like `import { foo } from '/scripts/utils.js'` just work in the preview. For third-party libraries, use CDN URLs (`https://esm.sh/...`). Published sites serve the real files, so imports work in production too470- **Themed Login & Register** - Login and register pages now follow your light/dark theme instead of being locked to dark mode. The logo auto-inverts to match471- **Live Runtime Switching** - When the AI changes the project runtime mid-conversation, the preview picks it up immediately. Previously you had to save and reopen the project to see raw `{{> nav}}` tokens get processed472- **Editor No Longer Crashes** - An error boundary around Monaco catches the disposal errors that used to take down the whole workspace during panel resize or move473- **Snappier Chat Input** - Typing in the prompt textarea no longer re-renders the file explorer, editor, and preview on every keystroke474- **Compaction Improvements** - Conversation compaction is now off by default — enable it per provider in Settings if you want long sessions to compact automatically. When enabled, the threshold works correctly across all providers (including Anthropic) and fires at exactly the configured limit475 476---477 478## v1.57.0 - Workspaces & Multitenancy (2026-04-14)479 480Server Mode now supports multiple users and workspaces. Workspaces are isolated environments with their own projects, deployments, and quotas. Multiple users can share a workspace. Browser Mode is unaffected.481 482- **Workspaces** - The core unit of organization. Each workspace has its own database, projects, deployments, templates, and skills. Create workspaces for different clients, teams, or projects. Manage them from the workspace switcher in the sidebar or the admin panel at `/admin/workspaces`483- **Shared Access** - Grant users access to workspaces. An agency can build a site in a workspace and invite the client so they can make updates via the AI484- **User Accounts** - First visitor to a fresh instance creates the admin account. Email and password authentication. Admins manage users at `/admin/users`. Additional registration can be open (self-service) or closed (admin-only) via `REGISTRATION_MODE`485- **Quotas** - Each workspace has configurable limits for projects, deployments, and storage. Enforced at creation and publishing time486- **Upgrading** - Existing single-user instances automatically migrate data to a default workspace on first login after upgrading487 488---489 490## v1.56.0 - Semantic Blocks (2026-04-12)491 492Build pages visually by dragging blocks onto the live preview. Semantic blocks are implementation descriptions, not pre-built components. Place one where you want it, and the AI writes custom code that integrates with your existing project.493 494- **Drag-and-Drop Blocks** - Open the Blocks palette from the preview toolbar and drag any block onto your live preview. The AI receives the block's specification along with the surrounding HTML context and generates an implementation that matches your project's style and structure495- **36 Blocks Across 4 Categories** - Page Structure (Hero, Nav, Footer, Features Grid, Pricing, FAQ, Sidebar Nav, Tabs, and more), Media & Text (Text Block, Image, Video, Gallery, Timeline, Profile Card), Forms & Buttons (Contact Form, Login Form, File Upload, Search Bar, Dropdown Menu), Numbers & Charts (Table, Chart, Stats Counter, Metric Cards, Progress Bar)496- **Unified Context Panel** - Focus context, placed blocks, and attached images are now combined under a single "Included in next message" panel above the chat input. Each section is independently collapsible497- **Improved Workspace Panels** - Panel sizes now persist per panel across reorders and sessions. Drag-reordering preserves each panel's width. Sidebar hover previews use overlays instead of borders498 499---500 501## v1.55.0 - More Models & mesh-llm (2026-04-07)502 503All OpenRouter models are now available, even those without native tool support. Plus a new local inference provider.504 505- **Use Any Model** - Models without native tool/function calling (Gemma 3n, OLMo, Liquid, etc.) now work. The AI writes commands in bash code blocks instead, and OSW Studio extracts and executes them automatically. The model list shows a "No tools" badge so you know what to expect506- **Model Capability Badges** - The model selector now shows Tools, Vision, Reasoning, and "No native tools" badges so you can see what each model supports at a glance507- **mesh-llm Provider** - New provider for free open model inference via the [mesh-llm](https://github.com/michaelneale/mesh-llm) peer-to-peer network. Run `mesh-llm --auto` locally, then select "mesh-llm" in Settings. Models are auto-discovered from the mesh508- **Better Error Recovery** - Clicking Continue after an API error no longer loops on the same failure. The AI now gets feedback about what went wrong and adjusts its approach509 510---511 512## v1.54.0 - Improved Background Sync & Skills (2026-04-05)513 514Changes you make are now automatically saved to the server in the background — no more manual sync dialog for day-to-day use.515 516- **Automatic Background Sync** - In Server Mode, project saves now silently push to SQLite in the background. Custom skills and templates sync automatically on create, update, or delete. Failed syncs retry up to 3 times with backoff. Leaving the workspace or closing the tab flushes any pending sync so nothing is lost517- **Create Skills from Workspace** - New "+" button in the Skills panel header lets you create custom skills without leaving the workspace. The skill is immediately available to the AI on the next message518- **Skills Panel Moved Up** - The Skills button in the workspace sidebar now appears above Console for easier access519- **Desktop Auth Fix** - Admin API routes now properly bypass authentication in the desktop app. Previously, deployment pages and the dashboard would fail with unauthorized errors520 521---522 523## v1.53.0 - Full Size Preview & Template Improvements (2026-04-04)524 525Preview the site you're building without any workspace chrome getting in the way, and save project templates directly to your instance.526 527- **Full Size Preview** - New Maximize button next to the device size icons (mobile/tablet/desktop) in the preview toolbar. Hides the header, sidebar, and all other panels — the preview fills the entire screen edge-to-edge. Click the Minimize button in the same spot to return to the normal workspace528- **Create Templates from Projects** - "Export as Template" is now "Create a Template". Instead of downloading an `.oswt` file, templates are saved directly to your instance's template library. Export or download them later from the Templates page529- **Preview Device Size Remembered** - Your mobile/tablet/desktop selection is now saved and restored when you reopen the preview panel or refresh the page530- **Desktop App Fix** - Fixed a crash on launch caused by a missing module in the packaged Electron app531 532---533 534## v1.52.0 - Desktop App (2026-04-04)535 536OSW Studio is now available as a desktop application for macOS, Windows, and Linux.537 538- **Desktop App** - Download and run OSW Studio locally as a native desktop application. The desktop version runs the full server with SQLite support, so you get publishing, sync, and all Server Mode features without needing to set up a server. Available from [GitHub Releases](https://github.com/o-stahl/osw-studio/releases)539 540---541 542## v1.51.0 - Panel Overhaul (2026-04-03)543 544The workspace panel system has been rebuilt. Panels are now capped at 3 visible, can be rearranged by dragging, and remember their layout between sessions.545 546- **Skills Panel** - New panel for toggling AI skills on/off without leaving the workspace. Open it from the sidebar (Sparkles icon) to enable or disable built-in and custom skills — changes take effect on the next AI message547- **Max 3 Panels** - Opening a 4th panel replaces the rightmost one. When hovering a sidebar button that would trigger a replacement, the panel about to close gets a highlighted border so you know what's changing before you click548- **Drag to Reorder** - Grab the grip handle in any panel header to rearrange. Drop zones appear between panels as you drag. Your panel order is saved and restored between sessions549- **Layout Persistence** - Which panels are open, their order, and their widths are all saved. Re-opening a project shows the same workspace layout you left550- **Consistent Headers** - All 8 panels now share the same header component with a unified look: colored icon, title, action buttons, close button551- **Heredoc Fix** - Commands like `mkdir -p /dir && cat > /file << 'EOF'` no longer fail. Previously the file content was routed to `mkdir` instead of `cat`, breaking every chained file creation552 553---554 555## v1.50.0 - Error Recovery (2026-04-01)556 557API errors no longer kill your task. Rate limits, expired keys, and server errors now pause the task instead of ending it.558 559- **Continue After Errors** - When an API call fails mid-task, the chat shows the error with a Continue link. Fix the issue (wait for rate limits, add credits, update your key in Settings) and click Continue to pick up where you left off. No progress is lost. If it fails again, it pauses again — you can keep retrying560- **Better Error Messages** - Every provider now gets clear, actionable error messages instead of raw API errors. Auth failures tell you to check your key or reconnect. Credit exhaustion links to your provider's billing page. Model not found suggests switching in Settings. Tool support errors recommend MiniMax M2.7561- **Smarter Retries** - Server errors (502, 504) and Anthropic overloaded (529) are now automatically retried with backoff, in addition to rate limits (429)562- **MiniMax M2.7 Default** - OpenRouter default model changed to MiniMax M2.7563 564---565 566## v1.49.0 - AI Project Setup (2026-03-31)567 568New way to start a project: describe what you want and the AI handles the setup.569 570- **AI Project Setup** - New template option in the create project dialog. Instead of picking a runtime and template manually, describe your project and the AI chooses the best runtime, creates the file structure, and writes tailored project instructions. Available via the "AI Project Setup" link next to the Template selector, or as the first option in the template dropdown571- **`runtime` Command** - The AI can now switch the project's runtime (Static, React, Svelte, Vue, Python, Lua, etc.) on the fly. This powers the AI Project Setup flow but is also available in any project572 573---574 575## v1.48.0 - Auto-Compaction (2026-03-30)576 577Long AI coding sessions no longer silently fail when the conversation gets too large. The AI now automatically summarizes older context when approaching the model's limit, keeping recent work intact while freeing up space to continue.578 579- **Automatic Context Compaction** - When the conversation approaches your model's context limit, older turns are summarized into a compact recap while recent tool calls and results are kept verbatim. The AI continues working with full awareness of what was accomplished. A dashed divider line appears in the chat showing the compression (e.g. "Context compacted — 15K → ~7K tokens") — you can still scroll up to see everything from before580- **Works With Any Model** - The compaction limit is automatically detected from the model's context window (via provider registry or the models API). You can also set a custom limit per provider in Settings, or disable auto-compaction entirely581- **Codex Vision Fix** - Screenshots and images sent through Codex (ChatGPT subscription) were silently discarded. The AI now sees your images when using Codex, matching the behavior of other providers582 583---584 585## v1.47.0 - Sub-Agent Delegation (2026-03-27)586 587The AI can now delegate sub-tasks to specialized agents that work independently and return a summary — keeping the main conversation focused while exploring or editing in parallel.588 589- **`delegate` Command** - Three sub-agent types: `explore` for read-only codebase research, `task` for focused coding work, and `plan` for structured analysis. Multiple quoted prompts in a single command run as parallel agents — e.g. the AI can edit three files simultaneously with one delegate call590- **Context Isolation** - Sub-agents explore or edit with their own conversation, so file contents and intermediate steps don't clutter your main chat. You get a clean summary of what was done and what was found591- **Stop Actually Stops** - Clicking "Stop" now immediately halts the AI mid-stream, including any running sub-agents. The cancellation also propagates to the LLM provider so you're not billed for tokens you never see (supported by OpenAI, Anthropic, Ollama, LM Studio, and most OpenRouter providers)592- **Vue Fix** - Vue projects with template-only components (no `<script>` block) or TypeScript in `<script setup lang="ts">` now render correctly. Previously these silently failed593- **More Reliable Builds** - The `build` command now runs its own compilation instead of racing against the live preview's debounced compile. AI coding sessions with multiple rapid file writes no longer get false "0 errors" results594- **Cleaner Chat Log** - Token count, cost, and task duration are now shown once at the end of each task instead of after every AI response. Restore/Retry buttons stay attached to the AI's last output instead of appearing under your follow-up message595- **Faster Project Gallery** - Typing in the "Create New Project" dialog no longer causes lag from re-rendering every project card behind the modal596 597---598 599## v1.46.0 - Targeted File Editing (2026-03-23)600 601The shell-only editing from v1.44.0 improved tool call reliability but limited the AI to full file rewrites (`cat >`) or single-line substitutions (`sed`). A new `ss` (supersed) shell command adds multiline search-and-replace, so the AI can edit specific blocks without rewriting the whole file.602 603- **`ss` Command** - Multiline find-and-replace via heredoc. Four modes: literal (exact match), `--entity` (give the opening line of a function, element, or CSS rule — boundary detection finds the end), `--fuzzy` (whitespace-normalized matching), `--regex` (multiline regex with backreferences)604- **Harmony Format Support** - GPT-OSS and other harmony-format models now work cleanly across all providers. Internal channel artifacts (`<|channel|>`, etc.) that previously surfaced as spurious tool calls are filtered before execution605 606---607 608## v1.45.0 - AI Reliability Improvements (2026-03-22)609 610Significant improvements to how the AI writes code, understands your project runtime, and evaluates its own work. Shell command parsing is more robust, domain prompts automatically match your project's framework, and the evaluation system has been streamlined.611 612- **One Tool, No Escape Hatches** - The separate `evaluation` tool has been removed. Previously, models could call `goal_achieved: true` on the evaluation tool to end a task even when work was incomplete. Now the AI must reason through completion via `status --task "..." --done "..." --remaining "..." --complete` — forcing it to articulate what it did and what's left before marking a task done613- **Smarter Shell Parsing** - Fixed three bugs that caused the AI's file write commands to fail silently: heredoc blocks containing their delimiter word no longer truncate early, successful file redirects no longer report as errors, and multiline quoted strings are no longer split into broken fragments. These were the #1 source of cascading failures in longer AI sessions614- **Domain Prompts Follow Runtime** - When you change a project's runtime (e.g. Static to React, or Handlebars to Vue), the `.PROMPT.md` file now automatically updates with the correct framework-specific instructions. If you've customized `.PROMPT.md`, you'll be asked before it's overwritten. This ensures the AI always knows how to write code for your chosen framework615- **Better Skills for All Frameworks** - The built-in Planning and One-Shot skills no longer assume Handlebars. They now provide general best practices (plan first, build main page first, quality checklist) and direct the AI to read `.PROMPT.md` for runtime-specific patterns. Previously, enabling these skills while using React or Vue would actively confuse the AI with Handlebars-specific instructions616- **Browser Mode Awareness** - When using Browser Mode, the AI now knows that backend features (edge functions, database, server functions) aren't available and will suggest client-side alternatives instead of trying to create them617- **Backend Settings Always Accessible** - The server feature tabs (Database, Edge Functions, etc.) are no longer grayed out and unclickable. You can now open each tab to see what's available and why certain features require Server Mode618 619---620 621## v1.44.0 - Unified Shell Editing (2026-03-16)622 623The AI now edits files using standard shell commands instead of a separate structured tool — resulting in more reliable and efficient code generation. The virtual `sed` command has been significantly expanded to support the full range of editing patterns.624 625- **Shell-Only Editing** - File creation and modification now use `cat > /file << 'EOF'` and `sed -i` instead of the previous JSON-based write tool. This matches how developers naturally work in a terminal and eliminates the most common source of tool call failures626- **Faster & Cheaper** - Benchmarking across multiple models showed 6-9% lower token usage with shell-only editing compared to the previous structured approach627- **Simpler Tool Surface** - The AI's tool surface was reduced from 3 tools to 2 (`shell` and `evaluation`). Fewer tools means fewer opportunities for the AI to pick the wrong one628- **Smarter sed** - The virtual `sed` now supports address-based commands (`/pattern/d` to delete lines, `/start/,/end/c\text` to replace ranges, `i\` and `a\` to insert/append), the `-n` flag with print, and proper regex handling for patterns containing parentheses and special characters629 630---631 632## v1.43.0 - Python, Lua, Console & Runtime Split (2026-03-12)633 634Write and run Python and Lua scripts directly in the browser. A new interactive Console works across all project types. Plus: the Static runtime is now pure HTML/CSS/JS, with Handlebars templating moved to its own dedicated runtime.635 636- **Static vs Handlebars** - The "Static" runtime now means pure HTML, CSS, and JavaScript — no template engine, no partials, no `data.json`. Projects that use Handlebars templating (partials, `{{> partial}}`, data.json) are now the "Handlebars" runtime with an amber badge. Existing projects are automatically migrated. New projects default to Static (simplest starting point)637- **Python Projects** - Create Python projects and run them in the browser. Full Python 3 via Pyodide (CPython compiled to WebAssembly) — standard library included, multi-file `import` support, and output file generation. The runtime loads from CDN on first run and is cached by the browser638- **Lua Projects** - Create Lua 5.4 projects with `require()` for multi-file support. Runs via wasmoon (Lua VM compiled to WebAssembly). Standard library modules (string, table, math, io) available out of the box639- **Interactive Console** - A unified terminal panel that combines a VFS shell and script execution in one place. Type `ls`, `cat`, `grep`, `tree`, and more — with pipes, redirects, and chaining. Run scripts with `exec main.py`. Command history with Up/Down arrows. Available for every project type via the sidebar toggle640- **Auto-Run for Scripts** - Python and Lua projects auto-run the entry point when you save a file, just like the live preview updates for HTML/CSS/JS projects. Edit your code, see the output instantly641- **Run from File Explorer** - Right-click any `.py` or `.lua` file and select "Run in Console" to execute it immediately642- **Starter Templates** - Handlebars Starter (partials + data.json), Python Starter, and Lua Starter templates with entry points and AI-tuned `.PROMPT.md` files643- **AI Error Feedback** - Script errors (syntax errors, runtime exceptions, timeouts) are fed back to the AI so it can self-correct — same as build errors for React/Svelte/Vue projects644- **Console for All Projects** - The Console isn't just for Python and Lua — toggle it on for any project type to explore files, run shell commands, or test utility scripts. It defaults to visible for script projects and hidden for visual projects645- **Runtime Error Card** - When the preview throws a JS error after the AI finishes (e.g. you click a button that breaks), a red card now appears above the chat input showing the errors. Hit "Send" to auto-send them to the AI for correction, or "Clear" to dismiss646- **ZIP Export for Scripts** - Python and Lua projects export as raw source files with a README containing run instructions — no compilation step needed647- **Server Publish: Bundled Runtimes** - Publishing React, Preact, Svelte, and Vue projects in Server Mode now works correctly. Bundles are compiled client-side before syncing to the server648- **Server Publish: Terminal Runtimes Blocked** - Python and Lua projects cannot be published as static deployments. A clear error directs you to use ZIP export instead649- **Cleaner Published Output** - Internal files (`.PROMPT.md`) and preview-only scripts (Console Capture, VFS Asset Interceptor) are now stripped from published deployments650- **Console Doubling Fix** - Fixed duplicate console messages appearing in dev mode caused by React StrictMode double-mounting the preview651 652---653 654## v1.42.0 - Multi-Framework Support (2026-03-08)655 656Svelte, Vue, and Preact join React as first-class project runtimes. Build with whichever framework you prefer — all compiled in the browser, no setup needed.657 658- **Svelte 5** - Write `.svelte` single-file components with Svelte 5 runes (`$state()`, `$derived()`, `$effect()`). The Svelte compiler loads from CDN on first use and compiles components in the browser. TypeScript in `<script lang="ts">` blocks is fully supported. Styles in `<style>` blocks are scoped automatically659- **Vue 3** - Write `.vue` single-file components with `<script setup>` and the Composition API (`ref()`, `reactive()`, `computed()`). The Vue compiler loads from CDN and compiles SFCs in the browser. `<style scoped>` works out of the box660- **Preact** - A 3KB React alternative with the same API. Uses `.tsx`/`.jsx` files just like React, plus Preact signals (`@preact/signals`) for lightweight reactive state. If you know React, you know Preact661- **Starter Templates** - Each new framework comes with a starter template that includes an entry point, root component with counter example, and a `.PROMPT.md` with framework-specific AI instructions662- **Framework Selection** - Choose your runtime when creating a project. Each framework shows a colored badge on project and template cards (React blue, Preact purple, Svelte orange, Vue green, Static gray)663- **npm Packages Everywhere** - Import npm packages by name in any framework — `import confetti from "canvas-confetti"` works the same in React, Svelte, Vue, and Preact. All resolved from CDN at runtime664- **Smarter Build Error Recovery** - When esbuild encounters build errors, they're now piped back to the AI as feedback so it can self-correct. Previously, build failures were shown in the preview but the AI never saw them665- **Cleaner Exports** - Published bundles no longer include esbuild module boundary comments. Source files (`.svelte`, `.vue`, `.ts`, `.tsx`, `.jsx`, and `/src/*.css`) are excluded from exports since they're compiled into the bundle666- **Conditional Edge Function Interceptor** - The fetch interceptor script is only injected into published HTML when the project actually uses edge functions, reducing output size for projects without backend features667 668---669 670## v1.41.0 - React & TypeScript Support (2026-03-07)671 672Build React apps with TypeScript — right in the browser. No npm, no build tools, no setup.673 674- **React + TypeScript Projects** - Create component-based React apps with `.tsx` files. Source files are automatically bundled in the browser — no build tools or setup needed. npm packages like `framer-motion`, `zustand`, or `date-fns` just work — import by name and they're fetched from a CDN at runtime675- **Two React Templates** - A minimal blank starter (Hello World — clean slate for AI) and a demo task tracker (components, state, props, typed interfaces). Pick the starter when you want the AI to build from scratch, or the demo to explore what React in OSW Studio looks like676- **Seamless Preview** - The live preview rebuilds automatically when you edit any file. React projects get the same instant feedback as HTML/CSS/JS projects677- **Smart Export** - ZIP exports include both a ready-to-deploy build and your source files with a `package.json` + `vite.config.ts` for local development678- **Server Mode Publishing** - React projects can now be published in Server Mode, just like static projects679- **Editor IntelliSense** - Full TypeScript IntelliSense in the code editor for React projects — autocomplete for React hooks (`useState`, `useEffect`), JSX support without false errors, and cross-file import resolution. Type definitions load from CDN and are cached for the session680- **Build Error Feedback** - TypeScript and JSX errors are fed back to the AI so it can self-correct681- **Runtime Badges** - Project and template cards now show whether they use "Static" or "React" — visible on thumbnails in grid view and next to titles in list view682- **Smoother Server Sync** - The sync dialog no longer flashes after each push/pull — the list stays visible with a subtle loading overlay683- **Zero Impact on Existing Projects** - The React bundler only loads when a project has `.tsx`/`.ts` entry points. HTML/CSS/JS projects work exactly as before684 685- **Project Settings** - The workspace header now has a "Project" button that opens a settings modal. Change your project's runtime (Static or React) or preview entry point at any time — no need to recreate the project. Backend features (Server Mode) are organized into their own tabs within the same modal686 687---688 689## v1.40.0 - Local Inference Improvements (2026-03-07)690 691Local model support expanded and infrastructure fixes.692 693- **New: llama.cpp** - Run GGUF models locally with `llama-server` (default port 8080). Supports streaming, tool use, and vision via multimodal projector. No API key needed — just start the server and select the provider694- **Better Local Model Tool Use** - When a locally-loaded model doesn't support native function calling, OSW Studio now falls back to JSON-based tool prompting for all local providers — previously this only worked with Ollama695- **Version Tracking Fix** - The analytics version indicator was stuck on an old version. Now reads directly from package.json696 697---698 699## v1.39.0 - New Providers + Gemini Rebuild (2026-03-05)700 701Two new AI providers, a Gemini rebuild, and better thinking/reasoning display across providers.702 703- **New: MiniMax** - 5 models with 200K context, built-in reasoning, and tool calling. Highspeed variants at ~100 tokens/sec. Pay-as-you-go from $0.30/M input tokens, or coding plans from $10/mo. Get an API key at [platform.minimax.io](https://platform.minimax.io/user-center/basic-information/interface-key)704- **New: Zhipu AI (GLM)** - 6 models including GLM-5 (most capable), vision models (GLM-4.6V), and free flash variants. Supports streaming, tool calling, vision, and thinking mode. Get an API key at [z.ai/model-api](https://z.ai/model-api)705- **Better Thinking/Reasoning Display** - Providers that use thinking tokens (MiniMax, Zhipu AI, DeepSeek) now display reasoning in the collapsible thinking section instead of mixing it into the response706- **Gemini Rebuilt** - The Gemini provider was silently broken — rebuilt from scratch with proper API format. Generation, streaming, vision, tool use, and thinking all work now707- **Gemini Model Discovery** - The model selector now queries Gemini's live API instead of showing a hardcoded list708- **Updated Model Defaults** - Retired models replaced: Gemini 1.5 Flash → 2.5 Flash, Claude 3.5 Haiku → Haiku 4.5709 710---711 712## v1.38.0 - Preview Inspection & Shell Hardening (2026-03-04)713 714The AI can now inspect its own compiled output, and the shell handles more real-world command patterns.715 716- **Shell: `curl` for Preview Inspection** - The AI can now run `curl localhost/` to see the compiled HTML output of any page — Handlebars partials resolved, data.json injected, just like the live preview. This lets the AI debug template issues, verify partials are rendering, and check the final output without guessing. Supports `-I` for headers, `-o` to save to a file, and piping (`curl localhost/ | grep nav`)717- **Shell: `||` Fallback Operator** - Commands can now use `||` to run a fallback if the first command fails, e.g. `cat /config.json || echo "not found"`718- **Shell: Better Bash Compatibility** - Common bash redirect patterns like `2>/dev/null`, `2> /dev/null` (with space), `&>/dev/null`, `1>/dev/null`, and `2>&1` are all handled correctly. The shell quietly strips these since they don't apply in the virtual environment719- **Smarter Tool Routing** - When the AI accidentally calls a shell command (like `cat` or `curl`) as its own tool instead of going through the shell, it now works anyway — the command is automatically routed to the shell instead of failing720- **New Benchmark Scenarios** - Three new preview-focused test scenarios validate the AI's ability to discover and use `curl` to inspect compiled Handlebars output721 722---723 724## v1.37.0 - Smarter Prompt Architecture (2026-02-27)725 726The AI system prompt has been significantly compressed and reorganized so the model pays better attention to what matters.727 728- **Leaner System Prompt** - The base prompt is ~48% smaller. Duplicate sections between Chat and Code modes eliminated, verbose examples trimmed, and decorative markers removed. The model gets the same instructions in fewer tokens, leaving more room for your project729- **Project Context in Your Message** - The project file tree and skills list now appear in your first message to the AI instead of buried in the system prompt. Models pay more attention to user messages, so the AI is more aware of your project structure and available skills from the start730- **Collapsible Context** - The injected project context shows as a small collapsed "Project context" indicator in the chat — click to expand if you want to see it, otherwise it stays out of the way731- **File Creation Guidelines Moved** - Domain-specific advice about which files to create (and which to skip) now lives in the `.PROMPT.md` domain prompt instead of the base system prompt, where it belongs732- **Handlebars Error Feedback** - When the preview detects a Handlebars template error (syntax issues, misused helpers, missing partials), the AI now sees the error automatically and can fix it — no more silent red error boxes that only you can see733- **Shell: Heredoc Support** - The shell tool now supports `cat > /file << 'EOF'` heredoc syntax for writing large files. This gives the AI a reliable fallback when writing big JSON or HTML files that are tricky to encode734- **Smarter Write Tool Recovery** - When the AI accidentally double-encodes a file write, the tool now attempts to heal the content instead of immediately failing. Fewer wasted retries on large file operations735 736---737 738## v1.36.0 - Benchmark Overhaul & Shell `wc` (2026-02-26)739 740The OSWS Benchmark (formerly "Model Tester") has been rebuilt with programmatic assertions, detailed tool analytics, and self-evaluation tracking — giving you much more insight into how models actually perform.741 742- **Assertion-Based Validation** - Tests are now validated by 11 assertion types (`file_exists`, `file_contains`, `file_matches`, `tool_used`, `tool_output_matches`, `judge`, and more) instead of relying solely on the model's self-evaluation743- **Tool Usage Analytics** - A new stats card shows total/successful/failed/invalid tool calls with a per-tool breakdown table. Invalid calls (model hallucinating tools like `read`) are tracked separately744- **Cost & Token Tracking** - Running totals for cost, prompt tokens, completion tokens, and total tokens displayed in the stats cards745- **Self-Evaluation Accuracy** - Compares the model's `goal_achieved` self-assessment against what the assertions actually determined. Surfaces cases where the model thinks it succeeded but didn't (or vice versa)746- **Tool Call Details** - Each completed test shows an itemized list of every tool call with name, status, and argument preview. Failed tests show which specific assertions failed instead of a generic message747- **Track Reports & Export** - Track reports and JSON/Markdown exports include tool breakdowns, assertion pass rates, and self-eval accuracy748- **Shell: `wc` Command** - New `wc` command for counting lines (`-l`), words (`-w`), and characters (`-c`). Works with stdin via pipes — `find / -type f | wc -l`749 750---751 752## v1.35.0 - Prompt Architecture & Shell Improvements (2026-02-25)753 754The AI system prompt no longer hard-codes website instructions. Domain knowledge now lives in a per-project `.PROMPT.md` file that the AI reads at conversation start, making OSW Studio adaptable to non-website projects.755 756- **Per-Project `.PROMPT.md`** - Each project can have a `/.PROMPT.md` file containing domain-specific instructions for the AI. All built-in templates ship with one pre-filled. Existing projects without it see a subtle banner offering to add the default757- **Configurable Entry Point** - Right-click any file in the explorer and choose "Set as Entry Point" to change which file the preview loads first. The entry point shows a green Home icon758- **Template Rename: "Blank" → "Website Starter"** - The Blank template is now called "Website Starter" to better describe its purpose759- **Tool Rename: `json_patch` → `write`** - The file editing tool was renamed for better LLM compatibility. Same behavior, better tool selection760- **Shell Pipes & Redirects** - Commands can now be chained with `|` and output redirected with `>` / `>>`761- **`sed` Command** - New text substitution command with `s/pattern/replacement/[g]` syntax762- **Repeat Helpers** - Added `{{#times N}}`, `{{#repeat N}}`, and `{{#for N}}` Handlebars block helpers763 764---765 766## v1.34.0 - Project-Scoped Backend & Deployments (2026-02-22)767 768Backend features are now managed at the **project level** instead of per-deployment, and "Sites" have been renamed to **"Deployments"** throughout the app.769 770- **Project-Scoped Backend** - Edge functions, server functions, secrets, scheduled functions, and database schema now live on the project. When you publish, they're automatically extracted into the deployment's runtime. This means one project can power multiple deployments, and your backend travels with the project771- **Per-Project Database** - Each project can have its own SQLite database for user-defined tables. Create tables via the schema editor, query them from edge functions, and they'll be included when you publish772- **"Sites" → "Deployments"** - What was called a "Site" is now a "Deployment" — the UI, API routes, URL paths, and admin views all reflect this. Existing databases migrate automatically773- **"Server Features" → "Backend"** - The toolbar button, template badges, and docs now use "Backend" instead of "Server Features"774- **Project Backend Panel** - New tabbed modal (accessible from the toolbar or project card menu) for managing all backend features in one place. The schema editor has been rewritten with three tabs: Tables (live schema viewer), SQL (query editor), and DDL (apply schema changes)775- **Deployment Selector** - New dropdown in the workspace header to pick which deployment's runtime context the AI should know about776- **Project Swap** - When repointing a deployment to a different project, a conflict dialog shows what will be added, removed, or changed so you can review before confirming777- **Unified Templates** - The separate "Site template" type is gone. All templates now use a single format with an optional `backendFeatures` field. Older `.oswt` files still import correctly778- **Split Databases** - Each deployment now has separate `runtime.sqlite` and `analytics.sqlite` files instead of one unified database. Existing deployments migrate automatically on first access779 780### Upgrading (Server Mode)781 782**Back up your `data/` and `sites/` directories before updating.** This release includes significant database and directory migrations that run automatically on first access:783 784- The `sites/` directory is renamed to `deployments/`785- Each unified `site.sqlite` is split into `runtime.sqlite` + `analytics.sqlite`786- API routes move from `/api/sites/*` to `/api/deployments/*`787 788The migrations are designed to be seamless, but given the scope of changes, a backup ensures you can roll back if anything goes wrong. Browser Mode users are unaffected.789 790---791 792## v1.33.0 - Checkpoint Rework (2026-02-19)793 794The checkpoint system has been redesigned with a new panel and a clearer lifecycle.795 796- **Checkpoints Panel** - New panel in the workspace to view, jump to, and restore any checkpoint from your session797- **Starting Point** - Opening a project now creates a permanent "Starting point" checkpoint. "Discard Changes" always takes you back here, no matter how many saves you've made798- **Stacking Saves** - Manual saves now accumulate instead of replacing each other, so you can jump between any saved state799- **Smart Eviction** - Only auto-checkpoints count toward the 50-checkpoint limit. Your manual saves and the starting point are never removed800- **Default Provider** - Self-hosted instances can set a default AI provider via `NEXT_PUBLIC_DEFAULT_PROVIDER`801- **Setup Guidance** - Chat input is now disabled when no API key is configured, and the model selector button highlights to guide you to settings802 803---804 805## v1.32.0 - Anonymous Usage Analytics (2026-02-18)806 807OSW Studio now includes lightweight, anonymous telemetry to help understand which features get used, which providers and models are popular, and where things are breaking. No prompts, code, file names, API keys, or error messages are ever collected.808 809- **What's tracked** - Page views, provider/model selection, task success/failure rates, tool call outcomes, API error types, and session heartbeats810- **Anonymous visitor ID** - A random UUID stored in localStorage counts unique visitors. It's not tied to any account or personal data and resets if you clear browser storage811- **Opt-out** - Toggle "Anonymous Usage Analytics" off in Settings > Application Settings. A first-run disclosure dialog explains everything on your first visit812- **Transparent** - Built with [osw-analytics](https://github.com/o-stahl/osw-analytics), an open-source analytics system (currently in testing, be sure to star it to get notified when it's done)813- **Low impact** - Events are batched and sent every 30 seconds. If the analytics server is unreachable, events are silently dropped. The app never blocks on telemetry814 815Self-hosted instances can disable telemetry entirely with `NEXT_PUBLIC_TELEMETRY_ENABLED=false` in `.env` or keep them on to help out with the development.816 817---818 819## v1.31.0 - HuggingFace Provider & Settings Refresh (2026-02-15)820 821HuggingFace is now available as an AI provider. Every HuggingFace account includes $0.10/month in free inference credits.822 823- **HuggingFace Provider** - New provider in Settings with access to 120+ models across multiple inference backends (Cerebras, Fireworks, Groq, Together, SambaNova, and more) through HuggingFace's unified API824- **Two Auth Methods** - Sign in with OAuth (on HuggingFace Spaces) or paste an API access token (everywhere)825- **Dynamic Model Discovery** - Models are fetched live from HuggingFace with full metadata: context length, tool support, vision capability, and per-model pricing826- **Cost Tracking** - Pricing from the HuggingFace API is automatically registered for accurate session and project cost calculations827- **Credit Limit Handling** - Friendly error message when your free monthly credits are exhausted, with a link to upgrade828- **Refreshed Settings UI** - Both the Model Settings and Settings popups have been redesigned with a cleaner, more compact layout. All providers now use a unified connect/disconnect flow — paste your API key, click Connect (validates first), and see a clean connection badge with a Disconnect option.829- **Bug Fix** - Fixed model selector dropdown overflowing past the bottom of the viewport830 831### Setup832 8331. In OSW Studio settings, select **HuggingFace** as your AI provider8342. Go to [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) and create a token with "Make calls to Inference Providers" permission8353. Paste the token and click **Connect**8364. Pick a model and start building — no API costs until you exceed your free credits837 838---839 840## v1.30.0 - Codex Generation (2026-02-14)841 842Use your ChatGPT Plus/Pro subscription to generate code directly in OSW Studio. The new Codex adapter translates between our standard format and the Codex Responses API entirely server-side — the editor, preview, and chat all work exactly as before.843 844- **Codex Generation** - The "Codex (ChatGPT Sub)" provider now supports full generation with streaming responses and tool calls (shell, json_patch).845- **GPT-5.3 Codex** - New default model. Also available: GPT-5.2 Codex, GPT-5.1 Codex, GPT-5.1 Codex Mini, Codex Mini, and the general-purpose GPT-5.2 and GPT-5.1.846- **Usage Limit Handling** - Clear error messages with estimated retry time when you hit your ChatGPT subscription limits.847- **Compact Auth Panel** - Tighter layout with the "Disconnect" button inline. A warning banner notes the experimental nature of this provider.848- **Secure Auth** - Your ChatGPT refresh token is stored in an HttpOnly cookie, so page scripts can't read it. Only the short-lived access token (~1 hour) is kept in localStorage.849- **Bug Fix** - Fixed parallel tool calls showing stuck spinners. Status updates (executing/completed) now correctly map to the right tool when the AI runs multiple tools at once.850- **Bug Fix** - Fixed streaming parameter deltas not grouping properly during parallel tool execution.851 852### Setup853 8541. Install the [Codex CLI](https://github.com/openai/codex): `npm i -g @openai/codex`8552. Run `codex login` and follow the browser prompts8563. Copy your token: `cat ~/.codex/auth.json | pbcopy`8574. In OSW Studio settings, select **Codex (ChatGPT Sub)** and paste the token JSON8585. Pick a model and start building859 860---861 862## v1.29.0 (2026-02-13)863 864- **User-Managed Thumbnails** - Capture, upload, or remove thumbnails on project and site cards via icon buttons in the thumbnail area. The workspace preview toolbar also has a capture button. Uploaded images are automatically compressed. Auto-capture on save/publish has been removed.865- **Server Mode Fixes** - Edge function calls in the preview now work when a site is selected after initial load; `/.server/` folder refreshes automatically after AI operations; AI can create and modify scheduled functions; edge functions resolve by slug866 867---868 869## v1.28.0 - Scheduled Functions (2026-02-10)870 871Run edge functions automatically on a cron schedule. Set up daily cleanups, hourly stats aggregation, weekly report emails, or any recurring task — all managed from the admin UI.872 873- **Scheduled Functions** - New **Schedules** tab in Server Settings to create, edit, enable/disable, and delete cron-triggered functions874- **Cron Scheduling** - Standard 5-field cron expressions with timezone support (e.g., `0 8 * * *` for daily at 8am)875- **Custom Config** - Pass a JSON object as the request body to the linked edge function on each run876- **Execution Tracking** - Each schedule shows next run time, last status (success/error), and last run time877- **AI Awareness** - The AI can see and create scheduled functions via `/.server/scheduled-functions/` context files878 879**See**: [Backend → Scheduled Functions](?doc=backend-features#scheduled-functions-cron-jobs) for the full guide with examples.880 881---882 883## v1.27.0 - Site Templates (2026-02-06)884 885A new template type that bundles both frontend files AND backend infrastructure definitions. Site templates include edge functions, server functions, database schema, and secrets metadata — everything needed to deploy a full-stack site in Server Mode.886 887- **Site Templates** - New template type with backend infrastructure definitions888- **Built-in Site Templates** - Two new built-in templates:889 - **Landing Page with Contact Form** - Professional landing page with working contact form, Resend email integration, and message database (2 edge functions, database schema)890 - **Blog with Comments** - Blog platform with posts, comments, and content moderation (3 edge functions, server function, database schema)891- **Automatic Backend Provisioning** - In Server Mode, creating a project from a site template automatically syncs to the server, creates a site, and provisions all backend features (database schema, edge functions, server functions, secret placeholders) in one step892- **Export from Sites** - Export any published site as a site template directly from the Sites view; backend features are automatically captured893- **Type Filter** - Filter templates by type (All, Project, Site) in the template browser894- **Template Format v2.0** - Extended `.oswt` format with `siteFeatures` object for backend definitions895- **Graceful Degradation** - Site templates work in Browser Mode (frontend files only); toast notification about Server Mode for backend features896- **Improved Blog Template** - Blog posts are now static HTML pages with Handlebars partials (navigation, footer, comments) instead of dynamically loaded from the database. Post links work correctly when published under `/sites/{siteId}/`897- **Async Edge Functions** - Edge functions now support `await` for calling external APIs (e.g., sending emails via Resend, webhooks)898- **Improved Edge Function Errors** - Edge function errors now return meaningful messages instead of generic failures899- **Bug Fix** - Fixed published sites rendering empty Handlebars variables (static builder was not loading `data.json` context)900- **Bug Fix** - Fixed "IndexedDB not initialized" errors across pages caused by a race condition during database initialization901 902### How It Works903 904Site templates in **Server Mode** automatically provision the full backend when you create a project: the project is synced to the server, a site is created, and all backend features (database tables, edge functions, server functions, secret placeholders) are set up in one request. You'll see a summary of what was provisioned and a reminder to fill in any secret values via the Admin panel.905 906In **Browser Mode**, site templates create the frontend files normally. A notification reminds you that backend features require Server Mode.907 908### For Template Authors909 910Export projects as site templates in two ways:911 9121. **From the Sites view** — Use the dropdown menu on any site card and select "Export as Site Template". Backend features (edge functions, database schema, server functions, secrets) from that site are automatically included in the `.oswt` file.9132. **From the Templates tab** — Export any project as a template using the template export dialog.914 915---916 917## v1.26.0 - Screenshot Reliability & Project Swap (2026-02-04)918 919Improved reliability for project and site screenshots, plus smoother save UX.920 921- **Improved Screenshot Reliability** - Resource-waiting before capture (fonts, images, idle network)922- **Non-blocking Save** - Project save completes instantly; thumbnail updates in the background923- **Publish Spinner** - Spinner overlay on site card during publish and thumbnail capture924 925---926 927## v1.25.2 - Binary File Sync Fix928 929- **Bug Fix** - Fixed binary file sync and serving in Server Mode930 931---932 933## v1.25.1 - Binary File Publishing Fix934 935- **Bug Fix** - Fixed binary files (JPG, PNG, GIF, etc.) not publishing correctly in Server Mode936 937---938 939## v1.25.0 - Skill Evaluation Pass (2026-02-02)940 941A new pre-flight evaluation pass checks which skills are relevant to your prompt before the main AI call. When a match is found, the AI receives an explicit instruction to read the skill first, radically improving skill adoption rates.942 943Enable it in **[Skills Settings](?doc=skills)** > **Skill Evaluation** toggle.944 945- **Automatic Skill Matching** - Your selected model evaluates your prompt against enabled skills before each message946- **Explicit Directives** - Matched skills are injected as high-priority read instructions in the user message947- **Debug Visibility** - New `skill_evaluation` event in the debug panel shows what was evaluated and matched948- **Non-Streaming API** - The generate API now supports `stream: false` for lightweight calls949 950**Note:** This feature is disabled by default as it adds an extra API call per message, which increases initial token usage.951 952---953 954## v1.24.0 - Vision/Image Input Support (2026-01-26)955 956Drop or paste images directly into the chat input to share visual context with the AI on supported models.957 958- **Image Input** - Drag & drop or paste (Ctrl/Cmd+V) images into the chat959- **Multi-Provider Support** - Works with OpenRouter, OpenAI, Anthropic, Gemini, and Ollama vision models960- **Supported Models** - GPT-5.x, Claude Opus 4.5, Gemini 3 Flash/Pro, GLM-4.7V, llava, Pixtral, and more961- **Smart Detection** - Image input automatically enabled when using a vision-capable model962- **Multiple Images** - Attach multiple images in a single message963- **Formats** - PNG, JPEG, WebP, and GIF supported964 965### How to Use966 9671. Select a vision-capable model (e.g., GPT-5.2 via OpenRouter, Claude Opus 4.5, Gemini 3 Pro)9682. Drop an image onto the chat input or paste from clipboard9693. Add your prompt describing what you want9704. Send the message971 972The AI will analyze the image and can help you recreate designs, extract content, or use it as reference for building your site.973 974**Note:** For Gemini vision models, use OpenRouter rather than the direct Gemini API for best compatibility.975 976---977 978## v1.22.0 - QuickJS WASM Sandbox979 980Edge and server functions now run in a QuickJS WebAssembly sandbox for stronger security isolation.981 982- **WASM Isolation** - Separate JavaScript engine via WebAssembly boundary983- **Memory Limits** - 64MB default, enforced by WASM runtime984- **Fetch Security** - 10 requests max, 10s timeout, 5MB limit, private IPs blocked in production985- **Base64 Support** - Added `atob()` and `btoa()` functions986 987Your existing functions work unchanged with the same API surface.988 989---990 991## v1.21.0 - Dashboard for Browser Mode992 993The dashboard is now available in browser mode and is the default landing page for both modes.994 995- **Dashboard for Browser Mode** - Dashboard now available in browser mode (previously server mode only)996- **Dashboard as Landing Page** - Dashboard is the default landing page for both modes997- **Quick Actions Bar** - Create projects, start guided tour, join Discord, and access docs998- **What's New Component** - Shows latest version highlights with link to full changelog999- **Recent Projects** - Quick access to recently updated projects from dashboard1000 1001---1002 1003## v1.20.0 - Admin Dashboard for server mode1004 1005A new dashboard is now the landing page after login, giving you a quick overview of your server:1006 1007- **System** - OSWS version, Node.js version, uptime, memory usage1008- **Content** - Projects, templates, skills, and total files1009- **Hosting** - Published sites, sites with databases, storage used1010- **Traffic** - Requests per hour/day, error counts, top sites, recent errors1011 1012Traffic is logged server-side with automatic 7-day retention.1013 1014---1015 1016## v1.19.0 - Server Mode Backend1017 1018This release adds complete backend functionality for published sites, including edge functions, database management, server functions, secrets, and AI integration.1019 1020### Edge Functions1021 1022Create serverless JavaScript endpoints for your published sites:1023 1024- **REST API endpoints** - GET, POST, PUT, DELETE, or ANY method1025- **Database access** - Query your site's SQLite database via `db.query()` and `db.run()`1026- **External requests** - Use `fetch()` to call external APIs1027- **Sandboxed execution** - Safe VM-based runtime with configurable timeouts (1-30 seconds)1028- **Secrets access** - Use `secrets.get()`, `secrets.has()`, `secrets.list()` for API keys1029 1030```javascript1031// Example: GET /api/sites/{siteId}/functions/get-users1032const users = db.query('SELECT * FROM users LIMIT 10');1033Response.json({ users });1034```1035 1036### Server Functions (Helpers)1037 1038Create reusable JavaScript helpers callable from edge functions:1039 1040- **Code reuse** - Define shared logic once, use across all edge functions via `server.functionName()`1041- **Same security model** - Runs in the same sandboxed VM as edge functions1042- **Full access** - Helpers have access to `db`, `fetch`, and `console`1043 1044```javascript1045// Server function "validateAuth"1046const [apiKey] = args;1047const users = db.query('SELECT * FROM users WHERE api_key = ?', [apiKey]);1048return users.length > 0 ? { valid: true, user: users[0] } : { valid: false };1049```1050 1051### Secrets Management1052 1053Encrypted storage for API keys and tokens:1054 1055- AES-256-GCM encryption with unique IVs per secret1056- Admin-only access, values never logged or exposed1057- AI can create secret placeholders, user sets values in admin UI1058 1059### Database Tools1060 1061- **SQL Editor** - Execute raw SQL queries with Monaco editor and query history1062- **Schema Viewer** - Browse database structure with expandable table/column tree1063- **Execution Logs** - Monitor function invocations with status, duration, timestamps1064 1065### Server Context Integration1066 1067The AI can now understand and work with your site's backend features! When you select a site:1068 1069- **Site Selector** dropdown in workspace header to choose site context1070- **`/.server/` hidden folder** with transient files containing server context1071- AI receives edge functions, database schema, server functions, and secret names1072 1073#### The `/.server/` Folder1074 1075A hidden folder appears in the file explorer (right-click → "Show Hidden Files"):1076 1077- `db/schema.sql` - Database schema (read-only, use sqlite3 for DDL)1078- `edge-functions/*.json` - Edge functions (editable)1079- `server-functions/*.json` - Server functions (editable)1080- `secrets/*.json` - Secret placeholders (editable - AI creates, user sets values)1081 1082### AI Read-Write Access to Backend Features1083 1084The AI can create, modify, and delete backend features:1085 1086#### SQL Queries with `sqlite3`1087 1088```1089sqlite3 "SELECT * FROM products"1090sqlite3 -json "SELECT * FROM users WHERE active = 1"1091sqlite3 "CREATE TABLE orders (id INTEGER PRIMARY KEY, total REAL)"1092```1093 1094System tables are protected from modification.1095 1096#### Creating Functions1097 1098Ask the AI to create endpoints or helpers:1099 1100```1101Create an edge function called "list-products" that returns all products1102```1103 1104Functions are stored as JSON files:1105 1106```json1107{1108 "name": "list-products",1109 "method": "GET",1110 "enabled": true,1111 "timeoutMs": 5000,1112 "code": "Response.json(db.query('SELECT * FROM products'));"1113}1114```1115 1116### Edge Function Routing for Published Sites1117 1118Published sites can call edge functions using simple paths like `/submit-contact` instead of the full API URL.1119 1120A lightweight interceptor script (~1.5KB) is injected into published HTML that:1121- Intercepts `fetch()` and `XMLHttpRequest` calls1122- Detects paths without file extensions (e.g., `/submit-contact`, not `/styles.css`)1123- Routes them to `/api/sites/{siteId}/functions/{path}`1124- Handles form submissions automatically1125 1126```javascript1127// Your frontend code - simple and clean!1128const response = await fetch('/submit-contact', {1129 method: 'POST',1130 headers: { 'Content-Type': 'application/json' },1131 body: JSON.stringify({ name: 'John', email: 'john@example.com' })1132});1133```1134 1135Forms work automatically too:1136```html1137<form action="/submit-contact" method="POST">1138 <input name="email" type="email" required>1139 <button type="submit">Subscribe</button>1140</form>1141```1142 1143Custom events for response handling:1144```javascript1145document.addEventListener('edge-function-response', (e) => {1146 console.log('Result:', e.detail.result);1147});1148 1149document.addEventListener('edge-function-error', (e) => {1150 console.error('Error:', e.detail.error);1151});1152```1153 1154### Preview Edge Function Support1155 1156The live preview now supports edge function routing when a site is selected. Test your edge functions directly in the preview without publishing first.1157 1158**[Backend Features Guide →](?doc=backend-features)** | **[Server Mode Guide →](?doc=server-mode)**1159 1160---1161 1162## v1.18.01163 1164### SQLite Migration - Simpler Server Mode1165 1166Server Mode now uses SQLite instead of PostgreSQL. This means:1167 1168- **Zero database setup** - No need to install or configure PostgreSQL1169- **Just run it** - `npm install && npm start` is all you need1170- **Portable** - All data stored in local files, easy to backup and move1171 1172### Per-Site Databases1173 1174Each published site now has its own SQLite database containing its files, settings, and analytics. This keeps sites isolated from each other.1175 1176**Storage structure:**1177- `data/osws.sqlite` - Your projects, templates, and skills1178- `sites/{siteId}/site.sqlite` - Each site's files and analytics1179 1180### Breaking Change1181 1182PostgreSQL is no longer supported. If you have an existing Server Mode deployment with PostgreSQL, you'll need to migrate your data manually.1183 1184**[Server Mode Guide →](?doc=server-mode)**1185 1186---1187 1188## v1.17.01189 1190### Reasoning Token Support1191 1192See what the AI is thinking! Models with reasoning capabilities now display their thought process in a collapsible "reasoning" block in the chat panel.1193 1194- **Anthropic extended thinking** - Claude models with thinking enabled1195- **DeepSeek reasoning models** - DeepSeek v3.2 and other reasoning-capable models1196- **Gemini thinking models** - Gemini Pro 3 with thinking enabled1197 1198### Reasoning Toggle1199 1200Enable or disable reasoning on a per-model basis directly from the model selector. The toggle appears for models that support it.