v1.18.38
Warning
Desktop app (removed from this release): it updates itself to upstream opencode.
This release included desktop installers named opencode-desktop-*. Those builds install as "OpenCode" (app ID ai.opencode.desktop) and check upstream opencode's GitHub releases for updates, not Lunos's. On start, and every 10 minutes after, they download upstream opencode's latest desktop build and offer to restart into it, even when it is an older version. If you accept, you are running upstream opencode, without Lunos's data-residency enforcement or audit log.
The CLI is not affected. lunos-ai from npm, the install script and the lunos-* archives never had this problem.
If you installed the desktop app from this or another release up to v1.18.40, uninstall it:
- macOS: delete
OpenCode.appfrom Applications. - Windows: uninstall "OpenCode" in Settings → Apps.
- Linux:
sudo apt remove opencodeorsudo dnf remove opencode, or delete the AppImage. The package is namedopencode, the same as upstream's, so if you also installed upstream opencode's desktop app this removes that too.
Its settings live under ai.opencode.desktop, the same folder upstream opencode's desktop app uses, so they may be shared with upstream.
Fixed on dev in #64: the desktop app installs as "Lunos" (tech.lunos.desktop), updates only from Lunos releases, and never offers a downgrade. It ships as lunos-desktop-* from the next release. The desktop files and update feeds have been removed from v1.18.34 to v1.18.40. SHA256SUMS still lists them; verify with --ignore-missing, as the deployment guide shows.
Last release: v1.18.37
Target ref: 71b9eba
Core
Improvements
5fcdbb1test(XCOD-72): read back the config path install reports, restore shared global config (@pminev1)1e34053feat(XCOD-72): tabbed TUI Discover view across all four content kinds (@pminev1)1af8181feat(XCOD-72): search and install every marketplace content kind from the CLI (@pminev1)fb3921etest(XCOD-69): update CLI help snapshot for mcp search and --yes; prettier (@pminev1)d8f62c1feat(XCOD-69): seed the community marketplace with MCP servers (@pminev1)b7912b8sync release versions for v1.18.37
Bugfixes
5f31205fix(marketplace): print install refusals as plain errors, not 'Unexpected error' (@pminev1)4ee9b6dfix(marketplace): resolve scoped entry names (@scope/pkg) by bare name (@pminev1)bf2d0f7fix(marketplace): list/add/update count every content kind, not only plugins (@pminev1)b9cbc15fix(marketplace): read header refs from exportable env var names (X-Api-Key -> X_API_KEY) (@pminev1)ef42b73fix(XCOD-69): block config substitution tokens in marketplace MCP entries (@pminev1)
Community Contributors Input
Thank you to 2 community contributors:
- @pminev1:
- fix(XCOD-69): block config substitution tokens in marketplace MCP entries
- feat(XCOD-69): seed the community marketplace with MCP servers
- docs(XCOD-69): document MCP discovery and add-by-name
- test(XCOD-69): update CLI help snapshot for mcp search and --yes; prettier
- feat(XCOD-72): add skills and hooks as typed marketplace content kinds
- feat(XCOD-72): search and install every marketplace content kind from the CLI
- feat(XCOD-72): tabbed TUI Discover view across all four content kinds
- test(XCOD-72): read back the config path install reports, restore shared global config
- Merge remote-tracking branch 'origin/dev' into xcod-72-marketplace-content-kinds
- fix(marketplace): read header refs from exportable env var names (X-Api-Key -> X_API_KEY)
- fix(marketplace): list/add/update count every content kind, not only plugins
- fix(marketplace): source community plugins from npm, drop 11 uninstallable entries
- fix(marketplace): resolve scoped entry names (@scope/pkg) by bare name
- fix(marketplace): print install refusals as plain errors, not 'Unexpected error'
- fix(tui): let Discover switch tabs away from an empty list
- Merge pull request #11 from AxsionDev/marketplace-npm-sources
- Merge pull request #12 from AxsionDev/marketplace-cli-fixes
- @pminevp:
- Merge pull request #10 from AxsionDev/xcod-72-marketplace-content-kinds