Snider
|
fae5abceb8
|
feat(agent/php): Phase 4 scheduler + Mantis webhook (#830 narrowed)
Console\Kernel registers agentic:sync-profiles hourly +
agentic:dispatch-queue --limit=3 every 5 minutes.
Api\MantisWebhookController accepts POST /api/agentic/mantis-webhook,
authenticates via X-Mantis-Webhook-Secret header (config-driven),
validates payload, dispatches DispatchMantisTicketJob immediately for
issue.opened (when ProfileSelector finds a profile), 204 for
issue.closed/other events, 401 wrong secret, 422 malformed body.
Pest Feature test covers all four cases (200 + dispatch, 401, 204, 422).
Codex note: php -l clean; pest skipped (no vendor/).
OUT OF SCOPE for this narrowed lane: OpenBrain memory writes + Langfuse
trace observability (track separately as #830 follow-up).
Closes tasks.lthn.sh/view.php?id=830 (narrowed — observability is followup)
Co-authored-by: Codex <noreply@openai.com>
|
2026-04-26 01:03:31 +01:00 |
|