GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat(rpc): expose native shared state for custom channels by dvcolomban · Pull Request #410 · devframes/devframe

Conversation

@dvcolomban

@dvcolomban dvcolomban commented Sep 28, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Background (Why)

Custom RPC channels can already use createRpcClient() and createRpcServer(), but the native shared-state implementations are not public. Channel bindings otherwise have to copy that synchronization logic or construct a full node context.

Changes (What)

Export the existing implementations through devframe/rpc/shared-state, accepting the native RPC members they use. Subscription handlers read the calling connection's birpc metadata, so custom channels and the existing node context share the same subscription behavior. A failed initial snapshot now rejects instead of leaving its promise pending.

Build the RPC entry points with the browser-safe graph and include them in the browser-import guard. Existing implementation files stay in place. The channel binding still owns peer authentication, serialization and disconnection.

This draft is now limited to RPC and shared state. JSON rendering is in #411 and baseline diagnostic snapshot repairs are in #412.

Verification (Testing)

Six focused tests pass, including two real MessageChannel peers through both custom channels and the native node context. They cover subscription isolation, writes, disconnection and rejected initial snapshots. The devframe build, package type check, scoped lint and Knip pass. The browser-import guard finds no forbidden imports across 31 reachable chunks and 20 entry points.

The new and changed API snapshots were generated from fresh artifacts. The unchanged baseline has three stale diagnostic snapshots, confirmed in base CI; their repair is separate from this feature. Full-repository validation runs in CI.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@vercel

vercel Bot commented Sep 28, 2026

Copy link
Copy Markdown

@dvcolomban is attempting to deploy a commit to the NuxtLabs Team on Vercel.

A member of the Team first needs to authorize it.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Sep 28, 2026
Design a portable contribution SDK and WebExtension runtime dvcol/devkit-extension#1
Open
Provider discovery and routing dvcol/devkit-extension#7
Closed
Renderer and surface contract dvcol/devkit-extension#12
Open
@dvcolomban
feat(rpc): expose native shared state for custom channels
fb8cf6a
@dvcolomban
dvcolomban force-pushed the dvcol/browser-rpc-primitives branch from 85ea1e6 to fb8cf6a Compare September 28, 2026 15:01
@dvcolomban dvcolomban changed the title feat: expose shared state and JSON rendering for custom RPC channels feat(rpc): expose native shared state for custom channels Sep 28, 2026
This was referenced Sep 28, 2026
feat(json-render): expose native rendering for browser contexts #411
Draft
test: refresh diagnostic API snapshots #412
Merged
Examples and API coverage contract dvcol/devkit-extension#14
Open

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot will automatically review once the pull request is marked ready for review

At least 1 approving review is required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@dvcolomban
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.