Skip to content

[Bug] install.ps1 prints "🎉 Installation complete!" even when skills installation silently fails #779

Description

@jinmmd

Describe the Bug

When running install.ps1 with DWS_SKILLS_ONLY=1 to install skills separately, the skills download can fail (Gitee gateway 502/503 or unreachable GitHub), but the script only prints two easily-missed warning lines and still ends with 🎉 Installation complete! and exit code 0. As a result, ~\.agents\skills\dws stays empty while the user believes the installation succeeded.

Steps to Reproduce

  1. Install the binary only:
    $env:DWS_NO_SKILLS = "1"
    irm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex
  2. Later, try to install skills only:
    $env:DWS_SKILLS_ONLY = "1"
    irm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex
  3. If the dws-skills.zip download fails (likely for mainland-China users: the GitHub probe in Resolve-Source connects to github.com directly, and the Gitee API gateway intermittently returns 502/503), the script prints:
    ⚠️  Release asset download failed. Trying local source...
    ⚠️  No local source found either. Skipping skills installation.
    
    ...and then still prints 🎉 Installation complete!.

Expected Behavior

  • Skills are installed to ~\.agents\skills\dws, or
  • the script fails loudly: prints the warnings via Write-Err, skips the success banner, and exits with a non-zero code.

Actual Behavior

~\.agents\skills\dws remains empty. The script ends with:

🎉 Installation complete!

Next steps:
  dws --help           # explore commands

The only failure indication is two ⚠️ warning lines in the middle of the output, which are easy to miss.

Environment

  • OS: Windows 11
  • Architecture: amd64
  • CLI Version: dws v1.0.54 (windows/amd64)
  • Install method: irm .../scripts/install.ps1 | iex via gh-proxy mirror (GitHub is unreachable directly)

Additional Context

Root cause: in Install-Skills, when the release asset download fails the script falls back to a local source checkout; when that is also missing (always the case for irm | iex), it prints a warning and returns — but the main flow unconditionally prints the success banner and exits 0.

Verified separately that the Gitee asset itself is fine: https://gitee.com/dingtalk-real-ai/dingtalk-workspace-cli/releases/download/v1.0.54/dws-skills.zip (2.3 MB, contains mono/SKILL.md).

Suggestions:

  1. Track the skills-install result and exit non-zero (or at least skip the 🎉 banner) on failure.
  2. Honor HTTPS_PROXY / add a DWS_PROXY option for the GitHub probe and asset downloads.
  3. Consider a dws skill install subcommand so users can (re)install skills without re-running install.ps1.
  4. Document DWS_SKILLS_ONLY / DWS_NO_SKILLS / DWS_INSTALL_DIR in the README.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions