Follow-up to #3611212. The requester "My requests" page showed a coarse lifecycle badge and a technical "Awaiting: {step}" line built from node labels, which reads as internal to an end user.
This lets a workflow author narrate the status instead. A render-only message node gains an optional, translatable Status label (separate from the body: a node may carry a body but no status). The requester's list shows the current status, resolved from the chain the instance is on. For a completed instance the status comes from its terminal end node, so a finished request's final outcome ("Approved" / "Rejected") is modeled as the status on distinct end nodes. When no status is authored, the list shows only the lifecycle badge, never a node label.
- orchestra (base): a neutral
InstanceStatusProviderInterfaceand anorchestra.instance_statuscollector, so a surface reads an instance's human status without depending on any provider module. - orchestra_interaction: the Status field on the message interaction (translatable, tokens supported), a
StatusBearingInteractionInterface, and a tagged provider returning the latest status a chain message declares (honoring reset; the terminal end node for a completed instance). - orchestra_ui: the "My requests" card shows the author status when set, consuming only the base collector so it gains no dependency on orchestra_interaction.
Kernel tests cover the resolver (running, completed end-node, reset, tokens, none) and the card; docs and French translations included.
Issue fork orchestra-3611246
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #5
mably commented