UserPromptSubmit hook payload carries no `prompt` field under `pool exec` (docs list it)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 50/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- shell
- Domain
- api, documentation
Research direction
Start with the UserPromptSubmit hook reference and reproduce the issue using pool exec, .poolside/settings.local.yaml, and capture.sh. Compare the documented payload with the keys recorded in events.jsonl for both -p modes, then verify that the prompt field is present and reflects the submitted or rewritten prompt, or that the documentation accurately describes the supported behavior.
Written by the indexing model from the issue text.
Description
Summary
The hooks reference (https://docs.poolside.ai/hooks) says the UserPromptSubmit event adds a prompt field ("which reflects any earlier hook's rewrite"). Under pool exec on pool 1.0.16 the payload delivered to the hook has no prompt key at all, whether the prompt is passed with -p "..." or on stdin with -p -.
Reproduce
.poolside/settings.local.yaml in the workspace:
hooks:
UserPromptSubmit:
- name: capture
matcher: "*"
command: /abs/path/capture.sh
capture.sh:
#!/bin/sh
in=$(cat); printf '%s\n' "$in" >> /abs/path/events.jsonl; exit 0
Then:
pool exec --unsafe-auto-allow -d "$PWD" -p "Reply with exactly the word ok and use no tools."
printf 'Reply with exactly the word ok and use no tools.\n' | pool exec --unsafe-auto-allow -d "$PWD" -p -
Both runs deliver this payload (keys only; values elided):
{"hook_api_version": "1.0", "hook_event_name": "UserPromptSubmit", "event_id": "evt-2", "session_id": "...", "cwd": "...", "trajectory_path": "..."}
No prompt. Every other event matched the docs (PreToolUse/PostToolUse carry tool_name, tool_input, tool_call_id, tool_output; Stop carries reason; SessionStart carries source).
Why it matters
A UserPromptSubmit hook that injects additional_context based on what the user asked has nothing to key on. The query is recoverable by parsing the <user_query> block out of the latest tool_call.inference.start record in trajectory_path, which is what we do as a fallback, but that is a workaround on an undocumented file format.
Environment
- pool 1.0.16 (latest per the update check), Linux x86_64
- Observed under
pool exec. Not yet checked under the interactive TUI orpool acp, so this may be exec-specific.
Context
Found while wiring omind's memory/guard hooks into pool: https://github.com/CryptoJones/omind/pull/312. The rest of the hook protocol worked as documented on the first try, including both deny paths on PreToolUse.
- Dominant language
- No language data
- Stars
- 426
- Forks
- 25
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
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 poolsideai/pool
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
poolsideai/pool#49 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
poolsideai/pool#29 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
poolsideai/pool#26 · 2 comments ·
-
herdr Open
Difficulty 3/5 1-2 days Newbie friendliness 45/100
poolsideai/pool#48 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
poolsideai/pool#46 ·
Similar issues
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
games-on-whales/wolf#509 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100