MindFront Fiber Changelog
v3 → v4
Fiber v4 is a backward-compatible update that adds a business event channel. A module can now stream events into MindFront — new orders, status changes, anything you’d want to surface in the inbox or trigger downstream work on.
Opt-in via /meta
Set "servesEvents": true on your /meta response. Modules that don’t set it are unchanged: MindFront skips the events poll entirely.
{
"protocolVersion": 4,
"moduleVersion": "1.2.0",
"moduleName": "SimpleCRM",
"description": "...",
"actions": [ ... ],
"servesEvents": true
}
The /events endpoint
MindFront polls GET /events. Return a JSON array of events ordered by time ascending. Once written, treat those events as delivered — the endpoint is drain-on-read, and the next call must not return the same events again.
[
{
"id": "ev-00012345",
"time": "2026-05-24T09:14:22.123Z",
"kind": "DailyVisit",
"headline": "Acme — Dave Patel",
"pictogram": "user-multiple",
"groupKey": "company:12345",
"externalUrl": "https://your-app.example.com/visits/DV-2526-0042",
"data": { "visitId": 42, "outcome": "demo scheduled" }
}
]
Every field is required except externalUrl. The most-load-bearing-and-most-misunderstood is groupKey: it’s the thread / stacking key that collapses related events into one inbox row (typically a company / deal / order id). It is not a dedup key — that’s id.
Why polling, not push
The endpoint is stateful on your side — MindFront sends no cursor, no since-watermark, no acknowledgement call. That means: no inbound webhook for you to expose, no auth dance, no retry queue. You just hold an in-memory queue (or whatever fits your stack) and clear it when MindFront drains it.
For most implementations, the natural pattern is a 60-second DB poll that appends to the queue, so MindFront’s drain frequency is decoupled from your database load.
Key Changes
- ✅ ADDED:
servesEvents(optional bool) on/meta, defaulting tofalse. - ✅ ADDED:
GET /eventsendpoint whenservesEvents: true. - ✅ UNCHANGED: Full backward compatibility. v3 modules work without any changes.
Developer Actions
- New Modules: Use
protocolVersion: 4. - Existing v3 Modules: No action is required. Opt into events at your own pace.
v3 — Name Change
Module Service Protocol (MSP) is now MindFront Fiber. Same protocol, same spec, same wire format. The name changed because “Fiber” communicates what it actually is — a thin, fast connection between your systems and AI — better than a three-word acronym ever could.
All existing integrations continue to work unchanged. Old URLs redirect automatically.
v2 → v3
Fiber v3 is a backward-compatible update that adds richer UI capabilities and flexible data formats.
New Action Schema Fields
Two optional fields have been added to the action schema in /meta:
{
"name": "getUser",
"description": "Retrieves a user by ID.",
"route": "/action/getUser",
"riskLevel": "safe",
"pictogram": "user-profile",
"typicalHumanProcessTimeInMinutes": 2,
"input": { "type": "object", "properties": {"id": {"type": "string"}} }
}
pictogram— A Carbon Design System pictogram name. Displayed as the action’s icon in MindFront.typicalHumanProcessTimeInMinutes— Estimated minutes this task takes a human manually. MindFront uses this to communicate time savings.
Action Response: tldr and attachment_urls
Action success responses now support two optional fields:
{
"status": "success",
"data": { "name": "Alice", "email": "alice@co.com" },
"tldr": "Found Alice's contact card",
"attachment_urls": [ "https://example.com/alice.vcf" ]
}
tldr— A short human-readable summary of what the action did. Used as the success line in the MindFront UI.attachment_urls— An array of URLs MindFront fetches and ingests into the document store as file deliverables on the outcome.
Key Changes
- ✅ ADDED: Optional
pictogramfield on actions for UI icons. - ✅ ADDED: Optional
typicalHumanProcessTimeInMinutesfield on actions. - ✅ ADDED: Optional
tldrandattachment_urlsfields on action success responses. - ✅ UNCHANGED: Full backward compatibility. v2 modules work without any changes.
Developer Actions
- New Modules: Use
protocolVersion: 3. - Existing v2 Modules: No action is required. Add the new fields at your own pace.
v1 → v2
Fiber v2 is a backward-compatible update designed to significantly reduce developer friction.
The Core Change: output Schema Removed
The mandatory output schema for actions has been removed. This increases flexibility and reduces boilerplate.
Before (v1)
{
"name": "getUser",
"input": { "type": "object", "properties": {"id": {"type": "string"}} },
"output": {
"type": "object",
"properties": {
"name": {"type": "string"},
"email": {"type": "string"}
}
}
}
After (v2)
{
"name": "getUser",
"input": { "type": "object", "properties": {"id": {"type": "string"}} }
}
Key Changes
- ✅ REMOVED: The
outputschema is no longer required for actions. - ✅ UNCHANGED: Full backward compatibility. v1 modules work without any changes.
Developer Actions
- New Modules: Use
protocolVersion: 2and omit theoutputfield. - Existing v1 Modules: No action is required.