fix(desktop): restore live reaction and Inbox edit parity with relay semantics - #161
Merged
Merged
Conversation
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
3 tasks
devin-ai-integration
Bot
force-pushed
the
devin/1786425367-inbox-live-aux-parity
branch
3 times, most recently
from
August 11, 2026 10:45
1c38b42 to
eaf0336
Compare
oscarlehuu
force-pushed
the
devin/1786425367-inbox-live-aux-parity
branch
from
August 11, 2026 11:04
eaf0336 to
8bc48aa
Compare
devin-ai-integration
Bot
force-pushed
the
devin/1786425367-inbox-live-aux-parity
branch
10 times, most recently
from
August 11, 2026 14:33
d2d998d to
ab3c8ad
Compare
…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
force-pushed
the
devin/1786425367-inbox-live-aux-parity
branch
from
August 11, 2026 14:42
ab3c8ad to
804a090
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:304173e42(fix(agent): close attention recovery gaps #113) added a client-siderelayEventMatchesFilterre-check that rejects events with nohtag from#h-scoped live subscriptions. The real relay routes those same events by derivedchannel_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#hfilters, while an explicit mismatchinghtag is still rejected.__BUZZ_E2E_PUSH_MOCK_FEED_ITEM__never materialized a backing relay event, so fix(agent): close post-merge attention review gaps #114's verifiedget_eventlookup 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.mdand updatesdocs/crew/STATE.mdbecause 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)
messaging.spec.ts:1819#hfilter rejects h-less kind:7 live reaction before thread-cache mergeinbox-reactions.spec.ts:36#hfilter regression prevents Inbox live reaction updateinbox-edit.spec.ts:175get_eventfails → verified Inbox context cannot fetch structural editsinbox-edit.spec.ts:325Testing
Clean
origin/mainsmoke baseline (/home/ubuntu/evidence/origin-main-full-smoke-baseline.log):After this change (
/home/ubuntu/evidence/inbox-fix-full-smoke.log):Focused issue-150 rerun after renumbering (
/home/ubuntu/evidence/inbox-fix-focused-four-after-renumber.log):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 skippedNet 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:500is tracked by #110).Gates passed:
pnpm --filter buzz check— cleanpnpm --filter buzz typecheck— cleanpnpm --filter buzz test— 5049 passed, 1 skipped, 0 failedjust test-unit— 8 workspace crates passed, 0 failedjust desktop-check— cleanjust desktop-test— 5060 passed, 0 failed, 1 skippedpnpm --filter buzz build:e2e— cleangit diff --check— cleanPre-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#156base run (job 93676494903— 8 failed, 2 flaky, 242 passed), includingchannels.spec.ts:500(tracked by #110),channels.spec.ts:1951,channels.spec.ts:2108,channel-activity-popover.spec.ts,channel-agent-presence.spec.ts, andcommunity-rail.spec.ts:1088. These are unrelated to live-reaction or Inbox-edit parity.Desktop Smoke E2E (2)andDesktop 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.ymlruns on this branch are failing because required jobs are cancelled by GitHub Actions before they complete:31499492424(SHA0a3fc0896):Desktop Fastwas cancelled afterpnpm checkcompleted successfully.31499688638(SHA921f4615c):Desktop Faststartedjust desktop-checkand 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, anddesktop-rustwere also cancelled.This matches the latest
origin/mainrun (31499231392) and other recentmainruns. Rebase/push runs31500680911(SHAa77a8b927) and31501454678(SHAd2d998d81) also canceldesktop-fastandmacos-armbefore completion.gh run rerunis 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