ClaudeSDKClient.connect() with an async iterable closes stdin, so follow-up query() fails
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
Direzione di ricerca
Inizia leggendo ClaudeSDKClient.connect() e Query.stream_input(), che l’issue identifica come il percorso che chiude l’input quando l’iterabile termina; confrontalo con ClaudeSDKClient.query() usando un iterabile. Riproduci il problema con il generatore asincrono mostrato, poi verifica che connect(stream) mantenga la sessione disponibile per un query() successivo, preservando il comportamento di query() eseguito una sola volta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi, I ran into this while sending an image as the first message of a ClaudeSDKClient session.
If I call connect() with a string, I can keep talking to the session with query() afterwards. If I call connect() with an async iterable instead, the session is over as soon as the iterable runs out, and the next query() raises CLIConnectionError: ProcessTransport is not ready for writing.
async def first_message():
yield {"type": "user", "message": {"role": "user", "content": "Hi"}}
client = ClaudeSDKClient()
await client.connect(first_message())
async for msg in client.receive_response():
print(msg)
await client.query("Follow-up") # CLIConnectionError
The same thing with await client.connect("Hi") works fine, and so does connect() followed by query(first_message()).
From what I can tell, connect() hands the iterable to Query.stream_input(), which ends input once the stream is exhausted. That makes sense for one-shot query(), but for the client it closes stdin, the CLI exits, and nothing else can be sent. ClaudeSDKClient.query() with an iterable doesn't end input, so the two paths behave differently for the same kind of prompt.
I'd expect connect(stream) to behave like connect("text") and only open the session. Happy to send a PR if that sounds right to you.
Version 0.2.174 (current main), Python 3.13, macOS.
- Lingua principale
- Python
- Stelle
- 8.5k
- Fork
- 1.4k
- Merge medio
- 3g 10h
- PR unite (30g)
- 13
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di anthropics/claude-agent-sdk-python
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
anthropics/claude-agent-sdk-python#1509 ·
I maintainer di solito rispondono entro 2 giorni
-
`parse_message` raises raw `TypeError` instead of `MessageParseError` on non-dict nested payloadsApertabug good first issue
Difficoltà 2/5 Mezza giornata Idoneità per principianti 76/100
anthropics/claude-agent-sdk-python#1508 ·
I maintainer di solito rispondono entro 2 giorni
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
anthropics/claude-agent-sdk-python#1507 ·
I maintainer di solito rispondono entro 2 giorni
-
`fork_session` hangs forever on a cyclic `parentUuid` chain (no cycle guard in `_build_fork_lines`)Apertabug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
anthropics/claude-agent-sdk-python#1506 ·
I maintainer di solito rispondono entro 2 giorni
-
fork_session drops transcript entries containing U+2028/U+2029/U+0085 (str.splitlines), breaking the parentUuid chainForse già presa @mangeshraut712 l’ha presa 19 giorni fa. Apertabug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
anthropics/claude-agent-sdk-python#1441 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di anthropics/claude-agent-sdk-python
Issue simili
-
Contributing instructionsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dbt-labs/spark-utils#51 ·
-
bug pydanty:is-working
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
pydantic/pydantic-ai#13444 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
good first issue help wanted
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
changelog investigate
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
ramnes/notion-sdk-py#502 ·