`ruff server` should not be proxied through rtk at all
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start in discover/registry.rs and compare the routing for ruff server with runner::run_captured_filter and runner::run_passthrough. Reproduce the provided commands, then verify that the chosen behavior avoids buffering or null stdin and that ruff server is either not rewritten or can communicate over stdio as intended.
Written by the indexing model from the issue text.
Description
discover/registry.rs rewrites every ruff … invocation to rtk ruff …. ruff server is a long-lived LSP that talks JSON-RPC over stdio, but runner::run_captured_filter gives the child StdinMode::Null and buffers stdout until exit, so the server can never do any work through rtk.
Reproduction (ruff 0.16.6, LC_ALL=C)
$ rtk ruff server </dev/null ; echo $? # empty, 2
$ rtk ruff server < <(sleep 30) ; echo $? # empty, 2 — exits immediately, stdin is Null
$ ruff server </dev/null ; echo $? # 2 (same, under a closed stdin)
Not a regression and not urgent: before #3083 the same command was rewritten to ruff check --output-format=json server and produced fabricated E902 lint results, so #3083 already improves it, and real editors spawn ruff server as a process rather than through the shell hook. But adding server to the routing allowlist makes it reachable, and reaching a broken LSP is not better than not offering one.
Suggested direction
Either drop ruff server from the hook's rewrite set, or dispatch it through runner::run_passthrough (which uses StdinMode::Inherit) instead of the capture path. The same question applies to any other interactive/streaming subcommand rtk proxies.
- Dominant language
- Rust
- Stars
- 81.1k
- Forks
- 5.1k
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 40
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rtk-ai/rtk
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
bug core output-formatting
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
uv_cmd discards print_with_hint's return value, so the tee hint is not counted and savings read 100% Openanalytics bug python
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
area:cli bug good first issue platform:windows priority:medium resolved-pending-close
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
area:cli bug good first issue priority:high
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·