Skip to content

feat(controls-plugin): compose sections across hook instances#292

Open
draggie wants to merge 4 commits into
callstackincubator:mainfrom
draggie:feat/controls-plugin-compose-sections
Open

feat(controls-plugin): compose sections across hook instances#292
draggie wants to merge 4 commits into
callstackincubator:mainfrom
draggie:feat/controls-plugin-compose-sections

Conversation

@draggie
Copy link
Copy Markdown
Contributor

@draggie draggie commented May 28, 2026

Description

Adds support for composing Controls Plugin sections from multiple useRozeniteControlsPlugin
hook instances. The hook now accepts either options or an updater function, so components can
extend previously registered sections instead of replacing them.

Related Issue

Fixes #284

Context

Previously, each hook instance sent its own full snapshot, so the last mounted/updated
component could overwrite controls registered elsewhere. This change adds a shared registry
that combines active registrations and keeps UI, updates, actions, and agent tools resolved
against the composed section list.

Testing

  • Manual playground check with a second hook instance registering Extra Section; confirmed
    both original controls and extra section appear and the extra toggle works.

@draggie draggie marked this pull request as ready for review May 28, 2026 12:14
draggie and others added 3 commits May 29, 2026 10:48
… plugins (callstackincubator#291)

## Description

Adds two community Rozenite plugins to the plugin directory:

- **rozenite-zustand-devtools**: DevTools plugin for inspecting Zustand
store state in React Native apps
(https://github.com/IronTony/rozenite-zustand-devtools)
- **rozenite-navigation-inspector**: DevTools plugin for inspecting
navigation state in Expo Router / React Navigation apps
(https://github.com/IronTony/rozenite-navigation-inspector)

Both entries were appended to `plugin-directory.json` with the standard
`npmUrl` + `githubUrl` fields. Both packages are published on npm and
both repositories are public.

## Related Issue

N/A, this follows the documented "open a pull request to contribute your
plugin to this list" flow on the plugin directory page. Happy to open a
tracking issue first if maintainers prefer.

## Context

`plugin-directory.json` is the source of truth for the directory; all
other metadata (version, description, star count, official badge) is
resolved at build time from the npm registry and GitHub API, so no extra
fields are needed. Both plugins are community-scoped (not `@rozenite/`),
so they render with `isOfficial=false`, consistent with existing
community entries like `rozenite-growthbook-plugin` and `zorro`. GitHub
URLs point to the repo roots, matching the convention for standalone
community repos.

## Testing

- Validated `plugin-directory.json` parses cleanly (`node -e
"JSON.parse(...)"`), no trailing-comma or syntax errors.
- Confirmed both npm package URLs resolve (rozenite-zustand-devtools
v1.0.2, rozenite-navigation-inspector v1.1.1) and both GitHub repos are
public.
- Verified the diff touches only `plugin-directory.json` (8 lines
added).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add the possibility to extend sections for controls-plugin

2 participants