fix(settings): Path inputs and LLM prompt injection UX improvements#85
Merged
Conversation
Issues fixed: 1. Check for Updates button always greyed out - initialized canCheckForUpdates to true 2. CLI install path not configurable - added custom path option with PathInputField 3. MCP install path not configurable - added custom path option with PathInputField 4. TermQ Data Folder not pastable/selectable - replaced manual implementation with PathInputField Changes: - SettingsDataSecurityView: Replace manual path UI with PathInputField component - ToolsTabContent: Add custom path toggle and PathInputField for CLI and MCP - SettingsView: Add custom path state and update install functions - TermQApp: Initialize canCheckForUpdates to true instead of false All path inputs now use the consistent PathInputField component with proper validation, browse functionality, and text selection support. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Simplified Settings path inputs based on user feedback and fixed validation/reinstall errors discovered during Phase 2.1 testing. Changes: - Simplified CLI/MCP install path UI: removed confusing toggle/radio button pattern, replaced with single editable PathInputField that shows current install location or sensible default - Fixed PathInputField validation warnings by using directory path (location.path) instead of full binary path (location.fullPath) - Fixed reinstall errors caused by installer receiving full binary path instead of directory path - Replaced manual path UI in SettingsDataSecurityView with PathInputField for consistency - Reduced state management from 10+ variables to 4 for path handling Files modified: - Sources/TermQ/Views/SettingsView.swift: Simplified state, updated refresh functions to use directory paths, install/uninstall now always use path from binding - Sources/TermQ/Views/ToolsTabContent.swift: Removed toggle/picker UI, replaced with single PathInputField in both install and installed views Testing: Manually verified in Settings → Tools tab: - Path fields show correct directory paths with no validation warnings - Browse button works correctly - Reinstall button works without errors - Paths are editable and update correctly Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Standardize LLM-related settings with consistent "LLM Prompt Auto-injection"
naming across UI, fix permission enforcement bugs, and improve transparency.
Changes:
- Normalize all LLM settings to "LLM Prompt Auto-injection" theme
- Move "Enable LLM Prompt Auto-injection" from Tools to Data & Security tab
- Fix confirmExternalLLMModifications key mismatch bug
- Fix LLM_PROMPT token always injecting regardless of permissions
- Change shell escaping from single quotes to double-quote context escaping
- Add quotes to Command Generator templates for transparency
- Update localization strings (English only, 39 languages pending)
Security fixes:
- LLM_PROMPT now correctly respects both global and per-terminal permissions
- Double-quote escaping prevents injection while allowing user customization
- Users can now add CLI flags: claude "{{LLM_PROMPT}} {{LLM_NEXT_ACTION}}" --flag
UX improvements:
- Settings grouped logically in Data & Security tab
- Templates show exact command structure (no hidden transformations)
- Users maintain full control over init command customization
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add English strings as fallback for new LLM prompt auto-injection labels across all 39 supported languages. Proper translations to be done later. Updated strings: - settings.enable.terminal.autorun - settings.enable.terminal.autorun.help - editor.allow.agent.prompts - editor.allow.agent.prompts.help - editor.allow.agent.prompts.disabled.globally - settings.confirm.external.modifications - settings.confirm.external.modifications.help - editor.confirm.external.modifications - editor.confirm.external.modifications.help - editor.confirm.external.modifications.disabled.globally Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
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
Comprehensive Settings UI improvements addressing path input UX issues and LLM prompt injection normalization discovered during Phase 2 stabilization testing.
Changes
1. Path Input Improvements
2. LLM Prompt Injection UX Normalization
confirmExternalLLMModificationskey mismatch bugLLM_PROMPTtoken always injecting regardless of permissionsclaude "{{LLM_PROMPT}} {{LLM_NEXT_ACTION}}" --flag3. Localization
Security Fixes
LLM_PROMPTnow correctly respects both global AND per-terminal permissionsTesting
Related Issues
🤖 Generated with Claude Code