Problem/Motivation

The same audit as #3633206: Keep concurrent writes on incident resume, uninstall orchestra_server cleanly, use the resolved Kessai client, keep node id case, and fix five more defects found these in code and documentation.

Code

  • N1. About thirty comments, docblocks and one exception message call a process instance a run (ProcessInstance::setState(), InstanceRecovery, RemoteChildPoller, the payment resolvers, OrchestraClientInterface::startProcess(), the instance-detail CSS and others). Code says instance.
  • N2. 154 class constants are untyped beside 209 typed ones, sometimes in one class. PHP 8.3 is the floor, so all of them take their type.
  • N3. A routing comment and the translation checker say visitor, and the French preview guide says jonction ET and jonction OU where the English uses wait_all and matching.
  • D1. QuorumJoin and Reassign each build the inner-plugin subforms toggled by #states, and the input name from #parents is computed three times (also in InteractionPluginConfigTrait). Reassign hand-rolls submitInnerSettings().
  • D2. The raw input of a subform is read by walking #parents in five places (OutcomeConfigTrait, VariablesTask, PluginSettingsSubformTrait, ExternalInteraction, PayableResolverConfigTrait), and the cm_node_features state key is declared twice.
  • D3. OrchestraLoggerTrait names the channel once, yet orchestra_remote_process writes get('orchestra') by hand at six places, and orchestra_interaction_webform and orchestra_ui log to channels of their own, which operators filtering on Orchestra never see.
  • D4. The initiator filter value is parsed twice, in InstanceFilterForm and InstanceListForm.

Documentation

  • Doc1. SubprocessMappingTrait::parseMap() documents left: right; the syntax is name|other.
  • Doc2. CapabilityGateway and InteractionGatewayInterface describe development history (Phase A, a gateway to come later) instead of the gateways that exist.
  • Doc3. TenantLimitedOptionsTrait says two filters use it; three do.
  • Doc4. orchestra.api.php does not document the identity proof producer and verifier info alter hooks.
  • Doc5. docs/architecture.md lists three config entities of five, misses the IncidentKind plugin type and four submodules.
  • Doc6. docs/concepts.md counts seven kernel task types of eight (Notify); docs/content.md says the initiator is start()'s last argument.
  • Doc7. docs/distributed.md leaves listDefinitions() out of the contract table.
  • Doc8. docs/extending.md leaves IncidentKind out of the plugin types and says every plugin manager implements CapabilityPluginManagerInterface.
  • Doc9. docs/roadmap.md, docs/concepts.md, docs/views.md and the orchestra_views README name dashboards that no longer ship (completed processes, My tasks).
  • Doc10. The orchestra_audit_trail README misses the token action ignored, the orchestra_interaction README places the feature outside features, and the orchestra_vbo README spells cancelled.

Proposed resolution

One commit per finding, no behavior change except the logging channel of D3, which gets a test.

Remaining tasks

AI-Generated: Yes (Claude Code was used to audit the module, draft this issue summary, and write the code and tests on the merge request.)

Issue fork orchestra-3633207

Command icon 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

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed 2e9bb80c on 1.x
    task: #3633207 Say instance for a process instance in code, type every...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.