Skip to content

Capability portability floor #594

Description

@flyingrobots

Migrated from a local Wesley Method backlog card after adopting METHOD v2.1.0 tracker doctrine.

  • Source path: docs/method/backlog/up-next/RUNTIME_capability-portability-floor.md
  • Original filesystem lane: up-next
  • Canonical Method lane label: lane:asap
  • Legend: RUNTIME
  • Migration issue: Migrate Wesley Method backlog to GitHub Issues #548
  • Migrated on: 2026-06-04

Original Local Backlog Card

Capability portability floor

  • Lane: up-next
  • Legend: RUNTIME

Why now

TypeScript modules remain the easiest authoring path. Without an explicit
portability floor, important features may stay trapped in Node-only modules and
never prove the WASM or Rust-host story.

Hill

New cross-host capability families prove a WASM fixture or explicitly declare
themselves Node-only.

Done looks like

  • capability metadata includes execution mode such as typescript-node,
    wasm, rust-native, or wasm-or-native
  • docs mark TypeScript modules as Node-hosted unless compiled to WASM
  • module-load and capability execution reports show execution mode
  • cross-host capability families require at least one WASM fixture before being
    called portable
  • Node-only capabilities remain allowed but cannot be mistaken for portable
    module truth

Repo Evidence

  • docs/design/0009-rust-core-and-wasm-capability-abi/rust-core-and-wasm-capability-abi.md
  • docs/design/0017-rust-native-front-door-and-node-retirement/HOST_COMPATIBILITY_BOUNDARY.md
  • crates/wesley-core/src/domain/capability.rs
  • crates/wesley-core/tests/module_capability_registry.rs
  • docs/method/backlog/cool-ideas/DX_inspect-module-capabilities-command.md
  • docs/method/backlog/cool-ideas/DX_module-authoring-and-loading-guide.md

Current Slice Status

Execution mode and portability floor metadata now live in Rust. Hermetic
fixture checks prove that portable capability outputs must agree across
Rust-native, WASM, and external-process hosts for the same input digest.
Browser, Bun, and Deno host packages are explicitly external host experiments,
not proof of portable compiler truth. The Node host package has been retired,
so future Node execution evidence must arrive through a new, explicit adapter
design rather than the deleted legacy host.

Activity

  1. coderabbitai commented on Jun 4, 2026

    @coderabbitai
    🔗 Related PRs

    #270 - feat(host-browser): browser host + browser/deno/bun smokes [merged]
    #472 - [codex] Advance Continuum inspectability and METHOD closeout [merged]
    #504 - Compile runtime optic artifacts [merged]
    #521 - Add Rust IR performance baseline [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. added
    triage:cool-ideasExploratory idea intake that still needs scheduling, closure, or a repo move
    and removed on Jun 24, 2026
  3. flyingrobots commented on Jun 25, 2026

    @flyingrobots
    OwnerAuthor

    GraphQL is compiled to IR, which is then compiled to whatever else. Old. Irrelevant. Closed.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    legend:RUNTIMERuntime/tooling/host/operator flow worktriage:cool-ideasExploratory idea intake that still needs scheduling, closure, or a repo move

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions