Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

ACP: slash commands execute but never stream their output

Aperta Adatta ai principianti
#54,371 1 commento 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
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
cli

Direzione di ricerca

Inizia leggendo packages/cli/src/acp/turn.ts, in particolare il percorso dei prompt dei comandi relativo a submit e Fiber.join(events). Segui come viene rilasciata la sottoscrizione agli eventi per turno e confrontala con il percorso normale dei prompt. Riproduci il problema con un comando slash ACP; il lavoro è completato quando il suo output e gli eventuali aggiornamenti delle autorizzazioni vengono inviati tramite session/update prima che termini il turno.

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

Descrizione

reproduced

Description

User-visible symptoms

Running as an ACP agent (in JetBrains Rider 2026.2): slash commands (built-in like /init or custom) execute, but their output is not visible in the chat.

Plain prompts in the same session work normally.
Another ACP agent in the same IDE does show its slash-command output, so the client's rendering path is fine.

At the protocol level

session/prompt replies end_turn immediately; no session/update follows for that turn.

Example

Rider's ACP log (llm.agent.extended.logging=true):

20:44:23,425  → session/prompt id=5  {"prompt":[{"type":"text","text":"/my-test"}]}
20:44:23,457  ← {"stopReason":"end_turn","_meta":{}}      ← 32 ms
              … no ACP traffic for 4 m 16 s …
20:48:39,687  → session/set_config_option id=6

The command did run (it produced its effect).
OpenCode's session_message table shows that the turn ran to completion after it was closed on wire:

seq 20  user       20:44:23.531  <command body>   ← AFTER end_turn
seq 21  assistant  20:44:24.281 → completed 20:44:32.895  <agent reply>
...
seq 28  idle       20:44:32.901  outcome=succeeded

my-test was advertised in available_commands_update so this is the recognized-command path (not the unknown-/ fallthrough).


OpenCode version

2.0.26


Steps to reproduce

  1. Install OpenCode as an ACP agent in Rider.
    I used a custom agent path.
    1.1. Install OpenCode independently from Rider.
    1.2. Add OpenCode as a custom agent:
  "default_mcp_settings": {},
  "agent_servers": {
    "OpenCode": {
      "command": "full/path/to/opencode.exe",
      "args": ["acp"]
    }
  }
}
  1. Run any slash command.

Operating System

Windows 10


Suspected cause

packages/cli/src/acp/turn.ts:

yield* submit(attached, prompt)
if (prompt.command) return "succeeded" as const   // ←
return yield* Fiber.join(events)

For command prompts the turn returns succeeded before Fiber.join(events), and then the release step closes the per-turn event subscription, so no session/update (and no permission.asked) can be emitted.

Possible fix

PR #49208 (open; probably needs rebase onto current v2).

Lingua principale
TypeScript
Stelle
213k
Fork
28.4k
Merge medio
7h 22m
PR unite (30g)
276

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 anomalyco/opencode

Tutte le issue di anomalyco/opencode

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.