Skip to content

fix(desktop): restore live reaction and Inbox edit parity with relay semantics - #161

Merged
oscarlehuu merged 1 commit into
mainfrom
devin/1786425367-inbox-live-aux-parity
Aug 11, 2026
Merged

fix(desktop): restore live reaction and Inbox edit parity with relay semantics#161
oscarlehuu merged 1 commit into
mainfrom
devin/1786425367-inbox-live-aux-parity

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Aug 11, 2026

Copy link
Copy Markdown

Summary

Closes #150.

Reproduces and fixes the four failing Inbox edit/reaction smoke specs on clean origin/main (35af74019) by addressing two independent root causes:

  • Product regression: 304173e42 (fix(agent): close attention recovery gaps #113) added a client-side relayEventMatchesFilter re-check that rejects events with no h tag from #h-scoped live subscriptions. The real relay routes those same events by derived channel_id (crates/buzz-core/src/filter.rs), so h-less live reactions (kind:7) were dropped after delivery. This fix makes the desktop filter relay-parity-safe: h-less events are accepted on #h filters, while an explicit mismatching h tag is still rejected.
  • Harness fidelity gap: __BUZZ_E2E_PUSH_MOCK_FEED_ITEM__ never materialized a backing relay event, so fix(agent): close post-merge attention review gaps #114's verified get_event lookup for selected Inbox items failed and structural/auxiliary queries never ran. The mock bridge now materializes channel-scoped feed items generically and dedupes the mock event store by id (matching relay-store semantics).

Records the live-filter parity rule as D-046 in docs/crew/DECISIONS.md and updates docs/crew/STATE.md because restored live reactions are now shipped-state truth. The E2E mock-bridge fix applies the existing D-041 rule.

Related issue

Fixes #150.

Classification per failure (from clean-main reproduction)

Spec Classification Mechanism
messaging.spec.ts:1819 Product bug Client #h filter rejects h-less kind:7 live reaction before thread-cache merge
inbox-reactions.spec.ts:36 Product bug Same #h filter regression prevents Inbox live reaction update
inbox-edit.spec.ts:175 Harness-fidelity gap exposed by product fencing Feed-only mock item has no stored event → get_event fails → verified Inbox context cannot fetch structural edits
inbox-edit.spec.ts:325 Harness-fidelity gap exposed by product fencing Same mock feed/store split

Testing

Clean origin/main smoke baseline (/home/ubuntu/evidence/origin-main-full-smoke-baseline.log):

  • 1005 tests / 945 passed / 53 failed / 7 skipped / 2899 s

After this change (/home/ubuntu/evidence/inbox-fix-full-smoke.log):

  • 1005 tests / 949 passed / 49 failed / 7 skipped / 2788 s

Focused issue-150 rerun after renumbering (/home/ubuntu/evidence/inbox-fix-focused-four-after-renumber.log):

  • 54 passed / 0 failed / 0 skipped (includes inbox-edit.spec.ts:175, :325, inbox-reactions.spec.ts:36, messaging.spec.ts:1819)

Local relay-parity unit verification after latest rebase (2026-08-11):

  • desktop/src/shared/api/relayEventVerification.test.mjs: 6 passed / 0 failed / 0 skipped

Net change: the four issue-150 failures now pass. Remaining full-lane failures are the preexisting project/git and flaky UI failures from the baseline (e.g. channels.spec.ts:500 is tracked by #110).

Gates passed:

  • pnpm --filter buzz check — clean
  • pnpm --filter buzz typecheck — clean
  • pnpm --filter buzz test — 5049 passed, 1 skipped, 0 failed
  • just test-unit — 8 workspace crates passed, 0 failed
  • just desktop-check — clean
  • just desktop-test — 5060 passed, 0 failed, 1 skipped
  • pnpm --filter buzz build:e2e — clean
  • git diff --check — clean

Pre-existing CI failures not in issue scope

Desktop Smoke E2E (1) in earlier runs reports a cluster of shard-1 failures that also appear in the #156 base run (job 93676494903 — 8 failed, 2 flaky, 242 passed), including channels.spec.ts:500 (tracked by #110), channels.spec.ts:1951, channels.spec.ts:2108, channel-activity-popover.spec.ts, channel-agent-presence.spec.ts, and community-rail.spec.ts:1088. These are unrelated to live-reaction or Inbox-edit parity.

Desktop Smoke E2E (2) and Desktop Smoke E2E (3) passed in earlier runs. Desktop Smoke E2E (4) is expected to cancel at the 30-minute timeout (tracked by issue #109).

Current CI run (after rebase onto c36d10350)

The latest nuncio-crew-ci.yml runs on this branch are failing because required jobs are cancelled by GitHub Actions before they complete:

  • Run 31499492424 (SHA 0a3fc0896): Desktop Fast was cancelled after pnpm check completed successfully.
  • Run 31499688638 (SHA 921f4615c): Desktop Fast started just desktop-check and ran through many desktop unit tests before being cancelled at 2026-08-11T14:06:56Z (~50 s into the job). macos-arm, Project Relay, buzz-acp, and desktop-rust were also cancelled.

This matches the latest origin/main run (31499231392) and other recent main runs. Rebase/push runs 31500680911 (SHA a77a8b927) and 31501454678 (SHA d2d998d81) also cancel desktop-fast and macos-arm before completion. gh run rerun is unavailable from this integration (Resource not accessible by integration). This is an infrastructure-level cancellation pattern rather than a code/test regression specific to this PR.

Decision number

D-046 records the new live-filter parity rule. D-041 (already in main) covers the mock-bridge relay-semantics rule that the E2E fix applies. D-045 belongs to PR #160 and was not reused.

Link to Devin session: https://app.devin.ai/sessions/23c0c77ec9344e42addf538aa1bd43da
Requested by: @oscarlehuu

@oscarlehuu oscarlehuu self-assigned this Aug 11, 2026
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1786425367-inbox-live-aux-parity branch 3 times, most recently from 1c38b42 to eaf0336 Compare August 11, 2026 10:45
@oscarlehuu
oscarlehuu force-pushed the devin/1786425367-inbox-live-aux-parity branch from eaf0336 to 8bc48aa Compare August 11, 2026 11:04
@devin-ai-integration
devin-ai-integration Bot force-pushed the devin/1786425367-inbox-live-aux-parity branch 10 times, most recently from d2d998d to ab3c8ad Compare August 11, 2026 14:33
…semantics

Fix issue #150 by addressing two independent regressions:

- Product: relayEventMatchesFilter now mirrors the relay h-tag rule so that
  h-less live auxiliary events (kind:7 reactions, structural events) are not
  dropped by the client after the relay routes them by derived channel context.
  Explicit mismatching h tags are still rejected.

- Harness: the E2E mock bridge now materializes channel-scoped feed items as
  stored relay events and dedupes mock events by id, restoring the relay
  invariants that useInboxThreadContext (verified-event selection, #114)
  depends on.

Records the fix as D-046 and updates STATE.md.

Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
@oscarlehuu
oscarlehuu force-pushed the devin/1786425367-inbox-live-aux-parity branch from ab3c8ad to 804a090 Compare August 11, 2026 14:42
@oscarlehuu
oscarlehuu merged commit f97ac45 into main Aug 11, 2026
8 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Inbox edit/reaction smoke specs red on clean main (inbox-edit:175/:325, messaging:1819)

1 participant