* feat(plugins): default unprefixed packages to ClawHub
Use the shared source planner for CLI, chat, and assistant installs. Keep explicit npm and local sources, preserve canonical built-in shortcuts, and retain the selected registry in update and repair records.
Autoreview findings addressed:
- [P2] Preserve ClawHub provenance in search hints that match aliases
Route scoped packages through ClawHub and add @latest to ambiguous unscoped search hints.
- [P2] Preserve usable search hints for scoped names with file suffixes
Treat file-suffixed package names as registry specs, migrate source-selection tests, and retain npm in retry guidance.
- [P2] Update the remaining source-selection test expectations
Treat file-suffixed package names as registry specs, migrate source-selection tests, and retain npm in retry guidance.
- [P2] Keep npm prerelease retry hints on npm
Treat file-suffixed package names as registry specs, migrate source-selection tests, and retain npm in retry guidance.
- [P2] Restrict catalog shortcuts to canonical plugin IDs
Restrict bare shortcuts to canonical IDs and retain npm in shared hook-pack prerelease guidance.
- [P2] Preserve npm in hook-pack prerelease guidance
Restrict bare shortcuts to canonical IDs and retain npm in shared hook-pack prerelease guidance.
* docs(plugins): show ClawHub as the default install source
Update setup examples and generated inventory instructions to omit the ClawHub prefix. Document explicit npm selection and canonical plugin-ID shortcuts.
* fix(plugins): keep recovery tied to the selected source
* test(plugins): cover search commands and saved registry choices
* test(plugins): align pre-action recovery with selected sources
* test(plugins): prove source-bound recovery through the CLI
* fix(plugins): retain official identity during config recovery
* feat(llama-cpp): add managed local OCR and vision setup
* test(llama-cpp): clarify synthetic endpoint credential fixtures
* fix(llama-cpp): preserve media across managed setup
* docs: refresh config baseline
* test: isolate native output fidelity fixture
* test(ui): await avatar loader completion
* style(ui): format avatar loader test
* chore: restore focused local media scope
* refactor(llama-cpp): separate runtime inspection from preparation
Keep managed server preparation within its size budget and preserve upstream diagnostic behavior. Retain real media SDK exports in tests and satisfy catalog lint checks.
* fix(llama-cpp): enforce media budgets over inherited router limits
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
* fix(plugins): join official installations to their published listings
* fix(plugins): resolve published catalog icon paths
* feat(plugins): group mixed searches by official and community publishers
* refactor(plugins): reuse catalog field parsing and simplify test selection
* test(plugins): preserve install intent with published counterparts
* docs(plugins): mark generated reference pages and fix their shared template
Two generator files change; the other 153 files are their regenerated
output from `pnpm plugins:inventory:gen`.
- Emit a "generated, do not edit" banner naming the regeneration command
and the manual-block markers. None of the 151 reference pages said they
were generated, so a contributor edit was silently overwritten.
- Give generated reference titles a `reference` suffix. Eight of them
collided with a hand-written guide title (beam, geolocation,
google-meet, logbook, teams-meetings, webhooks, workboard,
zoom-meetings). Duplicate frontmatter titles across docs/ now total 0.
- Render the surface list as a list instead of a semicolon-joined
sentence, and use plain conjunctions for install routes. Strict STE
hard violations across docs/plugins/reference/ drop from 178 to 20.
- Drop the body H1, which duplicated the frontmatter title Mintlify
already renders.
- Fix a generator bug found while testing: the marker-less fallback in
`extractManualReferenceSections` matched only the first line under
`## Surface`, so a second `--write` run captured later bullets into a
fabricated manual block. `--write` is now idempotent and `--check`
passes across repeated runs.
All 12 hand-written manual blocks are preserved.
* test(scripts): follow resolvePluginSurface to its list contract
resolvePluginSurface now returns one string per surface item instead of
a semicolon-joined sentence, so the generator can render a list. The
four assertions move from toBe(<joined string>) to toEqual(<array>) and
pick up the capitalised labels.
The "generic fallback" case changes meaning rather than disappearing.
The empty manifest now yields [], and renderSurface() prints "This
plugin declares no channels, providers, commands, or contracts." for an
empty list, which tells a reader more than the old "plugin". The test
is renamed to say what it now checks, with a comment pointing at the
new home of the fallback.
No generated page has an empty Surface section, so no page changes
because of this.
Move llama.cpp chat and local embeddings onto a verified externally managed llama-server runtime. Remove the in-process native runtime, forked embedding workers, and node-llama-cpp dependency while preserving guided setup, local GGUF models, tool-capable agent runs, diagnostics, and operator docs.
* feat(llama-cpp): add in-process text inference
* test(llama-cpp): narrow setup provider fixture
* fix(llama-cpp): trim public surface and refresh docs map
* fix(llama-cpp): import Context type in inference test
Delay public GitHub release publication until postpublish verification, dependency evidence upload, proof append, and required plugin publish gates pass.
Also updates release-maintainer instructions so newly publishable plugins are minted/prepublished through an owner-approved path without consuming the next auto-bumped beta version unless that path is the actual release publish.