Skip to content

Version Packages - #417

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

dskvr merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

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/firewall@0.8.0

Minor Changes

  • 249fe8c: Add pure approval policy for NAP interfaces, resources, network origins and registered extensions. Grants bind to verified manifest and artifact identities, compose with interface access, and support explicit denial, one-request, session and persistent lifetimes.

@kehto/paja@0.33.0

Minor Changes

  • 249fe8c: Admit verified and development iframe bytes through shared Firewall approvals before execution. Add exact directive-scoped browser network decisions, a closed CSP, shared prompt and grant management, and source-bound retirement on revocation. Paja now rejects its ineffective firewall simulation mode and resolves development assets only through an approved origin.

  • 249fe8c: Require scoped Firewall approval for mediated service operations, with immutable
    resource, device, file, and relay plans, source-owned cancellation, and revocation
    cleanup. Wire Paja's supported backends to the same operation contracts and
    remove the retired NAP-RESOURCE wire inputs.

  • 249fe8c: Require shared Firewall approval before gamepad input and notification effects in permission-enabled runtimes. Bind Paja notification permissions to verified app identity, suppress late effects after revocation, and document the retained legacy notification paths.

  • 249fe8c: Require relay operations to plan immutable destinations before approval and
    execute only those approved targets across runtime, reference services, shell,
    and Paja integrations.

  • 249fe8c: Route resource fetches through a protected one-hop transport with public-address
    pinning, bounded bodies and deadlines, disconnect cancellation, and redirect
    metadata for per-destination authorization. Reject direct proxy access from
    untrusted frames before DNS or network activity.

    Authorize Paja BUD-03 discovery relay sockets individually, preserve NIP-65 author routing, and scope discovery caches to a live source-window generation so cancellation or source replacement cannot deliver stale server lists. Refresh signer-derived bootstrap relays at host signer lifecycle boundaries, then use that cache during resource requests instead of invoking external signer hooks.

  • 249fe8c: Require prepared, signer-bound upload plans for runtime approval, authorize exact
    upload resources and selected network origins before signing or egress, and
    cancel progress on revocation. Paja prepares its Blossom destination before
    approval and the reference HTTP uploader rejects unapproved redirects.
    Window teardown invalidates all callbacks before cancellation and continues
    cleaning up sibling uploads when a backend cancellation throws.

  • 249fe8c: Require runtime-approved WebRTC signaling plans, reject opaque peer factories,
    and fail closed for configured ICE/TURN endpoints until typed Firewall support exists.

Patch Changes

  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
    • @kehto/firewall@0.8.0
    • @kehto/runtime@0.29.0
    • @kehto/shell@0.33.0
    • @kehto/services@0.31.0

@kehto/runtime@0.29.0

Minor Changes

  • 249fe8c: Add independent temporal budgets for mediated operations and approval prompts, with caller-owned clocks and lifecycle counters. Permission grants cannot bypass this evaluator.

    Add scoped approval adapters, durable-write-before-grant semantics, explicit revocation recovery, and service authorization bound to immutable source principals. LINK uses this coordinator with independent rate checks and ACL ceilings. Retiring or replacing a source cancels pending approval and removes its session grants.

    Add pre-execution required/optional interface admission with generation-bound revalidation. Enforce shared interface approvals on built-in dispatch and registered extensions. Extensions capture bounded immutable JSON, reject replayed IDs, retain host-owned denial schemas, and apply independent blocking prompt-spam budgets.

    Allow services to cancel one pending or active authorization using a request signal, without cancelling sibling work or accepting late grants. Preserve equivalent-request ordering and bound retained cancelled queue entries.

    Invalidate pending extension approval when its host capability declaration changes.

  • 249fe8c: Hosts with RuntimeAdapter.permissions can now change the operation budget after creation with runtime.permissions.setRateLimit(config), and read it with runtime.permissions.rateLimit. It covers unfocusedMultiplier and the startup burst guard, keeps running counters, and throws RangeError on out-of-range values. RuntimePermissions implementers must add both members.

    RateLimitConfig now accepts an unfocusedMultiplier above 1, and a burst.windowMs or burst.maxOperations of zero. A zero window turns the guard off.

    onFirewallEvent, firewallPersistence and the runtime.firewallState mutators act on the legacy gate only, so a runtime with permissions warns once with FW-RUNTIME-LEGACY-IGNORED-001 when they're used. getFocusContext scales both. With permissions, aclDefaultPolicy is a ceiling that approvals can't exceed. Deferred filterNappletMessage envelopes meet approvals and budgets at release. @kehto/shell also exports RateLimitConfig.

  • 249fe8c: Require relay operations to plan immutable destinations before approval and
    execute only those approved targets across runtime, reference services, shell,
    and Paja integrations.

Patch Changes

  • Updated dependencies [249fe8c]
    • @kehto/firewall@0.8.0

@kehto/services@0.31.0

Minor Changes

  • 249fe8c: Require scoped Firewall approval for mediated service operations, with immutable
    resource, device, file, and relay plans, source-owned cancellation, and revocation
    cleanup. Wire Paja's supported backends to the same operation contracts and
    remove the retired NAP-RESOURCE wire inputs.

  • 249fe8c: Require shared Firewall approval before gamepad input and notification effects in permission-enabled runtimes. Bind Paja notification permissions to verified app identity, suppress late effects after revocation, and document the retained legacy notification paths.

  • 249fe8c: Require relay operations to plan immutable destinations before approval and
    execute only those approved targets across runtime, reference services, shell,
    and Paja integrations.

  • 249fe8c: Adopt the NAP-RESOURCE draft's canonical exact url/ordered urls requests and
    padded base64 result bytes. Resource authorization now covers the immutable
    resource URL plus every resolver-reported HTTP(S) or WebSocket destination, with cancellation,
    live revocation, and stale completion handling at the service boundary.

  • 249fe8c: Integrate NAP-LINK with runtime-scoped interface and destination approvals, preserving canonical results and cancelling stale source work. Freeze trusted permission principals through shell source registration. Add live-source permission revocation handling, bounded replay protection, and a migration warning for host-only LINK openers. Unknown LINK actions are ignored and forbidden local/code schemes cannot be enabled by configuration.

    Authorize each resource URL and immediate HTTP(S) origin through shared runtime grants. Hold authorization through response body consumption, propagate request cancellation, retain bulk partial outcomes, and diagnose resolver-only compatibility use once per service instance.

  • 249fe8c: Require prepared, signer-bound upload plans for runtime approval, authorize exact
    upload resources and selected network origins before signing or egress, and
    cancel progress on revocation. Paja prepares its Blossom destination before
    approval and the reference HTTP uploader rejects unapproved redirects.
    Window teardown invalidates all callbacks before cancellation and continues
    cleaning up sibling uploads when a backend cancellation throws.

  • 249fe8c: Require runtime-approved WebRTC signaling plans, reject opaque peer factories,
    and fail closed for configured ICE/TURN endpoints until typed Firewall support exists.

Patch Changes

  • 249fe8c: Authorize immutable OUTBOX and COUNT relay plans before transport, signing, or
    fanout, and suppress work and results after source revocation.

  • 249fe8c: Prevent resource fetches after cancellation during asynchronous metadata lookup.
    Capture bulk inputs, preserve cancellation ownership across duplicate IDs and
    source replacement, and cancel outstanding work when the service detaches.

    Require network approval for WebSocket resolver destinations and reject unsupported
    network schemes or embedded credentials before invoking transport callbacks.

    Retain the latest 1,024 completed resource IDs per source window to suppress
    repeated side effects and terminal responses, while preserving cancellation and
    clearing replay history on source destruction or service detachment.

  • 249fe8c: Prevent duplicate theme.changed delivery when a host bridge owns theme broadcasts.

  • Updated dependencies [249fe8c]

  • Updated dependencies [249fe8c]

  • Updated dependencies [249fe8c]

    • @kehto/runtime@0.29.0

@kehto/shell@0.33.0

Minor Changes

  • 249fe8c: Admit verified and development iframe bytes through shared Firewall approvals before execution. Add exact directive-scoped browser network decisions, a closed CSP, shared prompt and grant management, and source-bound retirement on revocation. Paja now rejects its ineffective firewall simulation mode and resolves development assets only through an approved origin.

  • 249fe8c: Hosts with RuntimeAdapter.permissions can now change the operation budget after creation with runtime.permissions.setRateLimit(config), and read it with runtime.permissions.rateLimit. It covers unfocusedMultiplier and the startup burst guard, keeps running counters, and throws RangeError on out-of-range values. RuntimePermissions implementers must add both members.

    RateLimitConfig now accepts an unfocusedMultiplier above 1, and a burst.windowMs or burst.maxOperations of zero. A zero window turns the guard off.

    onFirewallEvent, firewallPersistence and the runtime.firewallState mutators act on the legacy gate only, so a runtime with permissions warns once with FW-RUNTIME-LEGACY-IGNORED-001 when they're used. getFocusContext scales both. With permissions, aclDefaultPolicy is a ceiling that approvals can't exceed. Deferred filterNappletMessage envelopes meet approvals and budgets at release. @kehto/shell also exports RateLimitConfig.

  • 249fe8c: Require relay operations to plan immutable destinations before approval and
    execute only those approved targets across runtime, reference services, shell,
    and Paja integrations.

  • 249fe8c: Adopt the NAP-RESOURCE draft's canonical exact url/ordered urls requests and
    padded base64 result bytes. Resource authorization now covers the immutable
    resource URL plus every resolver-reported HTTP(S) or WebSocket destination, with cancellation,
    live revocation, and stale completion handling at the service boundary.

  • 249fe8c: Integrate NAP-LINK with runtime-scoped interface and destination approvals, preserving canonical results and cancelling stale source work. Freeze trusted permission principals through shell source registration. Add live-source permission revocation handling, bounded replay protection, and a migration warning for host-only LINK openers. Unknown LINK actions are ignored and forbidden local/code schemes cannot be enabled by configuration.

    Authorize each resource URL and immediate HTTP(S) origin through shared runtime grants. Hold authorization through response body consumption, propagate request cancellation, retain bulk partial outcomes, and diagnose resolver-only compatibility use once per service instance.

Patch Changes

  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
    • @kehto/runtime@0.29.0

@kehto/cli@0.6.1

Patch Changes

@kehto/mocks@0.1.1

Patch Changes

  • 249fe8c: The relay mock now implements the runtime's planned-execution relay contract (planRelayOperation / executeRelayOperation) with local-only plans, so the Firewall approval runtime routes relay traffic to it instead of denying it as a legacy relay service.
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
  • Updated dependencies [249fe8c]
    • @kehto/runtime@0.29.0

@test/harness@0.0.42

Patch Changes

@dskvr
dskvr merged commit fad02d2 into main Nov 10, 2026
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