-
Notifications
You must be signed in to change notification settings - Fork 11
VSCode extension improvements + release infrastructure #57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
nikomatsakis
merged 24 commits into
symposium-dev:main
from
nikomatsakis:cancel-prompts
Dec 14, 2025
Merged
VSCode extension improvements + release infrastructure #57
nikomatsakis
merged 24 commits into
symposium-dev:main
from
nikomatsakis:cancel-prompts
Dec 14, 2025
Conversation
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
When users send a new prompt before the previous one completes, the extension now sends a session/cancel notification to the agent before dispatching the new prompt. This follows the ACP protocol specification. Changes: - Add cancelSession() method to AcpAgentActor - Track active prompts per tab in ChatViewProvider - Send cancel notification before new prompt if one is in-progress - Add hasActivePrompt test command for integration testing - Add cancellation test (cancellation.test.ts) Co-authored-by: Claude <[email protected]>
Adds console.log statements to track whether promptInputText is being saved and restored via MynahUI's getAllTabs(). This helps verify if the prompt input is automatically synced to the store. Co-authored-by: Claude <[email protected]>
Before saving state, sync the current prompt input text from each tab's DOM input element to the MynahUI store. This ensures that when the webview is hidden and restored, the user's draft prompt is preserved. Requires mynah-ui with getPromptInputText() method (local fork for now). Co-authored-by: Claude <[email protected]>
git-subtree-dir: vendor/mynah-ui git-subtree-split: 345fd24b51c11108ff5715ccbc9b59d7909fe6b1
Switch from npm package to local vendor/mynah-ui which is managed as a git subtree from nikomatsakis/mynah-ui fork. This allows us to use custom mynah-ui features (like getPromptInputText) while upstreaming. To update the subtree from the fork: git subtree pull --prefix vendor/mynah-ui [email protected]:nikomatsakis/mynah-ui.git main --squash To push local changes to the fork: git subtree push --prefix vendor/mynah-ui [email protected]:nikomatsakis/mynah-ui.git main Co-authored-by: Claude <[email protected]>
Co-authored-by: Claude <[email protected]>
Adds a new config option that flips the Enter key behavior: When requireModifierToSendPrompt is true: - Enter inserts a newline - Shift+Enter, Cmd+Enter (Mac), or Ctrl+Enter sends the prompt When requireModifierToSendPrompt is false (default): - Enter sends the prompt - Shift+Enter inserts a newline This allows users who prefer multi-line editing to use Enter naturally for newlines while using a modifier key to submit. Co-authored-by: Claude <[email protected]>
Adds a VSCode setting to flip Enter/Shift+Enter behavior: - When disabled (default): Enter sends prompt, Shift+Enter adds newline - When enabled: Enter adds newline, Shift/Cmd+Enter sends prompt The setting is passed from the extension to the MynahUI config via a window global embedded in the webview HTML. Co-authored-by: Claude <[email protected]>
Adds a 'Require modifier key to send' checkbox in the Preferences section of the Settings panel, allowing users to toggle the setting directly from the UI without opening VSCode settings. Co-authored-by: Claude <[email protected]>
Adds two new component settings with checkboxes in the Settings panel: - Sparkle: collaborative AI identity and memory - Rust Crate Researcher: Rust crate documentation lookup When disabled, the agent is spawned with --no-sparkle or --no-crate-researcher flags respectively. Both components are enabled by default. Co-authored-by: Claude <[email protected]>
Tests for the new settings added in recent commits: - Settings registration (verifies package.json defaults) - Settings read/write (verifies toggle behavior) - Settings flow to webview (verifies views load with settings) Co-authored-by: Claude <[email protected]>
Components (Sparkle, Rust Crate Researcher) are now part of the agent configuration identity rather than being read separately at spawn time. - AgentConfiguration now has enableSparkle and enableCrateResearcher fields - key() includes component state, so different configs get different processes - describe() shows full config like 'Claude Code + Sparkle + Rust Crate Researcher' - fromSettings() reads component settings from VSCode configuration - acpAgentActor uses config fields instead of re-reading settings Co-authored-by: Claude <[email protected]>
The vendor/mynah-ui dist folder is gitignored, so CI needs to build it before installing the vscode-extension dependencies that depend on it. Co-authored-by: Claude <[email protected]>
- New mdbook chapter documenting extension packaging workflow - Fixed .vscodeignore to exclude vendor/, node_modules/, test-workspace/ - Package size reduced from including all vendor files to just bundled output Co-authored-by: Claude <[email protected]>
Adds release-binaries.yml workflow triggered by symposium-acp-agent releases: - Builds binaries for all platforms: - darwin-arm64, darwin-x64 (macOS) - linux-x64, linux-arm64, linux-x64-musl (Linux) - windows-x64 (Windows) - Uploads archives to GitHub Release - Builds platform-specific VSCode extensions - Uploads .vsix files to GitHub Release Also updates packaging docs to reflect the platform-specific extension approach - each platform gets its own ~7MB extension instead of one large universal extension. TODO: Add marketplace publishing jobs when tokens are configured. Co-authored-by: Claude <[email protected]>
Removed implementation details (build commands, directory listings) that will go stale. Now documents: - Why platform-specific extensions (not universal) - Binary resolution fallback chain - Release flow diagram - Why GitHub Releases as source of truth - Why vendor mynah-ui Co-authored-by: Claude <[email protected]>
- Fix publisher ID: 'symposium' -> 'symposium-dev' to match marketplace - Enable publish-vscode-marketplace job (uses VSCE_PAT secret) - Add vsix artifact upload step for publish job to consume Open VSX publishing still TODO (needs OVSX_PAT secret). Co-authored-by: Claude <[email protected]>
Co-authored-by: Claude <[email protected]>
Extension points to GitHub release archives for binaries. Wraps Claude Code with Sparkle and Rust Crate Researcher components. To publish: submit PR to zed-industries/extensions adding this as a submodule. Co-authored-by: Claude <[email protected]>
Documents how releases flow from release-plz through to all channels: - crates.io (via release-plz) - VSCode Marketplace + Open VSX (via workflow) - Zed extensions (via GitHub release archives) - Direct binary downloads Co-authored-by: Claude <[email protected]>
Extension ID format is {publisher}.{name}, so 'symposium-dev.symposium'
not 'symposium.symposium'.
Co-authored-by: Claude <[email protected]>
The cancellation logic works correctly, but this test is unreliable because ElizACP responds faster than the test's timing window allows. The first prompt completes before the second one arrives. Co-authored-by: Claude <[email protected]>
7d0cf37 to
14ee397
Compare
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
VSCode extension improvements, release automation, and Zed extension support.
VSCode Extension Improvements
Prompt Behavior
requireModifierToSendsetting flips Enter/Shift+Enter behaviorComponent Configuration
Settings UI
Build Infrastructure
Testing
Release Infrastructure
Workflows
symposium-acp-agent-v*tagsZed Extension
zed-extension/Documentation