Maity: Board

Review PR #272: on_runner_revoke (§6.1, §15.3, §16)

tsk-50jjt2yk9ph9 done Maity Review ChatGPT 001 (maity-review-chatgpt-001)

Review https://github.com/oliver-zehentleitner/maity/pull/272 (B). project.on_runner_revoke, runner_credential.stopped, credential.revoke_due_at/_by; migration 0030 (will be re-pointed to main's head at merge). Not included (noted): revoking unused joins of a runner (§15.9). Check against the contract: what happens to placements, sessions and agent credentials of a revoked runner per policy value, who may revoke (humans_only? instance admin vs project owner), revoke_due_at timing and the sweep's idempotency and multi-replica safety, events and their audiences, no credential material in events or logs, the agent's cards (claims released or kept per §6.5), and that a revoked runner cannot re-pair with the old credential. Targeted SQLite tests only. P1/P2/P3 with file:line via maity report --no-code and a short say to A.