Skip to content

Running 'update' shouldn't validate the settings #371

@Gromski

Description

@Gromski
Diagnostic Information
Property Value
CLI Version 0.4.1
Node.js Version v24.5.0
OS darwin
OS Version 25.1.0
Architecture x64
Capabilities none
Claude CLI Version not available

Running 'update' shouldn't validate the settings


Enhancement Request Analysis

Questions for Reporter

Question Answer
Are you encountering specific validation errors when running il update? iloom update

Update available: 0.1.16 → 0.4.1
Run: il update

❌ Configuration error: Settings validation failed at settings.json:

  • root: Unrecognized key(s) in object: 'colors'
    🗂️ Please fix your .iloom/settings.json file and try again.

Looking at .iloom/settings.json in the extension src though and it looks good...?

{
"workflows": {
"issue": {
"startDevServer": false
}
},
"colors": {
"vscode": true
}
}

Is the update command failing completely, or does it continue after showing validation warnings? | It fails completely - see above
What's in your .iloom/settings.json that might be triggering validation? | The error message suggests that it was the 'colors' param -> "colors": {
"vscode": true
}

Problem Summary
The il update command appears to be running settings validation despite being in the bypass list. According to the code in src/cli.ts:94, the update command is explicitly listed in bypassCommands and should skip all validation. However, the reporter experiences validation being triggered when running the update command.

User Impact
Users with invalid or incomplete configuration files cannot update iloom to the latest version. This creates a catch-22 where they need to update to fix issues but can't update because of validation errors.

Enhancement Goal
Ensure the update command completely bypasses all settings validation, allowing users to update iloom regardless of their current configuration state. The update process should be resilient and work even with broken or missing settings.

Next Steps

  • Reporter to answer questions above for full context
  • Verify if validation is happening in the preAction hook or elsewhere
  • Consider if other initialization code paths might be triggering validation

📋 Complete Context & Details (click to expand)

Current Behavior
Based on code analysis, the update command is included in the bypassCommands array (line 94 of src/cli.ts), which should prevent validateSettingsForCommand from validating settings. However, the reporter indicates that validation is still occurring. The validation might be triggered from:

  1. The preAction hook that runs for all commands (line 83)
  2. Other initialization paths that load settings
  3. Potential race conditions in the command execution flow

Proposed Solution

  1. Immediate fix: Add an early return in the preAction hook before any validation occurs if the command is update
  2. Root cause: Investigate if SettingsManager is being instantiated elsewhere in the command flow
  3. Defensive coding: Ensure the UpdateCommand class doesn't inadvertently trigger settings validation
  4. Consider: Moving the bypass check earlier in the command execution flow, before the preAction hook

Benefits

  • Users can always update iloom regardless of configuration state
  • Removes barriers to getting the latest bug fixes and improvements
  • Prevents frustrating scenarios where broken settings block the very update that might fix them
  • Improves the overall user experience by making updates more resilient

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions