feat(runtime): suggest cached extra registry skills#8185
Conversation
|
|
||
| for registry in extra_registries | ||
| .iter() | ||
| .filter(|registry| registry.enabled && registry.kind == "git") |
There was a problem hiding this comment.
Direction (draft, no verdict): registry.kind == "git" is a string compare against the schema's own default_extra_registry_kind() -> "git". The schema field ExternalRegistry.kind is a String today, so this is the canonical comparison given the current shape, but this is the first runtime branch on kind. Since the schema comment already says only git is supported and other protocols are reserved, this is the cheapest moment to promote kind to a real enum in zeroclaw-config so the filter reads registry.kind == RegistryKind::Git and every future consumer branches on the typed variant instead of a literal. Not blocking the draft, but worth doing here rather than after more call sites accrete.
|
Draft, direction only, no verdict. I read both files and the new test block. Direction notes:
One thing to confirm before you flip it out of draft: the sort now runs once in Flag me when it is ready for a verdict. |
Summary
master(all contributions)skills-registry.zeroclaw skills install registry:<name>/<skill>, matching the install source added by feat(skills): user-configured extra skill registries via registry:<name>/<skill> #7827.gitregistry kinds, invalid extra-registry names, and cached skill directories that do not match the installer source grammar.namestill displays the bare skill directory name instead of the fullregistry:<name>/<skill>source, keeping suggestion names concise while the install command includes the registry prefix.process_messagepaths. Agent-loop call sites now forward configured extra registries into the existing suggestion renderer, but this does not change agent orchestration, persona, tool execution, the install path, or the registry sync path.enhancement,risk: high,size: S,agent,runtime,skills,priority:p2Validation Evidence (required)
config.skills.extra_registries, and the extra-registry source text now reuses the installer grammar guard before renderingregistry:<name>/<skill>.risk: highruntime code, run broad readiness validation before maintainer sign-off.Security & Privacy Impact (required)
YesNoNoNoYes, describe the risk and mitigation: Suggestions now read metadata from already-cached extra-registry skill directories under the existing ZeroClaw data directory. The path is limited to enabled git extra registries, validates registry and skill source names, reads metadata manifests/frontmatter only, and does not fetch, install, execute scripts, or read skill bodies. The runtimekind == "git"filter is defensive; current config validation already rejects other extra-registry kinds.Compatibility (required)
YesNoNoorYesto either: exact upgrade steps for existing users: No upgrade required. Users only see extra-registry suggestions when they already have install suggestions enabled and an enabled git extra registry cached locally.Rollback (required for
risk: mediumandrisk: high)skills.install_suggestions.enabled = false.skills.install_suggestions.enabled = false; disabling or removing an extra registry also prevents that registry from contributing suggestions.zeroclaw skills install registry:<name>/<skill>command for a skill the operator did not expect, or warning logs for malformed cached registry metadata.Supersede Attribution (required only when
Supersedes #is used)#<pr> by @<author>, one per line): Not applicable.Co-authored-bytrailers added in commit messages for incorporated contributors?NoNo, why (inspiration-only, no direct code/design carry-over): This is a fresh narrow follow-up to [Feature]: Prompt-triggered install suggestions for missing skills and plugins #6289/feat(skills): user-configured extra skill registries via registry:<name>/<skill> #7827, with no superseded PR code carried forward.