Download Latest Version plugins-v0.14.0 source code.zip (208.0 MB) Google Add to Preferred Sources
Home / plugins-v0.14.0
Name Modified Size InfoDownloads / Week
Parent folder
plugins-v0.14.0 source code.tar.gz 2026-10-10 197.4 MB
plugins-v0.14.0 source code.zip 2026-10-10 208.0 MB
README.md 2026-10-10 24.0 kB
Totals: 3 Items   405.4 MB 0

Plugins + CLI 0.14.0 (2026-10-10)

Minor Changes

  • dx eval runs a program against a space in the code-mode dialect a Composer agent writes for its eval tool (--dialect effect, the default, or plain), and prints the same text the tool would return; a failing program exits non-zero. The program is an argument, --file, or stdin; --skill binds the operations it may invoke (every skill by default), and --instructions prints the dialect's API reference. @dxos/agent-code-mode exports evaluate, projectOperations and describeTypes for hosts that run code mode outside a turn. (253b32b)

  • An agent gains a "Brain store" companion: a read-only debug view of its brain as held, showing the raw facts with full attribution, each watch's rules, the facts encoded as the Datalog relations those rules match, and each watch's pending events with when the clock next matters. It reads the brain through the new TriggerOperation.InspectBrain, and @dxos/brain adds Encoding.format and Encoding.formatEntry to print encoded facts in the rules dialect. (62abfd7)

  • An agent's chats now run on EDGE (Agent.chatLocation) unless a chat sets remote: false, so every chat shares the agent's one brain. Facts the agent records are attributed to space members by identity DID, with the display name as an optional label (attribution.agentLabel), and watches resolve the person they name to that member's DID and match on it (someone who is no member is matched by name, as their words are attributed); a chat with a member no longer invents a placeholder "Me" person. (f0fc12a)

  • An agent's extracted facts now live only in its brain (BrainService): reading a chat or a document no longer writes FactEntry/ExtractionPass items to an annotation feed in the space, and documents read with ReadSource now wake watches as chat turns do. Breaking: the @dxos/plugin-agent/FactEntry export is removed, ReadSource returns fired/undelivered instead of a pass ref, BrainService gains readThrough and a read push option (the chat read cursor, kept with the facts), and annotation feeds already in a space are no longer read. (469e811)

  • @dxos/brain gains Evaluator, which evaluates every subscription of one brain with GoalRules over a shared fact stream (push, tick, hydrate, nextDueAt), and Oracle, the replay gate a compiled goal must pass. GoalRules.nextDueAt reports when the clock next matters, every fires once per period even when every evaluation falls on a boundary, and about also matches an entity's label. plugin-agent's in-memory brain now evaluates subscriptions with the Evaluator: a Trigger carries rules, compiled from the goal's text by WatchFacts (gated by the oracle, naming the space's members by DID) or translated from its FactPattern by Trigger.toRules, replacing Trigger.matchesPattern and BrainService.matchEvent. BrainService events carry the wake's label and facts, and the service gains tick and nextDueAt; TriggerOperation.RunDue runs due watches. (37b0196)

  • Add an Agent tab to the chat options, so a new chat can run on any registered agent (such as Claude Code on this computer or in the cloud) without delegating a task, and show which agent a chat runs on beside the options. (0e28f43)

  • A chat hosted on EDGE now shows its working indicators, phases and streamed reply for the whole turn, instead of reading idle while the agent works. AgentProcess takes a resident option that keeps the process for the next prompt rather than spawning a new one per turn, and subscribeEphemeral takes { replay }. Breaking: plugin-assistant's AiChatProcessor is now ChatModel (useChatProcessor → useChatModel, getProcessorState → getChatModelState, and the processor prop of Chat.Root/ChatPrompt → chatModel). (a1e64db)

  • SceneView docks its properties and layers panels by default: a column beside the canvas (which narrows rather than sitting under them) holding an accordion with one section per panel, any number open, the column scrolling them together. SceneView.Root takes panels (PanelMode: 'docked' | 'floating') to float them back over the canvas instead; Properties and LayersPanel take docked. The layers toolbar's delete and merge actions move into a menu at its end. A new SceneView.About adds a dock-only section below the layers with the scene's object counts (About is the panel itself). In Composer, a canvas drawing's menu offers "Dock panels" / "Float panels", stored as the canvas setting dockPanels.

In @dxos/react-ui, Toolbar adds no gap or inline padding of its own (its items carry their own spacing, and a ToggleGroup in a toolbar drops its gap to match), and an Accordion item's icon and caret sit in Blocks rather than custom padding, and list rows in a container with no gutter lose their rounded corners. In @dxos/react-ui-form, a Form.Viewport without scroll pads its block axis as the scrolling one does, so a form in a host that scrolls it still ends a gutter in. (fd09131)

  • The scene shape is now a frame. Breaking: the built-in node type scene is renamed frame (palette name "Frame", shortcut F), with PortalNode → FrameNode, isPortalNode → isFrameNode and PortalNodeView → FrameNodeView; the node's scene field (its child scene id) is unchanged, and drawings saved with type: 'scene' are not migrated. A node type may define hostOpen, the host's own way to open a node of it: opening (double-click, Enter, the open control) calls it instead of drilling in, and auto-drill passes such a node by. A node type may also define toolbar, controls drawn above the node, flush with its right edge and at screen size, shown while the node is hovered or selected. The canvas clips rather than hides its overflow, so focusing an editor in a node no longer scrolls the canvas out from under the camera. A frame always draws its border, and one the host opens itself is never faded as the scene being zoomed into. A node's embedded content (marked data-scene-overlay) is live only while the node is active (SceneViewAtoms.active, NodeViewProps.active): a click on the node activates it, and selecting anything else or Escape deactivates it. Inactive, a press anywhere moves the node; active, a press on the content starts no move (so its controls receive their clicks), a double-click there does not open the node, and the wheel is the content's where it has something to scroll. Presses inside a portal the content opens (a menu) no longer reach the node.

In @dxos/plugin-canvas, a frame holds either its own nested scene or a referenced ECHO object: CanvasSceneNode.drawing is replaced by CanvasFrameNode.object (any object, picked in the properties panel) and role (card, section or article; unset is a card). A canvas drawing is embedded as a scene, as linked drawings were; any other object renders as its surface of that role, with a floating toolbar whose button opens the object in the app. Selecting the frame, or focusing within it, gives the object's surface attention, so its own toolbar acts. The object picker lists only user objects (those the navtree shows), not system objects such as space properties or canvases.

In @dxos/react-ui-form, the object picker's popup is as wide as its field rather than growing to its longest option.

In @dxos/react-ui, a Card.Root with border={false} also drops its corner radius, as its prop always described, so a card framed by its host shows no rounding of its own. (508be04)

  • A chat can run on Claude Code on this computer or on EDGE.

A chat names the durable process that runs it in session.process. Plugins contribute agent processes through AssistantCapabilities.AgentProcess, and AgentService spawns the one a chat names, falling back to the assistant's own. The Claude plugin's Claude Code process starts the agent through the new ShellService (@dxos/compute/ShellService), which runs operating-system processes and bash scripts for a compute process. Each process gets its own instance, and every child it started ends when that process ends. The Node.js implementation is @dxos/compute-runtime/node-shell.

"Claude Code (cloud)", built on plugin-code's new EdgeAgent.make, runs a chat's turns on EDGE's coding-agent process in a sandbox container. The session keeps working with no client connected, and EDGE restarts the container and resumes the turn when the agent dies or stalls. Each turn lends the process the user's credential, so the credential never enters the container. The cloud session runs unattended by default: a permission request is denied on the spot, and the agent skips that step and carries on.

A new Claude Code connector stores a Claude subscription token: open a terminal, run claude setup-token, and paste the token it prints. The token is kept apart from the Anthropic API key. Claude Code on this computer receives it as CLAUDE_CODE_OAUTH_TOKEN, and the cloud harness lends it in preference to the API key.

A project lists the GitHub repositories its cloud sessions work on (Project.repositories), set in the project's header next to its name. The sandbox checks out the project's repo and each listed repository before the agent starts. Each turn lends the space's GitHub token to EDGE, resolving it through EDGE when EDGE holds it, and EDGE proxies the sandbox's git calls with it, so the token never enters the container either. The project folder setting applies only to Claude Code on this computer.

The Code plugin's coding-agent permission setting gains bypassPermissions, which never asks and runs everything. (ec6da5a)

  • Claude Code (cloud) lends each turn's credentials as the environment the agent runs with, through one provideCredentials call: the Claude subscription token as CLAUDE_CODE_OAUTH_TOKEN (or the Anthropic key as ANTHROPIC_API_KEY) and the space's GitHub token as GITHUB_TOKEN/GH_TOKEN, so the agent can clone private repositories, push and open pull requests with gh. EdgeAgent's definition takes a single credentials effect in place of credential and gitCredential, and EdgeAgent.githubCredentials replaces githubCredential. (ebe3879)

  • Spaces holding pull requests now get one hourly EDGE trigger that refreshes their open and draft pull requests from GitHub in bounded batches, so their state no longer goes stale until someone opens them. (8c016fc)

  • Nodes and links share one style: a link's LineStyle (colour and lineStyle) is the common base a node's NodeStyle extends with fill, tone, frame, font size and text alignment (alignHorizontal, alignVertical); styleFields lets a shape extend it further. The properties panel edits the fields a mixed selection shares with one style picker. Drawings gain style classes (StyleClass, SceneStore.styles, kept in a new optional Canvas.styles map beside content): an element naming a class derives its style from it, and editing a classed element's look edits the class. Shapes and links of an unregistered type render as the core base (BaseNode): a box showing its label, or a straight line. A scene shape can open any scene of its drawing, and "New scene from selection" (groupIntoScene) moves the selected nodes into a new scene behind one scene shape. Breaking: a link's line ({ hue, dash }, LinkLine) is now style ({ hue, lineStyle }), which plugin-canvas reads from drawings saved the old way; a node style's className is removed; the UML class shape keeps its name in label instead of name. (3c4d73d)

Patch Changes

  • An agent watch no longer notifies its recipient about something they said themselves, refuses a watch that would only ever do so, and sends nothing for a watch cancelled while its update was being written. (f20db7f)

  • The in-memory brain wakes a chat where the chat runs (Agent.chatLocation), so an agent chat on EDGE no longer gets a second, local session when a watch fires. (2d0a302)

  • The space Home assistant prompt no longer adds a feed to the space on every visit: its chat is an in-memory draft until the user sends, when the chat, its feed and its bindings are written together. AiContext.Binder now opens over a feed that is not stored yet, holding bindings in memory until flush() writes them once the feed is stored, and unbind removes an object from the bound set immediately whichever URI form the ref uses. (3e98467)

  • In @dxos/react-ui-canvas, a link may carry text, drawn at the middle of its route on an opaque rounded backdrop. Guides and borderless shapes are off the lattice: they occupy no cells, move and resize freely, and do not block gutter routes. A nested scene routes on its parent's lattice, so its links no longer jump when it settles. On a lattice a smart link takes the side-centre ports whose gutter route bends least (a pinned port stays pinned), and the gutter search runs on a binary heap. A label's or note's lines are a whole number of minor grid units tall, padded a grid unit either side, and a guide's text takes the default colour. SceneView.Root's readonly now also prevents selection and hides the selection frame, ports, the actions bar, the Properties and Layers panels, the grid and the lattice guides.

In @dxos/plugin-canvas, a laid-out illustrator diagram draws on the canvas lattice as it renders: each connector binds to its boxes as a smart link carrying its caption as text, and a group is a guide titled at its top-left corner on a Backdrop layer below the shapes. A linked drawing's own frames open the drawings they show, so drawings nest to any depth. A frame's object resolves through the canvas's database, and its role field appears as soon as an object is picked. Read-only is the viewer's own, kept in the canvas's view state and toggled from the drawing's menu (Read only / Edit drawing). The plugin offers a "DXOS Architecture" space template: multi-level Composer and EDGE architecture diagrams (from docs/diagrams/*.dx) seeded as nested canvas drawings, which the Architecture stories also load, read-only by default. Composer enables the plugin by default.

In @dxos/diagram, a group frame's margin is the same on every side, with its title inside the top margin, and a diagram with an explicit grid keeps every box on it: extra space between groups is whole cells.

In @dxos/react-ui-form, picking a reference in RefField commits it, so an auto-saving form saves the pick at once rather than on the next field's edit. (b0e4b60)

  • Switching a routine's action between Instructions and an operation no longer carries one kind's trigger inputs into the other: a stray input: {} (or an operation's connection) failed every run until EDGE switched the trigger off. Switching a broken trigger back on now repairs it. Pressing Sync on an account whose sync routine is switched off now shows a toast that links to the routines panel, instead of retrying EDGE's 409 refusal for about 30 seconds. The trigger manager refuses a disabled trigger with a typed TriggerDisabledError, and EDGE force-runs no longer retry a 409 that is not about the trigger being switched off. (5324de6)

  • The pull request checks list shows how long each running check has been going, counting up live. (626e774)

  • @dxos/brand ships Poiret One (assets/fonts/poiret-one), the face of the Composer wordmark. The Markdown, Sheet, Tables and Projects plugins' details now include a narrated demo video, opening on the Composer ident. (085dcb1)

  • Composer plugins lay out their panels with react-ui's Layout.Flex / Layout.Grid and theme colour tokens instead of hand-written flex/grid classes and raw palette colours, so status colours now follow the theme in light and dark mode. (27b542c)

  • The inbox materializer converges notification containers only when the container set changes, so passes triggered by inbox, contacts or space-list updates no longer query the space when there is nothing to do. materialize takes an optional converge flag (default true). (b03a6aa)

  • The Composer help menu can check for updates and, once one is downloaded, offers "Restart to update"; the desktop update toast and settings button now use the same "Restart to update" wording. (2e6b92a)

  • The onboarding welcome document, the Bramble sample, the Help menu's Documentation item and the support plugin's docs search results now link into https://dxos.org/docs/. The old docs.dxos.org host no longer resolves. (fd5bf3e)

  • Plugin details in the registry open as a detail panel beside the list, and Cmd/Ctrl-click opens one in its own plank. In a flattened deck, a plank with no object above it (such as a registry plugin) shows the planks opened before it as breadcrumbs again. (1d3eea3)

  • An app now has one process manager: the stack's Process.ManagerService, which the app's operation invoker, Capabilities.ProcessManager and AgentService all use. Operations the app invokes with on: 'edge' therefore run on EDGE instead of dying with "Remote process requested, but RemoteProcessManager offers no process control", which an agent's watches and Brain store views logged every three seconds. @dxos/app-framework now owns the unified-manager spec that @dxos/plugin-routine used to contribute, with a no-op remote manager as a fallback, and a LayerStack spec now outranks an ambient service of the same tag. (0715304)

  • Switching a routine's action between Operation and Instructions and back in the routine editor restores the previous action for the rest of the editing session, instead of clearing the operation and leaving the routine's triggers with nothing to run. (e0cd29c)

  • The routine editor warns when a routine is enabled but has no operation to run, instead of saving a trigger that EDGE skips on every tick. (5e1acd0)

  • The space Home page no longer holds its sections back or shifts while documents load: Recent reserves placeholder tiles sized from an index-only count, Activity waits for its stats instead of showing zeros, starter prompts show from the cache at once and skip the recent-objects query within the refresh interval, the assistant prompt renders before its chat model opens, and the recent-objects filter no longer repeats types. Masonry now lays out at its measured size in its first painted frame instead of starting at zero height, and reveals at once when an earlier mount cached every tile's height. (385f3ce)

  • The navtree's Types section decides which types to show from the space's index-only per-type counts (the same query the space dashboard runs) instead of one live query per type that loaded every object. (2112757)

115 packages in this release @dxos/cli@0.14.0 @dxos/plugin-agent@0.14.0 @dxos/plugin-assistant@0.14.0 @dxos/plugin-atproto@0.14.0 @dxos/plugin-attention@0.14.0 @dxos/plugin-blogger@0.14.0 @dxos/plugin-bluesky@0.14.0 @dxos/plugin-board@0.14.0 @dxos/plugin-bookmarks@0.14.0 @dxos/plugin-brain@0.14.0 @dxos/plugin-calls@0.14.0 @dxos/plugin-canvas@0.14.0 @dxos/plugin-chess@0.14.0 @dxos/plugin-chess-com@0.14.0 @dxos/plugin-claude@0.14.0 @dxos/plugin-client@0.14.0 @dxos/plugin-cloudflare@0.14.0 @dxos/plugin-code@0.14.0 @dxos/plugin-commerce@0.14.0 @dxos/plugin-computer@0.14.0 @dxos/plugin-conductor@0.14.0 @dxos/plugin-connector@0.14.0 @dxos/plugin-crm@0.14.0 @dxos/plugin-crx@0.14.0 @dxos/plugin-debug@0.14.0 @dxos/plugin-deck@0.14.0 @dxos/plugin-deepseek@0.14.0 @dxos/plugin-devtools@0.14.0 @dxos/plugin-discord@0.14.0 @dxos/plugin-doctor@0.14.0 @dxos/plugin-duffel@0.14.0 @dxos/plugin-excalidraw@0.14.0 @dxos/plugin-explorer@0.14.0 @dxos/plugin-file@0.14.0 @dxos/plugin-file-system@0.14.0 @dxos/plugin-freeq@0.14.0 @dxos/plugin-game@0.14.0 @dxos/plugin-github@0.14.0 @dxos/plugin-google@0.14.0 @dxos/plugin-graph@0.14.0 @dxos/plugin-heygen@0.14.0 @dxos/plugin-higgsfield@0.14.0 @dxos/plugin-ibkr@0.14.0 @dxos/plugin-ideogram@0.14.0 @dxos/plugin-illustrator@0.14.0 @dxos/plugin-inbox@0.14.0 @dxos/plugin-iroh-beacon@0.14.0 @dxos/plugin-jmap@0.14.0 @dxos/plugin-kanban@0.14.0 @dxos/plugin-labeler@0.14.0 @dxos/plugin-lametric@0.14.0 @dxos/plugin-library@0.14.0 @dxos/plugin-linear@0.14.0 @dxos/plugin-lingo@0.14.0 @dxos/plugin-magazine@0.14.0 @dxos/plugin-map@0.14.0 @dxos/plugin-map-solid@0.14.0 @dxos/plugin-markdown@0.14.0 @dxos/plugin-meeting@0.14.0 @dxos/plugin-mermaid@0.14.0 @dxos/plugin-messenger@0.14.0 @dxos/plugin-mobile@0.14.0 @dxos/plugin-native@0.14.0 @dxos/plugin-navtree@0.14.0 @dxos/plugin-observability@0.14.0 @dxos/plugin-onboarding@0.14.0 @dxos/plugin-osrm@0.14.0 @dxos/plugin-payments@0.14.0 @dxos/plugin-pipeline@0.14.0 @dxos/plugin-presenter@0.14.0 @dxos/plugin-preview@0.14.0 @dxos/plugin-progress@0.14.0 @dxos/plugin-projects@0.14.0 @dxos/plugin-pwa@0.14.0 @dxos/plugin-qa@0.14.0 @dxos/plugin-registry@0.14.0 @dxos/plugin-review@0.14.0 @dxos/plugin-routine@0.14.0 @dxos/plugin-s3@0.14.0 @dxos/plugin-sample@0.14.0 @dxos/plugin-sandbox@0.14.0 @dxos/plugin-script@0.14.0 @dxos/plugin-search@0.14.0 @dxos/plugin-sequencer@0.14.0 @dxos/plugin-settings@0.14.0 @dxos/plugin-sheet@0.14.0 @dxos/plugin-sidekick@0.14.0 @dxos/plugin-slack@0.14.0 @dxos/plugin-space@0.14.0 @dxos/plugin-spacetime@0.14.0 @dxos/plugin-spotlight@0.14.0 @dxos/plugin-stack@0.14.0 @dxos/plugin-status-bar@0.14.0 @dxos/plugin-stream-deck@0.14.0 @dxos/plugin-studio@0.14.0 @dxos/plugin-support@0.14.0 @dxos/plugin-table@0.14.0 @dxos/plugin-tasks@0.14.0 @dxos/plugin-template@0.14.0 @dxos/plugin-terra@0.14.0 @dxos/plugin-testing@0.14.0 @dxos/plugin-theme@0.14.0 @dxos/plugin-thread@0.14.0 @dxos/plugin-tldraw@0.14.0 @dxos/plugin-transcription@0.14.0 @dxos/plugin-transformer@0.14.0 @dxos/plugin-trello@0.14.0 @dxos/plugin-trip@0.14.0 @dxos/plugin-typefully@0.14.0 @dxos/plugin-typesafe@0.14.0 @dxos/plugin-uml@0.14.0 @dxos/plugin-video@0.14.0 @dxos/plugin-voxel@0.14.0 @dxos/plugin-wnfs@0.14.0 @dxos/plugin-zen@0.14.0
Source: README.md, updated 2026-10-10