feat: server plugins system (client-side)#38
Merged
Conversation
… 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PluginManifest), REST endpoints (PluginsApi), and gateway event handling for plugin lifecycleClientPluginsautoload with trust/download/install flow,PluginDownloadManagerfor fetching plugin binaries, and adminPluginManagementDialogWebMicAudiohelper for web microphone captureTest plan
./test.sh unit— client plugins + plugin manifest model tests pass./test.sh accordkit— plugin API integration tests pass (requires accordserver with plugin endpoints)🤖 Generated with Claude Code