Skip to content

feat: server plugins system (client-side)#38

Merged
krazyjakee merged 12 commits into
masterfrom
server-plugins
Mar 17, 2026
Merged

feat: server plugins system (client-side)#38
krazyjakee merged 12 commits into
masterfrom
server-plugins

Conversation

@krazyjakee

Copy link
Copy Markdown
Contributor

Summary

  • Plugin system foundation: AccordKit plugin models (PluginManifest), REST endpoints (PluginsApi), and gateway event handling for plugin lifecycle
  • Client plugin management: ClientPlugins autoload with trust/download/install flow, PluginDownloadManager for fetching plugin binaries, and admin PluginManagementDialog
  • Plugin runtime infrastructure: Sandboxed scripted runtime (RISC-V via godot-sandbox), native GDExtension runtime, plugin canvas/context/trust dialog, and activity lobby/modal/panel scenes
  • Voice bar UI refresh: Added video, screenshare, soundboard, and deafen toggle buttons with new SVG icon set
  • Web platform: WebMicAudio helper for web microphone capture
  • Housekeeping: CLAUDE.md updates, app settings refactor, test coverage for plugin manifest model and client plugins

Test plan

  • ./test.sh unit — client plugins + plugin manifest model tests pass
  • ./test.sh accordkit — plugin API integration tests pass (requires accordserver with plugin endpoints)
  • Verify voice bar buttons render correctly on desktop and web
  • Manual: install a plugin from server admin panel, verify trust dialog and download flow

🤖 Generated with Claude Code

krazyjakee and others added 12 commits March 17, 2026 00:45
… 1 client)

Add AccordKit plugin manifest model, PluginsApi REST endpoints, gateway
signals, AppState plugin state/signals, and gateway event handlers. Include
integration tests covering plugin listing, sessions, roles, and actions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds client-side plugin management (download, trust, runtime sandboxing),
voice bar controls with video/screenshare/soundboard buttons, SVG icon
set, web microphone audio support, and CLAUDE.md updates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move directory helper methods (_copy_directory, _remove_directory_recursive)
from Config into a standalone ConfigDirUtils static utility class. Removes
redundant section comments from client.gd. Both files now under 800 lines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Image.create() static is stripped from GodotLite builds. Use
Image.create_from_data() with a zero-filled buffer instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The universal macOS build was only producing daccord-macos.dmg, but the
website links to daccord-macos-arm64.dmg and daccord-macos-x86_64.dmg.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Asset matching now selects DMGs by architecture (arm64/x86_64) over
zip files. Extraction handles DMGs via hdiutil mount/copy/detach.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dylibs were placed flat in Contents/Frameworks/ but Godot resolves
GDExtension res:// paths by appending the full relative path under
Contents/Frameworks/. This caused "relative path not allowed in
hardened program" errors making the app appear damaged on launch.

Adds a post-injection validation step that parses the .gdextension
file and verifies all macOS dylibs exist at the expected paths in
the app bundle, failing the build if any are missing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Swap the plugin sandbox from godot-sandbox (RISC-V ELF binaries) to
lua-gdextension (LuaState). Plugins are now plain Lua scripts fetched
via source_url, with bundled assets and multi-file module support.
Updates the bridge API to inject a native Lua table, fixes plugin
install/uninstall list refresh, and updates the user flow docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ize handles

Reparent VideoGrid and VoiceTextPanel into a dedicated VoiceViewBody container
during voice view, fixing layout issues with side panels. Add vertical resize
handles for video grid height. Remove unused ActivityPanel (replaced by Lua
plugin runtime). Add .luarc.json for Lua LSP support. Update user flow docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant