Commit Graph

4 Commits

  • feat(coding-agent): add packages array with filtering support
    - Add PackageSource type for npm/git sources with optional filtering
    - Migrate npm:/git: sources from extensions to packages array
    - Add getPackages(), setPackages(), setProjectPackages() methods
    - Update package-manager to resolve from packages array
    - Support selective loading: extensions, skills, prompts, themes per package
    - Update pi list to show packages
    - Add migration tests for settings
    
    closes #645
  • fix(ai): filter empty error assistant messages in transformMessages
    When 429/500 errors occur during tool execution, empty assistant messages
    with stopReason='error' get persisted. These break the tool_use -> tool_result
    chain for Claude/Gemini APIs.
    
    Added centralized filtering in transformMessages to skip assistant messages
    with empty content and no tool calls. Provider-level filters remain for
    defense-in-depth.
  • fix: preserve externally-added settings when saving
    When a user edits settings.json while pi is running (e.g., adding
    enabledModels), those settings would be lost when pi saved other
    changes (e.g., changing thinking level via Shift+Tab).
    
    The fix re-reads the file before saving and merges the current file
    contents with in-memory changes, so external edits are preserved.
    
    Adds test coverage for SettingsManager.