Sweep 19 Sep 2026 · 02:36Z Build v2.1.278 500 read Stable v2.1.267 Latest v2.1.278 Next v2.1.278 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.269 ·

prompt.submit hook pipeline reworked with rewriting, an 'enter' phase, and better diagnostics

The prompt.submit hook pipeline was rebuilt to let hooks rewrite prompts, add an enter phase, and report drops and queued prompts more clearly

TierNothing to try yethow much it should matter to you
Useful3my rating, 1 to 5
Signal3worth watching, 1 to 5
AreaPrompt Hookswhat it touches
KindImprovementsin v2.1.269,
Group of 7 Nothing to try yet Notable

The prompt.submit hook pipeline was rebuilt to let hooks rewrite prompts, add an enter phase, and report drops and queued prompts more clearly

What

  • Hooks that run on prompt.submit can now rewrite the text of the prompt before it is committed; this is logged as "prompt.submit: text rewritten by a hook".
  • The pipeline gained a new enter stage/callback. When it fires, Claude Code now records telemetry event prompt_queued and the prompt is queued rather than run immediately.
  • When a hook drops a prompt, Claude Code now logs a reason ("prompt.submit: dropped") and can show a distinct "Prompt not submitted" message alongside the existing "Prompt dropped by a hook" message.
  • If a plugin's prompt.submit hook attaches extra context to its result after it has already called next(), that is now detected and a warning is logged that the entries were dropped, instead of the entries being silently lost.
  • Internally, both the interactive and SDK/headless prompt-processing paths now open a disposable tracker before processing input and mark it "handed off" once the new messages are pushed into the conversation; if the tracker is disposed before hand-off, any waiter is rejected instead of hanging.
  • The SDK's error message for $.prompt.submit (thrown when text starts with /) now tells the caller to use $.command.run instead.

Why These changes make the prompt-submission path more capable (hooks can now edit prompts, not just allow or block them) and easier to debug, since drops, rewrites, and queued prompts are now logged and reported distinctly instead of failing silently or hanging.

See this entry in the whole of v2.1.269 →