You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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.
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.
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)
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)
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)
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)