PyPI / ty / 0.0.90

ty 0.0.90

Source
https://github.com/astral-sh/ty
Tag scanned
0.0.90
Compared with
0.0.89 (1 signals introduced since)
Files
40 scanned, 30 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 7 info
Scan time
8.3 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 7 of 7 warn and critical signals; 7 demoted to info.
Disclude version
4.1.0
Scanned (UTC)
2026-10-22 09:21

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review dynamic-execution docs/installation.md:74:5 new in this release

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ curl -LsSf https://astral.sh/ty/0.0.90/install.sh | sh
    likely benign LLM, confidence 0.85 Documented version-pinned curl-to-sh installer command for the ty tool.
    Reasoning

    A version-pinned variant of the official installer command, which is a normal documentation pattern and not an evasion technique.

  2. info warn → info by review unicode-mixed-script README.md:102:36

    identifier `tiː` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    
    It's pronounced as "tee - why" ([`/tiː waɪ/`]https://en.wikipedia.org/wiki/Help:IPA/English#Key)
    
    #### How should I stylize ty?
    dismissed LLM, confidence 0.97 IPA pronunciation symbols in a README pronunciation note.
    Reasoning

    The flagged characters are IPA phonetic symbols inside a pronunciation guide for the project name. Mixing Latin with IPA letters is expected in this context, and the raw-pass signal has a high false-positive rate.

  3. info warn → info by review unicode-mixed-script README.md:102:41

    identifier `waɪ` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    
    It's pronounced as "tee - why" ([`/tiː waɪ/`]https://en.wikipedia.org/wiki/Help:IPA/English#Key)
    
    #### How should I stylize ty?
    dismissed LLM, confidence 0.97 IPA pronunciation symbols in a README pronunciation note.
    Reasoning

    Same IPA pronunciation notation as the neighbouring finding (/tiː waɪ/). It is ordinary documentation text, not an identifier or obfuscation.

  4. info warn → info by review dynamic-execution docs/installation.md:62:5

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ curl -LsSf https://astral.sh/ty/install.sh | sh
    likely benign LLM, confidence 0.85 Documented curl-to-sh installer command for the ty tool.
    Reasoning

    This is the standard documented curl-pipe-sh install command for the ty project's official installer on its own domain. The AST rule flags the pattern, but in install docs it is a conventional, visible instruction rather than hidden execution. The pipe-to-shell pattern is still a general supply-chain risk worth noting.

  5. info warn → info by review dynamic-execution docs/installation.md:68:5

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ wget -qO- https://astral.sh/ty/install.sh | sh
    likely benign LLM, confidence 0.85 Documented wget-to-sh installer command for the ty tool.
    Reasoning

    A wget variant of the same documented official installer command. It is a normal install instruction in prose and not concealed.

  6. info warn → info by review encoding-base64 docs/reference/editor-settings.md:649:40

    base64-like blob (68 bytes, compression ratio 1.16) (raw pass, confidence 0.60)

    This setting is useful for debugging issues with the language server. Refer to the [troubleshooting
    guide](https://github.com/astral-sh/ty-vscode/blob/6cf16b4e87342a49f2bec1310a730cde8229e1d9/TROUBLESHOOTING.md)
    in [ty's VS Code extension][ty-vscode] for more information.
    dismissed LLM, confidence 0.95 A commit-SHA URL in the editor settings docs misidentified as a base64 blob.
    Reasoning

    The matched text is a GitHub URL containing a 40-character hex commit SHA, not a base64 payload. Its compression ratio is typical of a hash, and the surrounding text is ordinary documentation prose.

  7. info critical → info by review dynamic-execution scripts/release.sh:75:1

    command name is a variable (`$script_root`) and `script_root` is assigned the output of a command — executed command determined at runtime (ast pass, confidence 0.90)

    
    "${script_root}/autogenerate_files.sh"
    git add ./docs/reference ./rust-toolchain.toml
    likely benign LLM, confidence 0.80 A release script runs a sibling helper script via a path derived from a command's output.
    Reasoning

    script_root is most likely set from a command such as dirname or git rev-parse to locate sibling scripts, and the script then runs a fixed filename in the same directory. This is a common build-script idiom. The critical severity overstates it, and the snippet does not show the assignment, so some doubt remains.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.1.0
git clone https://github.com/astral-sh/ty ty && cd ty
git checkout 0.0.90
disclude scan --severity info --diff 0.0.89 .