Daily Edition Sources +5

API Discovery: Find the Approval in the Right Ledger

Mastra’s HTTP approval flow could miss an Inngest-backed run and then deny its owner. A merged repair restores discovery without treating another user’s run as fair game.

A suspended Inngest run passes through the correct workflow name and owner check to a waiting action.
Diagram Punkdiscover the waiting run in its engine’s ledger and preserve the ownership check.
repo mastra-ai/mastra evidence
5 source signals 1 repo commit 444debd
Evidence: commit 444debd / September 26, 2026 / Daily Edition
Open Edition Evidence below

An empty approval inbox can mean the lookup is wrong. In a public reproduction, an Inngest-backed Mastra agent emitted a pending tool approval, but the suspended-runs endpoint returned no runs. Sending the real run and tool-call identifiers to the approval endpoint produced a 403. The report describes a user trying to approve their own action, not an unauthorized-access incident.

The September 25 fix follows the storage name. Inngest saves its durable loop under inngest:durable-agentic-loop; the relevant lookups expected the core engine’s name. The agent now advertises its loop name for discovery and approval checks. The patch also recognizes the durable approval payload so the listing includes its approval flag and arguments.

Example: a small approval inbox

Mastra is the API provider here; this is an endpoint on an application running its server, not a hosted public-data service. The public route definitions provide GET /api/agents/:agentId/suspended-runs and POST /api/agents/:agentId/approve-tool-call. The latter accepts the selected runId and toolCallId.

A useful example is an editorial assistant that prepares a local note, then waits for a person to approve writing it. An inbox can show the pending tool’s name and arguments instead of inferring unfinished work from a chat transcript. Keep the first prototype to a harmless local write. Show the actual arguments and require an explicit selection before submitting approval.

Copyable agent instruction

In a disposable Mastra application, pin revisions that contain PR #25167
across core, server and the Inngest integration. Build an approval inbox
for one Inngest-backed agent with a harmless local save_note tool marked
requireApproval: true. Use the application's configured authentication.
GET /api/agents/{agentId}/suspended-runs and display each pending tool's
name and args. Do not approve automatically. After I select one, POST
/api/agents/{agentId}/approve-tool-call with its runId and toolCallId.
Verify that no note exists before approval and that the owner can create
it afterward. Under a second test identity, verify the run is absent
from discovery and approval returns 403. Report installed versions and
results; do not relax ownership checks to make the test pass.

Access and test caveat

The new integration test uses a real Inngest development server, a separate worker, authenticated resource identities and a mock model. It checks that another identity cannot discover or approve the run, then observes the owner-approved worker’s file output. We inspected this test and the implementation; we did not run that service stack or verify a released package set.

Use your server’s authentication and resource mapping; the test’s bearer-token setup is an example, not a universal credential scheme. Provider calls may cost money if you replace the mock model. A merged changeset does not establish that an older installation contains the repair. The useful acceptance test is two-sided: the right person sees the waiting action, and the wrong person still cannot act on it.

Evidence Trail

Receipts below the story

The article above is the public narrative. This section keeps the source trail and limits on the same page.

Edition
DateSeptember 26, 2026
LaneDaily Edition
Confidence78%
Sources5
Reposmastra-ai/mastra

Primary Evidence

Evidence Limits

  • We inspected implementation and test code but did not execute the Inngest service stack.
  • A merge and changeset do not identify which released versions contain the repair.
  • Authentication follows the application’s configuration and resource mapping; the test bearer setup is not universal. A real model can incur provider costs.
Letters & Corrections

Send a note to the desk

Corrections, missing context, or a follow-up lead.