fix(dispatcher): keep routine execution lifecycle out of chat #265

Open
karsten wants to merge 1 commit from fix/quiet-run-lifecycle-chat into main
Owner

Host lifecycle events without content were posted as a separate chat bubble per execution
(e.g. task bbd42e75… · Dispatcher — Ausführung gestartet).

Change: cli.ts dispatcher delivery skips status events whose text is exactly Ausführung gestartet
or Antwort gespeichert; Ausführung bereit and whose event-time state is running/ready.
They remain in the execution ledger and /dispatch status.

Unchanged: questions, paused/blocked/cancelled (incl. worker failure), recovery blockers, strategy status
(e.g. sequential step progress, one status row per execution), and results (durable parent inbox, exactly once).
Legacy events without event-time state fall back to current state and never hide a blocker.

Tests: new test/execution-lifecycle-routing.test.ts uses real ExecutionStore events in three parent contexts.
Typecheck clean; 106 targeted tests pass (dispatcher*, notification-routing*, native-matrix, native-activity, progress, hashtag/worker activity, result orchestration).
Review: passed, 1 round, 0 findings (fingerprint 2efb4036).

Not in scope: the task … · Main/Worker/Dispatcher classifier · …s · model … · completed rows come from the
Matrix native activity plugin (MATRIX_NATIVE_ACTIVITY=true, harness/plugins) and are an existing operator opt-in.
Not merged, not activated.

Host lifecycle events without content were posted as a separate chat bubble per execution (e.g. `task bbd42e75… · Dispatcher — Ausführung gestartet`). **Change:** `cli.ts` dispatcher delivery skips status events whose text is exactly `Ausführung gestartet` or `Antwort gespeichert; Ausführung bereit` **and** whose event-time state is `running`/`ready`. They remain in the execution ledger and `/dispatch status`. Unchanged: questions, paused/blocked/cancelled (incl. worker failure), recovery blockers, strategy status (e.g. sequential step progress, one status row per execution), and results (durable parent inbox, exactly once). Legacy events without event-time state fall back to current state and never hide a blocker. Tests: new `test/execution-lifecycle-routing.test.ts` uses real `ExecutionStore` events in three parent contexts. Typecheck clean; 106 targeted tests pass (dispatcher*, notification-routing*, native-matrix, native-activity, progress, hashtag/worker activity, result orchestration). Review: passed, 1 round, 0 findings (fingerprint 2efb4036). Not in scope: the `task … · Main/Worker/Dispatcher classifier · …s · model … · completed` rows come from the Matrix native activity plugin (`MATRIX_NATIVE_ACTIVITY=true`, harness/plugins) and are an existing operator opt-in. Not merged, not activated.
Host lifecycle events without content ('Ausführung gestartet',
'Antwort gespeichert; Ausführung bereit' while running/ready) were
delivered as a separate status bubble per execution. They stay in the
execution ledger and /dispatch status. Questions, blockers, failures,
cancellations, strategy status and results keep their routing.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/quiet-run-lifecycle-chat:fix/quiet-run-lifecycle-chat
git switch fix/quiet-run-lifecycle-chat
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
harness/core!265
No description provided.