Unify pull operations and push tasks on one WorkItem entity in core
Unifies orchestra's human-work model on one entity, so a pull operation and a push task are the same WorkItem shown differently, and makes the pending-actions surface index-served.
What changes
- WorkItem (entity, interface, manager, storage schema, events) and the assign/reassign lifecycle move from orchestra_inbox into core; orchestra_inbox keeps only the UI. The manager service becomes orchestra.work_item_manager.
- A
modefield (task or operation) is added to WorkItem. It drives presentation only: task mode shows in the inbox, operation mode on the My actions list; the lifecycle is identical. - The engine mints a WorkItem for every human node at the park step (a core TokenParkedEvent subscriber), so UserOperation and its subclasses get one too; the bespoke creation in UserTask/InteractionTask is removed.
- The inbox filters to mode=task; My actions shows both modes via one shared visibility rule (WorkItemManager::accountVisibilityCondition), so tasks and operations are filtered identically.
- PendingActionsFinder is rewritten to query work items by that visibility, paged and index-served, instead of scanning every parked token in the tenant and filtering in PHP. This closes the pending-actions scan performance issue.
assigneebecomes a plain integer uid (same column), so the core work-item table has no hard dependency on the user entity.
Notes
- Tests, docs (human-tasks.md, README) and fr.po are updated.
- Pre-1.0, so no update hook: the entity provider change, the new mode column (defaults to task) and a backfill of work items for currently-parked operation tokens are applied by hand.
- yoyaku test references are updated separately in #3610911.