d5dfac4e

By: ananjiani <ananjiani@noreply.codeberg.org>

feat(pi): pin pi-processes and background supervisor waits (#302)

## Summary

- Pin `npm:@aliou/pi-processes@0.12.0` in repo-managed Pi packages.
- Run Herdr lifecycle waits in the background with the `process` tool so the supervisor can end its turn and wake on process notify.
- Wait identity is pane ID (`wait-w15-p2`). Stop/clear use opaque `proc_*` ids.
- Submit worker prompts without `--wait`. If the `process` tool is missing, report that and stop; do not fall back to long foreground waits.
- One background `sleep 120` for required CI, then exactly one check and a pending handoff. No repeat loop.
- Wake events are evidence only, not approval or proof of PR success.

## Checks

- `nix-instantiate --parse` and `nixfmt --check` on `pi-coding-agent.nix`
- Targeted pre-commit on the two changed files
- Isolated Pi load of `@aliou/pi-processes@0.12.0` via `pi -e` (not live `pi install`)
- Local process tests: tool return before exit, automatic success wake, mid-wait `PONG`, Herdr wait success/failure/timeout
- `/reload` cleanup: pid 152520 alive 16:57:57, gone 16:58:03, `RUNNING_COUNT=0`; live settings hash unchanged
- Independent GLM review was conditional; main rechecked the four skill fixes
- Real Telegram test on scratch follower `sup02-telegram-test` (w15:p5, main-owned): TEST started `sleep 45`, PING→PONG before completion, automatic DONE after 45s. Operator confirmed on Aster.

No live install or home activation. This PR does not merge or deploy.

## Scope / limits

- `session_shutdown` (including `/reload`) kills managed waits; the skill rearms after rescan.
- Telegram uses normal turn-taking, not strict priority.
- Unnamed Workers wait by pane ID, not display title.

Co-authored-by: Ammar Nanjiani <ammar.nanjiani@gmail.com>
Reviewed-on: https://codeberg.org/ananjiani/infra/pulls/302