| @@ -45,12 +45,12 @@ | ||
| 45 | 45 | - **Dock** |
| 46 | 46 | One unified rail hosting every admin menu — core and plugin alike — plus shell-level system tiles. Placement (left / right / bottom) is a user preference in OpenStation Preferences. Core menus are ordered before plugin menus; per-item hiding via `openstation_dock_placement` (`'hidden'`). Per-item multi-window support via `openstation_dock_item_multi`. Letter-badge icon fallback for plugins without icon art. |
| 47 | 47 | |
| 48 | 48 | - **Virtual desktops (“Spaces”)** |
| 49 | - Multiple desktops per user, each with its own window set. Overview grid (zoom-out view) surfaces the Spaces switcher, thumbnails, and create/close controls. | |
| 49 | + Multiple desktops per user, each with its own window set. The Workspaces grid (zoom-out view) surfaces the Spaces switcher, thumbnails, and create/close controls. | |
| 50 | 50 | |
| 51 | 51 | - **Arrange & snap** |
| 52 | - Admin-bar Arrange menu: Cascade, Tile, Overview, Snap to grid. Plugins contribute custom entries via `openstation_arrange_menu_items` and react to clicks via `os.arrange.custom-action`. Tile grid dimensions and snap cell size are both filterable. | |
| 52 | + Workspaces from its dock tile; `cascade()`, `tile()` and `setSnapEnabled()` on `wp.os.windowManager`. Tile grid dimensions and snap cell size are both filterable. | |
| 53 | 53 | |
| 54 | 54 | - **Wallpaper registry** |
| 55 | 55 | Server- and client-side registration (`openstation_register_wallpaper()` / `wp.os.registerWallpaper()`). CSS presets + canvas (WebGL/2D) wallpapers with collision-aware surface data (`wp.os.getWallpaperSurfaces()`) for snow/rain/physics effects. In-panel `renderEditor` callback for custom controls, shared vendor-module loader (`pixijs` pre-registered). |
| 56 | 56 | |
| @@ -60,9 +60,9 @@ | ||
| 60 | 60 | - **Desktop icons** |
| 61 | 61 | Wallpaper-layer shortcuts via `openstation_register_icon()` — targets a registered native window or an admin URL. |
| 62 | 62 | |
| 63 | 63 | - **AI Assistant + slash commands** |
| 64 | - Cmd+K palette backed by an OpenAI agentic loop whose `search_posts` / `search_pages` / `search_comments` tools run WordPress's native keyword search. Admin-configured API key + model picker. The only automatic AI analysis is comment spam scoring (on comment save), which feeds the comments-window spam score; posts, pages, and terms are not analyzed. `wp.os.registerCommand()` adds slash commands with autocomplete (`suggest()`), confirm dialogs (`ctx.confirm()`), and full lifecycle hooks (`before-run` / `after-run` / `error`). Built-in `/open [window]` is extensible via `os.open-command.items`. | |
| 64 | + Cmd+K palette backed by an OpenAI agentic loop whose `search_posts` / `search_pages` / `search_comments` tools run WordPress's native keyword search. Admin-configured API key + model picker. No content is analyzed in the background: every AI call is one a user asked for. `wp.os.registerCommand()` adds slash commands with autocomplete (`suggest()`), confirm dialogs (`ctx.confirm()`), and full lifecycle hooks (`before-run` / `after-run` / `error`). Built-in `/open [window]` is extensible via `os.open-command.items`. | |
| 65 | 65 | |
| 66 | 66 | - **Palette registry** |
| 67 | 67 | Cmd+K cycles through all registered palettes (`wp.os.registerPalette()`) — the AI assistant is palette 0 by default; additional plugin overlays share the shortcut. |
| 68 | 68 | |