chore(desktop): diagnose silently dropped observer frames - #18
Merged
Conversation
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>
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
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
When the agent activity indicator misbehaves,
observerRelayStoregives you nothing to go on: five separate branches discard a frame andreturnwithout a trace. Chasing #13 meant reasoning about which of them could have fired rather than reading it off a log.Each drop now emits a stable reason with enough context to trace the frame, and no behaviour changes — same branches, same returns:
Decrypted payloads are never logged. A chatty agent could otherwise flood the console, so logging is throttled per reason: first occurrence, then at most every 10s or every 100th drop, with the running count carried in the record so nothing is lost.
Two branches are deliberately quiet where noise would be normal rather than diagnostic:
unknown_agentduring startup, while frames are still being buffered before the managed-agent list is ready; and validframe: "control"events, which are owner→agent by design (buzz-core/src/observer.rsdefines exactlytelemetryandcontrol, andbuzz-sdkrejects anything else) —missing_telemetry_tagnow only fires for a genuinely missingagentorframetag.Related issue
None found. Diagnostics for the ingest path investigated in #13.
Testing
ingestArchivedObserverEvents.test.mjsasserts the aggregated counters for each reason via the existing_test*accessor convention, plus that a valid non-telemetry frame produces no diagnostic.just desktop-check,just desktop-test(3886 pass, 1 skipped),pnpm build— clean. No UI surface.Link to Devin session: https://app.devin.ai/sessions/0826f5720c94404fa8e327398aac6176
Requested by: @oscarlehuu