Qwen models reject multiple system messages — push() added a second
entry. Append to the last existing entry instead; fall back to push
when the array is empty.
Co-authored-by: Emeriko <dietrich.gebert@gmail.com>
OpenCode's legacy plugin loader iterates every exported function in a
plugin module and tries to invoke each one with the plugin context object.
parseCommandFile was exported alongside the default plugin function, so
the loader called it with an object instead of a file path and crashed
with 'path must be a string or a file descriptor' before any hook ran,
which aborted the whole plugin load.
Move the frontmatter parser to its own .cjs sibling; the plugin module
now exposes exactly one top-level export (the default plugin function).
The plugin requires the parser via createRequire, and the existing
parseCommandFile tests now require the sibling directly.
Co-authored-by: ayushere <ayushere@users.noreply.github.com>
* feat: register slash commands from .opencode/command/*.md
Add parseCommandFile() to read frontmatter-described markdown files
and wire them into opencode's config.command during init.
Extend the config hook to scan .opencode/command/ and register each
.md file as a named slash command.
Update the plugin doc comment to reflect the npm install path
(opencode-ponytail) vs the old relative path.
* chore: rename package to opencode-ponytail
Align package name with npm convention for opencode plugins.
Update keywords to include opencode-plugin and opencode tags.
Fix description back to original correct wording (grammatical
regression introduced during editing).
* chore: add npm metadata and publish workflow
Add author, homepage, repository, bugs, main, exports, files, and
publishConfig fields to package.json for npm publishing.
Add .github/workflows/publish.yml to auto-publish to npm on version
tags (v*) with provenance.
* docs: add npm plugin install for opencode-ponytail
---------
Co-authored-by: Emeriko <dietrich.gebert@gmail.com>