Repository navigation
Releases: reflex-agent/reflex-agent
Releases · reflex-agent/reflex-agent
Release list
v0.19.1 — Share Plane UI
Ships the Share Plane's user interface and reorganizes settings. (Builds on v0.19.0, which introduced the Share Plane backend + the security hardening.)
Added
- Settings → Sharing — review every cross-utility grant (consumer → provider, plane, scope, revoked/expired state) and revoke any in place; a
requireScopedReadstoggle; and a read-only directory of installed providers (their data kinds + exported verbs). - Just-in-time consent — when a utility's Share Plane call lacks a grant, the host raises an unspoofable consent prompt in the iframe wrapper and, on approval, records the grant and transparently retries the original call. Works regardless of install order (dynamic / late-bound).
- Install-preview transparency — the GitHub install dialog now surfaces the sensitive permission slots (tasks / worktree / shares.consume) and a Cross-utility access section (what a utility provides + may consume).
- Tabbed settings — General, Agents & models, Integrations, Notifications & sharing, and Advanced, each with a short description of what it covers.
Notes / limitations
- JIT consent currently covers utility iframe host calls. Worker (server-action) and scheduled-workflow contexts can't prompt, so they rely on a grant created earlier (an iframe prompt or Settings → Sharing).
- Grants are persistent ("Allow"); "allow once" and interface-level grants are not yet offered.
- The
writer-studioutility andtask-board'sprovides/ slot declarations still ship in their own repos.
🤖 Generated with Claude Code
Full Changelog: v0.19.0...v0.19.1
v0.19.0 — Share Plane
The headline of this release is the Share Plane — a governed, dynamic way for installable utilities to share data and call each other — plus the security hardening that made it safe to build. See docs/sharing.md.
Added
- Share Plane (cross-utility data sharing). With user consent, a sandboxed utility can read another utility's data and call verbs it exports — without blanket access to the rest of a Space.
- DATA plane —
kb.scopedList/kb.scopedReadreturn only a provider's own entries for a grantedkind, filtered by the host-stamped, unspoofablecreatedBy. - CAPABILITY plane —
capabilities.invokeruns a provider's exported verb inside the provider's own sandbox (never the caller's);capabilities.listProvidersis metadata-only discovery. - Manifests gain
provides(claim kinds / export verbs) andconsumes(intent — grants nothing, never fails install, binds by interface at runtime). - New substrate: grant ledger (
grants.json, 0600) + self-healing provider directory (providers.json) with first-claim-wins kind ownership.
- DATA plane —
- Permission slots
permissions.tasks(read/write/dispatch),permissions.worktree,permissions.shares.consume. - Opt-in
requireScopedReadsposture (default off) that narrows blanketkb.read/kb.listto own + granted entries. - Grant lifecycle server actions for a forthcoming Settings → Sharing page.
Changed
tasks.*andgit.worktree.*are now gated by real permission slots (fix B) instead of a hard-codedtask-boardid check. An un-upgradedtask-boardis grandfathered in until it ships its declarations.kb.addis owner-enforced: once a provider claims a kind, only that provider may write it.- Install/uninstall refresh the provider directory; uninstall prunes every grant touching the utility.
- Project + utility repositories migrated to the
reflex-agentGitHub org.
Security
- Closed a privilege-escalation hole:
tasks.dispatch(spawns a subprocess agent) andgit.worktree.*(mutate the user's real repo) carried no id/permission check despite docs claiming "task-board only" — any installed utility could call them. Now gated atdispatchHostCall; denied calls are audited.
Not yet shipped (follow-up)
- React surfaces: install-time consent dialog, the just-in-time
grant-requestdirective in chat, and the Settings → Sharing revoke page (server actions exist). - The
writer-studioconsumer utility andtask-board'sprovides/slot declarations ship in their own repos.
🤖 Generated with Claude Code
Full Changelog: v0.18.2...v0.19.0