-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Bug: ov add-skill misclassifies localhost Docker servers as local filesystem access #959
Description
Summary
When ov targets an OpenViking server exposed on localhost but actually running inside Docker, ov add-skill ./SKILL.md treats the server as local and sends the host path string directly instead of uploading the file. The container cannot read that host path, so the server falls through to parsing the path text as raw SKILL content and returns a misleading SKILL.md must have YAML frontmatter error.
Environment
- OpenViking server: 0.2.9 in Docker
- CLI: reproducible with newer
ovbuilds that uselocalhost/127.0.0.1hostname checks - Host OS: macOS/Linux host with containerized server
Steps To Reproduce
- Start OpenViking server inside Docker and publish it to
http://localhost:<port>. - Keep
SKILL.mdonly on the host filesystem. - Run
ov --url http://localhost:<port> add-skill ./SKILL.mdfrom the host.
Actual Behavior
The CLI skips temp upload because it only checks whether the configured host is localhost/127.0.0.1. It posts {"data":"./SKILL.md"} to /api/v1/skills, the server cannot resolve that path inside the container, and the request eventually fails with SKILL.md must have YAML frontmatter.
Expected Behavior
The CLI should upload the file whenever the server does not share the caller filesystem, even if the endpoint hostname is localhost. At minimum, the server should return a clear file-not-found / inaccessible-path error instead of a frontmatter parse error.
Notes
Current CLI logic appears to rely only on hostname matching for is_local_server(), which is insufficient for Docker and other localhost-forwarded deployments.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status