The apply pipeline's draft PRs were titled `agent-apply: <task_id> (diff <hash>)` with a flat body — neither within Sea Haven PR conventions. That format was deliberate injection-hardening (only sanitized tokens, never model free-text; §4.6). Thread the approved plan's title through dispatch as an optional `pr_title` input, sanitized box-side (single line, no control chars, 70-char cap, capitalized) and RE-VALIDATED in the workflow as defense- in-depth, with the hardened `agent-apply: <task_id>` title as the fallback when empty/unsafe. Provenance (task id, diff hash, head) moves to the PR body. gh consumes both as argv data, never shell-interpolated. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| build_verify_subgraph.py | ||
| builders.py | ||
| builders_llm.py | ||
| clarifier.py | ||
| clarifier_llm.py | ||
| dispatch_invoker.py | ||
| fixer.py | ||
| handbook.py | ||
| planner.py | ||
| review_loop.py | ||
| review_loop_llm.py | ||
| verifier.py | ||
| verifier_llm.py | ||