Skip to content

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 04 Aug 04:22

Highlights

Remote access and permission levels

Core now mints a 256-bit node token on first boot, so it can start without an operator-provisioned credential, and surfaces that cannot read the token file authenticate through a device-code pairing flow. Operators can grant resources at specific permission levels, so browser.view and browser.control are distinct grants rather than a single blanket allowance.

The desktop app exposes Node Access, Node Permissions, and Resource Permissions settings, and the webapp, TUI, MCP, and Island targets resolve the new node-token and pairing clients. Mesh mode still demands an operator-provisioned RYU_TOKEN because peers share a token, while a minted token secures a non-loopback bind.

Affected packages:
@ryu/activity
@ryu/approvals
@ryu/browser
@ryu/calendar
@ryu/canvas
@ryu/clips
@ryu/dashboards
@ryu/dictation

32 more packages — see the changelog below.

App-contributed Pi agent extensions

Apps can now declare pi_extensions in their manifests, and a reconciler projects the enabled set onto Pi's extension directory, adding and removing files as apps are enabled or revoked. The first user is the plan-continue plugin, which nudges the model while plan mode is on and the plan is not finished.

Plan mode continuation is no longer kernel behaviour; it is a plugin bounded by three consecutive auto-continues, a no-progress exit when the last two replies are identical, and the server's existing MAX_CONTINUE_TURNS backstop. The pi namespace is now reserved in gateway governance, so a Community plugin cannot self-approve the pi:extension capability.

Affected packages:
ryu-core
ryu-gateway
ryu-kernel-contracts
@ryuhq/sdk
plugin: pi-shell
plugin: pi-subagent
plugin: plan-continue

App-declared quotas and MCP bridge

Tier quotas are no longer a fixed table in core auth: kernel-level quotas stay in code, while app quotas such as maxMonitors and meetingRetentionDays are declared in the owning app's manifest. Every existing limit value round-trips unchanged, and PlanLimitField is now derived from the quota registries.

Developer Mode can arm a loopback MCP bridge so an agent can drive a stable release build. Arming is single-shot, the bridge state is reconciled app-wide rather than from the settings tab, and the bridge section appears whenever the socket is live, noting that it accepts uncredentialed local connections.

Affected packages:
@ryu/meetings
@ryu/monitors
ryu-core
Desktop app
Website (ryuhq.com)
@ryu/auth

Live timing on tool calls

Every tool call in the chat UI now carries an elapsed badge that ticks while the call runs and freezes on the final time. The timing hangs off the shared tool row, so mcp, generic, search, thinking, subagent, and grouped rows all get it from one place.

Duration formatting tapers precision as the number grows, so a 420ms call and a 1m 23s call both stay readable. Rows that mount already complete never start a clock, so historical conversations show no invented timing.

Affected packages: @ryu/blocks

Changelog

@ryu/activity@0.1.2

Minor changes

  • Added the permission-level vocabulary to the activity app's manifest. (540a585)

Patch changes

  • Updated the activity manifest to declare its data categories under the new manifest-declared scheme. (dac1ee6)

@ryu/api@0.1.2

Minor changes

  • Updated cloud provisioning and the control-plane router to work with the node-token and pairing clients. (540a585)
  • Stamped approvedAt on waitlist approvals so the ETA can measure real invite throughput. (1c6baf8)

@ryu/approvals@0.1.2

Minor changes

  • Updated the approvals app's manifest with the new permission-level declarations. (540a585)

Patch changes

  • Added manifest-declared data categories to the approvals manifest. (dac1ee6)

@ryu/auth@0.1.2

Minor changes

  • Exposed the new node-token and pairing auth surfaces through the auth package's index. (540a585)
  • Replaced the fixed invites-per-week constant with a trailing 28-day observed rate, added the one-minute refresh deadline, and updated the waitlist tests. (1c6baf8)
  • Split plan quotas into kernel and app-declared sets while preserving every existing limit value, and derived PlanLimitField from the quota registries. (e14e158)

Patch changes

  • Updated packages/auth/src/lib/plans.ts. (9a9c5bc)

@ryu/blocks@0.1.2

Minor changes

  • Updated the download pages and dropdown content to use the measured ETA and the countdown-labelled Refresh button, with tests. (1c6baf8)
  • Added a live elapsed-time badge to every tool call row in the agent UI, with duration formatting that tapers precision, and skipped timing for rows that mount already complete. (384d452)

Patch changes

  • Switched the Ryu Cloud region picker in the pricing block to a shadcn Select that renders the option label instead of the raw value. (3653144)
  • Removed em dashes from web landing blocks and onboarding copy, fixed the agents-step subtitles that overrode shared phase subtitles, and adjusted the shared header. (dac1ee6)
  • Added the showOpenSource prop to the shared header so portal chrome can hide the Open Source link. (1541f35)
  • Reverted the landing hero headline and its added sub-paragraph to the pre-0.1.x copy, leaving the rest of the landing blocks untouched. (ef7e487)

@ryu/browser@0.1.2

Minor changes

  • Included permission-level declarations in the browser app's manifest. (540a585)

Patch changes

  • Updated the browser manifest with manifest-declared data categories. (dac1ee6)

@ryu/calendar@0.1.2

Minor changes

  • Added the permission-level vocabulary to the calendar app's manifest. (540a585)

Patch changes

  • Added the manifest-declared data categories to the calendar manifest. (dac1ee6)

@ryu/canvas@0.1.2

Minor changes

  • Updated the canvas app's manifest to declare permission levels. (540a585)

Patch changes

  • Updated the canvas manifest to declare its data categories. (dac1ee6)

@ryu/clips@0.1.2

Minor changes

  • Included the permission-level declarations in the clips app's manifest. (540a585)

Patch changes

  • Added data-category declarations to the clips manifest. (dac1ee6)

@ryu/dashboards@0.1.2

Minor changes

  • Added permission-level declarations to the dashboards app's manifest. (540a585)

Patch changes

  • Updated the dashboards manifest with manifest-declared data categories. (dac1ee6)

@ryu/dictation@0.1.2

Minor changes

  • Updated the dictation app's manifest with the permission-level vocabulary. (540a585)

Patch changes

  • Added manifest-declared data categories to the dictation manifest. (dac1ee6)

@ryu/docling@0.1.2

Patch changes

  • Updated the docling manifest to declare its data categories. (dac1ee6)

@ryu/finetune@0.1.2

Minor changes

  • Added the permission-level declarations to the finetune app's manifest. (540a585)

Patch changes

  • Added the data-category declarations to the finetune manifest. (dac1ee6)

@ryu/healing@0.1.2

Minor changes

  • Included the permission-level vocabulary in the healing app's manifest. (540a585)

Patch changes

  • Updated the healing manifest with manifest-declared data categories. (dac1ee6)

@ryu/learning@0.1.2

Minor changes

  • Updated the learning app's manifest to carry the new permission-level declarations. (540a585)

Patch changes

  • Added manifest-declared data categories to the learning manifest. (dac1ee6)

@ryu/mail@0.1.2

Minor changes

  • Added permission-level declarations to the mail app's manifest. (540a585)

Patch changes

  • Updated the mail manifest to declare its data categories. (dac1ee6)

@ryu/marketplace@0.1.2

Patch changes

  • Updated the marketplace dependency graph and detail panels, and revised the package's version in package.json. (dac1ee6)

@ryu/markitdown@0.1.2

Patch changes

  • Added data-category declarations to the markitdown manifest. (dac1ee6)

@ryu/meetings@0.1.2

Minor changes

  • Included the permission-level vocabulary in the meetings app's manifest. (540a585)
  • Declared the meetings app's quota fields in its manifest instead of in core auth plan code. (e14e158)

Patch changes

  • Updated the meetings manifest with manifest-declared data categories. (dac1ee6)

@ryu/mineru@0.1.2

Patch changes

  • Added manifest-declared data categories to the mineru manifest. (dac1ee6)

@ryu/monitors@0.1.2

Minor changes

  • Added the permission-level declarations to the monitors app's manifest. (540a585)
  • Declared the monitors app's quota fields in its manifest instead of in core auth plan code. (e14e158)

Patch changes

  • Updated the monitors manifest to declare its data categories. (dac1ee6)

@ryu/predict@0.1.2

Minor changes

  • Updated the predict app's manifest with the new permission-level vocabulary. (540a585)

Patch changes

  • Added data-category declarations to the predict manifest. (dac1ee6)

@ryu/quests@0.1.2

Minor changes

  • Included permission-level declarations in the quests app's manifest. (540a585)

Patch changes

  • Updated the quests manifest with manifest-declared data categories. (dac1ee6)

@ryu/recipes@0.1.2

Minor changes

  • Added the permission-level vocabulary to the recipes app's manifest. (540a585)

Patch changes

  • Added manifest-declared data categories to the recipes manifest. (dac1ee6)

@ryu/research@0.1.2

Minor changes

  • Updated the research app's manifest to declare permission levels. (540a585)

Patch changes

  • Updated the research manifest to declare its data categories. (dac1ee6)

@ryu/simulator@0.1.2

Minor changes

  • Included the permission-level declarations in the simulator app's manifest. (540a585)

Patch changes

  • Added data-category declarations to the simulator manifest. (dac1ee6)

@ryu/skill-editor@0.1.2

Minor changes

  • Added permission-level declarations to the skill-editor app's manifest. (540a585)

Patch changes

  • Updated the skill-editor manifest with manifest-declared data categories. (dac1ee6)

@ryu/teams@0.1.2

Minor changes

  • Updated the teams app's manifest with the permission-level vocabulary. (540a585)

Patch changes

  • Added manifest-declared data categories to the teams manifest. (dac1ee6)

@ryu/timeline@0.1.2

Minor changes

  • Included the permission-level declarations in the timeline app's manifest. (540a585)

Patch changes

  • Updated the timeline manifest to declare its data categories. (dac1ee6)

@ryu/ui@0.1.2

Patch changes

  • Changed sidebar-primary to the brand blue in both light and dark presets and added a hex-conversion test that guards the token against regression. (dac1ee6)

@ryu/unstructured@0.1.2

Patch changes

  • Added data-category declarations to the unstructured manifest. (dac1ee6)

@ryu/voice@0.1.2

Minor changes

  • Added the permission-level vocabulary to the voice app's manifest. (540a585)

Patch changes

  • Updated the voice manifest with manifest-declared data categories. (dac1ee6)

@ryu/warmup@0.1.2

Minor changes

  • Updated the warmup app's manifest to carry the new permission-level declarations. (540a585)

Patch changes

  • Added manifest-declared data categories to the warmup manifest. (dac1ee6)

@ryu/webhooks@0.1.2

Minor changes

  • Included permission-level declarations in the webhooks app's manifest. (540a585)

Patch changes

  • Updated the webhooks manifest to declare its data categories. (dac1ee6)

@ryu/whiteboard@0.1.2

Minor changes

  • Added the permission-level vocabulary to the whiteboard app's manifest. (540a585)

Patch changes

  • Added data-category declarations to the whiteboard manifest. (dac1ee6)

@ryu/workflows@0.1.2

Minor changes

  • Updated the workflows app's manifest with the new permission-level declarations. (540a585)

Patch changes

  • Updated the workflows manifest with manifest-declared data categories. (dac1ee6)

@ryuhq/core-client@0.1.2

Minor changes

  • Added the node-token and pairing clients, with tests, used by surfaces that cannot read the token file. (540a585)

@ryuhq/sdk@0.1.2

Minor changes

  • Regenerated the plugin-manifest types to include the new permission_levels field. (540a585)
  • Updated the generated manifest types and SDK runnable helpers to support contributing Pi extensions and turn-hook plugins. (9162a2c)

Patch changes

  • Regenerated the plugin-manifest types and updated the manifest helpers to support manifest-declared data categories. (dac1ee6)

apps/mcp@0.1.2

Minor changes

  • Updated the MCP target to resolve the node-token and pairing clients. (540a585)

Desktop app@0.1.2

Minor changes

  • Added Node Access, Node Permissions, and Resource Permissions settings and wired the gateway dialog to the node-token and pairing clients. (540a585)
  • Updated the waitlist page to show the measured ETA and the rate-limited Refresh countdown. (1c6baf8)
  • Added the Developer Mode MCP bridge with single-shot arming, moved arming reconcile into an app-wide hook, and updated gating to read app-declared quotas. (e14e158)

Patch changes

  • Reordered the waitlist page so the position and estimated wait appear before the actions, restyled Apply as the primary action, and moved the estimate out of the position card. (ce451fa)
  • Set sidebar-primary to the brand token, deleted the unused use-text-swap hook, removed the hardcoded data-admin exports, and stripped em dashes from onboarding and settings copy. (dac1ee6)
  • Made deep clean clear the data folder by default, replaced the localStorage allowlist with a full clear, moved clean-depth controls into a nested dialog, and feature-detected Danger Zone rows through useApps(). (1541f35)

Documentation site (docs.ryuhq.com)@0.1.2

Patch changes

  • Fixed stale version redirects by stripping the version segment in the docs catch-all, wired the version switcher to outbound archive links, and refreshed two API reference pages. (c351a4e)
  • Documented in docs-version.ts that the URL version is a label, not a selector, and that old version links break at the next release until a branch-per-version archive exists. (517161b)
  • Updated the docs landing hero to match the marketing headline and removed the documentation badge and the hand-written guides stat. (a62e2dd)

Island@0.1.2

Minor changes

  • Updated the Island config service to resolve the new node-token and pairing clients. (540a585)

plugin: advisor@0.1.2

Patch changes

  • Updated the advisor plugin's manifest to declare its data categories. (dac1ee6)

plugin: agentbrowser@0.1.2

Patch changes

  • Added data-category declarations to the agentbrowser plugin's manifest. (dac1ee6)

plugin: brave@0.1.2

Patch changes

  • Updated the brave plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: bytebot@0.1.2

Patch changes

  • Added manifest-declared data categories to the bytebot plugin's manifest. (dac1ee6)

plugin: chat-title@0.1.2

Patch changes

  • Updated the chat-title plugin's manifest to declare its data categories. (dac1ee6)

plugin: double-check@0.1.2

Patch changes

  • Added data-category declarations to the double-check plugin's manifest. (dac1ee6)

plugin: exa@0.1.2

Patch changes

  • Updated the exa plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: firecrawl@0.1.2

Patch changes

  • Added manifest-declared data categories to the firecrawl plugin's manifest. (dac1ee6)

plugin: firewall@0.1.2

Patch changes

  • Updated the firewall plugin's manifest to declare its data categories. (dac1ee6)

plugin: ghost@0.1.2

Patch changes

  • Added data-category declarations to the ghost plugin's manifest. (dac1ee6)

plugin: goal@0.1.2

Patch changes

  • Updated the goal plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: headroom@0.1.2

Patch changes

  • Added manifest-declared data categories to the headroom plugin's manifest. (dac1ee6)

plugin: honcho@0.1.2

Patch changes

  • Updated the honcho plugin's manifest to declare its data categories. (dac1ee6)

plugin: hook-observers@0.1.2

Patch changes

  • Added data-category declarations to the hook-observers plugin's manifest. (dac1ee6)

plugin: hook-session-context@0.1.2

Patch changes

  • Updated the hook-session-context plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: mem0@0.1.2

Patch changes

  • Added manifest-declared data categories to the mem0 plugin's manifest. (dac1ee6)

plugin: pi-shell@0.1.2

Minor changes

  • Moved the shell extension onto the manifest-declared pi_extensions mechanism and updated its tests and README. (9162a2c)

Patch changes

  • Updated the pi-shell plugin's ryu-shell.ts extension. (3653144)

plugin: pi-subagent@0.1.2

Minor changes

  • Moved the subagent extension onto the manifest-declared pi_extensions mechanism and updated its tests and README. (9162a2c)

Patch changes

  • Updated the pi-subagent plugin's ryu-subagent.ts extension. (3653144)

plugin: plan-continue@0.1.2

Minor changes

  • Added the plan-continue plugin, which nudges the model on turn completion while plan mode is active, bounded by three auto-continues and a no-progress exit. (9162a2c)

plugin: proof@0.1.2

Patch changes

  • Updated the proof plugin's manifest to declare its data categories. (dac1ee6)

plugin: rtk@0.1.2

Patch changes

  • Added data-category declarations to the rtk plugin's manifest. (dac1ee6)

plugin: sample@0.1.2

Patch changes

  • Added manifest-declared data categories to the sample plugin's manifest. (dac1ee6)

plugin: sample-widget@0.1.2

Patch changes

  • Updated the sample-widget plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: scrapling@0.1.2

Patch changes

  • Updated the scrapling plugin's manifest to declare its data categories. (dac1ee6)

plugin: security-guidance@0.1.2

Patch changes

  • Added data-category declarations to the security-guidance plugin's manifest. (dac1ee6)

plugin: serper@0.1.2

Patch changes

  • Updated the serper plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: shadow@0.1.2

Patch changes

  • Added manifest-declared data categories to the shadow plugin's manifest. (dac1ee6)

plugin: spider@0.1.2

Patch changes

  • Updated the spider plugin's manifest to declare its data categories. (dac1ee6)

plugin: spidercloud@0.1.2

Patch changes

  • Added data-category declarations to the spidercloud plugin's manifest. (dac1ee6)

plugin: tavily@0.1.2

Patch changes

  • Updated the tavily plugin's manifest with manifest-declared data categories. (dac1ee6)

plugin: tool-firewall@0.1.2

Patch changes

  • Added manifest-declared data categories to the tool-firewall plugin's manifest. (dac1ee6)

ryu-cli@0.1.2

Minor changes

  • Updated node command handling to work with the minted node token and pairing clients. (540a585)

ryu-cli (TUI)@0.1.2

Minor changes

  • Updated the TUI's core target to resolve the node-token and pairing clients. (540a585)

ryu-core@0.1.2

Minor changes

  • Minted a node token on first boot, added the pairing flow, introduced the ACL store and permission vocabulary, and wired permission-level gating across Core and the manifests. (540a585)
  • Added a reconciler that projects enabled apps' pi_extensions onto Pi's extension directory, moved the plan-mode continuation out of the kernel, and hardened revocation ordering and the pi:extension privilege gate. (9162a2c)
  • Extended plugin-manifest handling to accept app-declared quota fields alongside the kernel quota set. (e14e158)

Patch changes

  • Removed the hardcoded DataCategory union and DataCounts shape from data_admin and updated plugin-manifest handling for manifest-declared categories. (dac1ee6)
  • Stopped pre-installing the opt-in companion apps and updated the seed invariant so every compiled-in bundle has exactly one live carriage. (1541f35)

ryu-gateway@0.1.2

Minor changes

  • Reserved the pi namespace in governance so a Community plugin cannot self-approve the pi:extension capability. (9162a2c)

ryu-kernel-contracts@0.1.2

Minor changes

  • Extended the plugin-manifest schema and Rust types with the permission_levels vocabulary. (540a585)
  • Extended the plugin-manifest schema and Rust manifest types with contributes.pi_extensions and the pi:extension grant. (9162a2c)

Patch changes

  • Updated the plugin-manifest schema and Rust types to carry manifest-declared data categories. (dac1ee6)

ryu-spaces@0.1.2

Minor changes

  • Updated the spaces crate to align with the new ACL permission vocabulary. (540a585)

Web app (app.ryuhq.com)@0.1.2

Minor changes

  • Updated the web app's platform and Tauri shims to use the node-token and pairing clients. (540a585)

Website (ryuhq.com)@0.1.2

Minor changes

  • Switched the download page's waitlist ETA to the observed invite rate and added the Refresh cooldown with a persisted deadline. (1c6baf8)
  • Reworked the /apps error state for unconnected nodes, turned organization settings into a dialog, and cleaned up dashboard headers and card styling. (e14e158)

Patch changes

  • Replaced every remaining native select on the web surface with shadcn Selects, disabled the waitlist application submit until required fields are complete, and centred the /redeem and /referrals pages. (3653144)
  • Added an Add a node action and a real empty state to /dashboard/nodes linking to the provisioning flow, and made the certifications page use portal chrome for signed-in sessions and marketing chrome for signed-out ones. (61ecec3)
  • Removed the Open Source link from the portal header unless the new showOpenSource prop enables it. (1541f35)

Repository & tooling

Minor changes

  • Updated the public mirror script as part of the plugin-store changes. (9162a2c)

Patch changes

  • Fixed the unbound HIDE_ARGS array in tools/mirror-plugins.sh under bash 3.2 so the plugin mirror actually runs on macOS. (7e84399)
  • Added scripts/release/cut-docs-branch.sh to freeze docs branches per version and documented the step in RELEASING.md. (c351a4e)
  • Moved both Docker build and runtime stages to Debian trixie so the prebuilt ONNX Runtime archive's glibc-2.38 symbols link successfully. (9a9c5bc)
  • Recorded the docs-versioning behaviour and intended branch-per-version shape in RELEASING §3. (517161b)
  • Corrected RELEASING.md so every SDK and the fumadocs trio are included in the version-bump verification, and recorded that GitHub Actions is billing-blocked. (a62e2dd)

Full changelog: v0.1.1...v0.1.2