fix(activity): render native activity of one input in one progress bubble #49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/native-activity-single-bubble"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Operator-reported noise with
MATRIX_NATIVE_ACTIVITY=true: main, dispatcher classifier and worker turns of one input each created their own persistent Matrix message (NativeActivityDeliverykeyed one editable message per turn id).Fix (plugin side; full per-input correlation of classifier/worker phases additionally uses harness/core#266, which adds only the origin anchor id to the dispatcher routing envelope; without it this PR falls back to one bubble per dispatched task):
MatrixChannel.taskActivitypasses the host completion-anchor id of the originating input (already supplied by core: main turns via the input, classifier/worker via the dispatcher's routing envelope from the task's durable dependency anchor).NativeActivityDeliverykeys the native message by(address, anchor id), falling back to(address, dispatched task id), then the old per-turn id. Each internal turn renders one bounded line (max 8 per bubble, max 128 bubbles tracked) into that single message via the existing edit path.Tests (
test/native-activity-bubble.test.mjs, realMatrixChannel+TurnActivityagainst materialized core): one input → 1 progress bubble + final answer exactly once (previously 4); fallback per task; 2 inputs same room / same anchor other room isolated; worker failure visible; slow delivery/race bounded with latest terminal state; restart recovery. On origin/main the new test fails (4/2/8 bubbles).Validation: core main c248ca1 with these plugin bytes materialized:
tsc --noEmit0, build 0, existing native tests 18/18, plugin tests 25/25. Full core suite 1465 pass / 21 fail locally; the failure set is identical with unmodified plugins (macOS/tmpcanonical-home + missing dist before build), so not caused by this change. Mandatory review: 1 round, passed, 0 findings, fingerprint c72b3cb7.Not included / not activated: core
plugins.lock.jsonpin bump + release + daemon restart are required for this to go live. Core PR #265 and routing PR #264 untouched.