agent/php
Snider 82ffd420e0 feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827)
Phase 3 lane: queueable Job that resolves a profile via ProfileSelector,
posts POST {gateway}/v1/responses to the chosen Hermes gateway, persists
ticket_id/profile_id/response_id/run_id/status in agent_dispatches, and
chains CaptureDispatchResultJob.

Migration 2026_04_25_000003 creates agent_dispatches table (FK-free,
Postgres-compatible).

HermesClient: thin Laravel HTTP wrapper around the Hermes /v1/responses
endpoint with Authorization header + JSON body.

DispatchMantisTicketJob behaviour:
- Resolves profile via ProfileSelector::pickFor()
- Null-profile → log warn + ->release(60) requeue
- Otherwise POSTs to gateway, persists AgentDispatch row, queues
  CaptureDispatchResultJob

AgentDispatch Eloquent model with minimal $fillable.

Pest Feature test (Http::fake): verifies request shape, persisted row,
downstream capture-job queueing, and the no-profile requeue path.
Test file conditionally aliases minimal stubs for sibling-lane services
so this file remains runnable before #826/#828 fully land in dev.

Codex note: php -l clean; pest skipped (no vendor/).

Closes tasks.lthn.sh/view.php?id=827

Co-authored-by: Codex <noreply@openai.com>
2026-04-26 00:52:37 +01:00
..
Actions feat(agent/agentic): RFC foundation — atomic CompleteTask + credit ledger reconcile 2026-04-25 20:59:38 +01:00
Agentic feat(agentic): implement §9 Services (FleetService + CreditService + SessionService) (#849) 2026-04-25 05:28:49 +01:00
Configs revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Console/Commands feat(agent/php): plugin-cc integration — column + sync command (#837) 2026-04-26 00:48:37 +01:00
Controllers feat(api): implement §3 fleet+credits+subscription+sync+agent-auth routes (#848) 2026-04-25 05:43:51 +01:00
docs revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Events feat(core/events): add WebhookRegistering lifecycle event (HIGH) 2026-04-25 19:37:23 +01:00
Facades revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Jobs feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827) 2026-04-26 00:52:37 +01:00
Lang/en_GB revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Mcp feat(agent/mcp): McpContext::getScopes() + hasScope() (HIGH) 2026-04-25 19:04:35 +01:00
Middleware revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Migrations feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827) 2026-04-26 00:52:37 +01:00
Mod feat(agent/admin+hub): RFC foundation — admin scaffold + Hub global components 2026-04-25 21:09:22 +01:00
Models feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827) 2026-04-26 00:52:37 +01:00
Pipeline feat(pipeline): add MetaReader contract + Forgejo-backed implementation 2026-04-23 18:09:54 +01:00
resources feat(mcp): implement extended RFC services + transport (#842) 2026-04-25 05:50:16 +01:00
Routes feat(api): implement §3 fleet+credits+subscription+sync+agent-auth routes (#848) 2026-04-25 05:43:51 +01:00
Service revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Services feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827) 2026-04-26 00:52:37 +01:00
Support revert fcb9c189e5 2026-04-23 12:32:57 +01:00
tests feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827) 2026-04-26 00:52:37 +01:00
View revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Website feat(agent/admin+hub): RFC foundation — admin scaffold + Hub global components 2026-04-25 21:09:22 +01:00
.DS_Store revert fcb9c189e5 2026-04-23 12:32:57 +01:00
agentic.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AGENTS.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
Boot.php feat(agent/agentic): RFC foundation — atomic CompleteTask + credit ledger reconcile 2026-04-25 20:59:38 +01:00
config.php fix(brain): wire Qdrant api-key header from BRAIN_QDRANT_API_KEY 2026-04-24 05:21:15 +01:00
CoreServiceProvider.php feat(core/events): add WebhookRegistering lifecycle event (HIGH) 2026-04-25 19:37:23 +01:00
FINDINGS.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
GEMINI.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
TODO.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00