codex exec resume and fork silently drop piped stdin when given a prompt

Aperta Adatta ai principianti
#60,999 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
cli

Direzione di ricerca

Inizia da codex-rs/exec/src/lib.rs: confronta resolve_root_prompt con le chiamate a resolve_prompt usate da resume e fork, poi esamina la guida CLI e i test pertinenti. Aggiungi test per i prompt posizionali con stdin reindirizzato in entrambi i comandi, mantenendo i casi con - come controlli. Il lavoro è concluso quando stdin viene preservato oppure la combinazione viene rifiutata esplicitamente o accompagnata da un avviso, e i test ne confermano il comportamento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug CLI exec session

Summary

When both a positional prompt and piped stdin are supplied, codex exec appends stdin as a <stdin> block, but codex exec resume and codex exec fork silently discard it. All three commands exit successfully, so an automation can continue without the intended context.

Reproduction

Tested on Windows with codex-cli 0.167.0-alpha.4.1 and SDK fixture source at 6bfdc75f0d9e6fae313234f694839866d7c63c39. Configure an isolated CODEX_HOME with the repository's local mock Responses provider in sdk/python/tests/app_server_harness.py; capture its request input:

# Obtain ID from the thread.started event in the first command.
printf ROOT_PIPE_MARKER | codex exec --json --skip-git-repo-check "root question"
printf RESUME_PIPE_MARKER | codex exec --json --skip-git-repo-check resume "$ID" "resume question"
printf FORK_PIPE_MARKER | codex exec --json --skip-git-repo-check fork "$ID" "fork question"
printf STDIN_SENTINEL_MARKER | codex exec --json --skip-git-repo-check resume "$ID" -

The captured last user inputs were, respectively:

root question\n\n<stdin>\nROOT_PIPE_MARKER\n</stdin>
resume question
fork question
STDIN_SENTINEL_MARKER

All four calls exited 0 and used the local mock, not an external model. The main codex exec --help describes appending piped stdin alongside a prompt; the resume and fork help describe - for reading stdin.

Expected / possible fix

Apply the same positional-prompt-plus-stdin behavior to resume and fork, or explicitly reject or warn about the combination so input is not silently lost. The fresh path uses resolve_root_prompt, while resume and fork use resolve_prompt when a prompt is supplied. Add tests for both commands with a positional prompt and piped input, plus the - control.

Workaround: combine the question and context into stdin and pass - as the prompt.

Lingua principale
Rust
Stelle
135k
Fork
21.4k
Merge medio
1m
PR unite (30g)
995

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di openai/codex

Tutte le issue di openai/codex

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.