Skip to content

Version Packages - #412

Merged
dskvr merged 1 commit into
mainfrom
changeset-release/main
Nov 7, 2026
Merged

dskvr merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@kehto/mocks@0.1.0

Minor Changes

  • 0379d16: Introduce @kehto/mocks: deterministic, in-memory mock services for every
    napplet NAP domain — merged (identity, inc, intent, shell, theme) and
    every open napplet/naps draft (relay, storage, keys, media, notify, config,
    connect, class, value, cvm, outbox, upload, pow, link, webrtc, serial, ble,
    system, common, lists, count, blossom, torrent, hashtree, dm, resource, fs,
    capture, catalog, display, worker, mesh, motion, location, navigation, gamepad,
    llm, soulseek, nzb, git).

    Each mock is a plain ServiceHandler built with defineMockService, exposing
    service.mock controls (state(), reset(), sent, routes) and
    domain-specific controls for pushes and progress. createMockNapServices()
    instantiates the whole registry for ShellAdapter.services;
    MOCK_NAP_REGISTRY records the exact napplet/naps ref each mock was written
    against, and scripts/audit-naps.mjs reports upstream drift. Transfer-oriented
    mocks (torrent, nzb, soulseek, resource, upload, fs, blossom, hashtree, git) use
    a Linux distribution image catalog as their subject.

    Mocks deliver through the real runtime: extension mocks declare their
    out-of-request pushes as pushCapabilities (defineMockService({ pushes })),
    pushToWindow returns the runtime's delivery verdict and records only delivered
    envelopes, and the relay mock owns fan-out through each subscription's own
    runtime send (publisher echo, relay scope) via pushThrough.

Patch Changes

  • 4dcd77c: Admit the host Napplet core 0.38 and nap 0.37 releases in peer dependencies
    and JSR imports, and use those releases for development and tests.
  • Updated dependencies [0379d16]
    • @kehto/runtime@0.28.1

@kehto/runtime@0.28.1

Patch Changes

  • 0379d16: Add ServiceHandler.pushCapabilities: a registered service outside the built-in
    dispatcher can declare the exact shell -> napplet push types it emits (each
    mapped to the recipient's ACL capability or explicit null), and
    ServiceRuntimeContext.sendToEligibleNapplet delivers them under the same
    gates as inbound extension routing (registered handler, live unblocked source,
    explicit isDomainAllowed grant, declared capability). Built-in domains keep
    their canonical recipient mapping; undeclared types are still refused.

    When a registered relay service accepts a relay.publish, that service now
    owns storage and fan-out of the event. The runtime ring buffer no longer
    re-delivers it, which previously skipped the publisher's own subscriptions,
    ignored per-subscription relay scope, and sent every other window a second
    legacy ['EVENT', …] copy. Publishes coordinated by the runtime through the
    adapter relay pool keep the buffer fan-out.

@dskvr
dskvr merged commit c815e65 into main Nov 7, 2026
6 checks passed
dskvr added a commit that referenced this pull request Nov 9, 2026
…rewall approvals

Resolves conflicts from main (#376, #409, #411, #412):
- runtime.ts: keep main's createServiceRuntimeContext split and custom-domain
  push routing (pushCapabilities), and keep this branch's per-service
  lifetimes and authorizeOperation binding plus the permissions runtime.
- types.ts / service-types.ts: ServiceHandler lives in service-types.ts on
  this branch; carry main's pushCapabilities field over to it.
- relay-handler.ts: a planning relay service owns publish fan-out (main's
  ring-buffer skip); legacy relay services stay denied, so buffer fan-out
  still runs whenever the runtime coordinates the publish via the pool.
- STATE.md: keep both quick-task rows.

Port the new @kehto/mocks relay mock and main's relay delivery test to the
planned-execution relay contract (local-only plans, abort-aware execute),
since this branch denies legacy relay services (FW-RELAY-SERVICE-LEGACY-001).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant