v3.9.29: Hotfix — bridge payload shape
What's New
Hotfix for v3.9.28.
After v3.9.28 fixed the subscriber-loading order, @Jordi-Izquierdo-DDS found that the bridge's universal learning.ExperienceCaptured event still published a flat payload that didn't match the canonical nested shape the existing handlers destructure. event.payload.experience was undefined, the early-return guard tripped, and recordExperience was never called. Cursor advanced; subscribers fired; nothing landed in learning:experience:* kv.
Fix: the bridge now publishes the canonical { experience: TaskExperience-shaped, reward } shape matching the existing publisher in src/learning/experience-capture.ts:1043 and the coordinator's handler signature. Domain-specific fan-out events keep their existing flat shape per the issue's explicit guidance — changing them would break out-of-tree subscribers.
Verified by reporter against vanilla v3.9.28 + shop patch 050: 5 hook events → 15 learning:experience:* keys (3 keys per event: data + agent index + domain index).
Bridge tests now parametrized across multiple domains including requirements-validation, security-compliance, and visual-accessibility (no fan-out — exercises the universal-event path exclusively). The v3.9.28 test passed only because test-execution's fan-out wrote a kv key via a different handler, masking the broken universal path.
Getting Started
npx agentic-qe init --autoSee CHANGELOG and docs/releases/v3.9.29.md for full details.