agent/php/tests/Feature
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
..
Agentic feat(agentic): implement §9 Services (FleetService + CreditService + SessionService) (#849) 2026-04-25 05:28:49 +01:00
Api feat(api): implement §3 fleet+credits+subscription+sync+agent-auth routes (#848) 2026-04-25 05:43:51 +01:00
Brain feat(agent/brain): lift OpenBrain discovery features (search/discoverTags/listScopes) (#180) 2026-04-25 20:39:14 +01:00
Console feat(agent/php): plugin-cc integration — column + sync command (#837) 2026-04-26 00:48:37 +01:00
Jobs feat(brain): add DeleteFromIndex job 2026-04-23 12:55:45 +01:00
Livewire 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
Mod feat(agent/admin+hub): RFC foundation — admin scaffold + Hub global components 2026-04-25 21:09:22 +01:00
Pipeline refactor(forge): route ScanForWork + ManagePullRequest through MetaReader 2026-04-23 18:21:28 +01:00
Services feat(brain): make BrainService::remember() async via EmbedMemory job 2026-04-23 13:29:30 +01:00
Sync feat(sync): update WorkspaceState workflow progress on dispatch push 2026-04-23 18:10:17 +01:00
.gitkeep revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AgentApiKeyServiceTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AgentApiKeyTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AgenticGenerateCommandTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AgentPhaseTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AgentPlanTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
AgentProfileTest.php feat(agent/php): AgentProfile migration + Eloquent model + scopes (#825) 2026-04-26 00:34:24 +01:00
AgentSessionTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
ApiKeyManagerTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
BrainMemoryTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
BrainSeedMemoryCommandTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
BrainServiceTest.php feat(brain): add org filter to BrainService::buildQdrantFilter() 2026-04-23 12:32:58 +01:00
CaptureDispatchResultJobTest.php feat(agent/php): CaptureDispatchResultJob + MantisClient + ShaExtractor (#828) 2026-04-26 00:44:23 +01:00
ContentServiceTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
CreatePlanFromIssueTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
DispatchMantisTicketJobTest.php feat(agent/php): DispatchMantisTicketJob + HermesClient + agent_dispatches table (#827) 2026-04-26 00:52:37 +01:00
FleetControllerTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
ForAgentsControllerTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
ForgeActionsTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
ForgejoServiceTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
IpRestrictionServiceTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
IssueTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
PlanRetentionTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
PlanTemplateServiceTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
PromptVersionTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
ScanForWorkTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
SecurityTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
SessionControllerTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
SessionReplayTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
SprintTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
TaskCommandTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
TemplateVersionManagementTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00
WorkspaceStateTest.php revert fcb9c189e5 2026-04-23 12:32:57 +01:00