| @@ -1,67 +1,110 @@ | ||
| 1 | -=== OpenStation === | |
| 2 | -Contributors: automattic, allterraindeveloper, epeicher, mmtr86, nickhamze | |
| 1 | +=== OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin === | |
| 2 | +Contributors: automattic, allterraindeveloper, epeicher, mmtr86, nickhamze, nuriapena | |
| 3 | 3 | Tags: admin, dashboard, desktop, productivity, ai |
| 4 | 4 | Requires at least: 6.0 |
| 5 | -Tested up to: 7.0 | |
| 5 | +Tested up to: 7.1 | |
| 6 | 6 | Requires PHP: 7.4 |
| 7 | -Stable tag: 1.0.0 | |
| 7 | +Stable tag: 1.1.11 | |
| 8 | 8 | License: GPLv2 or later |
| 9 | 9 | License URI: https://www.gnu.org/licenses/gpl-2.0.html |
| 10 | 10 | |
| 11 | -Turn wp-admin into a desktop OS — windows, dock, virtual desktops, and an AI assistant. Per-user opt-in, zero Core changes. By Automattic. | |
| 11 | +A windowed workspace for wp-admin. Open posts, media, and settings side by side, with a dock, virtual desktops, and a Cmd+K palette. | |
| 12 | 12 | |
| 13 | 13 | == Description == |
| 14 | 14 | |
| 15 | -**Your WordPress admin, reimagined as a desktop.** Every admin screen opens as a draggable, resizable window — edit a post, browse the Media Library, and moderate comments side by side instead of one page at a time. | |
| 15 | +**wp-admin forgets. OpenStation doesn't.** | |
| 16 | 16 | |
| 17 | -https://www.youtube.com/watch?v=jii_gGbqUx4 | |
| 17 | +You know the moment. You're deep in a post and you need one image from the Media Library. You click over, find it, click back, and everything you had going is gone. Your scroll position, your half-typed thought, the three other things you had queued up in your head. | |
| 18 | 18 | |
| 19 | -OpenStation is opt-in per user: one click in the admin bar switches you in, one click switches you back. Nobody else on the site sees any change, and deactivating the plugin restores the classic admin exactly. Zero Core patches — every feature runs through public WordPress hooks. | |
| 19 | +That's not a bug you hit. That's the design. wp-admin shows you one screen at a time, and every navigation throws the last one away. It has worked this way since 2003, like a fridge that empties itself every time you close the door. | |
| 20 | 20 | |
| 21 | +WordPress has rebuilt almost everything else. The editor, the site editor, the patterns, the styles. The admin's one-screen-at-a-time model is the layer nobody touched. | |
| 22 | + | |
| 23 | +OpenStation touches it. | |
| 24 | + | |
| 25 | +https://www.youtube.com/watch?v=g5MLB3WMlCc | |
| 26 | + | |
| 27 | +Install it and admin screens become draggable, resizable windows. Edit a post while the Media Library sits open next to it. Drag an image from one window straight into the other. Keep comments open in the corner. Reload the browser and your window layout — open pages, positions, sizes, and window states — comes back where you left it. | |
| 28 | + | |
| 29 | +OpenStation itself is free, GPL, and opt-in per user. One click in the admin bar turns it on for you. One click turns it off. Nobody else on your site sees anything change, and deactivating the plugin restores the classic admin exactly. No Core patches and no lock-in. Optional AI providers may charge for their service. | |
| 30 | + | |
| 21 | 31 | Built and maintained by [Automattic](https://automattic.com), the company behind WordPress.com, Jetpack, WooCommerce, and Tumblr. |
| 22 | 32 | |
| 23 | -= A real desktop = | |
| 33 | += Work on more than one thing at once = | |
| 24 | 34 | |
| 25 | -* **Windows** — drag, resize, minimize, maximize, snap, tile. Every admin page works, including plugin pages. | |
| 26 | -* **Dock & taskbar** — the admin menu becomes an icon dock; open windows live in a macOS-style taskbar. | |
| 27 | -* **Virtual desktops (Spaces)** — one desktop for writing, another for the store, another for moderation. | |
| 28 | -* **Files on the desktop** — drop posts, media, and links onto the wallpaper, organize them into folders, trash them to the Trash. | |
| 29 | -* **Session restore** — reload the browser and every window comes back exactly where you left it. | |
| 35 | +Admin pages open as windows, including pages added by most other plugins. Drag them, resize them, snap them, tile them, minimize them to a taskbar. The admin menu becomes a dock of icons. Two editors open at once is one click away. | |
| 30 | 36 | |
| 37 | += Never lose your place = | |
| 38 | + | |
| 39 | +Moving between open windows leaves each page in place. Across reloads, OpenStation remembers your open pages, window positions, sizes and states, virtual desktops, and focus. Closing a window with unsaved changes warns you first. | |
| 40 | + | |
| 41 | += A desk you can actually put things on = | |
| 42 | + | |
| 43 | +Drop posts, media, and links right onto the wallpaper. Sort them into folders. Trash them to a Trash that actually holds things. The stuff you're working on this week can just sit out where you can see it. | |
| 44 | + | |
| 45 | += One desktop per job = | |
| 46 | + | |
| 47 | +Virtual desktops, the way your operating system does them. One for writing. One for the store. One for comment triage. One for that redesign you keep poking at. Switch between them without closing anything. | |
| 48 | + | |
| 49 | += Find anything with Cmd+K = | |
| 50 | + | |
| 51 | +The full WordPress command palette, plus slash commands from your plugins, all under one keystroke. Turn on the optional AI assistant and you can ask it things like "which post had the comment asking for the recipe?" and it searches your own content to answer. (Requires an AI provider configured in Settings → Connectors on WordPress 7.0+. Details under "External services" below.) | |
| 52 | + | |
| 53 | += See how your site fits together = | |
| 54 | + | |
| 55 | +The Corkboard is an interactive, zoomable map of how your posts, pages, and products link to each other. Pan around it. Find the orphans. Find the hubs. | |
| 56 | + | |
| 57 | += Running a store? = | |
| 58 | + | |
| 59 | +Orders, Products, Coupons, and Customers become browsable folders with stock and sale ribbons. Open a customer to see their lifetime spend and what they buy most. Follow a product to its buyers, or a coupon to who redeemed it. | |
| 60 | + | |
| 31 | 61 | = Make it yours = |
| 32 | 62 | |
| 33 | -* **Wallpapers** — color presets, animated scenes, or your own image. | |
| 34 | -* **Widgets & desktop icons** — pin live widgets and shortcuts to the wallpaper; plugins can register their own. | |
| 63 | +Wallpapers, from color presets to animated scenes to your own photo. Live widgets pinned to the desktop: drafts, stats, recent comments, a focus timer. Uploadable desktop themes, including a built-in Legacy theme that brings the old WordPress blue back in one click. And Mio, a soft-body desk companion that drifts across your wallpaper and gets bumped around by your windows. Off by default. You'll turn it on. | |
| 35 | 64 | |
| 36 | -= Superpowers = | |
| 65 | += For developers = | |
| 37 | 66 | |
| 38 | -* **AI Assistant (optional)** — press Cmd+K and ask *"Which post had the comment asking for the recipe?"* It searches your own content. Requires an AI provider configured in **Settings → Connectors** (WordPress 7.0+); see "External services" below. | |
| 39 | -* **Corkboard** — an interactive, zoomable map of how your posts, pages, and products link together. | |
| 40 | -* **Cross-window drag & drop** — drag an image from the Media Library window straight into the editor in another window. | |
| 41 | -* **Command palette** — the full WordPress command palette plus slash commands from plugins, all under Cmd+K. | |
| 67 | +Extend OpenStation through documented PHP and JavaScript APIs. Register windows, icons, wallpapers, widgets, commands, and settings tabs through stable `openstation_register_*` PHP APIs and a typed JavaScript API; customize dock items through documented hooks; add AI tools with the WordPress Abilities API. Copy-paste examples live in the [developer docs on GitHub](https://github.com/WordPress/openstation/tree/trunk/docs). | |
| 42 | 68 | |
| 43 | -= Built to be extended = | |
| 69 | += External services = | |
| 44 | 70 | |
| 45 | -Every significant behavior is hookable. Register windows, dock items, wallpapers, widgets, desktop icons, commands, settings tabs, and AI tools from your own plugin — stable `openstation_register_*` PHP APIs, a typed JavaScript API, and copy-paste examples in the [developer docs on GitHub](https://github.com/WordPress/openstation/tree/trunk/docs). | |
| 71 | +No external service is required for OpenStation's desktop interface. The optional AI Assistant, two user-initiated enrichment features and an optional feedback form on deactivation make the external requests described below. | |
| 46 | 72 | |
| 47 | -= External services = | |
| 73 | +**AI Assistant** | |
| 48 | 74 | |
| 49 | -This plugin's optional **AI Assistant** sends data to the **AI provider you configure in WordPress's Settings → Connectors** (for example OpenAI, Anthropic, or Google). Generation is routed through WordPress 7.0's built-in AI Client, which supplies the credentials stored in Connectors — the plugin never handles an API key itself. With no provider configured in Connectors, no external AI requests are made. | |
| 75 | +The optional AI Assistant sends data to the **AI provider you configure in WordPress's Settings → Connectors** (for example OpenAI, Anthropic, or Google). Generation is routed through WordPress 7.0's built-in AI Client, which supplies the credentials stored in Connectors. The plugin never handles an API key itself. With no provider configured in Connectors, no external AI requests are made. | |
| 50 | 76 | |
| 51 | 77 | When the AI Assistant is enabled and a user invokes it (via Cmd+K or the slash-command palette): |
| 52 | 78 | |
| 53 | 79 | * **What is sent:** the user's prompt, the conversation history for the active session, and tool-call metadata. The plugin's built-in tools (`search_posts`, `search_pages`, `search_comments`) run WordPress's native keyword search and may include excerpts of the matching posts/pages/comments in tool results, which are then sent back to the provider as part of the agentic loop. |
| 54 | -* **When it is sent:** on user-initiated AI requests, and (if an administrator enables "Score new comments with AI") on comment-save hooks for spam analysis. Posts, pages, and taxonomy terms are not sent automatically. | |
| 80 | +* **When it is sent:** on user-initiated AI requests only. Nothing is sent automatically — posts, pages, comments and taxonomy terms are never analyzed in the background. | |
| 55 | 81 | * **Why it is sent:** to obtain model completions and tool-call decisions that drive the AI Assistant. |
| 56 | -* **Who provides the service:** whichever provider you configured in Settings → Connectors. Which provider (and endpoint) receives the data depends entirely on that configuration — review the chosen provider's own terms and privacy policy (e.g. OpenAI, Anthropic, or Google). | |
| 82 | +* **Who provides the service:** whichever provider you configured in Settings → Connectors. Which provider (and endpoint) receives the data depends entirely on that configuration. Review the chosen provider's own terms and privacy policy (e.g. OpenAI, Anthropic, or Google). | |
| 57 | 83 | |
| 58 | -No other external services are contacted by this plugin. | |
| 84 | +**URL shortcut favicons** | |
| 59 | 85 | |
| 86 | +When an authorized user creates a desktop shortcut to an external URL, OpenStation asks that URL for its page HTML and favicon so the shortcut can display the site's icon. The request is made from your WordPress server and sends the requested URL, the server's IP address, an OpenStation user-agent string, and normal HTTP request metadata to the operator of that site. This happens only when a user creates the shortcut. The destination site's terms and privacy policy apply. | |
| 87 | + | |
| 88 | +**Deactivation feedback** | |
| 89 | + | |
| 90 | +When an administrator deactivates OpenStation, a dialog asks one optional question about why. Nothing is sent unless you click **Send and deactivate**; **Skip and deactivate** sends nothing, and both deactivate the plugin. | |
| 91 | + | |
| 92 | +* **What is sent:** the reasons you ticked, the optional details you typed, the OpenStation, WordPress and PHP versions, your site language, whether the site is a network, how long OpenStation was installed, whether anyone on the site had turned it on (how many people, and how many days after install the first one did), whether the person deactivating had it on, the number of active plugins, and where the dialog was shown. Nothing that identifies you or your site: no URL, no site id, no email, no user name, no plugin names, and no IP address is stored. Each submission carries a random id used only to ignore an accidental retry. | |
| 93 | +* **When it is sent:** only when you click Send in the dialog shown on deactivation. There is no background ping. | |
| 94 | +* **Why it is sent:** to learn what did not work so it can be fixed. | |
| 95 | +* **Who provides the service:** the request goes from your server to [openstation.blog](https://openstation.blog/), the plugin's own site, operated by Automattic. Review the [Automattic Privacy Policy](https://automattic.com/privacy/). Site owners can turn the dialog off with the `openstation_deactivation_feedback_enabled` filter. | |
| 96 | + | |
| 97 | +**WordPress.org plugin information** | |
| 98 | + | |
| 99 | +When an authorized user opens or refreshes parts of OpenStation's Plugins window, OpenStation may request public plugin details, update metadata, and review excerpts from WordPress.org. These requests send plugin slugs, the site's locale, and normal HTTP request metadata to WordPress.org. This information is used only to display and manage plugins. Review the [WordPress.org Privacy Policy](https://wordpress.org/about/privacy/). | |
| 100 | + | |
| 101 | +OpenStation's OAuth relay does not contact a service by itself. Third-party plugins that configure the relay may contact their own providers and are responsible for disclosing those services. | |
| 102 | + | |
| 60 | 103 | == Installation == |
| 61 | 104 | |
| 62 | -1. Upload the plugin folder to `/wp-content/plugins/`, or install via **Plugins → Add New → Upload Plugin**. | |
| 63 | -2. Activate the plugin through the **Plugins** screen in WordPress. | |
| 105 | +1. Install via **Plugins → Add New** (search for "OpenStation"), or upload the plugin folder to `/wp-content/plugins/`. | |
| 106 | +2. Activate the plugin through the **Plugins** screen. | |
| 64 | 107 | 3. Click the **desktop** icon in the admin bar's top-right corner. The admin reloads inside the desktop shell. |
| 65 | 108 | 4. Click the same icon again at any time to return to the classic admin. |
| 66 | 109 | |
| 67 | 110 | = Optional: enable the AI Assistant = |
| @@ -71,23 +114,35 @@ | ||
| 71 | 114 | 3. Press **Cmd+K** (or **Ctrl+K**) anywhere in OpenStation to open the AI assistant. |
| 72 | 115 | |
| 73 | 116 | == Frequently Asked Questions == |
| 74 | 117 | |
| 118 | += Isn't this just a gimmick? = | |
| 119 | + | |
| 120 | +The desktop look is the visible part, so it's a fair question. But the look is a consequence, and the mechanism underneath is the point: windows hold their state, so switching tasks stops costing you your place. wp-admin is a single-document interface where every navigation destroys the last screen. OpenStation replaces that with the same concurrency model your operating system has used for decades. The research behind it goes back to Henderson and Card's "Rooms" paper at Xerox PARC in 1986. The wallpaper is just what that model looks like when you build it. | |
| 121 | + | |
| 122 | += Will this slow down my site? = | |
| 123 | + | |
| 124 | +OpenStation's desktop interface and browser assets are loaded only inside wp-admin, and only for users who have turned it on. Its PHP integration still participates in normal WordPress request handling where needed, including tracking content changes, but visitors never receive the desktop UI. | |
| 125 | + | |
| 75 | 126 | = Does this change anything for users who don't opt in? = |
| 76 | 127 | |
| 77 | 128 | No. The classic admin is untouched until a user toggles OpenStation on for themselves. Deactivating the plugin restores vanilla Core exactly. |
| 78 | 129 | |
| 130 | += Does it work with my other plugins? = | |
| 131 | + | |
| 132 | +Most plugin admin pages open as windows without special integration. Plugins that depend on running in the top-level browser context or use unusual navigation may need compatibility work. Plugins can also register their own native windows, widgets, and commands for a deeper integration. | |
| 133 | + | |
| 79 | 134 | = Does the plugin require an external service to function? = |
| 80 | 135 | |
| 81 | -No. The desktop shell, windowing, dock, taskbar, virtual desktops, widgets, wallpapers, and all extension APIs work entirely on-site. The AI Assistant is the only feature that contacts an external service, and it stays inert until an administrator configures an AI provider in Settings → Connectors. See "External services" in the description. | |
| 136 | +No. The desktop shell, windowing, dock, taskbar, virtual desktops, widgets, wallpapers, and extension APIs work without an external service. The optional AI Assistant requires a configured AI provider. OpenStation also makes limited, user-initiated requests to resolve URL-shortcut favicons and display WordPress.org plugin information, and offers an optional, one-click feedback form when you deactivate. See "External services" in the description. | |
| 82 | 137 | |
| 83 | 138 | = Does it patch WordPress core? = |
| 84 | 139 | |
| 85 | 140 | No. Every feature is wired through public WordPress actions and filters. |
| 86 | 141 | |
| 87 | -= How do I disable OpenStation for my user? = | |
| 142 | += How do I turn OpenStation off for my user? = | |
| 88 | 143 | |
| 89 | -Click the desktop icon in the admin bar a second time to flip the toggle off. The plugin can also be deactivated globally from the Plugins screen. | |
| 144 | +Click the desktop icon in the admin bar a second time. The plugin can also be deactivated globally from the Plugins screen. | |
| 90 | 145 | |
| 91 | 146 | = Where is the developer documentation? = |
| 92 | 147 | |
| 93 | 148 | In `docs/` inside the plugin, and on [GitHub](https://github.com/WordPress/openstation/tree/trunk/docs). The hook reference, JavaScript reference, bridge protocol, and copy-paste examples all live there. |
| @@ -93,15 +148,17 @@ | ||
| 93 | 148 | In `docs/` inside the plugin, and on [GitHub](https://github.com/WordPress/openstation/tree/trunk/docs). The hook reference, JavaScript reference, bridge protocol, and copy-paste examples all live there. |
| 94 | 149 | |
| 95 | 150 | == Screenshots == |
| 96 | 151 | |
| 97 | -1. Real multitasking — Users, Media, and content editing open side by side as windows. | |
| 98 | -2. Your admin, your desktop — custom wallpapers and live widgets registered by plugins. | |
| 99 | -3. The AI Assistant (Cmd+K) answers questions about your own posts, pages, and comments. | |
| 100 | -4. Corkboard — an interactive map of how your content links together. | |
| 101 | -5. OpenStation Preferences — pick a wallpaper preset, an animated scene, or upload your own image. | |
| 102 | -6. Files on the desktop — drag posts, media, and links onto the wallpaper and into folders. | |
| 103 | -7. The Trash collects trashed posts, media, folders, and shortcuts in one window. | |
| 152 | +1. Real multitasking: your posts, your preferences, and the Trash open side by side as windows. | |
| 153 | +2. Make it yours: accent colours, wallpaper presets and animated scenes, and a dock on whichever edge you like. | |
| 154 | +3. Find anything with Cmd+K: the Site Assistant opens admin pages, runs commands, and answers questions about your content. | |
| 155 | +4. Give an AI agent its own instructions and tools, then set it to work on your posts, media, and comments. | |
| 156 | +5. Live widgets on the wallpaper: post stats, recent comments, drafts, a notepad, and more from your plugins. | |
| 157 | +6. Mio, your desk companion, tuned to whatever shape, colour, and mood suits you. | |
| 158 | +7. One desktop per job: keep writing, the store, and moderation on separate Spaces. | |
| 159 | +8. Games built into the desktop, with a scoreboard shared across everyone on your site. | |
| 160 | +9. Corkboard: a zoomable map of how your posts and pages link together. | |
| 104 | 161 | |
| 105 | 162 | == Credits == |
| 106 | 163 | |
| 107 | 164 | OpenStation is brought to you by [Automattic](https://automattic.com). The plugin is open source under GPLv2-or-later; contributions are welcome on [GitHub](https://github.com/WordPress/openstation). |
| @@ -109,9 +166,9 @@ | ||
| 109 | 166 | = Third-party libraries = |
| 110 | 167 | |
| 111 | 168 | The plugin bundles the following third-party JavaScript library, loaded on demand only when a feature that needs it is in use: |
| 112 | 169 | |
| 113 | -* **[PixiJS](https://pixijs.com/)** (MIT License) — used by the interactive **OpenStation Preferences → About** scene, the **Corkboard** window, built-in canvas wallpapers (e.g. the animated WordPress logo), and the **Inkfall** typing game. PixiJS is loaded from the plugin's own `assets/vendor/` directory; no CDN requests are made. | |
| 170 | +* **[PixiJS](https://pixijs.com/)** (MIT License) — used by the **Corkboard** window, built-in canvas wallpapers (e.g. the animated WordPress logo), the **Mio** desk companion, and the **Inkfall** typing game. PixiJS is loaded from the plugin's own `assets/vendor/` directory; no CDN requests are made. | |
| 114 | 171 | |
| 115 | 172 | = Data files = |
| 116 | 173 | |
| 117 | 174 | The **Inkfall** game's word list (`assets/games/inkfall/words.txt`) is generated from the following sources (attribution also ships in the file's header): |
| @@ -121,299 +178,285 @@ | ||
| 121 | 178 | * **[LDNOOBW English list](https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words)** (CC-BY 4.0) — used as an exclusion filter. |
| 122 | 179 | |
| 123 | 180 | == Changelog == |
| 124 | 181 | |
| 125 | -= 1.0.0 = | |
| 126 | -* Desktop Mode is now OpenStation — new name, new look, same plugin. Settings, files, sessions and desktop layouts carry over untouched. | |
| 127 | -* The site folder is now WP Explorer, and OS Settings is now OpenStation Preferences. | |
| 128 | -* A new palette and typography, with four wallpapers: Galaxy (the new default), Space, Holomesh and Pulsemesh. | |
| 129 | -* Desktop Mode (Legacy) — a built-in desktop theme that puts the previous look back in one click, WordPress blue included. | |
| 130 | -* Mio — a soft-body desk companion that drifts across the wallpaper and gets pushed around by your windows. Off by default; turn it on from the dock. It also ships as a standalone script you can drop on any page, WordPress or not. | |
| 131 | -* Holographic controls — switches, primary buttons and selected items catch an iridescent mesh on hover and press. | |
| 132 | -* New Switch component, and a searchable Components tab in OpenStation Preferences. | |
| 133 | -* Select more than one thing at a time — click, Ctrl-click, Shift-click, marquee and Cmd+A on the desktop and in every folder window, with WordPress's own bulk actions and multi-item drag. | |
| 134 | -* Custom post types now appear in WP Explorer, grouped into a folder named after the plugin or theme that registered them. | |
| 135 | -* Post tiles show their featured image instead of a generic icon, which turns a catalogue into a photo grid. | |
| 136 | -* WooCommerce — Orders, Products, Coupons and Customers as browsable folders, with out-of-stock, low-stock, backorder and sale ribbons, and a details pane showing price, stock, order totals, line items and coupon usage. | |
| 137 | -* Open a customer for their lifetime spend, what they buy most and their recent orders, and follow a product to its buyers or a coupon to who redeemed it. | |
| 138 | -* The editor's preview companion follows your typing in the classic editor too, and opens straight away instead of waiting on a save. | |
| 139 | -* Plugins can accept files dropped onto their own desktop icon, via `wp.os.files.registerTilePayloadHandler()`. | |
| 140 | -* The Games leaderboard refreshes the moment a run finishes, instead of waiting for a reload. | |
| 141 | -* Fix the Media Library's uploader button opening a window instead of the inline uploader, and uploaded files not reaching the grid until the window was reopened. | |
| 142 | -* Fix context menus opened near the bottom of the screen running off the edge, which put most of their options out of reach. | |
| 143 | -* Fix Quick Edit and Bulk Edit going dead once a list refreshed in place. | |
| 144 | -* Fix the classic revisions screen opening in a browser tab instead of a window, and restoring a revision leaving a stale editor behind. | |
| 145 | -* Fix closed windows reappearing after a refresh, and window state being lost when several windows were closed in quick succession. | |
| 146 | -* Fix the widget column rendering empty. | |
| 147 | -* Desktop icons and file tiles now fade out in Overview, so they no longer collide with window thumbnails. | |
| 148 | -* Fix `wp.os.activity.subscribe()` never receiving events — channel names containing a slash were silently rejected. | |
| 149 | -* The portal URL moved from `/desktop-mode/` to `/openstation/`. Reinstall the app if you added OpenStation to your home screen. | |
| 150 | -* For plugin authors: `wp.desktop` is now `wp.os`, `<wpd-*>` components are `<os-*>`, PHP functions and hooks use the `openstation_` prefix, and activity channels moved from `desktop-mode/<event>` to `os/<event>`. Stored data — options, meta, custom tables, REST namespaces and the WordPress.org slug — is unchanged. | |
| 182 | += 1.1.11 = | |
| 183 | +* Overview: Replace the dock tile icon with the brand widgets glyph | |
| 184 | +* Workspaces: Only offer a template when its plugin is active | |
| 185 | +* Admin bar: Remove the OpenStation actions, keep only the way in | |
| 186 | +* Workspaces: Rename Overview to Workspaces | |
| 187 | +* Agents: Keep the chat on the latest message across status repaints | |
| 188 | +* Workspaces: Land on the new blank desk before the wizard opens | |
| 189 | +* Workspaces: Rename a desk by double-clicking its name | |
| 190 | +* Chromeless: Fit the boot SPA screens edge to edge again | |
| 191 | +* WP Explorer: Show revision titles as text, not an avatar tag | |
| 192 | +* Fix: Let Jetpack route its own Stats and Blaze links | |
| 193 | +* User Edit: Add a View activity footprint button to the profile sidebar | |
| 194 | +* Fix: Jetpack Stats v2 not loading properly | |
| 195 | +* Drafts widget: Say why suggestions failed instead of "Could not get suggestions." | |
| 196 | +* Desktop: Make the desk readable on light wallpapers | |
| 197 | +* Session: Restore window titles in the current admin language | |
| 198 | +* Fix mixed-field forms for OpenStation Studio apps | |
| 199 | +* Recycle Bin: Fix 404 error on requests | |
| 200 | +* Prevent bottom dock scroll item clipping | |
| 201 | +* Os-button: forward a host aria-label onto the inner button so an icon-only button has a name | |
| 202 | +* Make corner close button visible on touch devices. | |
| 203 | +* Workspaces: Let the wizard's step trail jump to any step | |
| 204 | +* App runtime: open_url honours native-window URL remaps before opening an iframe | |
| 205 | +* Os-table: a slot-shaped cell value renders a named slot the light DOM fills | |
| 206 | +* Resolve toggle visibility and spacing on tablet screens. | |
| 207 | +* Notes: Say why converting a note to a post failed and keep the draft reachable | |
| 208 | +* Say why a request failed, everywhere: shared REST error, failure mapper, toast tone | |
| 209 | +* Workspaces: Repaint the desk you land on after deleting a workspace | |
| 210 | +* Menus: Open a window per pick, and make a window's tabs its menu | |
| 211 | +* Agents: store an answerless run as an error row so it is never replayed as the agent's turn | |
| 212 | +* Performance: Serialize each script dependency's payload once, not once per entry | |
| 213 | +* Developers: Let plugins track the desktop's network requests | |
| 214 | +* Kit: <os-facts> + <os-fact>, and the three apps that hand-rolled it | |
| 151 | 215 | |
| 152 | -= 0.9.8 = | |
| 153 | -* Desktop Themes — uploadable ZIP theme system | |
| 154 | -* Add a Drafts widget | |
| 155 | -* Add a window corner-radius setting (Sharp / Default / Round) | |
| 156 | -* Add editor-preview eye button with live split-view preview | |
| 157 | -* Correct the AI Copilot and settings tab references | |
| 158 | -* Update wp-coding-standards/wpcs to 3.4.1 | |
| 159 | -* Strip version-history annotations across PHP, TS, and Markdown | |
| 160 | -* Fix invisible context menus and confirm dialogs (transparent panel background) | |
| 161 | -* Let a desktop theme recommend OS settings | |
| 162 | -* Fix window id plumbing, and restore native windows across a reload | |
| 163 | -* Decode html entities in post excerpts | |
| 164 | -* Fix Recycle Bin Sync | |
| 165 | -* Add Aero Peek preview with snap-back to dock peek | |
| 166 | -* Fix Cmd+K entity search not finding posts in Commands mode | |
| 167 | -* Make the command palette follow the active desktop theme | |
| 168 | -* Redesign the native Comments window as a two-pane conversation view | |
| 169 | -* Keep menu edit links inside the current window | |
| 170 | -* Name desktop objects after things, not after the software | |
| 171 | -* Give tooltips their own two theming tokens | |
| 172 | -* Add an AI writing assistant to the Drafts widget | |
| 173 | -* Fix active tab underline highlight in Appearance Add Theme view | |
| 174 | -* Show the whole component kit in OpenStation Preferences, and make it searchable | |
| 175 | -* Expose dock glyph and focused window control colours as tokens | |
| 176 | -* Overview: show minimized windows in grid to fix badge count mismatch | |
| 177 | -* Decode html entities in recycle bin | |
| 178 | -* Add an admin-bar presentation mode to OpenStation Preferences and the theme system | |
| 179 | -* AI Agents framework: agents as WordPress users, abilities runner, chat with persisted conversations, drag & drop and Send to triggers | |
| 180 | -* Close privilege-escalation and session-bypass paths | |
| 181 | -* Enforce strict structured-output schemas at the provider boundary | |
| 182 | -* Add window reveal animations | |
| 183 | -* Add Popup Siege as a OpenStation game extension | |
| 184 | -* Add SOL Inbound Monologue RSS reader extension | |
| 185 | -* Drop the esbuild CSS syntax warning in the drafts widget | |
| 186 | -* Improve the agents chat and Agents section UX | |
| 187 | -* Contain window-reveal play failures and stop over-promising `owner` | |
| 188 | -* Enhance agent capabilities and HTTP timeout management | |
| 189 | -* Provider robustness — OpenAI strict schema, Anthropic refusals, retries, real request timeout | |
| 216 | += 1.1.10 = | |
| 217 | +* Fix: drop a plugin zip into Core's upload box, not the Media Library dialog | |
| 218 | +* Multisite: Open sites without OpenStation in a browser tab | |
| 219 | +* Preferences: Open from the network admin shell | |
| 220 | +* Network app: Open from a desktop icon instead of a dock tile | |
| 221 | +* Highlight the best matching control in Preferences search | |
| 222 | +* Fix: External apps work on activation without needing to refresh | |
| 223 | +* Multisite: Drop Site Spaces from the Network Admin tile comments | |
| 224 | +* Multisite: Route My Sites and network Sites links out of the window | |
| 225 | +* Remove AI comment scoring from the shell | |
| 226 | +* Add responsive grid, app frame, and resizable split layouts | |
| 227 | +* Default theme: toning down accent | |
| 228 | +* Separate hidden columns for posts and pages | |
| 229 | +* Fix: keep metabox screens two-column down to 796px | |
| 230 | +* Overview: Merge the two edit controls on desktop tiles | |
| 231 | +* Plugins: Add AllTerrain MAIA to the Featured tab | |
| 232 | +* Ask one optional question when OpenStation is deactivated | |
| 233 | +* Plugins: Add a Plugin File Editor tab to the native Plugins window | |
| 190 | 234 | |
| 191 | -= 0.9.7 = | |
| 192 | -* Add Drafts widget | |
| 193 | -* Add Focus Timer widget | |
| 194 | -* Fix window title bar pushed off-screen during top-edge resize | |
| 195 | -* Enforce viewport boundaries during window resize | |
| 196 | -* Fix hiding a dock-placed native window's tile via Apps & Icons | |
| 197 | -* Fix window dragging allowing windows to disappear off right/bottom edges | |
| 198 | -* Folder-upload desktop refresh + inline upload previews | |
| 199 | -* Reset the plugin-update notifiers live after updates run | |
| 200 | -* Decode html entities in widget titles | |
| 201 | -* Fix window drag bounds | |
| 202 | -* Focus Timer: react to the linked window closing | |
| 203 | -* Make the games framework an opt-in Extended option (off by default) | |
| 204 | -* Cut idle server load, boot weight, and package size | |
| 205 | -* Live-refresh Plugins window after install/activate/deactivate | |
| 235 | += 1.1.9 = | |
| 236 | +* Add saved Plugins table view and fix preserved table rendering | |
| 237 | +* OS Settings: let a registered settings tab name its sidebar glyph | |
| 238 | +* Fix timeout stalled plugin updates | |
| 239 | +* Fix dock overlap on maximized and snapped windows | |
| 240 | +* Posts: paint plugin columns on the writing-desk cards | |
| 241 | +* My WordPress: gate the user dossier aggregates on the viewer | |
| 242 | +* Add window-scoped MIO assistance and private Settings actions | |
| 206 | 243 | |
| 207 | -= 0.9.6 = | |
| 208 | -* Improved button accessibility and visual feedback by implementing the missing busy spinner and aria-busy attributes on the Button component | |
| 209 | -* AI assistant as the shell's ⌘K palette (Commands + Ask AI) | |
| 210 | -* Add pinned notes: paper notes with a pushpin, composed in a Note Pad widget | |
| 211 | -* Improve minimized window UX with restore support and count badges | |
| 212 | -* Surface core admin notices once in the desktop shell | |
| 213 | -* Convert pinned notes into draft posts | |
| 214 | -* Normalize AI Copilot tool schemas for the provider | |
| 215 | -* Add a game system: Games hub, unified scoreboard, challenges, and Inkfall | |
| 216 | -* Keep URL-style menu slugs (ACF) as direct admin links | |
| 217 | -* Add Alphabet Soup game; generalize game infra out of Inkfall | |
| 218 | -* Fix 404 from wallpaper Sort By when a synthetic tile is on the desktop | |
| 219 | -* Fix illegible text fields inside os-modal dialogs | |
| 220 | -* Fix empty custom-gradient editor after re-selecting the wallpaper | |
| 221 | -* Add Related-entities title-bar navigation with open PHP/JS filter surface | |
| 222 | -* Admin bar visibility when fullscreen window is minimized | |
| 223 | -* Allow selecting window from Overview view | |
| 224 | -* Show open window indicators for bottom dock tiles | |
| 225 | -* Add busy state and spinner to os-button | |
| 226 | -* Redesign session-expiry recovery: one login prompt, in-place recovery | |
| 227 | -* Fix folder rename not reflected on the desktop until refresh | |
| 228 | -* Live-refresh list windows on content changes (posts, CPTs, comments, WooCommerce orders) | |
| 229 | -* Add real file/folder storage on the desktop | |
| 230 | -* Fix gamepad icon missing from the window title bar (data-URI window icons) | |
| 231 | -* Fix content graph taxonomy fallback | |
| 244 | += 1.1.8 = | |
| 245 | +* Files: add uploaded files to the Media Library, and start a post or page from an image | |
| 246 | +* Add minimize and restore dock animations. | |
| 247 | +* Fix native app windows restoring the wrong saved instance | |
| 248 | +* Fix Native Users tables action icons visibility | |
| 249 | +* Add optimistic Trash updates and Explorer previews | |
| 250 | +* Redesign native Plugins, Posts, Pages, and Users workspaces | |
| 251 | +* Multisite: an OpenStation network of separate installs, with one switcher on every one | |
| 252 | +* Add the data-model page and unbreak the wiki sync | |
| 253 | +* Network: log in on arrival, mark external sites, and keep the switcher live | |
| 254 | +* Harden stored-file cleanup and make presence updates atomic | |
| 255 | +* Network: opt-in through an extended option, off by default | |
| 256 | +* Fix agent request timeouts and stale Recycle Bin contents | |
| 257 | +* Make preloading and shared cache opt-out Extended options | |
| 258 | +* Post Stats: draw the chart chrome in tokens instead of hardcoded black | |
| 259 | +* Preserve preferences on theme switch | |
| 260 | +* Os-text-field: add hide-label so a compact field can have a name without a visible label | |
| 261 | +* Widgets: raise the frame's chrome buttons to the 24px target-size floor | |
| 262 | +* AI Copilot: keep password-protected posts out of the search abilities | |
| 263 | +* Agents: seal password-protected posts in the get-post ability | |
| 264 | +* AI Copilot: gate comment search on parent-post readability | |
| 265 | +* My WordPress: scope the term-stats endpoint to posts the caller may read | |
| 266 | +* AI Copilot: authorize the model-named entity id before building the entity card | |
| 267 | +* My WordPress: gate the comment dossier on the window capability and parent-post readability | |
| 232 | 268 | |
| 233 | -= 0.9.5 = | |
| 234 | -* AI Copilot now uses WordPress 7.0 providers: configure a provider once in Settings → Connectors and the assistant uses it — no more per-plugin keys | |
| 235 | -* AI Copilot tools are now WordPress Abilities, so the assistant works across any configured provider; plugin authors add their own tools with the Abilities API (`openstation_register_ai_tool()` was removed) | |
| 236 | -* Removed the OpenStation Preferences → AI tab; the per-user "AI assistant" toggle now lives in OpenStation Preferences → Features next to "Score new comments with AI" | |
| 237 | -* Requires WordPress 7.0 for the AI assistant only; on older WordPress the assistant is hidden and the rest of OpenStation is unaffected | |
| 238 | -* Stored AI keys are deleted from the database on upgrade | |
| 239 | -* Five new built-in widgets: Recent Comments, Post Stats, Site Views, Jazz Quote, and Starter | |
| 240 | -* Widgets can now be resized, and docked widget heights persist across sessions | |
| 241 | -* Two new wallpapers, Living Tree and Snow, plus per-wallpaper settings dialogs | |
| 242 | -* Window links: windows showing related content are visually connected, with pluggable link renderers for plugin authors | |
| 243 | -* Spring-loading: hovering a window while dragging anything brings it to the front | |
| 244 | -* New developer mode setting (OpenStation Preferences → Features) unlocks developer-facing surfaces | |
| 245 | -* WordPress update notices now surface once in the desktop shell instead of repeating in every window | |
| 246 | -* Desktop shortcuts stay in sync and core icons follow the spatial layout | |
| 247 | -* Extended options merged into the OpenStation Preferences → Features tab | |
| 248 | -* Fixed selection bugs that could point destructive actions at the wrong files | |
| 249 | -* Closing a window with unsaved changes now warns instead of silently losing work | |
| 250 | -* Fixed windows and dock state leaking across virtual desktops | |
| 251 | -* Fixed Overview keyboard navigation and focus trapping | |
| 252 | -* The dock now refreshes live when a plugin registers a new post type | |
| 253 | -* Fixed dock icon alignment, "Add New" window titles and icons, and count-label pluralization | |
| 269 | += 1.1.7 = | |
| 270 | +* Files: paint a dropped folder's tile as soon as it exists | |
| 271 | +* Shell: keep third-party scripts out of os-* fields and fixed panels out of the dynamic bar | |
| 272 | +* Files: drop the marching-ants frame from the wallpaper drop highlight | |
| 273 | +* WP Explorer: hover card off, preview pane only when open; Note Pad: drop the Public checkbox and Pin button | |
| 274 | +* Admin bar: keep items the bar's height; shell starts below the bar's measured edge | |
| 254 | 275 | |
| 255 | -= 0.9.3 = | |
| 256 | -* Rewrite WordPress.org plugin page, leaner copy, video embed, screenshots | |
| 257 | -* Review: doc/comment accuracy, security hardening, and cleanups across the plugin | |
| 276 | += 1.1.6 = | |
| 277 | +* Fix: Script loading: read the concat blob's handle list, so a lazily-loaded package stops replacing wp.hooks | |
| 278 | +* Fix: Shell boot: a target is one-shot and must be a real page, so a reload stops opening an empty window | |
| 279 | +* Add close all windows keybinds. | |
| 280 | +* Multisite: support the network admin, and scope desktops per site | |
| 281 | +* App Framework — a window in one PHP file (.osx.php + optional .os.ts), Code Blue & WP Explorer rebuilt on it | |
| 282 | +* App Framework DX: warn on the silent footguns, trace dispatches, open client views to third parties | |
| 283 | +* Trash: the Recycle Bin rebuilt on the App Framework — 659 lines against 1,869, the frozen id claimed, the legacy window deleted whole | |
| 284 | +* Station Home: the native Dashboard rebuilt on the App Framework — 931 lines against 1,323, no client script, the legacy window deleted whole | |
| 285 | +* WP Explorer: a list view — ids, slugs, dates and counts in sortable columns, remembered per user | |
| 286 | +* OpenStation Preferences: the settings window rebuilt on the App Framework — 4,858 lines against 7,136, the panel bundle deleted whole | |
| 287 | +* WooCommerce orders open on new window | |
| 288 | +* Multisite: drop deleted sites' tables, Core parity for site admins, per-site PWA, and a multisite CI job | |
| 289 | +* [Proposal] Workspaces — desktops that know what they're for | |
| 290 | +* Fix portal redirect: leave sub-resource fetches alone, so Jetpack's admin-bar sparkline renders | |
| 291 | +* Multisite: Site Spaces — another admin opens on its own desktop | |
| 292 | +* App Framework: find an app's client bundle without its TypeScript source, so packaged installs open client-view apps | |
| 293 | +* Code Blue: read the error without resizing, and a read-only skill that investigates it | |
| 294 | +* Drafts: name a draft's window after the draft, not the whole row | |
| 295 | +* Mobile: the phone layer — wp.os.mode, full-screen apps, switcher, tab bar | |
| 296 | +* Mobile: one desk on a phone — fold every desktop, switch workspaces off | |
| 297 | +* Mobile: fit the installed app to a phone — display stamp, no zoom, anchored tab bar | |
| 298 | +* Mobile: the native apps on a phone — one tap, one pane, pinch, and a self-updating PWA | |
| 299 | +* PWA: the shell never reloads itself — a waiting worker, a build stamp, and a Reload the user takes | |
| 300 | +* Chromeless: fix in-page title actions a plugin has grouped | |
| 301 | +* Drafts: fix the row's interaction states and name its actions | |
| 302 | +* App icons: full-bleed tiles, three purposes, and an apple-touch-icon | |
| 303 | +* Mobile: the list windows as cards, a bin that looks full, Explorer's item as a page | |
| 304 | +* Apps: Posts, Pages, Users, User Edit, Plugins and Comments become App Framework apps | |
| 305 | +* Mio: the inner line the artwork always had | |
| 306 | +* Preserve rapid extended options saves | |
| 307 | +* Multisite: every site is its own OpenStation, with a site switcher in overview | |
| 258 | 308 | |
| 259 | -= 0.9.2 = | |
| 260 | -* Persist welcome-dialog dismissal when OpenStation is disabled | |
| 261 | -* Welcome dialog reappears on every page when the admin is served from an origin that differs from `site_url` | |
| 309 | += 1.1.5 = | |
| 310 | +* Add OpenStation Beta: install builds from PR branches, trunk, or stable | |
| 311 | +* Pin every action to a commit SHA, prune closed PRs' zips from ci-artifacts | |
| 312 | +* Shell screen: boot the desktop from its own admin page instead of riding on the Dashboard | |
| 313 | +* Register --wp-admin-theme-color so chromeless documents never compute it to transparent | |
| 314 | +* Sync active Post/Page tab when navigating to Add Post from the Dock | |
| 315 | +* Attribute columns save to active window id | |
| 316 | +* Hotfix: a dock flyout holds a rail out, it never summons a parked one | |
| 317 | +* Revisions: open the revision browser in its own window | |
| 318 | +* Two low-contrast fixes in native windows: the shell document leaves quirks mode, and a neutral crumb stops pinning its paint inline | |
| 319 | +* Window channels: one set of books, so a window can leave its loading overlay | |
| 320 | +* Command palette: a harvested command that throws says so, instead of nothing at all | |
| 321 | +* Widgets: declare the card's token contract, so a widget's muted text stops landing at 3.81:1 | |
| 322 | +* In-window navigation: ask before painting, so a cancelled "Leave site?" stops stranding the window | |
| 262 | 323 | |
| 263 | -= 0.9.1 = | |
| 264 | -* Make native list windows opt-in (Beta) instead of opt-out | |
| 265 | -* Scope AI to comment spam + native-search assistant | |
| 266 | -* Feat/unfocus window effects | |
| 267 | -* Fix placement, gear/Help, and dock⇄desktop visibility bugs | |
| 268 | -* Fix Guidelines-experiment 404 noise, duplicate welcome dialog, and unused-preload warnings | |
| 269 | -* Add "View activity footprint" row action in Users list | |
| 324 | += 1.1.4 = | |
| 325 | +* Tooling: a deterministic boot-cost measurement for the shell document | |
| 326 | +* Native-window script data ships once per handle, not once per window (boot document −8.9%) | |
| 327 | +* The boot config ships references, not copies (boot document −12.8%) | |
| 328 | +* The shell-bundle diet — five features leave desktop.min.js (−21% vs the v1.1.3 release) | |
| 329 | +* Tooling: mirror docs/ into the GitHub wiki on every trunk push | |
| 330 | +* Purge pre-1.0 history and reconcile every page with the code | |
| 331 | +* Agents: give the cast faces, and rebuild create as a guided flow | |
| 332 | +* Shared admin-asset cache + hover window prewarming (opt-in) | |
| 333 | +* The shell asks the service worker for a screen before you click it | |
| 334 | +* Fix: Sub-pages within main page are not shown in dock menu | |
| 335 | +* Fix: Tile icons in the wallpaper can't display correctly some characters | |
| 336 | +* Windows stop paying for a command palette they never show | |
| 337 | +* The command palette stops costing every window and every boot | |
| 338 | +* Sync layout and status on settings rollback | |
| 339 | +* Decode HTML entities in Corkboard titles. | |
| 340 | +* A window stops building the admin bar it never draws | |
| 341 | +* Perf regression sweep: every finding, fixed | |
| 342 | +* Show a loader in place for every lazy-loaded surface | |
| 343 | +* Corkboard: keep a sparse board centred and explained | |
| 344 | +* The shell stops bouncing /wp-admin/ through the portal | |
| 345 | +* Trash: Hide the list chrome while the bin is empty | |
| 346 | +* Status ring: report classic form saves, and stop reporting reads | |
| 347 | +* Dynamic dock: auto-hide behavior setting, and one shared work area so windows, widgets, icons and graphs stay clear of the dock | |
| 348 | +* Adding Nuria as a contributor | |
| 270 | 349 | |
| 271 | -= 0.9.0 = | |
| 272 | -* Gate per-user REST routes on OpenStation enabled | |
| 273 | -* Refine recycle bin badge styling and sync on stop | |
| 274 | -* Clear comments selection after applying action | |
| 275 | -* Don't let a failing sync block the agent | |
| 276 | -* Make the AI-disabled error link to AI Settings | |
| 350 | += 1.1.3 = | |
| 351 | +* Refresh file associations when openers change | |
| 352 | +* Add Code Blue, the error-log reader app | |
| 353 | +* Station Home: stop claiming Dashboard subpages | |
| 354 | +* Add MailPoet compatiblity | |
| 355 | +* Station Home: make it opt-in via OS Settings → Features | |
| 356 | +* Components: the missing-import demo shows the code it talks about | |
| 357 | +* Desktop icons: one reading order per canvas, and a bounded scan | |
| 358 | +* Trash: localize config before the lazy payload harvest | |
| 359 | +* Corkboard: disc nodes by default, pins one row away | |
| 360 | +* Unfocus effects: split view is not "behind" | |
| 361 | +* Menu-refresh probe: attach script data before the payload harvest | |
| 362 | +* Windows: companion stylesheets, and the Woo CSS stops riding every page | |
| 363 | +* Plugin icons still missing | |
| 364 | +* Defer every window stylesheet to first open; fix shared-bundle configs; real theming tokens in Users/Profile | |
| 365 | +* Virtual desktops: rename in place, and four overview fixes | |
| 366 | +* Defer the command palette's Gutenberg runtime to first ⌘K | |
| 277 | 367 | |
| 278 | -= 0.8.9 = | |
| 279 | -* Improve drag-and-drop handling in chromeless bridge and iframe bridge | |
| 280 | -* The whole shell loads faster, especially the first time you open wp-admin | |
| 281 | -* Open an app from the wallpaper or from the dock — it's the same window now (no more two copies floating around) | |
| 282 | -* Minimize a window and the dock icon shows it's minimized — even if you opened it from the desktop icon | |
| 283 | -* Click "+ New" twice and you get two editors. Drafting a post and want to start another? Just click again | |
| 284 | -* "Switch to OpenStation" always takes you to the dashboard, so you know where you're starting from | |
| 285 | -* Resizing a window and accidentally letting go over the desktop no longer minimizes everything | |
| 286 | -* WooCommerce: the "Add Order" button is back on the Orders page | |
| 287 | -* "Add New" buttons (Add Post, Add Order, Add anything) stay visible inside every plugin page | |
| 288 | -* After we ship a fix, you get it on your next page load — no more "try refreshing twice" | |
| 368 | += 1.1.2 = | |
| 369 | +* Window: the open-animation deadline must not outlive its window | |
| 370 | +* Update notice: show the vinyl card when the release post lands late | |
| 371 | +* Add native Station Home dashboard | |
| 372 | +* Explorer: better third party apps integration | |
| 373 | +* Icons: adopt @wordpress/icons and draw the shell from one set | |
| 374 | +* Files: a drag out of the Media Library lands on the desktop | |
| 375 | +* Preserve and forward select host aria-label | |
| 376 | +* Navigation: one model decides where every menu, app and control lives | |
| 377 | +* Take the shell off the editor's typing path | |
| 378 | +* Widgets: reveal the add button on hover and snap floating widgets to a grid | |
| 379 | +* Appearance → Editor: the window's tab strip goes dark once the site editor loads | |
| 380 | +* Replace About scene with RSS-powered journal | |
| 381 | +* Tests: End the About CSS slice at the next section, not a named one | |
| 382 | +* Dock: keep off-site admin menus out, and put the wp-admin originals back | |
| 289 | 383 | |
| 290 | -= 0.8.8 = | |
| 291 | -* Align dock badge with in-window update count | |
| 292 | -* Make every dock scrollable, keep system tiles pinned | |
| 293 | -* No more flash when you create, move, or delete a file or shortcut on the desktop | |
| 294 | -* Trashing a folder that contained other folders now works (used to silently fail) | |
| 295 | -* Drag an image from the Media Library straight into a Gutenberg post, it now inserts | |
| 296 | -* Edit User screen: the form is centered instead of pinned to the left | |
| 297 | -* Title-bar icons (Help, etc.) are now visually centered | |
| 298 | -* Sticky notes powered by WP Guidelines | |
| 384 | += 1.1.1 = | |
| 385 | +* My WordPress: let the entity hover card follow the desktop theme | |
| 386 | +* Expose and sync status ribbons setting | |
| 387 | +* Load window, wallpaper and widget bundles on demand | |
| 388 | +* Components: add <os-field-row>, <os-token-field> and <os-repeater> | |
| 389 | +* Windows: guard focus(), unstick the opening class, add child windows | |
| 390 | +* Files: make the conflict toast's "View folder" actually open the folder | |
| 391 | +* Notch: place it behind the windows | |
| 392 | +* Update the wp.org screenshots for the current shell | |
| 393 | +* Windows: make Reload a common action for native windows too | |
| 394 | +* Themes: answer every palette literal in the Legacy snapshot | |
| 395 | +* Settings: open the Custom accent's colour wheel on its own swatch | |
| 396 | +* Components: a dark dialog owns its surfaces, not just its text | |
| 397 | +* Redesign the WordPress Themes workspace | |
| 398 | +* Hide iridescence slider when effect is off | |
| 399 | +* Hide wobble sliders when effect is off | |
| 299 | 400 | |
| 300 | -= 0.8.7 = | |
| 301 | -* Bump Tested up to WordPress 7.0 | |
| 302 | -* Fix plugins window stale-nonce 'Cookie check failed' on long-running sessions | |
| 303 | -* Fix plugin .zip drop routing to Media Library uploader | |
| 304 | -* Add server-side search to entity list views | |
| 305 | -* Rename Browse tab to Add Plugin | |
| 306 | -* Drag and drop improvements | |
| 401 | += 1.1.0 = | |
| 402 | +* Consolidate navigation into a single dock | |
| 403 | +* Notes: Merge the sticky-notes into pinned notes | |
| 404 | +* Confirm dialog: route Enter to the focused button, trap and restore focus | |
| 405 | +* Posts window: Pluralize the bulk-action confirm text | |
| 406 | +* Windows: Fix the accessibility semantics of controls, tabs and loading | |
| 407 | +* Make the active window tab a frosted plate that slides | |
| 408 | +* A11y: keep actionable toasts alive while attended, trap focus in first-run dialogs | |
| 409 | +* Add the missing Domain Path header | |
| 410 | +* AI: Internationalize the assistant overlay | |
| 411 | +* Dashboard: Stop the welcome panel dismiss opening a stray window | |
| 412 | +* Shell: exit OpenStation when the plugin stops being active | |
| 413 | +* AI: Drop the SSE transport and answer over a single request | |
| 414 | +* Activity indicator: settle on the response, not on the promise | |
| 415 | +* Native windows: Remove the first-open intro modals | |
| 416 | +* Woo relations: a refund is not a purchase; user tiles: carry their key | |
| 417 | +* Settings: Redesign of this panel and regrouping | |
| 418 | +* Refresh folder share action on settings save | |
| 419 | +* Fixes: silent settings loss, folder-sharing visibility, and wallpaper shortcuts | |
| 420 | +* Dock: Move the admin bar's jobs into the dock and a notch | |
| 421 | +* Trash: Drop the desktop icon, and let a placeable tile choose its rail | |
| 307 | 422 | |
| 308 | -= 0.8.6 = | |
| 309 | -* Light indicators for native-window-target dock icons | |
| 310 | -* Additional fixes and polish | |
| 311 | -* Add compatibility layer for Divi script dependencies and tests | |
| 312 | -* Show plugin icons | |
| 313 | -* Open off-site menu items in a new browser tab | |
| 423 | += 1.0.1 = | |
| 424 | +* AI: the assistant answers over a single request again; live progress streaming is gone | |
| 425 | +* Tile contrast, comments-window styling, Overview clicks, and preview refreshes | |
| 426 | +* Always show the Agents section in WP Explorer | |
| 427 | +* Windows: Preserve fullscreen state after leaving Overview | |
| 428 | +* Decode HTML entities in plugin install toast | |
| 429 | +* Settle a pending Overview exit before re-entering | |
| 430 | +* AI: surface an empty final answer as an error instead of a silent success | |
| 431 | +* Experimental: Set OpenStation windows free into real OS windows (Electron adapter) | |
| 314 | 432 | |
| 315 | -= 0.8.6-rc1 = | |
| 316 | -* Tag cloud & category mindmap: search, clustering, server cache | |
| 317 | -* Drag & Drop from local desktop | |
| 318 | -* Implement loading skeletons and staggered animations for file tiles | |
| 319 | -* Arrow-key shortcuts + Overview-from-Show-Desktop fix | |
| 320 | -* Shortcuts popover, dock-style tooltips, reorder | |
| 321 | -* Add Featured Plugins View and Ribbon Component | |
| 322 | -* Add "Automatic Updates" column and related functionality to Plugins window | |
| 323 | -* Add window notices feature with persistent dismissal and server sync | |
| 324 | -* Polish four framework surfaces for plugin authors | |
| 325 | -* Disable focus on other window actions | |
| 326 | -* Add Media section to "My WordPress" + uniform preview-pane hook surface | |
| 327 | -* Refactor My WordPress to use `<os-tile>` + add post status ribbons | |
| 328 | -* Allow deactivating plugins in CMO desktop & dock | |
| 329 | -* OS-file drop — progress UI, live refresh, cancel cleanup, CMO | |
| 330 | -* Group-by selector + click-to-deselect + focused-icon centering | |
| 331 | -* Test against PHP 8.3 and 8.4 | |
| 332 | -* Enhance minimize/restore behavior to preserve pre-minimize state and add cross-state transition tests | |
| 433 | += 1.0.0 = | |
| 434 | +* Desktop Mode is now OpenStation — new name, new look, same plugin. Settings, files, sessions and desktop layouts carry over untouched. | |
| 435 | +* The site folder is now WP Explorer, and OS Settings is now OpenStation Preferences. | |
| 436 | +* A new palette and typography, with four wallpapers: Galaxy (the new default), Space, Holomesh and Pulsemesh. | |
| 437 | +* Desktop Mode (Legacy) — a built-in desktop theme that puts the previous look back in one click, WordPress blue included. | |
| 438 | +* Mio — a soft-body desk companion that drifts across the wallpaper and gets pushed around by your windows. Off by default; turn it on from the dock. | |
| 439 | +* Holographic controls, a new Switch component, and a searchable Components tab in OpenStation Preferences. | |
| 440 | +* Multi-select everywhere: click, Ctrl-click, Shift-click, marquee and Cmd+A, with WordPress's own bulk actions and multi-item drag. | |
| 441 | +* Custom post types now appear in WP Explorer, grouped by the plugin or theme that registered them. | |
| 442 | +* Post tiles show their featured image instead of a generic icon. | |
| 443 | +* WooCommerce — Orders, Products, Coupons and Customers as browsable folders, with stock and sale ribbons, customer lifetime spend, and coupon redemption views. | |
| 444 | +* The editor's preview companion follows your typing in the classic editor too, and opens straight away instead of waiting on a save. | |
| 445 | +* Many fixes: Media Library uploads, context menus near the screen edge, Quick Edit after list refreshes, revisions opening in-window, window state across refreshes. | |
| 446 | +* The portal URL moved from `/desktop-mode/` to `/openstation/`. Reinstall the app if you added OpenStation to your home screen. | |
| 447 | +* For plugin authors: `wp.desktop` is now `wp.os`, `<wpd-*>` components are `<os-*>`, PHP functions and hooks use the `openstation_` prefix, and activity channels moved to `os/<event>`. Stored data — options, meta, custom tables, REST namespaces and the WordPress.org slug — is unchanged. | |
| 333 | 448 | |
| 334 | -= 0.8.5 = | |
| 335 | -* Shared folders, heartbeat widget, and heartbeat-pipeline hardening | |
| 336 | -* Recycle Bin: show item type badges inline next to title | |
| 337 | -* Plugins window: expandable rows with rich plugin details | |
| 338 | -* Remember native window size across opens | |
| 339 | -* Fix blank plugin icons in the Plugins window | |
| 340 | -* Restore "Show desktop on wallpaper click" as an opt-in setting | |
| 341 | -* Fix plugin update refresh, dock badge, and stuck-row failures | |
| 342 | -* Trash bin polish: URL badge, live placement badge, no media auto-trash | |
| 343 | -* Throw on empty REST body to avoid TypeError after self-replace | |
| 344 | -* Hide Media filter tab when MEDIA_TRASH is off | |
| 345 | -* Sequence openCurrentPage after restoreSession to avoid duplicate windows | |
| 346 | -* Fix window refresh issue on new sessions | |
| 449 | += 0.9.8 = | |
| 450 | +* Desktop Themes — uploadable ZIP theme system | |
| 451 | +* Drafts widget with an AI writing assistant, window corner-radius setting, live split-view editor preview | |
| 452 | +* AI Agents framework: agents as WordPress users, abilities runner, chat with persisted conversations | |
| 453 | +* Redesigned two-pane Comments window, Aero Peek dock previews, window reveal animations | |
| 454 | +* Security: closed privilege-escalation and session-bypass paths; strict structured-output schemas at the provider boundary | |
| 455 | +* Many smaller fixes and polish | |
| 347 | 456 | |
| 348 | -= 0.8.4 = | |
| 349 | -* Faster OpenStation, main bundle cut by 59 % | |
| 350 | -* "Edit Post" from the front-end admin bar opens nothing | |
| 351 | -* Cross-page admin-link clicks: state, destructive actions, referer hint | |
| 352 | -* Warn loudly when a `<os-*>` tag is used without being imported | |
| 353 | -* Support re-uploading existing plugins, add post-install Activate panel | |
| 354 | -* Restore the full WordPress command palette inside Cmd+K | |
| 457 | +Earlier releases are on the [GitHub releases page](https://github.com/WordPress/openstation/releases). | |
| 355 | 458 | |
| 356 | -= 0.8.3 = | |
| 357 | -* Feat comments as native windows | |
| 358 | -* Chrome <111 titlebars + duplicate-placement REST 500s | |
| 359 | -* SW navigation interception caused window-in-window after core update | |
| 360 | -* Open each post as its own window from the Posts window | |
| 361 | -* Fix Users window data + live-refresh, plus per-window REST clients | |
| 362 | -* Session-expiry cascade + Plugins window sync | |
| 363 | -* Narrow scope to /wp-admin/ and throttle SW reloads | |
| 364 | -* Plugins window: real updates, not just a phantom badge | |
| 365 | -* Support plain permalinks for REST URL construction | |
| 366 | -* Hide registered icons from desktop instead of trashing | |
| 367 | - | |
| 368 | -= 0.8.2 = | |
| 369 | -* Many fixes and new features | |
| 370 | -* Add unit test to ensure bridge script skips core AJAX update buttons | |
| 371 | -* Native Plugins window + `<os-card>` | |
| 372 | -* Appearance window polish + dock-peek fixes | |
| 373 | -* Fix upload theme | |
| 374 | -* Implement favicon resolver and associated tests for OpenStation | |
| 375 | -* Auto-inject X-WP-Nonce for REST API requests | |
| 376 | -* Enhance user management functionality in WordPress REST API | |
| 377 | -* Fix user role updates | |
| 378 | -* Fix plugin native issues | |
| 379 | -* Enhance color scheme preview functionality by adding shell scheme flipping | |
| 380 | -* Fix rearrange icons out of desktop | |
| 381 | -* Open each post in its own window | |
| 382 | -* Add item visibility and dock order settings | |
| 383 | -* Add first-run welcome dialog for OpenStation | |
| 384 | -* Fix dock management | |
| 385 | -* Refetch desktop placements on Recycle Bin restore | |
| 386 | - | |
| 387 | -= 0.8.1 = | |
| 388 | -* Framework rework and stability improvements — significant internals refactor, smoother window lifecycle, and more reliable bridging between iframe and native windows. | |
| 389 | -* Drag and drop reworked end-to-end: calmer pointer behavior, more accurate hit-testing, and reliable handoff across windows. | |
| 390 | -* Posts, Pages, and Users now open as native desktop windows — direct DOM rendering inside the shell instead of an iframe, faster open, instant interaction, and UI tailored to the windowing model. | |
| 391 | -* New Content Graph tool — an interactive map of how your content links together. Pan, zoom, and focus a node to explore its neighborhood. | |
| 392 | -* Cross-page admin link routing in the chromeless bridge so links across the admin stay inside the desktop shell. | |
| 393 | -* Many bug fixes across the admin bar, Fullscreen toggle, resize handles over iframes, real-time icon refresh on plugin activation, and the PWA shell. | |
| 394 | - | |
| 395 | -= 0.5.1 = | |
| 396 | -* Code editor and framework improvements. | |
| 397 | -* Enhanced AI provider integration: third-party providers may register through `openstation_register_ai_provider()`. | |
| 398 | -* Title-bar button registry with icon painting for plugin authors. | |
| 399 | -* OpenStation Preferences tabs are now extensible via `openstation_register_settings_tab_script()` / `openstation_register_settings_tab()`. | |
| 400 | -* AI Copilot extensibility: server-side tool registry (`openstation_register_ai_tool()`) and client-side `wp.os.ai.ask()` programmatic entry point. | |
| 401 | -* UI component kit expansion (~25 `<os-*>` web components). | |
| 402 | -* Backtick hotkey to cycle window focus. | |
| 403 | -* Unified command palettes via the palette registry. | |
| 404 | -* OpenStation Preferences Help tab. | |
| 405 | - | |
| 406 | -= 0.5.0 = | |
| 407 | -* Command registration APIs (`openstation_register_command_script()` / `openstation_register_command()`) with live install/activate refresh. | |
| 408 | -* Media-library enhancement enabled by default, with opt-out. | |
| 409 | -* Dock CSS selectors updated; overflow handling improved. | |
| 410 | - | |
| 411 | -See the [GitHub releases page](https://github.com/WordPress/openstation/releases) for the full history. | |
| 412 | - | |
| 413 | 459 | == Upgrade Notice == |
| 414 | 460 | |
| 415 | -= 0.8.1 = | |
| 416 | -Framework and stability rework, reworked drag and drop, native Posts/Pages/Users windows, and a new Content Graph tool. Backwards-compatible. | |
| 417 | - | |
| 418 | -= 0.5.1 = | |
| 419 | -Adds AI Copilot extensibility (server-side tools, multi-provider support) and a title-bar button registry. Backwards-compatible. | |
| 461 | += 1.0.0 = | |
| 462 | +Desktop Mode is now OpenStation. Everything carries over: settings, files, sessions, desktop layouts. Plugin authors: `wp.desktop` is now `wp.os`; see the changelog for the rename map. | |