Skip to content

History

Revisions

  • 979: the fetch-variables link points at decision 19 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lxo4MXbp6VPoDkUrTBNXJ1

    @stephanpelikan stephanpelikan committed Oct 12, 2026
    77b7220
  • 239: the wiki in plain English Shorter sentences, one thought each, and common words, as the section "How we write" of AGENTS.md asks. The meaning, the headings and every link target stay as they were. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lxo4MXbp6VPoDkUrTBNXJ1

    @stephanpelikan stephanpelikan committed Oct 11, 2026
    0173e75
  • 943: a subscription asks for what the extensions read Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lxo4MXbp6VPoDkUrTBNXJ1

    @stephanpelikan stephanpelikan committed Oct 9, 2026
    bf877fc
  • 938: the key fetch-variables is gone The table row goes. "What a subscription asks for" says that no key asks for more, that a value no @TaskParam declares is read from the workflow aggregate, and that a start which still sets the removed key ends. The paragraph about an unclaimed process now says it gets no subscription. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lxo4MXbp6VPoDkUrTBNXJ1

    @stephanpelikan stephanpelikan committed Oct 9, 2026
    2683525
  • 937: a process nobody claims can be marked as somebody else's A deployed process no @WorkflowService claims ends the start unless the line implemented-externally=true at the process marks it. Such a process is deployed with its file and left alone; a process somebody else deployed is not touched at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lxo4MXbp6VPoDkUrTBNXJ1

    @stephanpelikan stephanpelikan committed Oct 9, 2026
    1197aec
  • Merge story/834-implemented-externally into wave/158

    @stephanpelikan stephanpelikan committed Oct 7, 2026
    60f08d3
  • 834: a task something else serves is marked with implemented-externally Every task of a claimed process needs a @WorkflowTask method or the line implemented-externally=true, user tasks and listeners included, as version 1 asked for the method. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Lxo4MXbp6VPoDkUrTBNXJ1

    @stephanpelikan stephanpelikan committed Oct 7, 2026
    87ca807
  • 892: the start row carries the tag where the engine names it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGP1Z1mjfXKxCgHzecPvuX

    @stephanpelikan stephanpelikan committed Oct 4, 2026
    0971351
  • 890, 892: a start by message is not checked here, and the start row has no version Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGP1Z1mjfXKxCgHzecPvuX

    @stephanpelikan stephanpelikan committed Oct 4, 2026
    4a55d16
  • 735: why no expression of a model is reported here No BPMN model and no expression language, so the adapter cannot tell an expression from a literal and reports none. Points at entry 29 of GAPS.md for what an engine would have to say about itself. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017T37nXyH8Gc8d3bcyitce2

    @stephanpelikan stephanpelikan committed Oct 2, 2026
    3762e44
  • docs: the application builds the aggregate, not the platform The reason a timer, signal or conditional start event cannot be served is that the adapter can never tell VanillaBP about the start, so VanillaBP can never ask the application's @WorkflowStartedByBpms method for the workflow aggregate. The page said VanillaBP could not build the aggregate. Since the method became mandatory the application builds it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017T37nXyH8Gc8d3bcyitce2

    Claude committed Oct 2, 2026
    93ccd3f
  • docs: what happens when a task of another application reaches yours A task subscription of this API matches a task type across the whole engine and there is no tenant, so two applications which deploy a BPMN process of the same name take each other's tasks. The Configuration page said how to keep them apart and nothing about what it costs when they are not. The new section says what the refusal is for, what the message names, and why a service task and a user task are answered differently: the service task is failed with a retry count of zero, while UserTaskCompletionApi has no way to refuse at all, so a user task ends in a log line and stays untouched. It also names the counter which answers how often this happens, and says why no delivery record is written. The Deviations entry about isolation points at it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    @stephanpelikan stephanpelikan committed Sep 27, 2026
    79319e6
  • Story 661: say which parts of a model this adapter reads A reader coming from the deviation pages of the two Camunda adapters looks for a third list of what a BPMN construct becomes, and finds nothing about compensation, loops or data objects. The reason is not an omission: this adapter reads a short list of elements out of the raw XML and hands the rest to the engine as modelled, so it has no behaviour of its own to describe. The Deviations page now names that list, and says that everything outside it belongs to the engine behind the API. It names no engine, because nothing here was measured. The transaction subprocess entry, which said part of this in passing, points at the new section instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    @stephanpelikan stephanpelikan committed Sep 27, 2026
    8a519e9
  • docs: say where this engine keeps the name of a workflow The page said the aggregate's id travels in every payload but not who chooses it. The application does, and the engine only keeps it, so the entry to look a workflow up by is the one the application knows. A foreign name cannot arrive at a start here, because this API reports no start of its own, and such a workflow shows itself at its first task. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    Claude committed Sep 26, 2026
    3eca611
  • docs: cancel means two different things Separates our cancel from BPMN's. WorkflowEnd.Kind.CANCELED and cancelTask keep their meaning and now say what they are not, and each adapter says what it does with a transaction sub-process, which is nothing. Camunda 7 runs the construct, measured against the pinned engine 7.24.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    Claude committed Sep 26, 2026
    c47d0cc
  • docs: an error nobody catches BPMN leaves this case to the engine, and the engines differ. Measured Camunda 7: no incident, no log line, the workflow ends at the task and the history calls it completed. Camunda 8 raises an incident, and behind the Process-Engine-API the answer belongs to whatever engine is wired there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    Claude committed Sep 26, 2026
    7d7590f
  • docs: in which time zone a timer counts BPMN says nothing about time zones, so each engine answers for itself. Measured Camunda 7: a timeDate naming no zone is read in the JVM's zone, and a P1D over the autumn change is 25 hours. Names the shape which survives a change of BPMS. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    Claude committed Sep 26, 2026
    6e20a9e
  • Story 303: what this adapter tells the startup check about a value type VanillaBP 2 looks at the type of every value which travels while the application starts, and refuses one which may not arrive as what it was unless it was declared. The platform asks every adapter of a workflow what its BPMS does with a type, and "cannot say" is a legitimate answer which costs a warning and never a failed start. The new paragraph says what this adapter answers, next to the section which already says what the BPMS stores. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Fox39crp8dfWkZ9W84Ub

    @stephanpelikan stephanpelikan committed Sep 26, 2026
    8925fd7
  • docs: why the core cannot work a cancellation out here either The deviation said the termination callback carries no aggregate reference. That is still true, and since story 367 it is only half the answer: the core offers a second way in for a BPMS which reports no cancellation, and this adapter cannot take it because the API has no way to ask about a task. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYPiyZ32jQQhqYKx44cw23

    VanillaBP committed Sep 19, 2026
    0b0b068
  • docs: what becomes of a shared value, on a page of its own The question "what happens to the values my aggregate shares" is now answered by one page per adapter wiki, with the same four questions in the same order, so two BPMS can be read side by side. This adapter said nothing so far, which let a reader assume it behaves like Camunda 7. The answer here is short and it is an admission: the Process-Engine-API carries a payload as a map and says nothing about how an engine behind it keeps one, so this adapter cannot tell you and cannot warn you either. What is pinned down is the in-memory mock, which hands back the objects it was given. The page ends with the measurement to run against the engine you really use. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYPiyZ32jQQhqYKx44cw23

    @stephanpelikan stephanpelikan committed Sep 18, 2026
    9b4ed1c
  • docs: a renamed process is served where the name says so The adapter now composes subscriptions for a process id the application declares without a model, from what its own methods serve. Where a workflow module prefixes task definitions per process, the old id's tasks are routed exactly. Where the name is shared with the deployed process, one subscription serves both and only a per-delivery process id could tell them apart, which the Process-Engine-API does not define. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Re2yjHbaFRvnHyW61E3sao

    @stephanpelikan stephanpelikan committed Sep 14, 2026
    47e9c52
  • docs: what the adapter remembers about your models Story 230 lets an extension ask the adapter for a deployed process by user task element id or by form reference, and it gave the meta of a delivered task one vocabulary instead of literals in two handlers. Neither was written down anywhere a reader would look. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Re2yjHbaFRvnHyW61E3sao

    @stephanpelikan stephanpelikan committed Sep 13, 2026
    acc838e
  • docs: who remembers the ids a module took VanillaBP keeps the memory now, so the sentence about the adapter handing over every module of the startup was wrong, and the message it quoted has been reworded. The page also says where the startup stops, because the first of the two modules is already in the engine by then. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Re2yjHbaFRvnHyW61E3sao

    @stephanpelikan stephanpelikan committed Sep 12, 2026
    0616ce2
  • docs: what one process id in two modules costs Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Re2yjHbaFRvnHyW61E3sao

    @stephanpelikan stephanpelikan committed Sep 12, 2026
    91dabdb
  • docs: what a name clash check can see here The engine behind the API cannot be asked which identifiers it already holds, for any kind. What is new is the check which needs no engine: the names a module's models declare, compared against the other modules of the same application. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Re2yjHbaFRvnHyW61E3sao

    @stephanpelikan stephanpelikan committed Sep 12, 2026
    709aed2
  • docs(deviations): what a held version cannot be asked here Without a process version catalog the start events, the forking elements and the number of workflows of a version this engine holds stay unanswered, and a `@WorkflowStartedByBpms` method of a declared-only id is judged by nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017jAAVCZuSra6VzaVeUHt1d

    @stephanpelikan stephanpelikan committed Sep 9, 2026
    8ee1c73
  • docs: an id-less correlation and where the records live Correlating without a correlation id names the aggregate alone, so every occurrence of that message name waiting in the workflow is a candidate and the engine behind the API decides which one receives the message. That was written nowhere. The delivery records live in the application's database, and the engine behind the API can be replaced while the adapter id stays: task IDs start over then, so a record written before the replacement can answer a delivery made after it. The step which prevents that is the same one every rebuilt backend needs and stays on the platform wiki rather than being written a second time here. Stories 196 and 199. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XjxJNwTRcKzTmXCwLU7Wi4

    @stephanpelikan stephanpelikan committed Sep 2, 2026
    ceeddbd
  • docs: the configuration page starts where a newcomer starts The properties and the shape of the BPMN model are what somebody needs who has just added this adapter, so both come first now. Which engine sits behind the API, how the workflow modules are kept apart and what a subscription asks for follow behind them. Nothing was removed; the sections changed places. Every page carries a numbered table of contents. On the configuration page and on Home each entry says what its section answers; on the deviations page it does not, because every heading there is already that sentence. Where a first heading only repeated the page title GitHub prints above the page, it is gone and the page begins with its first sentence. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @stephanpelikan stephanpelikan committed Aug 30, 2026
    3c20eff
  • docs(deviations): the optimistic probe is refused in a migration, not just warned about Same as in the Camunda 8 wiki: the adapter reports that it cannot locate workflows since story 157, so a workflow module prioritizing it next to another adapter ends the boot instead of routing by list order. The advice to use it as the only configured BPMS stays. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CvgyhjwTEh834mwbptZZxh

    @stephanpelikan stephanpelikan committed Aug 29, 2026
    1d93820
  • docs: a dependency example carries the version you can paste The rule is about prose: a version named in a sentence reads 2.0, the release line without a patch digit. A Maven or Gradle coordinate is not prose - it is copied into a build, where 2.0 resolves to nothing - so the examples carry 2.0.0 again, and the Camunda 8 ones 2.0.0-8.9, with the suffix naming the cluster minor the artifact was built against. The sentence which told the reader to fill in a patch himself is gone with it; where it is useful to know which patches exist, the pages link Maven Central instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CvgyhjwTEh834mwbptZZxh

    @stephanpelikan stephanpelikan committed Aug 28, 2026
    bab7670