feat: Native PowerShell integration with shared shell abstraction#2839
Closed
stier1ba wants to merge 3 commits intotailcallhq:mainfrom
Closed
feat: Native PowerShell integration with shared shell abstraction#2839stier1ba wants to merge 3 commits intotailcallhq:mainfrom
stier1ba wants to merge 3 commits intotailcallhq:mainfrom
Conversation
… layer Add full PowerShell shell integration mirroring the existing zsh feature set: - `: text` interactive chat mode via PreCommandLookupAction - `:command` dispatch for 50+ commands (agent, model, conversation, git, etc.) - Right-aligned RPROMPT with agent, model, token count, and cost - Tab completion for :commands and @files via fzf - Plugin/theme generation, setup wizard, doctor diagnostics, keyboard shortcuts - Session state management (conversation ID, model overrides, etc.) Create shared shell abstraction layer (`shell/`) to eliminate duplication: - `shell/prompt.rs`: ShellPromptData + fetch_prompt_data() shared by all shells - `shell/style.rs`: AnsiStyled with basic 4-bit ANSI colors (PS 5.1 compatible) - `shell/setup.rs`: Marker-based profile editing reused by zsh and PowerShell Refactor existing zsh integration to use the shared layer: - ZshRPrompt::from_prompt_data() replaces inline data fetching - setup_zsh_integration() delegates to shared setup_shell_integration() Fix Windows compatibility issues: - Normalize paths to forward slashes in walker and workspace_status - Platform-appropriate test paths for Windows - Fix executor test expectations for cmd.exe quoting - Gate Unix-only path tests with #[cfg(not(windows))] - Fix SummaryMessage -> SummaryBlock rename in Windows cfg test blocks Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Collaborator
|
@stier1ba How about we keep the powershell UI as an external unofficial plugin that users can install? |
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
: textinteractive chat,:commanddispatch (50+ commands), right-aligned RPROMPT, tab completion, diagnostics, and session state managementshell/) eliminating duplication between zsh and PowerShell —ShellPromptData,AnsiStyled, and marker-based profile setup are reusable for future shells (fish, nushell, etc.)PowerShell Features
forge powershell plugin/theme/setup/doctor/keyboard/rpromptsubcommands: textchat viaPreCommandLookupAction(works on PSReadLine 2.0+ and 2.3+).ps1shell scripts undershell-plugin/pwsh/Shared Abstraction Layer
shell/prompt.rs—ShellPromptData+fetch_prompt_data()shared by all shellsshell/style.rs—AnsiStyledwith basic 4-bit ANSI colors (universal compatibility)shell/setup.rs— Marker-based profile editing reused by zsh and PowerShellTest plan
cargo test -p forge_main— 268 tests passforge pwsh rprompt/plugin/theme/doctor/keyboard— all CLI subcommands work: hellosends prompt to LLM and gets response:info,:env,:newdispatch correctly🤖 Generated with Claude Code