You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the Desktop Companion app ships with a single hardcoded asset pack (character design, animations, and spritesheets) bundled directly into the compiled binary via include_bytes!. Adding more character themes, animations, or spritesheet packs directly to the source code would significantly bloat the companion executable/plugin bundle, making downloads slower and distribution less efficient.
Goal
Implement support for installable packs—specifically remote/downloadable asset packs—so users can easily add, switch, and download new character design, animation, and spritesheet packs without bloating the core companion package/binary.
Suggested Scope
Pack Manifest & Metadata:
Define a standard format (e.g., JSON/YAML) to describe an asset pack, detailing the pack name, author, version, target/agent mappings, and the assets themselves.
Remote Install Command/Workflow:
Introduce a command-line interface or configuration option to install packs from a remote URL or repository (e.g., oh-my-opencode-slim companion install-pack <url-or-name>).
Local Cache & Storage:
Determine a standard, persistent storage directory under user data/cache directories (e.g., ~/.local/share/opencode/storage/oh-my-opencode-slim/packs/) to store downloaded packs.
Versioning & Compatibility:
Ensure the companion and plugin runtimes can validate that a given asset pack is compatible with the current version of the companion protocol.
Validation & Checksums:
Use cryptographic hashes (e.g., SHA256 checksums) to verify remote asset pack integrity upon download.
Documentation:
Provide clear instructions on how users can install packs, and documentation for developers on how to create, format, and host custom companion asset packs.
Default Bundled Pack Behavior:
Keep a basic default pack bundled or pre-installed so the companion works out-of-the-box without requiring initial internet downloads.
Acceptance Criteria
Users can list, install, update, and switch between multiple asset packs via CLI or config file.
Remote asset packs can be downloaded dynamically and are stored in a designated local cache/storage folder.
Installed packs are validated against a schema/manifest and checksum verified.
The companion app loads assets dynamically at runtime from the active pack's local directory instead of relying solely on hardcoded include_bytes!.
If no external pack is installed or selected, the companion falls back gracefully to a built-in default asset pack.
Proper error handling is implemented for failed downloads, corrupt archives, or incompatible pack versions.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Originally tracked in issue #561 by @alvinunreal
Problem
Currently, the Desktop Companion app ships with a single hardcoded asset pack (character design, animations, and spritesheets) bundled directly into the compiled binary via
include_bytes!. Adding more character themes, animations, or spritesheet packs directly to the source code would significantly bloat the companion executable/plugin bundle, making downloads slower and distribution less efficient.Goal
Implement support for installable packs—specifically remote/downloadable asset packs—so users can easily add, switch, and download new character design, animation, and spritesheet packs without bloating the core companion package/binary.
Suggested Scope
oh-my-opencode-slim companion install-pack <url-or-name>).~/.local/share/opencode/storage/oh-my-opencode-slim/packs/) to store downloaded packs.Acceptance Criteria
include_bytes!.All reactions