FeaturesBlockManOSUpdated April 9, 2026
Inngest Function CI Linting
Inngest Function CI Linting
As of v1.0.95, BlockManOS includes a CI linting script (scripts/lint-inngest.ts) that enforces best-practice configuration on every Inngest background function definition.
What It Checks
The script scans all files in src/inngest/functions/ that call createFunction and verifies the presence of:
| Required Field | Purpose |
|---|---|
retries | Explicit retry count — no reliance on Inngest defaults |
concurrency | Concurrency control to prevent runaway parallel executions |
Exit Codes
| Code | Meaning |
|---|---|
0 | All checks pass (or no Inngest functions found) |
1 | One or more violations detected |
Example Output
Passing:
✅ All 4 Inngest function(s) have retries & concurrency configured.
Failing:
❌ Inngest lint violations found:
src/inngest/functions/send-reminders.ts
⚠ Missing: retries
⚠ Missing: concurrency
1 file(s) with violations out of 4 checked.
Running Locally
npx ts-node scripts/lint-inngest.ts
Adding a Compliant Inngest Function
When creating a new Inngest function, always include retries and concurrency in the configuration object:
export const myFunction = inngest.createFunction(
{
id: "my-function",
retries: 3,
concurrency: {
limit: 5,
},
},
{ event: "app/my.event" },
async ({ event, step }) => {
// handler logic
}
);
The CI lint step will fail the build if these fields are missing.