v0.1.20
Publish the plugin registrar, so a package can reach the engine at any time
import inker from '@c9up/inker' now hands back something with use(), the
way the upstream engine's default export does. It queues; InkerProvider
drains the queue into the engine it builds, where the plugins keep the
deferral they would have had upstream — they run just before the first
render.
The singleton is the registrar and not the engine, because a Templates
takes its root at construction and the root is a containment boundary: an
engine created at import time would have nothing to be contained by. The
contract a caller sees is the same either way.
InkerProvider's constructor also sets app.usingInker, mirroring the
upstream engine provider's flag. Without it a contributing package has no
way to ask whether templates exist except through the container, and that
question has a lifecycle.
Release 0.1.20.
Read the artifact where cargo actually wrote it
The NAPI copy script looked under <package>/target unconditionally. Cargo
writes elsewhere whenever CARGO_TARGET_DIR is set — a shared cache, a CI mount,
a read-only external directory — so the build produced the library and then
failed to find it, or silently copied a stale one from a previous run.
CARGO_TARGET_DIR is honoured now, resolved against the package root when it
is relative, as cargo resolves it. All fourteen scripts had the same line; an
audit reported it in ream-mcp alone.
Verified end to end, not by reading: a real cargo build redirected to a
temporary directory, the artifact copied out of it, and the package suite green
on that binary.
Keep the dev-dependency alignment, drop the workspace: protocol
The internal ranges had been rewritten to workspace:^. That resolves inside
this monorepo and nowhere else: every package CI checks out its own repository
alone and runs pnpm install, where the protocol has no workspace to point at
and fails with ERR_PNPM_WORKSPACE_PKG_NOT_FOUND before a single test runs. The
concrete ranges are back; the dev-dependency bumps that came with the same edit
are kept, and now match what the lockfile already resolved.
Changes since v0.1.19.