更新日志

查看 Pluxel 各个 package 的版本更新与发布说明。

September 2026

  1. @pluxel/create@1.1.0@pluxel/host@1.1.0@pluxel/host-dev@1.1.0@pluxel/rolldown@1.1.0@pluxel/services@1.1.0@pluxel/workbench@1.1.0

    Declare applications with one deferred configuration factory

    Applications now default-export defineHostApplication(startup => ({ ... })) from @pluxel/host. The factory returns the complete application configuration, synchronously or asynchronously; plain application exports and nested configure merging are removed. Each Host receives a shallow immutable startup snapshot shared by its factory and prepare callback. The helper preserves the inferred factory result and checks unsupported top-level fields.

    Keep development and production assembly consistent

    Builds inspect inline factories without executing them and reject production plugin catalogs that cannot be resolved statically. Module-level and imported constant plugin arrays remain supported. Explicit environment and file bindings are described in the unified configuration change.

    Re-evaluating an application factory replaces its Host; fixed-catalog execution reports this as host-reload. Dynamic source-only updates retain catalog HMR when the application factory is unchanged. Factory evaluation failures retain the running Host; failed replacement preparation recreates a Host from the previous successful factory. The starter and application documentation use the same factory declaration.

  2. @pluxel/async@1.1.0

    Add explicit async composition primitives

    Add independent limit, retry, singleflight, and wait subpaths without runtime dependencies. Limit shared or per-key concurrency, explicitly authorize bounded retries, share only in-flight work, and cancel waits using native AbortSignal. Stateful handles close admission and drain accepted work; cancelled waiters do not acquire ownership of shared operations.

    Extend iter with sequential forEach, find, some, every, and reduce consumers that preserve upstream cleanup and drain semantics. Preserve the existing grfn and iter contracts. Generate all source and published exports with tsdown and validate behavior, public types, and source-free consumption.

    Singleflight accepts the operation on run(key, task), sharing the first pending task for each key. Add read-only get / size and snapshot drain so domain coordinators can enforce capacity and mutation ordering without maintaining another task registry. Migrate the workspace Cache coordinator and all async examples to this contract.

  3. @pluxel/async@1.1.0
  4. @pluxel/cli@1.1.0@pluxel/rolldown@1.1.0

    Keep author dependencies out of build metadata writes

    Plugin builds now reject missing or misplaced provider peers and incorrect optional peer markers. Builds only refresh generated Plugin publication facts; they no longer move or delete dependency declarations or fill repository fields from CI environment variables.

  5. @pluxel/commands@1.1.0

    Make Command execution return Better Result

    Define Commands with name, description, input, and a Result-returning execute handler. Direct, registry, and argv calls now return Result<T, CommandFailure>. A fixed registration handle stops when disposed, and dynamic name lookup follows the current registration. Remove the obsolete InstalledCommand alias. Cancellation reaches the handler and cannot overwrite a completed Result. Remove output schemas and behavior metadata from Command definitions. The execution boundary rejects a returned Result whose status conflicts with its branch methods. Absolute deadlines beyond the platform timer range remain scheduled until their actual time instead of expiring immediately. Framework deadline cancellation remains TIMEOUT when its signal passes through owner or carrier signal composition into a nested Command. Use toCli() to compile an argv projection before publishing it with router.bind(); the router now accepts that projection instead of a Command and separate syntax options.

  6. @pluxel/commands@1.1.0

    Add a native Cap'n Web adapter for Commands

    @pluxel/commands/adapters exposes toCapnweb({ method: command }). It creates a native RpcTarget class whose methods execute selected Commands with a trusted constructor context and return JSON data results. The adapter rejects method and data keys that Cap'n Web cannot preserve and checks its encoder before reporting a successful result.

  7. @pluxel/commands@1.1.0@pluxel/services@1.1.0

    Keep carrier handling inside publication ownership

    Command mounts accept { install, handle? } instead of an installer callback. The optional handler receives the captured Command, untrusted input, and carrier context; authorization, context projection, execution, and response presentation settle within the provider and publisher invocations. A custom handler can project its own output type and construct a command-specific context. Direct bindings still execute the selected Command unchanged.

    Mounted endpoints carry an explicit marker and cannot be re-mounted as direct definitions. The new snapshotCommand() captures and validates the descriptor and execute function without creating a temporary registry, preserving the receiver and existing publication withdrawal.

  8. @pluxel/commands@1.1.0

    Add a native MCP Tool projection for Commands

    @pluxel/commands/adapters exposes toMcp(command), producing a native MCP Tool descriptor and a per-call handler. Applications own tool publication, authentication, transport and lifecycle. The adapter maps Command Results to MCP text results without exposing local causes.

  9. @pluxel/commands@1.1.0

    Isolate Command protocol entry points

    Replace @pluxel/commands/adapters with @pluxel/commands/mcp and @pluxel/commands/capnweb. The Cap’n Web peer is optional; kernel and MCP consumers no longer need to install or load it. MCP SDK remains an optional type dependency.

  10. @pluxel/cli@1.1.0@pluxel/create@1.1.0@pluxel/host@1.1.0@pluxel/host-dev@1.1.0@pluxel/rolldown@1.1.0@pluxel/services@1.1.0

    Compose applications around one Plugin Host

    Host owns catalog and lifecycle control, with a shared development driver and optional dynamic file sources. Applications default-export defineHostApplication(startup => ({ ... })), declaring plugins, optional sources, services and prepare. Dynamic declarations perform no IO until the Host opens their discovery session; producers validate declared coverage before creating resources.

    Unify development, builds and scaffolding

    Use vitePreset({ entry }) from @pluxel/services/vite and buildPreset() from @pluxel/services/build for the official service composition. Custom compositions use host({ entry }) from @pluxel/host-dev/vite and pluxel() from @pluxel/rolldown. Both use the same Host application declaration, including dynamic sources. Workbench and Node artifact attachments are installed only for selected services; the development console is explicitly enabled.

    The CLI no longer maintains HMR discovery profiles or their TUI. Declare fixed plugins and optional file/directory sources in the application itself; inspect a running application with pluxel dev.