Plain English for what came after 1240 (story 1478) The pages got new text after the plain English pass of story 1240. Long sentences are split, a semicolon between two thoughts became a full stop, and "passed over" became "skipped" or "ignored". No key, link or statement changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
The start check of the details providers does not run on this engine Story 1476. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Say what the log says when a task names another instance than the start Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Say which case a task of a called process belongs to A task of a called process which shares the caller's workflow aggregate now belongs to the caller's case. A called process with an aggregate of its own stays a case of its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Say how the cockpit treats a user task of a called process Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Story 1471: a details provider gets every @TaskParam on PEA The engine adapter now asks the engine for what the details providers read as well, so the table no longer says a @TaskParam stays null unless a @WorkflowTask method reads the same variable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Story 1466: say that the cockpit cannot add a variable name The engine adapter asks only for the names of the workflow tasks. Nothing lets an extension add one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Story 1466: drop the fetch-variables key from the wiki The Process-Engine-API adapter no longer has the key. A start which still sets it ends. Configuration lists the one key left, and Home says to read everything else from the workflow aggregate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMPbYLKJQXaj22EoiKBWCR
Story 1451: only a process a workflow service claims is reported Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013W9gz28Fcj7ktuiY1j5hS9
Story 1465: a user task only a task list works on is marked implemented-externally VanillaBP ends the start for a user task without a @WorkflowTask method unless it is marked. A details provider does not count as a method. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013W9gz28Fcj7ktuiY1j5hS9
Story 1441: aggregateChanged takes the version of a task from its record Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CxWZ2MgpVoAAzjeYfGqwv4
Story 1415: aggregateChanged takes the version from VanillaBP's note of the start Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CxWZ2MgpVoAAzjeYfGqwv4
The update of a case between two user tasks needs a delivery this node holds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CxWZ2MgpVoAAzjeYfGqwv4
aggregateChanged also updates a case between two user tasks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CxWZ2MgpVoAAzjeYfGqwv4
The smallest configuration names an initiator source A module which reports to the cockpit does not start without `initiator-source`, so an example which leaves it out is an example which does not work. The home page is what somebody copies from, so the key stands in that example now, with `by-application` as the value, because a reader who copies it builds an application with real users. Three sentences say what each of the two values means and that the key has no default. The Configuration page promised that one boot reports every gap of the application. It does not: a missing initiator source ends the start before the one key of this half is read, so that key's own message never appears. The sentence now promises what the page can keep. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DgjUTvgpirJN5h3qXssjcy
Say which version a business case shows A case shows the version its user tasks show, and it shows what this release deployed once the node has forgotten the deliveries of that case. The table of what this engine cannot do is where somebody looks that up. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DgjUTvgpirJN5h3qXssjcy
A completion and a cancelation cost a broken provider different things Measured against the reference implementation for an embedded Camunda 7 and against the test application of this half. A completion is asked for by a worker of VanillaBP's outbox after the caller's transaction committed, so the entry comes back. A cancelation is reported once. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0174TibVeR5rFgHncP6y46oW
A details provider which fails now disturbs the delivery The adapter used to swallow what an observer threw, so the page said that a failing details provider costs the report and nothing else. Since story 337 of the Process-Engine-API adapter such a failure reaches the engine as a failed delivery, and the engine offers the task again. Home now says that, says that the application still gets its notification once, and names the one case with no second chance: the end of a task, which no engine behind this API repeats. The table of expectations gets a row for a broken provider. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0174TibVeR5rFgHncP6y46oW
The report is built when the task is delivered The Business Cockpit used to put a report together while it sent the outbox entry. It now builds the report at the event and lets it travel inside the entry, so what the report says is what the task looked like when the engine handed it over. Home shows the new order in the sequence diagram and says what a details provider failing on the delivery thread costs. The row about a restart says what a fresh node can and cannot do, which is no longer "the report has no details" but "there is nothing to answer later questions with". Configuration says the same about the one key of this half. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0174TibVeR5rFgHncP6y46oW
Say what the log does and does not say about a skipped provider The first version of the paragraph said no log line mentions it. That is true for a delivery which carries no version at all, and that is the common case, but not for the rest. A delivery whose tag no method names draws a line, and at startup VanillaBP says a tag is known to no BPMS and the method serves no workflow, which is the one specification which does run here. Checked against a booted application with the output suppression of the test turned off. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Which version this engine reports, and what it means for a provider A details provider may now name the versions of the process it serves. On this BPMS there is one version and only sometimes: the version tag an engine writes into the meta map of a delivered task. So a method naming that tag runs, and a method naming a number or a range matches nothing. The page says so where it lists what this BPMS can and cannot answer, with the one form which works and the reason the others do not. It also says what nobody notices: a provider which matches nothing is skipped, the cockpit sends the prefilled details, and no log line mentions it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
One dependency, not two The Quarkus section said both halves of the cockpit adapter have to be added. They do not. The runtime module of this adapter already depends on extensions-commons-quarkus and its deployment module on the deployment counterpart, so the one dependency brings both. Story 216, review of Stephan. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
Say adapter, never extension These pages are for people using the Business Cockpit, and from where they stand this is an adapter. Extension is the VanillaBP core's word for the same thing and now appears only in the contributor documentation of the repository, where AGENTS.md explains the two views. Quarkus extension stays as it is, because that is Quarkus vocabulary and means something else. Story 216, review of Stephan. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
Point at the cockpit wiki page which answers, not at the wiki The Business Cockpit wiki now has a page per topic, so the sentence saying "all of it is documented there" can name the three pages it means: the transports, the details provider methods and the templates. Story 216. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
A seam, not a seat Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
The user tasks arrive without your application doing anything The VanillaBP Process-Engine-API adapter calls the cockpit's observer from its own subscription, so the instruction to call a bean yourself and the stopgap wording go. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
Say where the cockpit's keys stand, which is where version 1 had them This integration has no version 1, but its configuration is the Business Cockpit's, and that one kept the keys version 1 read: `vanillabp.cockpit` for the whole application, the `cockpit` section of a workflow module, and the `cockpit` sections of a single workflow and of one of its user tasks. An application which comes here from another engine brings its configuration along unchanged. The transport table gains what it was missing next to the other two BPMS pages: the two switches, the basic-authentication switch, the timeouts, the proxy, the truststore and the client-credentials flow all work here, because they are the shared half's and not a BPMS'. The one key of this half says where it stands and what happens to one written below a workflow module. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
Say that the observer bean is a stopgap, and what a module may not configure The wiki told an application to call the observer bean without saying that the bean goes once the Process-Engine-API adapter offers the seam, and it linked GAPS.md at a path on main which does not hold it. It also promised a count of gaps which the file decides, and it left out that the remembered-user-tasks setting written below a workflow module ends the boot. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
Say what an engine's reason decides and when a case is reported twice The termination reason distinguishes a finished task from a withdrawn one where an engine names it, and a node reports a business case again once newer cases have pushed it out of its memory. Both follow the decisions the code was corrected to. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X
Describe the Process-Engine-API half of the Business Cockpit Home explains what the extension does, what has to hand it a user task and why nothing of it appears in a BPMN file. Configuration names every key the cockpit reads plus the one this half adds, and the two keys of the engine adapter which change what the cockpit gets to see. There is no version-1 table because there was no version 1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YU73krA4jKHuWYB155np2X