Support custom commands and workspace launches in the command palette#20
Closed
Support custom commands and workspace launches in the command palette#20
Conversation
Summary: - add shared supaterm custom-command models, schema generation, and committed schema output - load and merge global plus nearest-local supaterm.json commands into the command palette - execute simple commands and workspace launches through host-owned custom command orchestration with focused tests Rationale: - move config discovery, merge rules, env validation, and workspace sequencing behind a single terminal-owned boundary - keep the palette reducer focused on UI state while reusing the host's existing split-tree and space-management primitives Tests: - xcodebuild test -workspace apps/mac/supaterm.xcworkspace -scheme supaterm -destination "platform=macOS" -only-testing:supatermTests/SPCommandTests -only-testing:supatermTests/SPHelpTests -only-testing:supatermTests/SupatermCustomCommandsSchemaTests -only-testing:supatermTests/TerminalCustomCommandCatalogTests -only-testing:supatermTests/TerminalWindowFeatureTests -only-testing:supatermTests/GhosttySurfaceViewEnvironmentTests -only-testing:supatermTests/TerminalCustomCommandExecutionTests CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" -skipMacroValidation - make mac-check (fails due pre-existing trailing-comma violations in apps/mac/supatermTests/AppDelegateTests.swift and apps/mac/supatermTests/PiSettingsInstallerTests.swift)
Summary: - remove the unused problem accumulator from workspace pane resolution - resolve environment variables directly from sorted key-value pairs - rename the custom palette row builder to match what it builds Rationale: - keep the new SUP-43 paths easier to read without changing behavior - reduce misleading names and redundant plumbing in the catalog path Tests: - mise exec -- swiftlint lint --quiet --config .swiftlint.yml supaterm/Features/Terminal/CustomCommands/TerminalCustomCommandCatalog.swift supaterm/Features/Terminal/TerminalCommandPalette.swift - xcodebuild test -workspace apps/mac/supaterm.xcworkspace -scheme supaterm -destination "platform=macOS" -only-testing:supatermTests/TerminalCustomCommandCatalogTests -only-testing:supatermTests/TerminalWindowFeatureTests CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" -skipMacroValidation
923eabf to
54b3a66
Compare
Contributor
Author
|
Closing all open PRs per request. |
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
supaterm.jsonRationale
This keeps config discovery, path resolution, merge precedence, environment validation, and workspace sequencing inside one terminal-owned boundary instead of leaking those rules into the palette reducer. The host already had the right space and split-tree primitives, so the cleanest forward path was to compose those directly rather than add another orchestration layer.
User-visible / Behavior Changes
supaterm.jsonDiagram (if applicable)
Human Verification
make web-checkand the full macxcodebuild testsuite after rebasing ontomainidcmd-pwith a hand-authoredsupaterm.jsonin this rebased passsupaterm.jsonwith one simple command and one workspace command in a project directorycmd-p, and run the custom entries