Repository navigation
feat(registry): describe Ferriki's Rust crate and Vite build-time macros, mark it beta - #103
Merged
Merged
Conversation
…ros, mark it beta Ferriki now ships as a Rust crate and an npm package on one native engine, and adds build-time macros for Vite. The registry entry says so: `does` names the three ways to use it (Node.js, Rust, a Vite build), `audience` adds component libraries, `proof` keeps the successor register (Shiki honored, the engine moved to native Rust, why), and `evidence` adds the qualitative throughput result next to the mirrored Shiki test suite. Status moves from alpha to beta; the fallback version follows the current release. `job`, `what`, links and relations are unchanged, so the generated Markdown frames and every sibling's README family block stay as they are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXa29GcNynhav2UD8xw6o6
A member's package does not always carry the member's name: Ferriki's
npm package is `@ferriki/core`, while the unscoped `ferriki` on npm is an
unpublished name, so the stats refresh recorded Ferriki without npm.
The registry entry may now name its published packages by registry
(`packages: { npm: "@ferriki/core" }`), and `packageName(tool, registry)`
resolves the override or falls back to `name`. The stats refresh
(crates.io, npm and their ownership checks), the live request
(`liveRequestFor`) and the metrics document lookup all go through it;
snapshot and live facts stay keyed by member. npm's bulk downloads
endpoint takes no scoped package, so a scoped one gets a request of its
own. ADR-0006 records the override and no longer lists Ferriki as
Git-only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DXa29GcNynhav2UD8xw6o6
Snapshot from today's crates.io, npm and GitHub releases, with members looked up under their published package names: Ferriki now carries its crate and its npm package `@ferriki/core`, and its latest release. Not every lookup answered. npm's downloads API was unreachable, so monthly downloads kept their previous values (zero for the newly found `@ferriki/core` and `ardo`). The GitHub releases of dalo and ardo were refused, so they kept their previous value (none). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXa29GcNynhav2UD8xw6o6
swernerx
marked this pull request as ready for review
October 4, 2026 22:00
This was referenced Oct 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ferriki's registry entry describes the product as it ships now: one native engine used from Node.js, from Rust (the
ferrikicrate, used natively by Ferromark) and at build time through the Vite macros; status moves from alpha to beta. The registry also learns that a member's package can carry another name on a registry: Ferriki publishes@ferriki/coreon npm, and the stats refresh and live figures looked for the unpublishedferriki, so the family page showed Ferriki at v0.3.0 and "Git". Part of the Ferriki relaunch of its README and homepage (sebastian-software/ferriki, release 0.12 follows).Changes
packages/family/src/family.ts,ferriki:doesnames the three ways to use it;audienceadds component libraries;proofkeeps the successor register (Shiki honored, engine moved to native Rust without WebAssembly or regex translation, usable from Rust, a Vite build ships HTML instead of a highlighter);evidenceis "Mirrored Shiki test suite · ahead of Shiki in HTML throughput" (qualitative, as the family rule requires);status: "beta"; fallbackversion0.11.0;packages: { npm: "@ferriki/core" }.job,what, relations and links are unchanged, so the generated Markdown frames and the sibling README family blocks do not change.FamilyTool.packages(optional, by registry) andpackageName(tool, "crates" | "npm"), both exported. Every registry lookup goes through it: the stats refresh on crates.io and npm including the ownership check (scripts/registry-ownership.mjslookupNames),liveRequestFor, and the metrics document. Snapshot and live facts stay keyed by member (byMember), so no component changes. GitHub releases are still looked up by member name.liveRequestFororfetchLiveRegistrydirectly now receives@ferriki/coreinstead offerriki.packagesandpackageName.app/data/registry-stats.jsonrefreshed (chore(data)commit): Ferriki now carries crate 0.11.0, npm 0.11.0 and release 0.11.0. npm's downloads API and the GitHub releases of dalo and ardo were unreachable from this environment, so those values carried forward; the deploy's own refresh fills them.packages/family/distrebuilt (committeddist, ADR-0007).scripts/registry-ownership.test.mjs(Ferriki under crateferrikiand npm@ferriki/core, per-registry fallback) andpackages/family/test/registry-facts.test.mjs(live request asks for@ferriki/core, metrics document ignores an unscopedferriki, scoped downloads request, facts land on the member).Decisions
@palamedes/*packages and holds the unscoped name as a placeholder; with no single package standing for it, it gets none (the family site shows no release facts for applications anyway).Validation
lint,format:check,typecheck,build(prerender and rendered link check): pass.pnpm agent:checkas one command needs mise, which is unavailable in this environment; the steps were run individually.theme:check(no Markdown frame changed);node scripts/check-committed-dist.mjs; README check and Markdown link check with the lockfile-pinned mdtheme 0.4.0 and lychee 0.24.2 (checksums matchmise.lock): pass.pnpm verify:package(npm and Git routes): pass.pnpm review(headless Chromium, with--no-sandboxbecause the container runs as root): 130 checks, 0 failed. The local build shows the Ferriki row as "Release v0.11.0 · Published on crates.io · npm".Issue
Refs sebastian-software/ferriki#216 (the measurements behind the new wording) and the Ferriki relaunch; no Ferramenta issue exists for this change.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DXa29GcNynhav2UD8xw6o6